Skip to content

Instantly share code, notes, and snippets.

@samth
Created February 2, 2021 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samth/25bb9eb5d0b36983bae48efb5a032402 to your computer and use it in GitHub Desktop.
Save samth/25bb9eb5d0b36983bae48efb5a032402 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
;; This is not the original source code. Instead, this is the code after
;; fully expanding and flattening into a single linklet.
(module expander '#%kernel
(#%require '#%paramz '#%unsafe '#%flfxnum '#%linklet '#%extfl)
(#%provide
(rename boot boot)
(rename 1/bound-identifier=? bound-identifier=?)
(rename 1/compile compile)
(rename compile-keep-source-locations! compile-keep-source-locations!)
(rename 1/compiled-expression-recompile compiled-expression-recompile)
(rename 1/current-compile current-compile)
(rename 1/current-compiled-file-roots current-compiled-file-roots)
(rename 1/current-eval current-eval)
(rename 1/current-library-collection-links current-library-collection-links)
(rename 1/current-library-collection-paths current-library-collection-paths)
(rename 1/current-load current-load)
(rename 1/current-load/use-compiled current-load/use-compiled)
(rename 1/current-namespace current-namespace)
(rename datum->kernel-syntax datum->kernel-syntax)
(rename 1/datum->syntax datum->syntax)
(rename declare-primitive-module! declare-primitive-module!)
(rename 1/dynamic-require dynamic-require)
(rename embedded-load embedded-load)
(rename 1/eval eval)
(rename eval$1 eval-top-level)
(rename expand$1 expand)
(rename expander-place-init! expander-place-init!)
(rename 1/find-library-collection-links find-library-collection-links)
(rename 1/find-library-collection-paths find-library-collection-paths)
(rename find-main-config find-main-config)
(rename 1/identifier-binding identifier-binding)
(rename identifier? identifier?)
(rename 1/load load)
(rename 1/load-extension load-extension)
(rename 1/load/use-compiled load/use-compiled)
(rename make-namespace make-namespace)
(rename maybe-raise-missing-module maybe-raise-missing-module)
(rename maybe-syntax->datum maybe-syntax->datum)
(rename 1/module->language-info module->language-info)
(rename 1/module-compiled-exports module-compiled-exports)
(rename 1/module-compiled-indirect-exports module-compiled-indirect-exports)
(rename 1/module-declared? module-declared?)
(rename 1/module-path-index-join module-path-index-join)
(rename 1/module-path-index? module-path-index?)
(rename 1/module-path? module-path?)
(rename 1/module-predefined? module-predefined?)
(rename namespace->instance namespace->instance)
(rename 1/namespace-attach-module namespace-attach-module)
(rename 1/namespace-attach-module-declaration namespace-attach-module-declaration)
(rename namespace-datum-introduce namespace-datum-introduce)
(rename 1/namespace-mapped-symbols namespace-mapped-symbols)
(rename 1/namespace-module-identifier namespace-module-identifier)
(rename 1/namespace-require namespace-require)
(rename 1/namespace-syntax-introduce namespace-syntax-introduce)
(rename 1/namespace-variable-value namespace-variable-value)
(rename path-list-string->path-list path-list-string->path-list)
(rename 1/read read)
(rename 1/read-accept-compiled read-accept-compiled)
(rename 1/read-syntax read-syntax)
(rename 1/resolved-module-path? resolved-module-path?)
(rename seal seal)
(rename 1/syntax->datum syntax->datum)
(rename 1/syntax-debug-info syntax-debug-info)
(rename 1/syntax-e syntax-e)
(rename syntax-property$1 syntax-property)
(rename 1/syntax-shift-phase-level syntax-shift-phase-level)
(rename syntax?$1 syntax?)
(rename 1/use-collection-link-paths use-collection-link-paths)
(rename 1/use-compiled-file-check use-compiled-file-check)
(rename 1/use-compiled-file-paths use-compiled-file-paths)
(rename 1/use-user-specific-search-paths use-user-specific-search-paths))
(define-values (call/ec) call-with-escape-continuation)
(define-values
(qq-append)
(lambda (a_0 b_0) (begin (if (list? a_0) (append a_0 b_0) (raise-argument-error 'unquote-splicing "list?" a_0)))))
(define-values
(bad-list$1)
(lambda (who_0 orig-l_0) (begin 'bad-list (raise-mismatch-error who_0 "not a proper list: " orig-l_0))))
(define-values
(memq memv member)
(let-values ()
(let-values ()
(values
(let-values (((memq_0)
(lambda (v_0 orig-l_1)
(begin
'memq
((letrec-values (((loop_0)
(lambda (ls_0)
(begin
'loop
(if (null? ls_0)
(let-values () #f)
(if (not (pair? ls_0))
(let-values () (bad-list$1 'memq orig-l_1))
(if (eq? v_0 (car ls_0))
(let-values () ls_0)
(let-values () (loop_0 (cdr ls_0))))))))))
loop_0)
orig-l_1)))))
memq_0)
(let-values (((memv_0)
(lambda (v_1 orig-l_2)
(begin
'memv
((letrec-values (((loop_1)
(lambda (ls_1)
(begin
'loop
(if (null? ls_1)
(let-values () #f)
(if (not (pair? ls_1))
(let-values () (bad-list$1 'memv orig-l_2))
(if (eqv? v_1 (car ls_1))
(let-values () ls_1)
(let-values () (loop_1 (cdr ls_1))))))))))
loop_1)
orig-l_2)))))
memv_0)
(let-values (((default_0)
(let-values (((member_0)
(lambda (v_2 orig-l_3)
(begin
'member
((letrec-values (((loop_2)
(lambda (ls_2)
(begin
'loop
(if (null? ls_2)
(let-values () #f)
(if (not (pair? ls_2))
(let-values () (bad-list$1 'member orig-l_3))
(if (equal? v_2 (car ls_2))
(let-values () ls_2)
(let-values () (loop_2 (cdr ls_2))))))))))
loop_2)
orig-l_3)))))
member_0)))
(let-values (((member_1)
(case-lambda
((v_3 orig-l_4) (begin 'member (default_0 v_3 orig-l_4)))
((v_4 orig-l_5 eq?_0)
(begin
(if (if (procedure? eq?_0) (procedure-arity-includes? eq?_0 2) #f)
(void)
(raise-argument-error 'member "(procedure-arity-includes/c 2)" eq?_0))
((let-values (((member_2)
(lambda (v_5 orig-l_6)
(begin
'member
((letrec-values (((loop_3)
(lambda (ls_3)
(begin
'loop
(if (null? ls_3)
(let-values () #f)
(if (not (pair? ls_3))
(let-values () (bad-list$1 'member orig-l_6))
(if (eq?_0 v_5 (car ls_3))
(let-values () ls_3)
(let-values () (loop_3 (cdr ls_3))))))))))
loop_3)
orig-l_6)))))
member_2)
v_4
orig-l_5))))))
member_1))))))
(define-values (current-parameterization) (lambda () (begin (continuation-mark-set-first #f parameterization-key))))
(define-values
(call-with-parameterization)
(lambda (paramz_0 thunk_0)
(begin
(begin
(if (parameterization? paramz_0)
(void)
(let-values () (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)
(let-values () (raise-argument-error 'call-with-parameterization "(-> any)" 1 paramz_0 thunk_0)))
(with-continuation-mark parameterization-key paramz_0 (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-values
(current-break-parameterization)
(lambda () (begin (make-break-paramz (continuation-mark-set-first #f break-enabled-key)))))
(define-values
(call-with-break-parameterization)
(lambda (paramz_1 thunk_1)
(begin
(begin
(if (break-paramz? paramz_1)
(void)
(let-values ()
(raise-argument-error 'call-with-break-parameterization "break-parameterization?" 0 paramz_1 thunk_1)))
(if (if (procedure? thunk_1) (procedure-arity-includes? thunk_1 0) #f)
(void)
(let-values () (raise-argument-error 'call-with-parameterization "(-> any)" 1 paramz_1 thunk_1)))
(begin0
(with-continuation-mark break-enabled-key (break-paramz-ref paramz_1 0) (begin (check-for-break) (thunk_1)))
(check-for-break))))))
(define-values
(select-handler/no-breaks)
(lambda (e_0 bpz_0 l_0)
(begin
(with-continuation-mark
break-enabled-key
(make-thread-cell #f)
((letrec-values (((loop_4)
(lambda (l_1)
(begin
'loop
(if (null? l_1)
(let-values () (raise e_0))
(if ((caar l_1) e_0)
(let-values ()
(begin0
((cdar l_1) e_0)
(with-continuation-mark break-enabled-key bpz_0 (check-for-break))))
(let-values () (loop_4 (cdr l_1)))))))))
loop_4)
l_0)))))
(define-values (false-thread-cell) (make-thread-cell #f))
(define-values (handler-prompt-key) (make-continuation-prompt-tag 'handler-prompt-tag))
(define-values
(call-handled-body)
(lambda (bpz_1 handle-proc_0 body-thunk_0)
(begin
(with-continuation-mark
break-enabled-key
false-thread-cell
(call-with-continuation-prompt
(lambda (bpz_2 body-thunk_1)
(with-continuation-mark
break-enabled-key
bpz_2
(with-continuation-mark
exception-handler-key
(lambda (e_1) (abort-current-continuation handler-prompt-key e_1))
(body-thunk_1))))
handler-prompt-key
handle-proc_0
bpz_1
body-thunk_0)))))
(define-values
(call-with-exception-handler)
(lambda (exnh_0 thunk_2) (begin (begin0 (with-continuation-mark exception-handler-key exnh_0 (thunk_2)) (void)))))
(define-values (not-there) (gensym))
(define-values
(do-hash-update)
(lambda (who_1 mut?_0 set_0 ht_0 key_0 xform_0 default_1)
(begin
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values ()
(begin
(if (if (hash? ht_0) (if mut?_0 (not (immutable? ht_0)) (immutable? ht_0)) #f)
(void)
(let-values ()
(raise-argument-error
who_1
(if mut?_0 "(and/c hash? (not/c immutable?))" "(and/c hash? immutable?)")
ht_0)))
(if (if (procedure? xform_0) (procedure-arity-includes? xform_0 1) #f)
(void)
(let-values () (raise-argument-error who_1 "(any/c . -> . any/c)" xform_0))))))
(let-values (((v_6) (hash-ref ht_0 key_0 default_1)))
(if (eq? v_6 not-there)
(raise-mismatch-error who_1 "no value found for key: " key_0)
(set_0 ht_0 key_0 (xform_0 v_6))))))))
(define-values
(hash-update)
(case-lambda
((ht_1 key_1 xform_1 default_2) (begin (do-hash-update 'hash-update #f hash-set ht_1 key_1 xform_1 default_2)))
((ht_2 key_2 xform_2) (hash-update ht_2 key_2 xform_2 not-there))))
(define-values
(hash-update!)
(case-lambda
((ht_3 key_3 xform_3 default_3) (begin (do-hash-update 'hash-update! #t hash-set! ht_3 key_3 xform_3 default_3)))
((ht_4 key_4 xform_4) (hash-update! ht_4 key_4 xform_4 not-there))))
(define-values
(hash-ref!)
(lambda (ht_5 key_5 new_0)
(begin
(begin
(if (if (hash? ht_5) (not (immutable? ht_5)) #f)
(void)
(let-values () (raise-argument-error 'hash-ref! "(and/c hash? (not/c immutable?))" 0 ht_5 key_5 new_0)))
(let-values (((v_7) (hash-ref ht_5 key_5 not-there)))
(if (eq? not-there v_7)
(let-values (((n_0) (if (procedure? new_0) (new_0) new_0))) (begin (hash-set! ht_5 key_5 n_0) n_0))
v_7))))))
(define-values
(path-string?)
(lambda (s_0)
(begin
(let-values (((or-part_0) (path? s_0)))
(if or-part_0
or-part_0
(if (string? s_0)
(let-values (((or-part_1) (relative-path? s_0))) (if or-part_1 or-part_1 (absolute-path? s_0)))
#f))))))
(define-values (bsbs) (string '#\\ '#\\))
(define-values
(normal-case-path)
(lambda (s_1)
(begin
(begin
(if (let-values (((or-part_2) (path-for-some-system? s_1))) (if or-part_2 or-part_2 (path-string? s_1)))
(void)
(let-values () (raise-argument-error 'normal-path-case "(or/c path-for-some-system? path-string?)" s_1)))
(if (if (path-for-some-system? s_1) (eq? (path-convention-type s_1) 'windows) (eq? (system-type) 'windows))
(let-values ()
(let-values (((bstr_0) (if (string? s_1) #f (path->bytes s_1))))
(if (if (string? s_1) (regexp-match? '#rx"^[\\][\\][?][\\]" s_1) #f)
(let-values () (string->path s_1))
(if (if bstr_0 (regexp-match? '#rx#"^[\\][\\][?][\\]" bstr_0) #f)
(let-values () s_1)
(let-values ()
(let-values (((norm_0)
(lambda (s_2)
(begin 'norm (string-locale-downcase (regexp-replace* '#rx"/" s_2 bsbs)))))
((norm-tail_0)
(lambda (s_3)
(begin
'norm-tail
(if (regexp-match? '#rx"[/\\][. ]+[/\\]*$" s_3)
s_3
(regexp-replace* '#rx"(?<=[^ ./\\])[ .]+([/\\]*)$" s_3 "\\1")))))
((finish_0) (lambda (bstr_1) (begin 'finish (bytes->path bstr_1 'windows)))))
(if (string? s_1)
(let-values () (finish_0 (string->bytes/locale (norm_0 (norm-tail_0 s_1)))))
(let-values ()
(let-values (((c_0) (bytes-open-converter "" "UTF-8")))
(finish_0
((letrec-values (((loop_5)
(lambda (offset_0)
(begin
'loop
(let-values (((new-bstr_0 used_0 status_0)
(bytes-convert
c_0
bstr_0
offset_0
(bytes-length bstr_0))))
(let-values (((s_4) (bytes->string/locale new-bstr_0)))
(let-values (((tail-s_0)
(if (eq? status_0 'complete)
(norm-tail_0 s_4)
s_4)))
(let-values (((done_0)
(string->bytes/locale (norm_0 tail-s_0))))
(if (eq? status_0 'complete)
(let-values () done_0)
(if (eq? status_0 'aborts)
(let-values ()
(bytes-append
done_0
(subbytes bstr_0 (+ offset_0 used_0))))
(let-values ()
(bytes-append
done_0
(subbytes
bstr_0
(+ offset_0 used_0)
(+ offset_0 used_0 1))
(loop_5 (+ offset_0 used_0 1))))))))))))))
loop_5)
0)))))))))))
(if (string? s_1) (let-values () (string->path s_1)) (let-values () s_1)))))))
(define-values
(check-extension-call)
(lambda (s_5 sfx_0 who_2 sep_0 trust-sep?_0)
(begin
(begin
(let-values (((err-msg_0 err-index_0)
(if (not
(let-values (((or-part_3) (path-for-some-system? s_5)))
(if or-part_3 or-part_3 (path-string? s_5))))
(let-values () (values "(or/c path-for-some-system? path-string?)" 0))
(if (not (let-values (((or-part_4) (string? sfx_0))) (if or-part_4 or-part_4 (bytes? sfx_0))))
(let-values () (values "(or/c string? bytes?)" 1))
(if (not
(let-values (((or-part_5) trust-sep?_0))
(if or-part_5
or-part_5
(let-values (((or-part_6) (string? sep_0)))
(if or-part_6 or-part_6 (bytes? sep_0))))))
(let-values () (values "(or/c string? bytes?)" 2))
(let-values () (values #f #f)))))))
(if err-msg_0
(let-values ()
(if trust-sep?_0
(raise-argument-error who_2 err-msg_0 err-index_0 s_5 sfx_0)
(raise-argument-error who_2 err-msg_0 err-index_0 s_5 sfx_0 sep_0)))
(void)))
(let-values (((base_0 name_0 dir?_0) (split-path s_5)))
(begin
(if (not base_0)
(let-values () (raise-mismatch-error who_2 "cannot add an extension to a root path: " s_5))
(void))
(values base_0 name_0)))))))
(define-values
(path-adjust-extension)
(lambda (name_1 sep_1 rest-bytes_0 s_6 sfx_1 trust-sep?_1)
(begin
(let-values (((base_1 name_2) (check-extension-call s_6 sfx_1 name_1 sep_1 trust-sep?_1)))
(let-values (((bs_0) (path-element->bytes name_2)))
(let-values (((finish_1)
(lambda (i_0 sep_2 i2_0)
(begin
'finish
(bytes->path-element
(bytes-append
(subbytes bs_0 0 i_0)
(if (string? sep_2) (string->bytes/locale sep_2 (char->integer '#\?)) sep_2)
(rest-bytes_0 bs_0 i2_0)
(if (string? sfx_1) (string->bytes/locale sfx_1 (char->integer '#\?)) sfx_1))
(if (path-for-some-system? s_6)
(path-convention-type s_6)
(system-path-convention-type)))))))
(let-values (((new-name_0)
(letrec-values (((loop_6)
(lambda (i_1)
(begin
'loop
(if (zero? i_1)
(finish_1 (bytes-length bs_0) #"" (bytes-length bs_0))
(let-values (((i_2) (sub1 i_1)))
(if (if (not (zero? i_2))
(eq? (char->integer '#\.) (bytes-ref bs_0 i_2))
#f)
(finish_1 i_2 sep_1 (add1 i_2))
(loop_6 i_2))))))))
(loop_6 (bytes-length bs_0)))))
(if (path-for-some-system? base_1) (build-path base_1 new-name_0) new-name_0))))))))
(define-values
(path-replace-extension)
(lambda (s_7 sfx_2) (begin (path-adjust-extension 'path-replace-extension #"" (lambda (bs_1 i_3) #"") s_7 sfx_2 #t))))
(define-values
(path-add-extension)
(case-lambda
((s_8 sfx_3) (begin (path-adjust-extension 'path-add-extension #"_" subbytes s_8 sfx_3 #t)))
((s_9 sfx_4 sep_3) (path-adjust-extension 'path-add-extension sep_3 subbytes s_9 sfx_4 #f))))
(define-values
(reroot-path)
(lambda (p_0 root_0)
(begin
(let-values ((()
(begin
(if (let-values (((or-part_7) (path-string? p_0)))
(if or-part_7 or-part_7 (path-for-some-system? p_0)))
(void)
(let-values ()
(raise-argument-error 'reroot-path "(or/c path-string? path-for-some-system?)" 0 p_0 root_0)))
(values))))
(let-values ((()
(begin
(if (let-values (((or-part_8) (path-string? root_0)))
(if or-part_8 or-part_8 (path-for-some-system? root_0)))
(void)
(let-values ()
(raise-argument-error
'reroot-path
"(or/c path-string? path-for-some-system?)"
1
p_0
root_0)))
(values))))
(let-values (((conv_0)
(if (path-for-some-system? p_0) (path-convention-type p_0) (system-path-convention-type))))
(let-values ((()
(begin
(if (let-values (((or-part_9) (complete-path? p_0)))
(if or-part_9 or-part_9 (eq? (system-path-convention-type) conv_0)))
(void)
(let-values ()
(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))))
(values))))
(let-values ((()
(begin
(if (eq?
(if (path-for-some-system? root_0)
(path-convention-type root_0)
(system-path-convention-type))
conv_0)
(void)
(let-values ()
(raise-arguments-error
'reroot-path
"given paths use different conventions"
"path"
p_0
"root path"
root_0)))
(values))))
(let-values (((c-p_0)
(normal-case-path
(cleanse-path (if (complete-path? p_0) p_0 (path->complete-path p_0))))))
(let-values (((bstr_2) (path->bytes c-p_0)))
(if (eq? conv_0 'unix)
(let-values ()
(if (bytes=? bstr_2 #"/")
(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)
(let-values ()
(build-path
root_0
(bytes->path
(if (regexp-match? '#rx"^\\\\\\\\[?]\\\\[a-z]:" bstr_2)
(let-values ()
(bytes-append #"\\\\?\\REL\\" (subbytes bstr_2 4 5) #"\\" (subbytes bstr_2 6)))
(if (regexp-match? '#rx"^\\\\\\\\[?]\\\\UNC\\\\" bstr_2)
(let-values () (bytes-append #"\\\\?\\REL\\" (subbytes bstr_2 4)))
(if (regexp-match? '#rx"^\\\\\\\\[?]\\\\UNC\\\\" bstr_2)
(let-values () (bytes-append #"\\\\?\\REL\\" (subbytes bstr_2 4)))
(if (regexp-match? '#rx"^\\\\\\\\" bstr_2)
(let-values () (bytes-append #"UNC\\" (subbytes bstr_2 2)))
(if (regexp-match? '#rx"^[a-z]:" bstr_2)
(let-values () (bytes-append (subbytes bstr_2 0 1) (subbytes bstr_2 2)))
(void))))))
conv_0)))
(void)))))))))))))
(define-values (rx:path-list) #f)
(define-values
(init-rx:path-list!)
(lambda ()
(begin
(if rx:path-list
(void)
(let-values ()
(set! rx:path-list
(byte-regexp
(string->bytes/utf-8
(let-values (((sep_4) (if (eq? (system-type) 'windows) ";" ":")))
(format "([^~a]*)~a(.*)" sep_4 sep_4))))))))))
(define-values
(cons-path)
(lambda (default_4 s_10 l_2)
(begin
(let-values (((s_11) (if (eq? (system-type) 'windows) (regexp-replace* '#rx#"\"" s_10 #"") s_10)))
(if (bytes=? s_11 #"") (append default_4 l_2) (cons (bytes->path s_11) l_2))))))
(define-values
(path-list-string->path-list)
(lambda (s_12 default_5)
(begin
(begin
(if (let-values (((or-part_10) (bytes? s_12))) (if or-part_10 or-part_10 (string? s_12)))
(void)
(let-values () (raise-argument-error 'path-list-string->path-list "(or/c bytes? string?)" s_12)))
(if (if (list? default_5) (andmap path? default_5) #f)
(void)
(let-values () (raise-argument-error 'path-list-string->path-list "(listof path?)" default_5)))
(init-rx:path-list!)
((letrec-values (((loop_7)
(lambda (s_2)
(begin
'loop
(let-values (((m_0) (regexp-match rx:path-list s_2)))
(if m_0
(cons-path default_5 (cadr m_0) (loop_7 (caddr m_0)))
(cons-path default_5 s_2 null)))))))
loop_7)
(if (string? s_12) (string->bytes/utf-8 s_12) s_12))))))
(define-values
(find-executable-path)
(case-lambda
((program_0 libpath_0 reverse?_0)
(begin
(begin
(if (path-string? program_0)
(void)
(let-values () (raise-argument-error 'find-executable-path "path-string?" program_0)))
(if (let-values (((or-part_11) (not libpath_0)))
(if or-part_11 or-part_11 (if (path-string? libpath_0) (relative-path? libpath_0) #f)))
(void)
(let-values ()
(raise-argument-error 'find-executable-path "(or/c #f (and/c path-string? relative-path?))" libpath_0)))
(letrec-values (((found-exec_0)
(lambda (exec-name_0)
(begin
'found-exec
(if libpath_0
(let-values (((base_2 name_3 isdir?_0) (split-path exec-name_0)))
(let-values (((next_0)
(lambda ()
(begin
'next
(let-values (((resolved_0) (resolve-path exec-name_0)))
(if (equal? resolved_0 exec-name_0)
(let-values () #f)
(if (relative-path? resolved_0)
(let-values () (found-exec_0 (build-path base_2 resolved_0)))
(let-values () (found-exec_0 resolved_0)))))))))
(let-values (((or-part_12) (if reverse?_0 (next_0) #f)))
(if or-part_12
or-part_12
(let-values (((or-part_13)
(if (path? base_2)
(let-values (((lib_0) (build-path base_2 libpath_0)))
(if (let-values (((or-part_14) (directory-exists? lib_0)))
(if or-part_14 or-part_14 (file-exists? lib_0)))
lib_0
#f))
#f)))
(if or-part_13 or-part_13 (if (not reverse?_0) (next_0) #f)))))))
exec-name_0)))))
(if (if (relative-path? program_0)
(let-values (((base_3 name_4 dir?_1) (split-path program_0))) (eq? base_3 'relative))
#f)
(let-values (((paths-str_0) (environment-variables-ref (current-environment-variables) #"PATH"))
((win-add_0)
(lambda (s_13)
(begin 'win-add (if (eq? (system-type) 'windows) (cons (bytes->path #".") s_13) s_13)))))
((letrec-values (((loop_8)
(lambda (paths_0)
(begin
'loop
(if (null? paths_0)
#f
(let-values (((base_4) (path->complete-path (car paths_0))))
(let-values (((name_5) (build-path base_4 program_0)))
(if (file-exists? name_5) (found-exec_0 name_5) (loop_8 (cdr paths_0))))))))))
loop_8)
(win-add_0
(if paths-str_0 (path-list-string->path-list (bytes->string/locale paths-str_0 '#\?) null) null))))
(let-values (((p_1) (path->complete-path program_0))) (if (file-exists? p_1) (found-exec_0 p_1) #f)))))))
((program_1 libpath_1) (find-executable-path program_1 libpath_1 #f))
((program_2) (find-executable-path program_2 #f #f))))
(define-values
(call-with-default-reading-parameterization)
(lambda (thunk_3)
(begin
(if (if (procedure? thunk_3) (procedure-arity-includes? thunk_3 0) #f)
(with-continuation-mark
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-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)
(thunk_3))
(raise-argument-error 'call-with-default-reading-parameterization "(procedure-arity-includes/c 0)" thunk_3)))))
(define-values
(prop:keyword-impersonator keyword-impersonator? keyword-impersonator-ref)
(make-struct-type-property 'keyword-impersonator))
(define-values
(keyword-procedure-impersonator-of)
(lambda (v_8)
(begin (if (keyword-impersonator? v_8) (let-values () ((keyword-impersonator-ref v_8) v_8)) (let-values () #f)))))
(define-values
(struct:keyword-procedure mk-kw-proc keyword-procedure? keyword-procedure-ref keyword-procedure-set!)
(make-struct-type
'keyword-procedure
#f
4
0
#f
(list (cons prop:checked-procedure #t) (cons prop:impersonator-of keyword-procedure-impersonator-of))
(current-inspector)
#f
'(0 1 2 3)))
(define-values (keyword-procedure-required) (make-struct-field-accessor keyword-procedure-ref 2))
(define-values (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_9 info-l_0) (if (exact-integer? v_9) (make-struct-field-accessor (list-ref info-l_0 3) v_9) #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-values
(procedure-keywords)
(lambda (p_2)
(begin
(if (keyword-procedure? p_2)
(let-values () (values (keyword-procedure-required p_2) (keyword-procedure-allowed p_2)))
(if (procedure? p_2)
(let-values ()
(if (new-procedure? p_2)
(let-values (((v_10) (new-procedure-ref p_2)))
(if (procedure? v_10)
(procedure-keywords v_10)
(let-values (((a_1) (procedure-accessor-ref p_2)))
(if a_1 (procedure-keywords (a_1 p_2)) (values null null)))))
(values null null)))
(let-values () (raise-argument-error 'procedure-keywords "procedure?" p_2)))))))
(define-values (print-values) (lambda vs_0 (begin (begin (for-each (current-print) vs_0) (apply values vs_0)))))
(define-values
(reverse$1)
(lambda (l_3)
(begin
'reverse
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(if (list? l_3) (void) (raise-argument-error 'reverse "list?" l_3)))
(letrec-values (((loop_9)
(lambda (a_2 l_2) (begin 'loop (if (null? l_2) a_2 (loop_9 (cons (car l_2) a_2) (cdr l_2)))))))
(loop_9 null l_3))))))
(define-values
(sort vector-sort vector-sort!)
(let-values ()
(let-values (((generic-sort_0)
(lambda (A_0 less-than?_0 n_1)
(begin
'generic-sort
(let-values ()
(let-values ()
(let-values (((n/2-_0) (unsafe-fxrshift n_1 1)))
(let-values (((n/2+_0) (unsafe-fx- n_1 n/2-_0)))
(letrec-values (((copying-mergesort_0)
(lambda (Alo_0 Blo_0 n_2)
(begin
'copying-mergesort
(if (unsafe-fx= n_2 1)
(let-values ()
(unsafe-vector-set! A_0 Blo_0 (unsafe-vector-ref A_0 Alo_0)))
(if (unsafe-fx= n_2 2)
(let-values ()
(let-values (((x_0) (unsafe-vector-ref A_0 Alo_0))
((y_0)
(unsafe-vector-ref A_0 (unsafe-fx+ Alo_0 1))))
(if (less-than?_0 y_0 x_0)
(begin
(unsafe-vector-set! A_0 Blo_0 y_0)
(unsafe-vector-set! A_0 (unsafe-fx+ Blo_0 1) x_0))
(begin
(unsafe-vector-set! A_0 Blo_0 x_0)
(unsafe-vector-set! A_0 (unsafe-fx+ Blo_0 1) y_0)))))
(if (unsafe-fx< n_2 16)
(let-values ()
(begin
(unsafe-vector-set!
A_0
Blo_0
(unsafe-vector-ref A_0 Alo_0))
((letrec-values (((iloop_0)
(lambda (i_4)
(begin
'iloop
(if (unsafe-fx< i_4 n_2)
(let-values ()
(let-values (((ref-i_0)
(unsafe-vector-ref
A_0
(unsafe-fx+
Alo_0
i_4))))
((letrec-values (((jloop_0)
(lambda (j_0)
(begin
'jloop
(let-values (((ref-j-1_0)
(unsafe-vector-ref
A_0
(unsafe-fx-
j_0
1))))
(if (if (unsafe-fx<
Blo_0
j_0)
(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_4
1)))))))))
jloop_0)
(unsafe-fx+ Blo_0 i_4))))
(void))))))
iloop_0)
1)))
(let-values ()
(let-values (((n/2-_1) (unsafe-fxrshift n_2 1)))
(let-values (((n/2+_1) (unsafe-fx- n_2 n/2-_1)))
(let-values (((Amid1_0) (unsafe-fx+ Alo_0 n/2-_1))
((Amid2_0) (unsafe-fx+ Alo_0 n/2+_1))
((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-values (((b2_0) (unsafe-fx+ Blo_0 n_2)))
((letrec-values (((loop_10)
(lambda (a1_0 b1_0 c1_0)
(begin
'loop
(let-values (((x_1)
(unsafe-vector-ref
A_0
a1_0))
((y_1)
(unsafe-vector-ref
A_0
b1_0)))
(if (not
(less-than?_0
y_1
x_1))
(begin
(unsafe-vector-set!
A_0
c1_0
x_1)
(let-values (((a1_1)
(unsafe-fx+
a1_0
1))
((c1_1)
(unsafe-fx+
c1_0
1)))
(if (unsafe-fx<
c1_1
b1_0)
(let-values ()
(loop_10
a1_1
b1_0
c1_1))
(void))))
(begin
(unsafe-vector-set!
A_0
c1_0
y_1)
(let-values (((b1_1)
(unsafe-fx+
b1_0
1))
((c1_2)
(unsafe-fx+
c1_0
1)))
(if (unsafe-fx<=
b2_0
b1_1)
((letrec-values (((loop_11)
(lambda (a1_2
c1_3)
(begin
'loop
(if (unsafe-fx<
c1_3
b1_1)
(let-values ()
(begin
(unsafe-vector-set!
A_0
c1_3
(unsafe-vector-ref
A_0
a1_2))
(loop_11
(unsafe-fx+
a1_2
1)
(unsafe-fx+
c1_3
1))))
(void))))))
loop_11)
a1_0
c1_2)
(loop_10
a1_0
b1_1
c1_2))))))))))
loop_10)
Amid2_0
Bmid1_0
Blo_0))))))))))))))
(let-values (((Alo_1) 0)
((Amid1_1) n/2-_0)
((Amid2_1) n/2+_0)
((Ahi_0) n_1)
((B1lo_0) n_1))
(begin
(copying-mergesort_0 Amid1_1 B1lo_0 n/2+_0)
(if (zero? n/2-_0)
(void)
(let-values () (copying-mergesort_0 Alo_1 Amid2_1 n/2-_0)))
(let-values (((b2_1) Ahi_0))
((letrec-values (((loop_12)
(lambda (a1_3 b1_2 c1_4)
(begin
'loop
(let-values (((x_2) (unsafe-vector-ref A_0 a1_3))
((y_2) (unsafe-vector-ref A_0 b1_2)))
(if (less-than?_0 x_2 y_2)
(begin
(unsafe-vector-set! A_0 c1_4 x_2)
(let-values (((a1_4) (unsafe-fx+ a1_3 1))
((c1_5) (unsafe-fx+ c1_4 1)))
(if (unsafe-fx< c1_5 b1_2)
(let-values () (loop_12 a1_4 b1_2 c1_5))
(void))))
(begin
(unsafe-vector-set! A_0 c1_4 y_2)
(let-values (((b1_3) (unsafe-fx+ b1_2 1))
((c1_6) (unsafe-fx+ c1_4 1)))
(if (unsafe-fx<= b2_1 b1_3)
((letrec-values (((loop_13)
(lambda (a1_5 c1_7)
(begin
'loop
(if (unsafe-fx< c1_7 b1_3)
(let-values ()
(begin
(unsafe-vector-set!
A_0
c1_7
(unsafe-vector-ref
A_0
a1_5))
(loop_13
(unsafe-fx+ a1_5 1)
(unsafe-fx+
c1_7
1))))
(void))))))
loop_13)
a1_3
c1_6)
(loop_12 a1_3 b1_3 c1_6))))))))))
loop_12)
B1lo_0
Amid2_1
Alo_1)))))))))))))
(let-values (((generic-sort/key_0)
(lambda (A_1 less-than?_1 n_3 key_6)
(begin
'generic-sort/key
(let-values ()
(let-values ()
(let-values (((n/2-_2) (unsafe-fxrshift n_3 1)))
(let-values (((n/2+_2) (unsafe-fx- n_3 n/2-_2)))
(letrec-values (((copying-mergesort_1)
(lambda (Alo_2 Blo_1 n_4)
(begin
'copying-mergesort
(if (unsafe-fx= n_4 1)
(let-values ()
(unsafe-vector-set! A_1 Blo_1 (unsafe-vector-ref A_1 Alo_2)))
(if (unsafe-fx= n_4 2)
(let-values ()
(let-values (((x_3) (unsafe-vector-ref A_1 Alo_2))
((y_3)
(unsafe-vector-ref A_1 (unsafe-fx+ Alo_2 1))))
(if (if key_6
(less-than?_1 (key_6 y_3) (key_6 x_3))
(less-than?_1 y_3 x_3))
(begin
(unsafe-vector-set! A_1 Blo_1 y_3)
(unsafe-vector-set! A_1 (unsafe-fx+ Blo_1 1) x_3))
(begin
(unsafe-vector-set! A_1 Blo_1 x_3)
(unsafe-vector-set! A_1 (unsafe-fx+ Blo_1 1) y_3)))))
(if (unsafe-fx< n_4 16)
(let-values ()
(begin
(unsafe-vector-set!
A_1
Blo_1
(unsafe-vector-ref A_1 Alo_2))
((letrec-values (((iloop_1)
(lambda (i_5)
(begin
'iloop
(if (unsafe-fx< i_5 n_4)
(let-values ()
(let-values (((ref-i_1)
(unsafe-vector-ref
A_1
(unsafe-fx+
Alo_2
i_5))))
((letrec-values (((jloop_1)
(lambda (j_1)
(begin
'jloop
(let-values (((ref-j-1_1)
(unsafe-vector-ref
A_1
(unsafe-fx-
j_1
1))))
(if (if (unsafe-fx<
Blo_1
j_1)
(if key_6
(less-than?_1
(key_6
ref-i_1)
(key_6
ref-j-1_1))
(less-than?_1
ref-i_1
ref-j-1_1))
#f)
(begin
(unsafe-vector-set!
A_1
j_1
ref-j-1_1)
(jloop_1
(unsafe-fx-
j_1
1)))
(begin
(unsafe-vector-set!
A_1
j_1
ref-i_1)
(iloop_1
(unsafe-fx+
i_5
1)))))))))
jloop_1)
(unsafe-fx+ Blo_1 i_5))))
(void))))))
iloop_1)
1)))
(let-values ()
(let-values (((n/2-_3) (unsafe-fxrshift n_4 1)))
(let-values (((n/2+_3) (unsafe-fx- n_4 n/2-_3)))
(let-values (((Amid1_2) (unsafe-fx+ Alo_2 n/2-_3))
((Amid2_2) (unsafe-fx+ Alo_2 n/2+_3))
((Bmid1_1) (unsafe-fx+ Blo_1 n/2-_3)))
(begin
(copying-mergesort_1 Amid1_2 Bmid1_1 n/2+_3)
(copying-mergesort_1 Alo_2 Amid2_2 n/2-_3)
(let-values (((b2_2) (unsafe-fx+ Blo_1 n_4)))
((letrec-values (((loop_14)
(lambda (a1_6 b1_4 c1_8)
(begin
'loop
(let-values (((x_4)
(unsafe-vector-ref
A_1
a1_6))
((y_4)
(unsafe-vector-ref
A_1
b1_4)))
(if (not
(if key_6
(less-than?_1
(key_6 y_4)
(key_6 x_4))
(less-than?_1
y_4
x_4)))
(begin
(unsafe-vector-set!
A_1
c1_8
x_4)
(let-values (((a1_7)
(unsafe-fx+
a1_6
1))
((c1_9)
(unsafe-fx+
c1_8
1)))
(if (unsafe-fx<
c1_9
b1_4)
(let-values ()
(loop_14
a1_7
b1_4
c1_9))
(void))))
(begin
(unsafe-vector-set!
A_1
c1_8
y_4)
(let-values (((b1_5)
(unsafe-fx+
b1_4
1))
((c1_10)
(unsafe-fx+
c1_8
1)))
(if (unsafe-fx<=
b2_2
b1_5)
((letrec-values (((loop_15)
(lambda (a1_8
c1_11)
(begin
'loop
(if (unsafe-fx<
c1_11
b1_5)
(let-values ()
(begin
(unsafe-vector-set!
A_1
c1_11
(unsafe-vector-ref
A_1
a1_8))
(loop_15
(unsafe-fx+
a1_8
1)
(unsafe-fx+
c1_11
1))))
(void))))))
loop_15)
a1_6
c1_10)
(loop_14
a1_6
b1_5
c1_10))))))))))
loop_14)
Amid2_2
Bmid1_1
Blo_1))))))))))))))
(let-values (((Alo_3) 0)
((Amid1_3) n/2-_2)
((Amid2_3) n/2+_2)
((Ahi_1) n_3)
((B1lo_1) n_3))
(begin
(copying-mergesort_1 Amid1_3 B1lo_1 n/2+_2)
(if (zero? n/2-_2)
(void)
(let-values () (copying-mergesort_1 Alo_3 Amid2_3 n/2-_2)))
(let-values (((b2_3) Ahi_1))
((letrec-values (((loop_16)
(lambda (a1_9 b1_6 c1_12)
(begin
'loop
(let-values (((x_5) (unsafe-vector-ref A_1 a1_9))
((y_5) (unsafe-vector-ref A_1 b1_6)))
(if (if key_6
(less-than?_1 (key_6 x_5) (key_6 y_5))
(less-than?_1 x_5 y_5))
(begin
(unsafe-vector-set! A_1 c1_12 x_5)
(let-values (((a1_10) (unsafe-fx+ a1_9 1))
((c1_13) (unsafe-fx+ c1_12 1)))
(if (unsafe-fx< c1_13 b1_6)
(let-values () (loop_16 a1_10 b1_6 c1_13))
(void))))
(begin
(unsafe-vector-set! A_1 c1_12 y_5)
(let-values (((b1_7) (unsafe-fx+ b1_6 1))
((c1_14) (unsafe-fx+ c1_12 1)))
(if (unsafe-fx<= b2_3 b1_7)
((letrec-values (((loop_17)
(lambda (a1_11 c1_15)
(begin
'loop
(if (unsafe-fx<
c1_15
b1_7)
(let-values ()
(begin
(unsafe-vector-set!
A_1
c1_15
(unsafe-vector-ref
A_1
a1_11))
(loop_17
(unsafe-fx+
a1_11
1)
(unsafe-fx+
c1_15
1))))
(void))))))
loop_17)
a1_9
c1_14)
(loop_16 a1_9 b1_7 c1_14))))))))))
loop_16)
B1lo_1
Amid2_3
Alo_3)))))))))))))
(values
(case-lambda
((lst_0 less-than?_2)
(let-values (((n_5) (length lst_0)))
(let-values ()
(if (unsafe-fx= n_5 0)
(let-values () lst_0)
(if ((letrec-values (((loop_18)
(lambda (last_0 next_1)
(begin
'loop
(let-values (((or-part_15) (null? next_1)))
(if or-part_15
or-part_15
(if (not (less-than?_2 (unsafe-car next_1) last_0))
(loop_18 (unsafe-car next_1) (unsafe-cdr next_1))
#f)))))))
loop_18)
(car lst_0)
(cdr lst_0))
(let-values () lst_0)
(if (unsafe-fx<= n_5 3)
(let-values ()
(if (unsafe-fx= n_5 1)
(let-values () lst_0)
(if (unsafe-fx= n_5 2)
(let-values () (list (cadr lst_0) (car lst_0)))
(let-values ()
(let-values (((a_3) (car lst_0)) ((b_1) (cadr lst_0)) ((c_1) (caddr lst_0)))
(if (less-than?_2 b_1 a_3)
(if (less-than?_2 c_1 b_1)
(list c_1 b_1 a_3)
(if (less-than?_2 c_1 a_3) (list b_1 c_1 a_3) (list b_1 a_3 c_1)))
(if (less-than?_2 c_1 a_3) (list c_1 a_3 b_1) (list a_3 c_1 b_1))))))))
(let-values ()
(let-values (((vec_0) (make-vector (+ n_5 (ceiling (/ n_5 2))))))
(begin
((letrec-values (((loop_19)
(lambda (i_6 lst_1)
(begin
'loop
(if (pair? lst_1)
(let-values ()
(begin
(vector-set! vec_0 i_6 (car lst_1))
(loop_19 (add1 i_6) (cdr lst_1))))
(void))))))
loop_19)
0
lst_0)
(generic-sort_0 vec_0 less-than?_2 n_5)
((letrec-values (((loop_20)
(lambda (i_7 r_0)
(begin
'loop
(let-values (((i_8) (sub1 i_7)))
(if (< i_8 0)
r_0
(loop_20 i_8 (cons (vector-ref vec_0 i_8) r_0))))))))
loop_20)
n_5
'()))))))))))
((lst_2 less-than?_3 getkey_0)
(if (if getkey_0 (not (eq? values getkey_0)) #f)
(sort lst_2 less-than?_3 getkey_0 #f)
(sort lst_2 less-than?_3)))
((lst_3 less-than?_4 getkey_1 cache-keys?_0)
(if (if getkey_1 (not (eq? values getkey_1)) #f)
(let-values (((n_6) (length lst_3)))
(let-values ()
(if (unsafe-fx= n_6 0)
(let-values () lst_3)
(if cache-keys?_0
(let-values ()
(let-values (((vec_1) (make-vector (+ n_6 (ceiling (/ n_6 2))))))
(begin
((letrec-values (((loop_21)
(lambda (i_9 lst_4)
(begin
'loop
(if (pair? lst_4)
(let-values ()
(let-values (((x_6) (car lst_4)))
(begin
(unsafe-vector-set! vec_1 i_9 (cons (getkey_1 x_6) x_6))
(loop_21 (unsafe-fx+ i_9 1) (cdr lst_4)))))
(void))))))
loop_21)
0
lst_3)
(generic-sort/key_0 vec_1 less-than?_4 n_6 unsafe-car)
((letrec-values (((loop_22)
(lambda (i_10 r_1)
(begin
'loop
(let-values (((i_11) (unsafe-fx- i_10 1)))
(if (unsafe-fx< i_11 0)
r_1
(loop_22
i_11
(cons (unsafe-cdr (unsafe-vector-ref vec_1 i_11)) r_1))))))))
loop_22)
n_6
'()))))
(if ((letrec-values (((loop_23)
(lambda (last_1 next_2)
(begin
'loop
(let-values (((or-part_16) (null? next_2)))
(if or-part_16
or-part_16
(if (not
(if getkey_1
(less-than?_4
(getkey_1 (unsafe-car next_2))
(getkey_1 last_1))
(less-than?_4 (unsafe-car next_2) last_1)))
(loop_23 (unsafe-car next_2) (unsafe-cdr next_2))
#f)))))))
loop_23)
(car lst_3)
(cdr lst_3))
(let-values () lst_3)
(if (unsafe-fx<= n_6 3)
(let-values ()
(if (unsafe-fx= n_6 1)
(let-values () lst_3)
(if (unsafe-fx= n_6 2)
(let-values () (list (cadr lst_3) (car lst_3)))
(let-values ()
(let-values (((a_4) (car lst_3)) ((b_2) (cadr lst_3)) ((c_2) (caddr lst_3)))
(if (if getkey_1 (less-than?_4 (getkey_1 b_2) (getkey_1 a_4)) (less-than?_4 b_2 a_4))
(if (if getkey_1
(less-than?_4 (getkey_1 c_2) (getkey_1 b_2))
(less-than?_4 c_2 b_2))
(list c_2 b_2 a_4)
(if (if getkey_1
(less-than?_4 (getkey_1 c_2) (getkey_1 a_4))
(less-than?_4 c_2 a_4))
(list b_2 c_2 a_4)
(list b_2 a_4 c_2)))
(if (if getkey_1
(less-than?_4 (getkey_1 c_2) (getkey_1 a_4))
(less-than?_4 c_2 a_4))
(list c_2 a_4 b_2)
(list a_4 c_2 b_2))))))))
(let-values ()
(let-values (((vec_2) (make-vector (+ n_6 (ceiling (/ n_6 2))))))
(begin
((letrec-values (((loop_24)
(lambda (i_12 lst_5)
(begin
'loop
(if (pair? lst_5)
(let-values ()
(begin
(vector-set! vec_2 i_12 (car lst_5))
(loop_24 (add1 i_12) (cdr lst_5))))
(void))))))
loop_24)
0
lst_3)
(generic-sort/key_0 vec_2 less-than?_4 n_6 getkey_1)
((letrec-values (((loop_25)
(lambda (i_13 r_2)
(begin
'loop
(let-values (((i_14) (sub1 i_13)))
(if (< i_14 0)
r_2
(loop_25 i_14 (cons (vector-ref vec_2 i_14) r_2))))))))
loop_25)
n_6
'()))))))))))
(sort lst_3 less-than?_4))))
(case-lambda
((vec_3 less-than?_5 start_0 end_0)
(let-values (((n_7) (- end_0 start_0)))
(let-values (((dst-vec_0) (make-vector n_7)))
(let-values (((dst-start_0) 0))
(begin
(if (unsafe-fx= n_7 0)
(let-values () (void))
(if ((letrec-values (((loop_26)
(lambda (prev-val_0 next-index_0)
(begin
'loop
(let-values (((or-part_17) (unsafe-fx= next-index_0 end_0)))
(if or-part_17
or-part_17
(let-values (((next-val_0) (unsafe-vector-ref vec_3 next-index_0)))
(if (not (less-than?_5 next-val_0 prev-val_0))
(loop_26 next-val_0 (unsafe-fx+ next-index_0 1))
#f))))))))
loop_26)
(unsafe-vector-ref vec_3 start_0)
(unsafe-fx+ start_0 1))
(let-values () (let-values () (vector-copy! dst-vec_0 dst-start_0 vec_3 start_0 end_0)))
(if (unsafe-fx<= n_7 3)
(let-values ()
(begin
(let-values () (vector-copy! dst-vec_0 dst-start_0 vec_3 start_0 end_0))
(if (unsafe-fx= n_7 1)
(let-values () (void))
(if (unsafe-fx= n_7 2)
(let-values ()
(let-values (((tmp_0) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 0))))
(begin
(unsafe-vector-set!
dst-vec_0
(unsafe-fx+ dst-start_0 0)
(unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 1)))
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) tmp_0))))
(let-values ()
(let-values (((a_5) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 0)))
((b_3) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 1)))
((c_3) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 2))))
(if (less-than?_5 b_3 a_5)
(let-values ()
(if (less-than?_5 c_3 b_3)
(let-values ()
(begin
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) c_3)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_5)))
(if (less-than?_5 c_3 a_5)
(let-values ()
(begin
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) b_3)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) c_3)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_5)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) b_3)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) a_5))))))
(if (less-than?_5 c_3 a_5)
(let-values ()
(begin
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) c_3)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) a_5)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_3)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) c_3)
(unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_3)))))))))))
(let-values ()
(let-values (((work-vec_0) (make-vector (+ n_7 (ceiling (/ n_7 2))) #f)))
(begin
(vector-copy! work-vec_0 0 vec_3 start_0 end_0)
(generic-sort_0 work-vec_0 less-than?_5 n_7)
(vector-copy! dst-vec_0 dst-start_0 work-vec_0 0 n_7)))))))
dst-vec_0)))))
((vec_4 less-than?_6 start_1 end_1 getkey_2 cache-keys?_1)
(if (if getkey_2 (not (eq? values getkey_2)) #f)
(let-values (((n_8) (- end_1 start_1)))
(let-values (((dst-vec_1) (make-vector n_8)))
(let-values (((dst-start_1) 0))
(begin
(if (unsafe-fx= n_8 0)
(let-values () (void))
(if cache-keys?_1
(let-values ()
(let-values (((work-vec_1) (make-vector (+ n_8 (ceiling (/ n_8 2))) #t)))
(begin
((letrec-values (((loop_27)
(lambda (i_15)
(begin
'loop
(if (unsafe-fx< i_15 n_8)
(let-values ()
(begin
(let-values (((x_7)
(unsafe-vector-ref
vec_4
(unsafe-fx+ i_15 start_1))))
(unsafe-vector-set!
work-vec_1
i_15
(cons (getkey_2 x_7) x_7)))
(loop_27 (unsafe-fx+ i_15 1))))
(void))))))
loop_27)
0)
(generic-sort/key_0 work-vec_1 less-than?_6 n_8 unsafe-car)
((letrec-values (((loop_28)
(lambda (i_16)
(begin
'loop
(if (unsafe-fx< i_16 n_8)
(let-values ()
(begin
(unsafe-vector-set!
dst-vec_1
(unsafe-fx+ i_16 dst-start_1)
(unsafe-cdr (unsafe-vector-ref work-vec_1 i_16)))
(loop_28 (unsafe-fx+ i_16 1))))
(void))))))
loop_28)
0))))
(if ((letrec-values (((loop_29)
(lambda (prev-val_1 next-index_1)
(begin
'loop
(let-values (((or-part_18) (unsafe-fx= next-index_1 end_1)))
(if or-part_18
or-part_18
(let-values (((next-val_1)
(unsafe-vector-ref vec_4 next-index_1)))
(if (not
(if getkey_2
(less-than?_6
(getkey_2 next-val_1)
(getkey_2 prev-val_1))
(less-than?_6 next-val_1 prev-val_1)))
(loop_29 next-val_1 (unsafe-fx+ next-index_1 1))
#f))))))))
loop_29)
(unsafe-vector-ref vec_4 start_1)
(unsafe-fx+ start_1 1))
(let-values () (let-values () (vector-copy! dst-vec_1 dst-start_1 vec_4 start_1 end_1)))
(if (unsafe-fx<= n_8 3)
(let-values ()
(begin
(let-values () (vector-copy! dst-vec_1 dst-start_1 vec_4 start_1 end_1))
(if (unsafe-fx= n_8 1)
(let-values () (void))
(if (unsafe-fx= n_8 2)
(let-values ()
(let-values (((tmp_1) (unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 0))))
(begin
(unsafe-vector-set!
dst-vec_1
(unsafe-fx+ dst-start_1 0)
(unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 1)))
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) tmp_1))))
(let-values ()
(let-values (((a_6) (unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 0)))
((b_4) (unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 1)))
((c_4) (unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 2))))
(if (if getkey_2
(less-than?_6 (getkey_2 b_4) (getkey_2 a_6))
(less-than?_6 b_4 a_6))
(let-values ()
(if (if getkey_2
(less-than?_6 (getkey_2 c_4) (getkey_2 b_4))
(less-than?_6 c_4 b_4))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) c_4)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_6)))
(if (if getkey_2
(less-than?_6 (getkey_2 c_4) (getkey_2 a_6))
(less-than?_6 c_4 a_6))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) b_4)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) c_4)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_6)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) b_4)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) a_6))))))
(if (if getkey_2
(less-than?_6 (getkey_2 c_4) (getkey_2 a_6))
(less-than?_6 c_4 a_6))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) c_4)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) a_6)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_4)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) c_4)
(unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_4)))))))))))
(let-values ()
(let-values (((work-vec_2) (make-vector (+ n_8 (ceiling (/ n_8 2))) #f)))
(begin
(vector-copy! work-vec_2 0 vec_4 start_1 end_1)
(generic-sort/key_0 work-vec_2 less-than?_6 n_8 getkey_2)
(vector-copy! dst-vec_1 dst-start_1 work-vec_2 0 n_8))))))))
dst-vec_1))))
(vector-sort vec_4 less-than?_6 start_1 end_1))))
(case-lambda
((vec_5 less-than?_7 start_2 end_2)
(let-values (((n_9) (- end_2 start_2)))
(let-values (((dst-vec_2) vec_5))
(let-values (((dst-start_2) start_2))
(begin
(if (unsafe-fx= n_9 0)
(let-values () (void))
(if ((letrec-values (((loop_30)
(lambda (prev-val_2 next-index_2)
(begin
'loop
(let-values (((or-part_19) (unsafe-fx= next-index_2 end_2)))
(if or-part_19
or-part_19
(let-values (((next-val_2) (unsafe-vector-ref vec_5 next-index_2)))
(if (not (less-than?_7 next-val_2 prev-val_2))
(loop_30 next-val_2 (unsafe-fx+ next-index_2 1))
#f))))))))
loop_30)
(unsafe-vector-ref vec_5 start_2)
(unsafe-fx+ start_2 1))
(let-values () (void))
(if (unsafe-fx<= n_9 3)
(let-values ()
(begin
(void)
(if (unsafe-fx= n_9 1)
(let-values () (void))
(if (unsafe-fx= n_9 2)
(let-values ()
(let-values (((tmp_2) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 0))))
(begin
(unsafe-vector-set!
dst-vec_2
(unsafe-fx+ dst-start_2 0)
(unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 1)))
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) tmp_2))))
(let-values ()
(let-values (((a_7) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 0)))
((b_5) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 1)))
((c_5) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 2))))
(if (less-than?_7 b_5 a_7)
(let-values ()
(if (less-than?_7 c_5 b_5)
(let-values ()
(begin
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) c_5)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_7)))
(if (less-than?_7 c_5 a_7)
(let-values ()
(begin
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) b_5)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) c_5)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_7)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) b_5)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) a_7))))))
(if (less-than?_7 c_5 a_7)
(let-values ()
(begin
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) c_5)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) a_7)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_5)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) c_5)
(unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_5)))))))))))
(let-values ()
(let-values (((work-vec_3) (make-vector (+ n_9 (ceiling (/ n_9 2))) #f)))
(begin
(vector-copy! work-vec_3 0 vec_5 start_2 end_2)
(generic-sort_0 work-vec_3 less-than?_7 n_9)
(vector-copy! dst-vec_2 dst-start_2 work-vec_3 0 n_9)))))))
(void))))))
((vec_6 less-than?_8 start_3 end_3 getkey_3 cache-keys?_2)
(if (if getkey_3 (not (eq? values getkey_3)) #f)
(let-values (((n_10) (- end_3 start_3)))
(let-values (((dst-vec_3) vec_6))
(let-values (((dst-start_3) start_3))
(begin
(if (unsafe-fx= n_10 0)
(let-values () (void))
(if cache-keys?_2
(let-values ()
(let-values (((work-vec_4) (make-vector (+ n_10 (ceiling (/ n_10 2))) #t)))
(begin
((letrec-values (((loop_31)
(lambda (i_17)
(begin
'loop
(if (unsafe-fx< i_17 n_10)
(let-values ()
(begin
(let-values (((x_8)
(unsafe-vector-ref
vec_6
(unsafe-fx+ i_17 start_3))))
(unsafe-vector-set!
work-vec_4
i_17
(cons (getkey_3 x_8) x_8)))
(loop_31 (unsafe-fx+ i_17 1))))
(void))))))
loop_31)
0)
(generic-sort/key_0 work-vec_4 less-than?_8 n_10 unsafe-car)
((letrec-values (((loop_32)
(lambda (i_18)
(begin
'loop
(if (unsafe-fx< i_18 n_10)
(let-values ()
(begin
(unsafe-vector-set!
dst-vec_3
(unsafe-fx+ i_18 dst-start_3)
(unsafe-cdr (unsafe-vector-ref work-vec_4 i_18)))
(loop_32 (unsafe-fx+ i_18 1))))
(void))))))
loop_32)
0))))
(if ((letrec-values (((loop_33)
(lambda (prev-val_3 next-index_3)
(begin
'loop
(let-values (((or-part_20) (unsafe-fx= next-index_3 end_3)))
(if or-part_20
or-part_20
(let-values (((next-val_3)
(unsafe-vector-ref vec_6 next-index_3)))
(if (not
(if getkey_3
(less-than?_8
(getkey_3 next-val_3)
(getkey_3 prev-val_3))
(less-than?_8 next-val_3 prev-val_3)))
(loop_33 next-val_3 (unsafe-fx+ next-index_3 1))
#f))))))))
loop_33)
(unsafe-vector-ref vec_6 start_3)
(unsafe-fx+ start_3 1))
(let-values () (void))
(if (unsafe-fx<= n_10 3)
(let-values ()
(begin
(void)
(if (unsafe-fx= n_10 1)
(let-values () (void))
(if (unsafe-fx= n_10 2)
(let-values ()
(let-values (((tmp_3) (unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 0))))
(begin
(unsafe-vector-set!
dst-vec_3
(unsafe-fx+ dst-start_3 0)
(unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 1)))
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) tmp_3))))
(let-values ()
(let-values (((a_8) (unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 0)))
((b_6) (unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 1)))
((c_6) (unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 2))))
(if (if getkey_3
(less-than?_8 (getkey_3 b_6) (getkey_3 a_8))
(less-than?_8 b_6 a_8))
(let-values ()
(if (if getkey_3
(less-than?_8 (getkey_3 c_6) (getkey_3 b_6))
(less-than?_8 c_6 b_6))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) c_6)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_8)))
(if (if getkey_3
(less-than?_8 (getkey_3 c_6) (getkey_3 a_8))
(less-than?_8 c_6 a_8))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) b_6)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) c_6)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_8)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) b_6)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) a_8))))))
(if (if getkey_3
(less-than?_8 (getkey_3 c_6) (getkey_3 a_8))
(less-than?_8 c_6 a_8))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) c_6)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) a_8)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_6)))
(let-values ()
(begin
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) c_6)
(unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_6)))))))))))
(let-values ()
(let-values (((work-vec_5) (make-vector (+ n_10 (ceiling (/ n_10 2))) #f)))
(begin
(vector-copy! work-vec_5 0 vec_6 start_3 end_3)
(generic-sort/key_0 work-vec_5 less-than?_8 n_10 getkey_3)
(vector-copy! dst-vec_3 dst-start_3 work-vec_5 0 n_10))))))))
(void)))))
(vector-sort! vec_6 less-than?_8 start_3 end_3)))))))))
(define-values
(prop:stream stream-via-prop? stream-ref)
(make-struct-type-property
'stream
(lambda (v_11 si_0)
(begin
(if (if (vector? v_11)
(if (= 3 (vector-length v_11))
(if (procedure? (vector-ref v_11 0))
(if (procedure-arity-includes? (vector-ref v_11 0) 1)
(if (procedure? (vector-ref v_11 1))
(if (procedure-arity-includes? (vector-ref v_11 1) 1)
(if (procedure? (vector-ref v_11 2)) (procedure-arity-includes? (vector-ref v_11 2) 1) #f)
#f)
#f)
#f)
#f)
#f)
#f)
(void)
(let-values ()
(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_11)))
(vector->immutable-vector v_11)))
'()
#t))
(define-values
(prop:gen-sequence sequence-via-prop? sequence-ref)
(make-struct-type-property
'sequence
(lambda (v_12 si_1)
(begin
(if (if (procedure? v_12) (procedure-arity-includes? v_12 1) #f)
(void)
(let-values () (raise-argument-error 'guard-for-prop:sequence "(procedure-arity-includes/c 1)" v_12)))
v_12))))
(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_13) (let-values (((cont?_0) (range-ref v_13 2))) (if cont?_0 (not (cont?_0 (range-ref v_13 0))) #f)))
(lambda (v_14) (range-ref v_14 0))
(lambda (v_15) (make-range ((range-ref v_15 1) (range-ref v_15 0)) (range-ref v_15 1) (range-ref v_15 2)))))
(cons
prop:gen-sequence
(lambda (v_16) (values values #f (range-ref v_16 1) (range-ref v_16 0) (range-ref v_16 2) #f #f))))))
(define-values
(check-range)
(lambda (a_9 b_7 step_0)
(begin
(begin
(if (real? a_9) (void) (let-values () (raise-argument-error 'in-range "real?" a_9)))
(if (real? b_7) (void) (let-values () (raise-argument-error 'in-range "real?" b_7)))
(if (real? step_0) (void) (let-values () (raise-argument-error 'in-range "real?" step_0)))))))
(define-values
(check-naturals)
(lambda (n_11)
(begin
(if (if (integer? n_11) (if (exact? n_11) (>= n_11 0) #f) #f)
(void)
(let-values () (raise-argument-error 'in-naturals "exact-nonnegative-integer?" n_11))))))
(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_17) (not (pair? (list-stream-ref v_17 0))))
(lambda (v_18) (car (list-stream-ref v_18 0)))
(lambda (v_19) (make-list-stream (cdr (list-stream-ref v_19 0))))))
(cons prop:gen-sequence (lambda (v_20) (values car cdr values (list-stream-ref v_20 0) pair? #f #f))))))
(define-values
(check-list)
(lambda (l_4) (begin (if (list? l_4) (void) (let-values () (raise-argument-error 'in-list "list?" l_4))))))
(define-values
(check-in-hash)
(lambda (ht_6)
(begin
(if ((lambda (ht_7) (hash? ht_7)) ht_6) (void) (let-values () (raise-argument-error 'in-hash "hash?" ht_6))))))
(define-values
(check-in-immutable-hash)
(lambda (ht_8)
(begin
(if ((lambda (ht_9) (if (hash? ht_9) (immutable? ht_9) #f)) ht_8)
(void)
(let-values () (raise-argument-error 'in-immutable-hash "(and/c hash? immutable?)" ht_8))))))
(define-values
(check-in-hash-keys)
(lambda (ht_10)
(begin
(if ((lambda (ht_11) (hash? ht_11)) ht_10)
(void)
(let-values () (raise-argument-error 'in-hash-keys "hash?" ht_10))))))
(define-values
(check-in-immutable-hash-keys)
(lambda (ht_12)
(begin
(if ((lambda (ht_13) (if (hash? ht_13) (immutable? ht_13) #f)) ht_12)
(void)
(let-values () (raise-argument-error 'in-immutable-hash-keys "(and/c hash? immutable?)" ht_12))))))
(define-values
(check-in-hash-values)
(lambda (ht_14)
(begin
(if ((lambda (ht_15) (hash? ht_15)) ht_14)
(void)
(let-values () (raise-argument-error 'in-hash-values "hash?" ht_14))))))
(define-values
(check-ranges)
(lambda (who_3 type-name_0 vec_7 start_4 stop_0 step_1 len_0)
(begin
(begin
(if (if (exact-nonnegative-integer? start_4)
(let-values (((or-part_21) (< start_4 len_0))) (if or-part_21 or-part_21 (= len_0 start_4 stop_0)))
#f)
(void)
(let-values () (raise-range-error who_3 type-name_0 "starting " start_4 vec_7 0 (sub1 len_0))))
(if (if (exact-integer? stop_0) (if (<= -1 stop_0) (<= stop_0 len_0) #f) #f)
(void)
(let-values () (raise-range-error who_3 type-name_0 "stopping " stop_0 vec_7 -1 len_0)))
(if (if (exact-integer? step_1) (not (zero? step_1)) #f)
(void)
(let-values () (raise-argument-error who_3 "(and/c exact-integer? (not/c zero?))" step_1)))
(if (if (< start_4 stop_0) (< step_1 0) #f)
(let-values ()
(raise-arguments-error
who_3
"starting index less than stopping index, but given a negative step"
"starting index"
start_4
"stopping index"
stop_0
"step"
step_1))
(void))
(if (if (< stop_0 start_4) (> step_1 0) #f)
(let-values ()
(raise-arguments-error
who_3
"starting index more than stopping index, but given a positive step"
"starting index"
start_4
"stopping index"
stop_0
"step"
step_1))
(void))))))
(define-values
(normalise-inputs)
(lambda (who_4 type-name_1 vector?_0 unsafe-vector-length_0 vec_8 start_5 stop_1 step_2)
(begin
(begin
(if (vector?_0 vec_8) (void) (let-values () (raise-argument-error who_4 type-name_1 vec_8)))
(let-values (((len_1) (unsafe-vector-length_0 vec_8)))
(let-values (((stop*_0) (if stop_1 stop_1 len_1)))
(begin
(check-ranges who_4 type-name_1 vec_8 start_5 stop*_0 step_2 len_1)
(values vec_8 start_5 stop*_0 step_2))))))))
(define-values
(unsafe-normalise-inputs)
(lambda (unsafe-vector-length_1 vec_9 start_6 stop_2 step_3)
(begin
(values
vec_9
start_6
(let-values (((or-part_22) stop_2)) (if or-part_22 or-part_22 (unsafe-vector-length_1 vec_9)))
step_3))))
(define-values
(check-vector)
(lambda (v_21) (begin (if (vector? v_21) (void) (let-values () (raise-argument-error 'in-vector "vector" v_21))))))
(define-values
(check-string)
(lambda (v_22) (begin (if (string? v_22) (void) (let-values () (raise-argument-error 'in-string "string" v_22))))))
(define-values
(check-bytes)
(lambda (v_23) (begin (if (bytes? v_23) (void) (let-values () (raise-argument-error 'in-bytes "bytes" v_23))))))
(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_24) ((do-stream-ref v_24 0)))
(lambda (v_25) ((do-stream-ref v_25 1)))
(lambda (v_26) ((do-stream-ref v_26 2))))))))
(define-values (empty-stream) (make-do-stream (lambda () #t) void void))
(define-values
(grow-vector)
(lambda (vec_10)
(begin
(let-values (((n_12) (vector-length vec_10)))
(let-values (((new-vec_0) (make-vector (* 2 n_12))))
(begin (vector-copy! new-vec_0 0 vec_10 0 n_12) new-vec_0))))))
(define-values
(shrink-vector)
(lambda (vec_11 i_19)
(begin (let-values (((new-vec_1) (make-vector i_19))) (begin (vector-copy! new-vec_1 0 vec_11 0 i_19) new-vec_1)))))
(define-values
(map2)
(let-values (((map_0)
(case-lambda
((f_0 l_5)
(begin
'map
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_0) (if (procedure-arity-includes? f_0 1) (list? l_5) #f) #f))
((letrec-values (((loop_34)
(lambda (l_6)
(begin
'loop
(if (null? l_6)
(let-values () null)
(let-values ()
(let-values (((r_3) (cdr l_6)))
(cons (f_0 (car l_6)) (loop_34 r_3)))))))))
loop_34)
l_5)
(gen-map f_0 (list l_5)))))
((f_1 l1_0 l2_0)
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_1)
(if (procedure-arity-includes? f_1 2)
(if (list? l1_0) (if (list? l2_0) (= (length l1_0) (length l2_0)) #f) #f)
#f)
#f))
((letrec-values (((loop_35)
(lambda (l1_1 l2_1)
(begin
'loop
(if (null? l1_1)
(let-values () null)
(let-values ()
(let-values (((r1_0) (cdr l1_1)) ((r2_0) (cdr l2_1)))
(cons (f_1 (car l1_1) (car l2_1)) (loop_35 r1_0 r2_0)))))))))
loop_35)
l1_0
l2_0)
(gen-map f_1 (list l1_0 l2_0))))
((f_2 l_7 . args_0) (gen-map f_2 (cons l_7 args_0))))))
map_0))
(define-values
(for-each2)
(let-values (((for-each_0)
(case-lambda
((f_3 l_8)
(begin
'for-each
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_3) (if (procedure-arity-includes? f_3 1) (list? l_8) #f) #f))
((letrec-values (((loop_36)
(lambda (l_9)
(begin
'loop
(if (null? l_9)
(let-values () (void))
(let-values ()
(let-values (((r_4) (cdr l_9)))
(begin (f_3 (car l_9)) (loop_36 r_4)))))))))
loop_36)
l_8)
(gen-for-each f_3 (list l_8)))))
((f_4 l1_2 l2_2)
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_4)
(if (procedure-arity-includes? f_4 2)
(if (list? l1_2) (if (list? l2_2) (= (length l1_2) (length l2_2)) #f) #f)
#f)
#f))
((letrec-values (((loop_37)
(lambda (l1_3 l2_3)
(begin
'loop
(if (null? l1_3)
(let-values () (void))
(let-values ()
(let-values (((r1_1) (cdr l1_3)) ((r2_1) (cdr l2_3)))
(begin (f_4 (car l1_3) (car l2_3)) (loop_37 r1_1 r2_1)))))))))
loop_37)
l1_2
l2_2)
(gen-for-each f_4 (list l1_2 l2_2))))
((f_5 l_10 . args_1) (gen-for-each f_5 (cons l_10 args_1))))))
for-each_0))
(define-values
(andmap2)
(let-values (((andmap_0)
(case-lambda
((f_6 l_11)
(begin
'andmap
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_6) (if (procedure-arity-includes? f_6 1) (list? l_11) #f) #f))
(if (null? l_11)
#t
((letrec-values (((loop_38)
(lambda (l_12)
(begin
'loop
(if (null? (cdr l_12))
(let-values () (f_6 (car l_12)))
(let-values ()
(let-values (((r_5) (cdr l_12)))
(if (f_6 (car l_12)) (loop_38 r_5) #f))))))))
loop_38)
l_11))
(gen-andmap f_6 (list l_11)))))
((f_7 l1_4 l2_4)
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_7)
(if (procedure-arity-includes? f_7 2)
(if (list? l1_4) (if (list? l2_4) (= (length l1_4) (length l2_4)) #f) #f)
#f)
#f))
(if (null? l1_4)
#t
((letrec-values (((loop_39)
(lambda (l1_5 l2_5)
(begin
'loop
(if (null? (cdr l1_5))
(let-values () (f_7 (car l1_5) (car l2_5)))
(let-values ()
(let-values (((r1_2) (cdr l1_5)) ((r2_2) (cdr l2_5)))
(if (f_7 (car l1_5) (car l2_5)) (loop_39 r1_2 r2_2) #f))))))))
loop_39)
l1_4
l2_4))
(gen-andmap f_7 (list l1_4 l2_4))))
((f_8 l_13 . args_2) (gen-andmap f_8 (cons l_13 args_2))))))
andmap_0))
(define-values
(ormap2)
(let-values (((ormap_0)
(case-lambda
((f_9 l_14)
(begin
'ormap
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_9) (if (procedure-arity-includes? f_9 1) (list? l_14) #f) #f))
(if (null? l_14)
#f
((letrec-values (((loop_40)
(lambda (l_15)
(begin
'loop
(if (null? (cdr l_15))
(let-values () (f_9 (car l_15)))
(let-values ()
(let-values (((r_6) (cdr l_15)))
(let-values (((or-part_23) (f_9 (car l_15))))
(if or-part_23 or-part_23 (loop_40 r_6))))))))))
loop_40)
l_14))
(gen-ormap f_9 (list l_14)))))
((f_10 l1_6 l2_6)
(if (if (variable-reference-from-unsafe? (#%variable-reference))
#t
(if (procedure? f_10)
(if (procedure-arity-includes? f_10 2)
(if (list? l1_6) (if (list? l2_6) (= (length l1_6) (length l2_6)) #f) #f)
#f)
#f))
(if (null? l1_6)
#f
((letrec-values (((loop_41)
(lambda (l1_7 l2_7)
(begin
'loop
(if (null? (cdr l1_7))
(let-values () (f_10 (car l1_7) (car l2_7)))
(let-values ()
(let-values (((r1_3) (cdr l1_7)) ((r2_3) (cdr l2_7)))
(let-values (((or-part_24) (f_10 (car l1_7) (car l2_7))))
(if or-part_24 or-part_24 (loop_41 r1_3 r2_3))))))))))
loop_41)
l1_6
l2_6))
(gen-ormap f_10 (list l1_6 l2_6))))
((f_11 l_16 . args_3) (gen-ormap f_11 (cons l_16 args_3))))))
ormap_0))
(define-values
(check-args)
(lambda (who_5 f_12 ls_4)
(begin
(begin
(if (procedure? f_12) (void) (let-values () (raise-argument-error who_5 "procedure?" f_12)))
((letrec-values (((loop_42)
(lambda (prev-len_0 ls_5 i_20)
(begin
'loop
(if (null? ls_5)
(void)
(let-values ()
(let-values (((l_17) (car ls_5)))
(begin
(if (list? l_17) (void) (let-values () (raise-argument-error who_5 "list?" l_17)))
(let-values (((len_2) (length l_17)))
(begin
(if (if prev-len_0 (not (= len_2 prev-len_0)) #f)
(let-values ()
(raise-arguments-error
who_5
"all lists must have same size"
"first list length"
prev-len_0
"other list length"
len_2
"procedure"
f_12))
(void))
(loop_42 len_2 (cdr ls_5) (add1 i_20))))))))))))
loop_42)
#f
ls_4
1)
(if (procedure-arity-includes? f_12 (length ls_4))
(void)
(let-values ()
(let-values (((required-keywords_0 optional-keywords_0) (procedure-keywords f_12)))
(apply
raise-arguments-error
who_5
(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"))
"given procedure"
(unquoted-printing-string
(let-values (((or-part_25)
(let-values (((n_13) (object-name f_12))) (if (symbol? n_13) (symbol->string n_13) #f))))
(if or-part_25 or-part_25 "#<procedure>")))
(append
(let-values (((a_10) (procedure-arity f_12)))
(if (pair? required-keywords_0)
(let-values () null)
(if (integer? a_10)
(let-values () (list "expected" a_10))
(if (arity-at-least? a_10)
(let-values ()
(list
"expected"
(unquoted-printing-string
(string-append "at least " (number->string (arity-at-least-value a_10))))))
(let-values () null)))))
(if (pair? required-keywords_0) (let-values () null) (let-values () (list "given" (length ls_4))))
(if (pair? required-keywords_0)
(let-values ()
(list
"required keywords"
(unquoted-printing-string
(apply
string-append
(cdr
((letrec-values (((loop_43)
(lambda (kws_0)
(begin
'loop
(if (null? kws_0)
(let-values () null)
(let-values ()
(list*
" "
(string-append "#:" (keyword->string (car kws_0)))
(loop_43 (cdr kws_0)))))))))
loop_43)
required-keywords_0))))))
(let-values () null))
(let-values (((w_0) (quotient (error-print-width) (length ls_4))))
(if (> w_0 10)
(list
"argument lists..."
(unquoted-printing-string
(apply
string-append
((letrec-values (((loop_44)
(lambda (ls_6)
(begin
'loop
(if (null? ls_6)
(let-values () null)
(let-values ()
(cons
(string-append "\n " ((error-value->string-handler) (car ls_6) w_0))
(loop_44 (cdr ls_6)))))))))
loop_44)
ls_4))))
null)))))))))))
(define-values
(gen-map)
(lambda (f_13 ls_7)
(begin
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'map f_13 ls_7))
((letrec-values (((loop_45)
(lambda (ls_8)
(begin
'loop
(if (null? (car ls_8))
(let-values () null)
(let-values ()
(let-values (((next-ls_0) (map2 cdr ls_8)))
(cons (apply f_13 (map2 car ls_8)) (loop_45 next-ls_0)))))))))
loop_45)
ls_7)))))
(define-values
(gen-for-each)
(lambda (f_14 ls_9)
(begin
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'for-each f_14 ls_9))
((letrec-values (((loop_46)
(lambda (ls_10)
(begin
'loop
(if (null? (car ls_10))
(void)
(let-values ()
(let-values (((next-ls_1) (map2 cdr ls_10)))
(begin (apply f_14 (map2 car ls_10)) (loop_46 next-ls_1)))))))))
loop_46)
ls_9)))))
(define-values
(gen-andmap)
(lambda (f_15 ls_11)
(begin
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'andmap f_15 ls_11))
((letrec-values (((loop_47)
(lambda (ls_12)
(begin
'loop
(if (null? (car ls_12))
(let-values () #t)
(if (null? (cdar ls_12))
(let-values () (apply f_15 (map2 car ls_12)))
(let-values ()
(let-values (((next-ls_2) (map2 cdr ls_12)))
(if (apply f_15 (map2 car ls_12)) (loop_47 next-ls_2) #f)))))))))
loop_47)
ls_11)))))
(define-values
(gen-ormap)
(lambda (f_16 ls_13)
(begin
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'ormap f_16 ls_13))
((letrec-values (((loop_48)
(lambda (ls_14)
(begin
'loop
(if (null? (car ls_14))
(let-values () #f)
(if (null? (cdar ls_14))
(let-values () (apply f_16 (map2 car ls_14)))
(let-values ()
(let-values (((next-ls_3) (map2 cdr ls_14)))
(let-values (((or-part_26) (apply f_16 (map2 car ls_14))))
(if or-part_26 or-part_26 (loop_48 next-ls_3)))))))))))
loop_48)
ls_13)))))
(define-values
(hash-keys)
(lambda (h_0)
(begin
((letrec-values (((loop_9)
(lambda (pos_0)
(begin
'loop
(if pos_0
(cons (hash-iterate-key h_0 pos_0) (loop_9 (hash-iterate-next h_0 pos_0)))
null)))))
loop_9)
(hash-iterate-first h_0)))))
(define-values
(sort.1)
(lambda (cache-keys?2_0 key1_0 lst5_0 less?6_0)
(begin
'sort
(let-values (((lst_6) lst5_0))
(let-values (((less?_0) less?6_0))
(let-values (((getkey_4) key1_0))
(let-values (((cache-keys?_3) cache-keys?2_0))
(let-values ()
(begin
(if (list? lst_6) (void) (let-values () (raise-argument-error 'sort "list?" lst_6)))
(if (if (procedure? less?_0) (procedure-arity-includes? less?_0 2) #f)
(void)
(let-values () (raise-argument-error 'sort "(any/c any/c . -> . any/c)" less?_0)))
(if (if getkey_4 (not (if (procedure? getkey_4) (procedure-arity-includes? getkey_4 1) #f)) #f)
(let-values () (raise-argument-error 'sort "(any/c . -> . any/c)" getkey_4))
(void))
(if getkey_4 (sort lst_6 less?_0 getkey_4 cache-keys?_3) (sort lst_6 less?_0)))))))))))
(define-values
(filter)
(lambda (f_17 list_0)
(begin
(begin
(if (if (procedure? f_17) (procedure-arity-includes? f_17 1) #f)
(void)
(let-values () (raise-argument-error 'filter "(any/c . -> . any/c)" f_17)))
(if (list? list_0) (void) (let-values () (raise-argument-error 'filter "list?" list_0)))
((letrec-values (((loop_49)
(lambda (l_18 result_0)
(begin
'loop
(if (null? l_18)
(reverse$1 result_0)
(loop_49 (cdr l_18) (if (f_17 (car l_18)) (cons (car l_18) result_0) result_0)))))))
loop_49)
list_0
null)))))
(define-values (binary-or-text-desc) "(or/c 'binary 'text)")
(define-values
(open-input-file.1)
(lambda (for-module?2_0 mode1_0 path5_0)
(begin
'open-input-file
(let-values (((path_0) path5_0))
(let-values (((mode_0) mode1_0))
(let-values (((for-module?_0) for-module?2_0))
(let-values ()
(begin
(if (path-string? path_0)
(void)
(let-values () (raise-argument-error 'open-input-file "path-string?" path_0)))
(if (memq mode_0 '(binary text))
(void)
(let-values () (raise-argument-error 'open-input-file binary-or-text-desc mode_0)))
(open-input-file path_0 mode_0 (if for-module?_0 'module 'none))))))))))
(define-values
(with-input-from-file.1)
(lambda (mode31_0 path33_0 proc34_0)
(begin
'with-input-from-file
(let-values (((path_1) path33_0))
(let-values (((proc_0) proc34_0))
(let-values (((mode_1) mode31_0))
(let-values ()
(begin
(if (path-string? path_1)
(void)
(let-values () (raise-argument-error 'with-input-from-file "path-string?" path_1)))
(if (if (procedure? proc_0) (procedure-arity-includes? proc_0 0) #f)
(void)
(let-values () (raise-argument-error 'with-input-from-file "(-> any)" proc_0)))
(if (memq mode_1 '(binary text))
(void)
(let-values () (raise-argument-error 'with-input-from-file binary-or-text-desc mode_1)))
(with-input-from-file path_1 proc_0 mode_1)))))))))
(define-values
(call-with-input-file*.1)
(lambda (mode43_0 path45_0 proc46_0)
(begin
'call-with-input-file*
(let-values (((path_2) path45_0))
(let-values (((proc_1) proc46_0))
(let-values (((mode_2) mode43_0))
(let-values ()
(begin
(if (path-string? path_2)
(void)
(let-values () (raise-argument-error 'call-with-input-file* "path-string?" path_2)))
(if (if (procedure? proc_1) (procedure-arity-includes? proc_1 1) #f)
(void)
(let-values () (raise-argument-error 'call-with-input-file* "(input-port? . -> . any)" proc_1)))
(if (memq mode_2 '(binary text))
(void)
(let-values () (raise-argument-error 'call-with-input-file* binary-or-text-desc mode_2)))
(let-values (((p_3) (open-input-file path_2 mode_2)))
(dynamic-wind void (lambda () (proc_1 p_3)) (lambda () (close-input-port p_3))))))))))))
(define-values (the-empty-hash) '#hash())
(define-values (the-empty-hasheq) '#hasheq())
(define-values (the-empty-hasheqv) '#hasheqv())
(define-values
(set)
(case-lambda
(() (begin the-empty-hash))
(l_19
(let-values (((lst_7) l_19))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_7)))
((letrec-values (((for-loop_0)
(lambda (s_14 lst_8)
(begin
'for-loop
(if (pair? lst_8)
(let-values (((e_2) (unsafe-car lst_8)) ((rest_0) (unsafe-cdr lst_8)))
(let-values (((s_15)
(let-values (((s_16) s_14))
(let-values (((s_17) (let-values () (hash-set s_16 e_2 #t))))
(values s_17)))))
(if (not #f) (for-loop_0 s_15 rest_0) s_15)))
s_14)))))
for-loop_0)
the-empty-hash
lst_7))))))
(define-values
(seteq)
(case-lambda
(() (begin the-empty-hasheq))
(l_17
(let-values (((lst_9) l_17))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_9)))
((letrec-values (((for-loop_1)
(lambda (s_18 lst_10)
(begin
'for-loop
(if (pair? lst_10)
(let-values (((e_3) (unsafe-car lst_10)) ((rest_1) (unsafe-cdr lst_10)))
(let-values (((s_19)
(let-values (((s_20) s_18))
(let-values (((s_21) (let-values () (hash-set s_20 e_3 #t))))
(values s_21)))))
(if (not #f) (for-loop_1 s_19 rest_1) s_19)))
s_18)))))
for-loop_1)
the-empty-hasheq
lst_9))))))
(define-values (seteqv) (lambda () (begin the-empty-hasheqv)))
(define-values (set?) (lambda (s_22) (begin (hash? s_22))))
(define-values (set-empty?) (lambda (s_23) (begin (zero? (hash-count s_23)))))
(define-values (set-member?) (lambda (s_24 e_4) (begin (hash-ref s_24 e_4 #f))))
(define-values (set-count) (lambda (s_25) (begin (hash-count s_25))))
(define-values (set-add) (lambda (s_26 e_5) (begin (hash-set s_26 e_5 #t))))
(define-values (set-remove) (lambda (s_27 e_6) (begin (hash-remove s_27 e_6))))
(define-values (set-first) (lambda (s_28) (begin (hash-iterate-key s_28 (hash-iterate-first s_28)))))
(define-values (subset?) (lambda (s1_0 s2_0) (begin (hash-keys-subset? s1_0 s2_0))))
(define-values
(set=?)
(lambda (s1_1 s2_1)
(begin
(let-values (((or-part_27) (eq? s1_1 s2_1)))
(if or-part_27 or-part_27 (if (= (hash-count s1_1) (hash-count s2_1)) (hash-keys-subset? s1_1 s2_1) #f))))))
(define-values
(set-subtract)
(lambda (s1_2 s2_2)
(begin
(let-values (((ht_16) s2_2))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_16)))
((letrec-values (((for-loop_2)
(lambda (s1_3 i_21)
(begin
'for-loop
(if i_21
(let-values (((k_0) (unsafe-immutable-hash-iterate-key ht_16 i_21)))
(let-values (((s1_4)
(let-values (((s1_5) s1_3))
(let-values (((s1_6) (let-values () (hash-remove s1_5 k_0))))
(values s1_6)))))
(if (not #f)
(for-loop_2 s1_4 (unsafe-immutable-hash-iterate-next ht_16 i_21))
s1_4)))
s1_3)))))
for-loop_2)
s1_2
(unsafe-immutable-hash-iterate-first ht_16)))))))
(define-values
(set-union)
(lambda (s1_7 s2_3)
(begin
(if (< (set-count s1_7) (set-count s2_3))
(set-union s2_3 s1_7)
(let-values (((ht_17) s2_3))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_17)))
((letrec-values (((for-loop_3)
(lambda (s1_8 i_22)
(begin
'for-loop
(if i_22
(let-values (((k_1) (unsafe-immutable-hash-iterate-key ht_17 i_22)))
(let-values (((s1_9)
(let-values (((s1_10) s1_8))
(let-values (((s1_11) (let-values () (hash-set s1_10 k_1 #t))))
(values s1_11)))))
(if (not #f)
(for-loop_3 s1_9 (unsafe-immutable-hash-iterate-next ht_17 i_22))
s1_9)))
s1_8)))))
for-loop_3)
s1_7
(unsafe-immutable-hash-iterate-first ht_17))))))))
(define-values
(set-intersect)
(lambda (s1_12 s2_4)
(begin
(if (< (set-count s1_12) (set-count s2_4))
(set-intersect s2_4 s1_12)
(let-values (((ht_18) s2_4))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_18)))
((letrec-values (((for-loop_4)
(lambda (s_29 i_23)
(begin
'for-loop
(if i_23
(let-values (((k_2) (unsafe-immutable-hash-iterate-key ht_18 i_23)))
(let-values (((s_30)
(let-values (((s_31) s_29))
(let-values (((s_32)
(let-values ()
(if (hash-ref s1_12 k_2 #f)
s_31
(hash-remove s_31 k_2)))))
(values s_32)))))
(if (not #f)
(for-loop_4 s_30 (unsafe-immutable-hash-iterate-next ht_18 i_23))
s_30)))
s_29)))))
for-loop_4)
s2_4
(unsafe-immutable-hash-iterate-first ht_18))))))))
(define-values
(set-partition)
(lambda (s_33 pred_0 empty-y-set_0 empty-n-set_0)
(begin
(let-values (((ht_19) s_33))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_19)))
((letrec-values (((for-loop_5)
(lambda (y_6 n_14 i_24)
(begin
'for-loop
(if i_24
(let-values (((v_27) (unsafe-immutable-hash-iterate-key ht_19 i_24)))
(let-values (((y_7 n_15)
(let-values (((y_8) y_6) ((n_16) n_14))
(let-values (((y_9 n_17)
(let-values ()
(if (pred_0 v_27)
(values (set-add y_8 v_27) n_16)
(values y_8 (set-add n_16 v_27))))))
(values y_9 n_17)))))
(if (not #f)
(for-loop_5 y_7 n_15 (unsafe-immutable-hash-iterate-next ht_19 i_24))
(values y_7 n_15))))
(values y_6 n_14))))))
for-loop_5)
empty-y-set_0
empty-n-set_0
(unsafe-immutable-hash-iterate-first ht_19)))))))
(define-values
(set->list)
(lambda (s_34)
(begin
(reverse$1
(let-values (((ht_20) s_34))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_20)))
((letrec-values (((for-loop_6)
(lambda (fold-var_0 i_25)
(begin
'for-loop
(if i_25
(let-values (((k_3) (unsafe-immutable-hash-iterate-key ht_20 i_25)))
(let-values (((fold-var_1)
(let-values (((fold-var_2) fold-var_0))
(let-values (((fold-var_3)
(let-values ()
(cons (let-values () k_3) fold-var_2))))
(values fold-var_3)))))
(if (not #f)
(for-loop_6 fold-var_1 (unsafe-immutable-hash-iterate-next ht_20 i_25))
fold-var_1)))
fold-var_0)))))
for-loop_6)
null
(unsafe-immutable-hash-iterate-first ht_20))))))))
(define-values
(list->set)
(lambda (l_20)
(begin
(let-values (((lst_11) l_20))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_11)))
((letrec-values (((for-loop_7)
(lambda (table_0 lst_12)
(begin
'for-loop
(if (pair? lst_12)
(let-values (((k_4) (unsafe-car lst_12)) ((rest_2) (unsafe-cdr lst_12)))
(let-values (((table_1)
(let-values (((table_2) table_0))
(let-values (((table_3)
(let-values ()
(let-values (((key_7 val_0)
(let-values ()
(values (let-values () k_4) #t))))
(hash-set table_2 key_7 val_0)))))
(values table_3)))))
(if (not #f) (for-loop_7 table_1 rest_2) table_1)))
table_0)))))
for-loop_7)
'#hash()
lst_11))))))
(define-values
(list->seteq)
(lambda (l_21)
(begin
(let-values (((lst_13) l_21))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_13)))
((letrec-values (((for-loop_8)
(lambda (table_4 lst_14)
(begin
'for-loop
(if (pair? lst_14)
(let-values (((k_5) (unsafe-car lst_14)) ((rest_3) (unsafe-cdr lst_14)))
(let-values (((table_5)
(let-values (((table_6) table_4))
(let-values (((table_7)
(let-values ()
(let-values (((key_8 val_1)
(let-values ()
(values (let-values () k_5) #t))))
(hash-set table_6 key_8 val_1)))))
(values table_7)))))
(if (not #f) (for-loop_8 table_5 rest_3) table_5)))
table_4)))))
for-loop_8)
'#hasheq()
lst_13))))))
(define-values (start-atomic) (lambda () (begin (unsafe-start-atomic))))
(define-values (end-atomic) (lambda () (begin (unsafe-end-atomic))))
(define-values (start-breakable-atomic) (lambda () (begin (unsafe-start-breakable-atomic))))
(define-values (end-breakable-atomic) (lambda () (begin (unsafe-end-breakable-atomic))))
(define-values (cell.1$10) (unsafe-make-place-local #f))
(define-values
(entered-err-string-handler)
(lambda (s_35 n_18) (begin (call-as-nonatomic (lambda () ((error-value->string-handler) s_35 n_18))))))
(define-values (cell.2$5) (unsafe-make-place-local #f))
(define-values (cell.3$2) (unsafe-make-place-local #f))
(define-values (cell.4$2) (unsafe-make-place-local 0))
(define-values (exited-key) (gensym 'as-exit))
(define-values (lock-tag) (make-continuation-prompt-tag 'lock))
(define-values
(call-as-atomic)
(lambda (f_18)
(begin
(begin
(if (if (procedure? f_18) (procedure-arity-includes? f_18 0) #f)
(void)
(let-values () (raise-type-error 'call-as-atomic "procedure (arity 0)" f_18)))
(if (eq? (unsafe-place-local-ref cell.1$10) (current-thread))
(let-values ()
(dynamic-wind
(lambda ()
(begin
(start-breakable-atomic)
(unsafe-place-local-set! cell.4$2 (add1 (unsafe-place-local-ref cell.4$2)))))
f_18
(lambda ()
(begin
(unsafe-place-local-set! cell.4$2 (sub1 (unsafe-place-local-ref cell.4$2)))
(end-breakable-atomic)))))
(let-values ()
(with-continuation-mark
exited-key
#f
(call-with-continuation-prompt
(lambda ()
(dynamic-wind
(lambda () (begin (start-breakable-atomic) (unsafe-place-local-set! cell.1$10 (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
parameterization-key
(extend-parameterization
(continuation-mark-set-first #f parameterization-key)
error-value->string-handler
entered-err-string-handler)
(let-values ()
(with-continuation-mark
break-enabled-key
(make-thread-cell #f)
(begin
(check-for-break)
(let-values ()
(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_18))))))))
(lambda ()
(begin
(unsafe-place-local-set! cell.1$10 #f)
(unsafe-place-local-set! cell.2$5 #f)
(unsafe-place-local-set! cell.3$2 #f)
(end-breakable-atomic)))))
lock-tag
(lambda (t_0) (t_0))))))))))
(define-values
(call-as-nonatomic)
(lambda (f_19)
(begin
(begin
(if (if (procedure? f_19) (procedure-arity-includes? f_19 0) #f)
(void)
(let-values () (raise-type-error 'call-as-nonatomic "procedure (arity 0)" f_19)))
(if (eq? (unsafe-place-local-ref cell.1$10) (current-thread))
(void)
(let-values () (error 'call-as-nonatomic "not in atomic area for ~e" f_19)))
(let-values (((paramz_2) (unsafe-place-local-ref cell.2$5))
((break-paramz_0) (unsafe-place-local-ref cell.3$2))
((extra-depth_0) (unsafe-place-local-ref cell.4$2)))
(with-continuation-mark
exited-key
#t
(call-with-parameterization
paramz_2
(lambda ()
(call-with-break-parameterization
break-paramz_0
(lambda ()
(dynamic-wind
(lambda ()
(begin
(unsafe-place-local-set! cell.1$10 #f)
(unsafe-place-local-set! cell.4$2 0)
(end-breakable-atomic)
((letrec-values (((loop_50)
(lambda (i_26)
(begin
'loop
(if (zero? i_26)
(void)
(let-values () (begin (end-breakable-atomic) (loop_50 (sub1 i_26)))))))))
loop_50)
extra-depth_0)))
f_19
(lambda ()
(begin
(start-breakable-atomic)
(unsafe-place-local-set! cell.2$5 paramz_2)
(unsafe-place-local-set! cell.3$2 break-paramz_0)
((letrec-values (((loop_43)
(lambda (i_27)
(begin
'loop
(if (zero? i_27)
(void)
(let-values ()
(begin (start-breakable-atomic) (loop_43 (sub1 i_27)))))))))
loop_43)
extra-depth_0)
(unsafe-place-local-set! cell.4$2 extra-depth_0)
(unsafe-place-local-set! cell.1$10 (current-thread)))))))))))))))
(define-values (not-an-fX.1) (lambda (who_6 v_28) (begin 'not-an-fX (raise-argument-error who_6 "fixnum?" v_28))))
(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-values
(log-performance?)
(if (environment-variables-ref (current-environment-variables) #"PLT_EXPANDER_TIMES") #t #f))
(define-values (cell.1$9) (unsafe-make-place-local #f))
(define-values (cell.2$4) (unsafe-make-place-local (make-hasheq)))
(define-values (performance-place-init!) (lambda () (begin (unsafe-place-local-set! cell.2$4 (make-hasheq)))))
(define-values
(struct:region
region1.1
region?
region-path
region-start
region-start-memory
region-as-nested
region-as-nested-memory
set-region-start!
set-region-start-memory!
set-region-as-nested!
set-region-as-nested-memory!)
(let-values (((struct:_0 make-_0 ?_0 -ref_0 -set!_0)
(let-values ()
(let-values () (make-struct-type 'region #f 5 0 #f null (current-inspector) #f '(0) #f 'region)))))
(values
struct:_0
make-_0
?_0
(make-struct-field-accessor -ref_0 0 'path)
(make-struct-field-accessor -ref_0 1 'start)
(make-struct-field-accessor -ref_0 2 'start-memory)
(make-struct-field-accessor -ref_0 3 'as-nested)
(make-struct-field-accessor -ref_0 4 'as-nested-memory)
(make-struct-field-mutator -set!_0 1 'start)
(make-struct-field-mutator -set!_0 2 'start-memory)
(make-struct-field-mutator -set!_0 3 'as-nested)
(make-struct-field-mutator -set!_0 4 'as-nested-memory))))
(define-values
(struct:stat stat2.1 stat? stat-msecs stat-memory stat-count set-stat-msecs! set-stat-memory! set-stat-count!)
(let-values (((struct:_1 make-_1 ?_1 -ref_1 -set!_1)
(let-values ()
(let-values () (make-struct-type 'stat #f 3 0 #f null (current-inspector) #f '() #f 'stat)))))
(values
struct:_1
make-_1
?_1
(make-struct-field-accessor -ref_1 0 'msecs)
(make-struct-field-accessor -ref_1 1 'memory)
(make-struct-field-accessor -ref_1 2 'count)
(make-struct-field-mutator -set!_1 0 'msecs)
(make-struct-field-mutator -set!_1 1 'memory)
(make-struct-field-mutator -set!_1 2 'count))))
(define-values (stat-key) (gensym))
(define-values
(start-performance-region)
(lambda path_3
(begin
(unsafe-place-local-set!
cell.1$9
(cons
(region1.1
(if (unsafe-place-local-ref cell.1$9)
((letrec-values (((loop_51)
(lambda (path_4 enclosing-path_0)
(begin
'loop
(if (null? path_4)
null
(cons
(if (if (eq? '_ (car path_4)) (pair? enclosing-path_0) #f)
(car enclosing-path_0)
(car path_4))
(loop_51
(cdr path_4)
(if (pair? enclosing-path_0) (cdr enclosing-path_0) null))))))))
loop_51)
path_3
(region-path (car (unsafe-place-local-ref cell.1$9))))
path_3)
(current-inexact-milliseconds)
(current-memory-use 'cumulative)
0.0
0)
(unsafe-place-local-ref cell.1$9))))))
(define-values
(end-performance-region)
(lambda ()
(begin
(let-values (((now_0) (current-inexact-milliseconds)))
(let-values (((now-memory_0) (current-memory-use 'cumulative)))
(let-values (((r_7) (car (unsafe-place-local-ref cell.1$9))))
(let-values ((()
(begin (unsafe-place-local-set! cell.1$9 (cdr (unsafe-place-local-ref cell.1$9))) (values))))
(let-values (((full-delta_0) (- now_0 (region-start r_7))))
(let-values (((delta_0) (- full-delta_0 (region-as-nested r_7))))
(let-values (((full-delta-memory_0) (- now-memory_0 (region-start-memory r_7))))
(let-values (((delta-memory_0) (- full-delta-memory_0 (region-as-nested-memory r_7))))
(begin
((letrec-values (((loop_52)
(lambda (accums_0 path_5)
(begin
'loop
(let-values (((key_9) (car path_5)))
(let-values (((accum_0)
(let-values (((or-part_25) (hash-ref accums_0 key_9 #f)))
(if or-part_25
or-part_25
(let-values (((accum_1) (make-hasheq)))
(begin
(hash-set! accums_0 key_9 accum_1)
accum_1))))))
(let-values (((s_36)
(let-values (((or-part_28)
(hash-ref accum_0 stat-key #f)))
(if or-part_28
or-part_28
(let-values (((s_20) (stat2.1 0.0 0 0)))
(begin
(hash-set! accum_0 stat-key s_20)
s_20))))))
(begin
(set-stat-msecs! s_36 (+ delta_0 (stat-msecs s_36)))
(set-stat-memory! s_36 (+ delta-memory_0 (stat-memory s_36)))
(if (null? (cdr path_5))
(let-values () (set-stat-count! s_36 (add1 (stat-count s_36))))
(void))
(if (null? (cdr path_5))
(void)
(let-values () (loop_52 accum_0 (cdr path_5))))))))))))
loop_52)
(unsafe-place-local-ref cell.2$4)
(region-path r_7))
(if (unsafe-place-local-ref cell.1$9)
(let-values ()
(begin
(set-region-as-nested!
(car (unsafe-place-local-ref cell.1$9))
(+ (region-as-nested (car (unsafe-place-local-ref cell.1$9))) full-delta_0))
(set-region-as-nested-memory!
(car (unsafe-place-local-ref cell.1$9))
(+
(region-as-nested-memory (car (unsafe-place-local-ref cell.1$9)))
full-delta-memory_0))))
(void))))))))))))))
(call-with-values
(lambda ()
(if log-performance?
(let-values ()
(void
(plumber-add-flush!
(current-plumber)
(lambda (h_1)
(let-values (((whole-len_0)
(lambda (s_37)
(begin
'whole-len
(caar
(let-values (((or-part_29) (regexp-match-positions '#rx"[.]" s_37)))
(if or-part_29 or-part_29 '(0))))))))
(let-values (((kb_0)
(lambda (b_8)
(begin
'kb
(let-values (((s_28) (number->string (quotient b_8 1024))))
(list->string
(let-values (((lst_15) (reverse$1 (string->list s_28))) ((start_7) 0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_15)))
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-naturals start_7)))
((letrec-values (((for-loop_9)
(lambda (l_22 lst_16 pos_1)
(begin
'for-loop
(if (if (pair? lst_16) #t #f)
(let-values (((c_7) (unsafe-car lst_16))
((rest_4) (unsafe-cdr lst_16))
((i_28) pos_1))
(let-values (((l_23)
(let-values (((l_24) l_22))
(let-values (((l_25)
(let-values ()
(if (if (positive?
i_28)
(zero?
(modulo i_28 3))
#f)
(let-values ()
(list*
c_7
'#\,
l_24))
(let-values ()
(cons
c_7
l_24))))))
(values l_25)))))
(if (not #f)
(for-loop_9 l_23 rest_4 (+ pos_1 1))
l_23)))
l_22)))))
for-loop_9)
null
lst_15
start_7)))))))))
(let-values (((label-max-len_0 value-max-len_0 memory-max-len_0 count-max-len_0)
((letrec-values (((loop_53)
(lambda (accums_1
label-len_0
value-len_0
memory-len_0
count-len_0
indent_0)
(begin
'loop
(let-values (((ht_21) accums_1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_21)))
((letrec-values (((for-loop_10)
(lambda (label-len_1
value-len_1
memory-len_1
count-len_1
i_29)
(begin
'for-loop
(if i_29
(let-values (((k_6 v_29)
(hash-iterate-key+value
ht_21
i_29)))
(let-values (((label-len_2
value-len_2
memory-len_2
count-len_2)
(let-values (((label-len_3)
label-len_1)
((value-len_3)
value-len_1)
((memory-len_3)
memory-len_1)
((count-len_3)
count-len_1))
(let-values (((label-len_4
value-len_4
memory-len_4
count-len_4)
(let-values ()
(if (eq?
k_6
stat-key)
(let-values ()
(values
label-len_3
(max
value-len_3
(whole-len_0
(format
"~a"
(stat-msecs
v_29))))
(max
memory-len_3
(string-length
(format
"~a"
(kb_0
(stat-memory
v_29)))))
(max
count-len_3
(string-length
(format
"~a"
(stat-count
v_29))))))
(let-values ()
(loop_53
v_29
(max
label-len_3
(+
indent_0
(string-length
(format
"~a"
k_6))))
value-len_3
memory-len_3
count-len_3
(+
2
indent_0)))))))
(values
label-len_4
value-len_4
memory-len_4
count-len_4)))))
(if (not #f)
(for-loop_10
label-len_2
value-len_2
memory-len_2
count-len_2
(hash-iterate-next ht_21 i_29))
(values
label-len_2
value-len_2
memory-len_2
count-len_2))))
(values
label-len_1
value-len_1
memory-len_1
count-len_1))))))
for-loop_10)
label-len_0
value-len_0
memory-len_0
count-len_0
(hash-iterate-first ht_21))))))))
loop_53)
(unsafe-place-local-ref cell.2$4)
6
5
4
5
2)))
(begin
(let-values (((l_26) (current-logger)))
(if (log-level? l_26 'error (logger-name l_26))
(let-values ()
(log-message
l_26
'error
(format
"REGION ~aMSECS ~aMEMK ~aCOUNT"
(make-string (- (+ label-max-len_0 value-max-len_0) 11) '#\space)
(make-string (- memory-max-len_0 4) '#\space)
(make-string (- count-max-len_0 5) '#\space))
(current-continuation-marks)))
(void)))
((letrec-values (((loop_54)
(lambda (name_6 accums_2 indent_1 newline?_0)
(begin
'loop
(let-values ((()
(begin
(if name_6
(let-values ()
(let-values (((v_30) (hash-ref accums_2 stat-key)))
(let-values (((l_27) (current-logger)))
(if (log-level? l_27 'error (logger-name l_27))
(let-values ()
(log-message
l_27
'error
(format
"~a~a ~a~a ~a~a ~a~a"
indent_1
name_6
(make-string
(+
(-
label-max-len_0
(string-length (format "~a" name_6))
(string-length indent_1))
(-
value-max-len_0
(whole-len_0
(format "~a" (stat-msecs v_30)))))
'#\space)
(regexp-replace
'#rx"[.](..).*"
(format "~a00" (stat-msecs v_30))
".\\1")
(make-string
(-
memory-max-len_0
(string-length
(format "~a" (kb_0 (stat-memory v_30)))))
'#\space)
(kb_0 (stat-memory v_30))
(make-string
(-
count-max-len_0
(string-length
(format "~a" (stat-count v_30))))
'#\space)
(stat-count v_30))
(current-continuation-marks)))
(void)))))
(void))
(values))))
(let-values (((keys_0)
(let-values (((temp5_0)
(reverse$1
(let-values (((ht_22) accums_2))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-in-hash-keys ht_22)))
((letrec-values (((for-loop_11)
(lambda (fold-var_4 i_30)
(begin
'for-loop
(if i_30
(let-values (((k_7)
(hash-iterate-key
ht_22
i_30)))
(let-values (((fold-var_2)
(let-values (((fold-var_3)
fold-var_4))
(if (not
(eq?
k_7
stat-key))
(let-values (((fold-var_5)
fold-var_3))
(let-values (((fold-var_6)
(let-values ()
(cons
(let-values ()
k_7)
fold-var_5))))
(values
fold-var_6)))
fold-var_3))))
(if (not #f)
(for-loop_11
fold-var_2
(hash-iterate-next
ht_22
i_30))
fold-var_2)))
fold-var_4)))))
for-loop_11)
null
(hash-iterate-first ht_22))))))
((>6_0) >)
((temp7_0)
(lambda (key_10)
(stat-msecs
(hash-ref
(hash-ref accums_2 key_10)
stat-key)))))
(sort.1 #f temp7_0 temp5_0 >6_0))))
(begin
(let-values (((lst_17) keys_0) ((start_8) 0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_17)))
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-naturals start_8)))
((letrec-values (((for-loop_12)
(lambda (lst_18 pos_2)
(begin
'for-loop
(if (if (pair? lst_18) #t #f)
(let-values (((k_8) (unsafe-car lst_18))
((rest_5) (unsafe-cdr lst_18))
((i_31) pos_2))
(let-values ((()
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(begin
(if (if newline?_0
(positive?
i_31)
#f)
(let-values ()
(let-values (((l_28)
(current-logger)))
(if (log-level?
l_28
'error
(logger-name
l_28))
(let-values ()
(log-message
l_28
'error
""
(current-continuation-marks)))
(void))))
(void))
(loop_54
k_8
(hash-ref
accums_2
k_8)
(string-append
indent_1
" ")
#f)))
(values)))))
(values)))))
(if (not #f)
(for-loop_12 rest_5 (+ pos_2 1))
(values))))
(values))))))
for-loop_12)
lst_17
start_8)))
(void))))))))
loop_54)
#f
(unsafe-place-local-ref cell.2$4)
""
#t)))))))))
(void)))
print-values)
(define-values
(1/module-path?)
(lambda (v_31)
(begin
'module-path?
(let-values (((or-part_0) (if (pair? v_31) (if (eq? (car v_31) 'submod) (submodule-module-path? v_31) #f) #f)))
(if or-part_0 or-part_0 (root-module-path? v_31))))))
(define-values
(root-module-path?)
(lambda (v_32)
(begin
(let-values (((or-part_11) (path? v_32)))
(if or-part_11
or-part_11
(let-values (((or-part_2) (if (string? v_32) (string-module-path? v_32) #f)))
(if or-part_2
or-part_2
(let-values (((or-part_30) (if (symbol? v_32) (symbol-module-path? v_32) #f)))
(if or-part_30
or-part_30
(if (pair? v_32)
(let-values (((tmp_4) (car v_32)))
(if (equal? tmp_4 'quote)
(let-values () (if (pair? (cdr v_32)) (if (symbol? (cadr v_32)) (null? (cddr v_32)) #f) #f))
(if (equal? tmp_4 'lib)
(let-values () (lib-module-path? v_32))
(if (equal? tmp_4 'file)
(let-values ()
(if (pair? (cdr v_32))
(if (string? (cadr v_32)) (if (path-string? (cadr v_32)) (null? (cddr v_32)) #f) #f)
#f))
(if (equal? tmp_4 'planet)
(let-values () (planet-module-path? v_32))
(let-values () #f))))))
#f))))))))))
(define-values
(submodule-module-path?)
(lambda (v_33)
(begin
(if (pair? (cdr v_33))
(if (list? v_33)
(if (let-values (((or-part_31) (equal? (cadr v_33) "..")))
(if or-part_31
or-part_31
(let-values (((or-part_32) (equal? (cadr v_33) ".")))
(if or-part_32 or-part_32 (root-module-path? (cadr v_33))))))
(let-values (((lst_19) (cddr v_33)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_19)))
((letrec-values (((for-loop_13)
(lambda (result_1 lst_20)
(begin
'for-loop
(if (pair? lst_20)
(let-values (((e_7) (unsafe-car lst_20)) ((rest_6) (unsafe-cdr lst_20)))
(let-values (((result_2)
(let-values ()
(let-values (((result_3)
(let-values ()
(let-values ()
(let-values (((or-part_33)
(equal? e_7 "..")))
(if or-part_33
or-part_33
(symbol? e_7)))))))
(values result_3)))))
(if (if (not ((lambda x_9 (not result_2)) e_7)) (not #f) #f)
(for-loop_13 result_2 rest_6)
result_2)))
result_1)))))
for-loop_13)
#t
lst_19)))
#f)
#f)
#f))))
(define-values
(string-module-path?)
(lambda (v_34)
(begin
(let-values (((v11_0) v_34) ((temp12_0) #t) ((temp13_0) #t) ((temp14_0) #t))
(module-path-string?.1 temp12_0 temp14_0 #f temp13_0 v11_0)))))
(define-values
(symbol-module-path?)
(lambda (v_35)
(begin (let-values (((temp15_0) (symbol->string v_35))) (module-path-string?.1 #f #f #f #f temp15_0)))))
(define-values
(lib-module-path?)
(lambda (v_36)
(begin
(if (list? v_36)
(if (pair? (cdr v_36))
((letrec-values (((loop_55)
(lambda (v_37 first?_0)
(begin
'loop
(let-values (((or-part_34) (null? v_37)))
(if or-part_34
or-part_34
(if (string? (car v_37))
(if (let-values (((temp16_0) (car v_37))
((first?17_0) first?_0)
((first?18_0) first?_0))
(module-path-string?.1 #f first?18_0 #f first?17_0 temp16_0))
(loop_55 (cdr v_37) #f)
#f)
#f)))))))
loop_55)
(cdr v_36)
#t)
#f)
#f))))
(define-values
(planet-module-path?)
(lambda (v_38)
(begin
(if (list? v_38)
(let-values (((tmp_5) (length v_38)))
(if (equal? tmp_5 1)
(let-values () #f)
(if (equal? tmp_5 2)
(let-values ()
(let-values (((e_8) (cadr v_38)))
(if (string? e_8)
(let-values ()
(let-values (((e19_0) e_8) ((temp20_0) #t) ((temp21_0) #t))
(module-path-string?.1 #f temp21_0 temp20_0 #f e19_0)))
(if (symbol? e_8)
(let-values ()
(let-values (((temp22_0) (symbol->string e_8)) ((temp23_0) #t))
(module-path-string?.1 #f #f temp23_0 #f temp22_0)))
(let-values () #f)))))
(let-values ()
(let-values (((file_0) (cadr v_38)))
(let-values (((pkg_0) (caddr v_38)))
(let-values (((subs_0) (cdddr v_38)))
(if file_0
(if (let-values (((file24_0) file_0) ((temp25_0) #t) ((temp26_0) #t))
(module-path-string?.1 #f temp26_0 #f temp25_0 file24_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-values (((or-part_35) (null? (cddr pkg_0))))
(if or-part_35
or-part_35
(let-values (((or-part_36) (planet-version-number? (caddr pkg_0))))
(if or-part_36
or-part_36
(let-values (((or-part_37) (null? (cddr pkg_0))))
(if or-part_37
or-part_37
(planet-version-minor-spec? (cadddr pkg_0))))))))
#f)
#f)
#f)
#f)
(let-values (((lst_21) subs_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_21)))
((letrec-values (((for-loop_14)
(lambda (result_4 lst_22)
(begin
'for-loop
(if (pair? lst_22)
(let-values (((sub_0) (unsafe-car lst_22))
((rest_7) (unsafe-cdr lst_22)))
(let-values (((result_5)
(let-values ()
(let-values (((result_6)
(let-values ()
(let-values ()
(let-values (((sub27_0)
sub_0))
(module-path-string?.1
#f
#f
#f
#f
sub27_0))))))
(values result_6)))))
(if (if (not ((lambda x_10 (not result_5)) sub_0))
(not #f)
#f)
(for-loop_14 result_5 rest_7)
result_5)))
result_4)))))
for-loop_14)
#t
lst_21)))
#f)
#f)
#f))))))))
#f))))
(define-values (planet-version-number?) (lambda (v_39) (begin (exact-nonnegative-integer? v_39))))
(define-values
(planet-version-minor-spec?)
(lambda (v_40)
(begin
(let-values (((or-part_38) (planet-version-number? v_40)))
(if or-part_38
or-part_38
(if (pair? v_40)
(if (list? v_40)
(if (= 2 (length v_40))
(let-values (((tmp_6) (car v_40)))
(if (if (equal? tmp_6 '=) #t (if (equal? tmp_6 '+) #t (equal? tmp_6 '-)))
(let-values () (planet-version-number? (cadr v_40)))
(let-values () (if (planet-version-number? (car v_40)) (planet-version-number? (cadr v_40)) #f))))
#f)
#f)
#f))))))
(define-values
(module-path-string?.1)
(lambda (dots-dir-ok?2_0 file-end-ok?4_0 for-planet?1_0 just-file-ok?3_0 v9_0)
(begin
'module-path-string?
(let-values (((v_41) v9_0))
(let-values (((for-planet?_0) for-planet?1_0))
(let-values (((dots-dir-ok?_0) dots-dir-ok?2_0))
(let-values (((just-file-ok?_0) just-file-ok?3_0))
(let-values (((file-end-ok?_0) file-end-ok?4_0))
(let-values ()
(let-values (((len_3) (string-length v_41)))
(if (positive? len_3)
(if (not (char=? '#\/ (string-ref v_41 0)))
(if (not (char=? '#\/ (string-ref v_41 (sub1 len_3))))
(let-values (((start-package-version-pos_0 end-package-version-pos_0)
(if for-planet?_0 (check-planet-part v_41 len_3) (values 0 0))))
(if start-package-version-pos_0
((letrec-values (((loop_56)
(lambda (i_32 prev-was-slash?_0 saw-slash?_0 saw-dot?_0)
(begin
'loop
(if (not (negative? i_32))
(let-values ()
(let-values (((c_8) (string-ref v_41 i_32)))
(if (char=? c_8 '#\/)
(let-values ()
(if (not prev-was-slash?_0)
(loop_56 (sub1 i_32) #t #t saw-dot?_0)
#f))
(if (char=? c_8 '#\.)
(let-values ()
(if (if (< (add1 i_32) len_3)
(if (not
(char=? (string-ref v_41 (add1 i_32)) '#\/))
(not
(char=? (string-ref v_41 (add1 i_32)) '#\.))
#f)
#f)
(if (not saw-slash?_0)
(loop_56 (sub1 i_32) #f saw-slash?_0 #t)
#f)
(loop_56 (sub1 i_32) #f saw-slash?_0 saw-dot?_0)))
(if (let-values (((or-part_39) (plain-char? c_8)))
(if or-part_39
or-part_39
(if (char=? c_8 '#\%)
(if (< (+ i_32 2) len_3)
(hex-sequence? v_41 (add1 i_32))
#f)
#f)))
(let-values ()
(loop_56 (sub1 i_32) #f saw-slash?_0 saw-dot?_0))
(if (if (>= i_32 start-package-version-pos_0)
(< i_32 end-package-version-pos_0)
#f)
(let-values ()
(loop_56 (sub1 i_32) #f saw-slash?_0 saw-dot?_0))
(let-values () #f)))))))
(let-values ()
(if (not
(if (not just-file-ok?_0)
(if saw-dot?_0 (not saw-slash?_0) #f)
#f))
(let-values (((or-part_40) dots-dir-ok?_0))
(if or-part_40
or-part_40
((letrec-values (((loop_45)
(lambda (i_33)
(begin
'loop
(if (= i_33 len_3)
(let-values () #t)
(if (char=?
(string-ref v_41 i_33)
'#\.)
(let-values ()
(if (not
(let-values (((or-part_41)
(=
len_3
(add1
i_33))))
(if or-part_41
or-part_41
(char=?
(string-ref
v_41
(add1 i_33))
'#\/))))
(if (not
(if (char=?
(string-ref
v_41
(add1 i_33))
'#\.)
(let-values (((or-part_29)
(=
len_3
(+
i_33
2))))
(if or-part_29
or-part_29
(char=?
(string-ref
v_41
(+ i_33 2))
'#\/)))
#f))
(loop_45
((letrec-values (((loop_57)
(lambda (i_34)
(begin
'loop
(if (char=?
'#\.
(string-ref
v_41
i_34))
(loop_57
(add1
i_34))
i_34)))))
loop_57)
i_33))
#f)
#f))
(let-values ()
(loop_45 (add1 i_33)))))))))
loop_45)
0)))
#f)))))))
loop_56)
(sub1 len_3)
#f
(not file-end-ok?_0)
#f)
#f))
#f)
#f)
#f)))))))))))
(define-values
(planet-user/pkg-string?)
(lambda (v_42)
(begin
(if (string? v_42)
(let-values (((len_4) (string-length v_42)))
(if (positive? len_4)
(let-values (((vec_12 len_5)
(let-values (((vec_13) v_42))
(begin (check-string vec_13) (values vec_13 (unsafe-string-length vec_13)))))
((start_9) 0))
(begin
#f
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-naturals start_9)))
((letrec-values (((for-loop_15)
(lambda (result_7 pos_3 pos_4)
(begin
'for-loop
(if (if (unsafe-fx< pos_3 len_5) #t #f)
(let-values (((c_9) (string-ref vec_12 pos_3)) ((i_35) pos_4))
(let-values (((result_8)
(let-values ()
(let-values (((result_9)
(let-values ()
(let-values ()
(let-values (((or-part_42)
(plain-char? c_9)))
(if or-part_42
or-part_42
(let-values (((or-part_43)
(char=? '#\. c_9)))
(if or-part_43
or-part_43
(if (char=? '#\% c_9)
(if (< i_35 (- len_4 2))
(hex-sequence? v_42 (add1 i_35))
#f)
#f)))))))))
(values result_9)))))
(if (if (not ((lambda x_11 (not result_8)) c_9))
(if (not ((lambda x_12 (not result_8)) i_35)) (not #f) #f)
#f)
(for-loop_15 result_8 (unsafe-fx+ 1 pos_3) (+ pos_4 1))
result_8)))
result_7)))))
for-loop_15)
#t
0
start_9)))
#f))
#f))))
(define-values
(plain-char?)
(lambda (c_10)
(begin
(let-values (((or-part_44) (char<=? '#\a c_10 '#\z)))
(if or-part_44
or-part_44
(let-values (((or-part_45) (char<=? '#\A c_10 '#\Z)))
(if or-part_45
or-part_45
(let-values (((or-part_46) (char<=? '#\0 c_10 '#\9)))
(if or-part_46
or-part_46
(let-values (((or-part_47) (char=? '#\- c_10)))
(if or-part_47
or-part_47
(let-values (((or-part_48) (char=? '#\_ c_10)))
(if or-part_48 or-part_48 (char=? '#\+ c_10))))))))))))))
(define-values
(hex-sequence?)
(lambda (s_38 i_36)
(begin
(let-values (((c1_16) (string-ref s_38 i_36)))
(let-values (((c2_0) (string-ref s_38 (add1 i_36))))
(if (hex-char? c1_16)
(if (hex-char? c2_0)
(let-values (((c_11) (integer->char (+ (* (hex-char->integer c1_16) 16) (hex-char->integer c2_0)))))
(not (plain-char? c_11)))
#f)
#f))))))
(define-values
(hex-char?)
(lambda (c_12)
(begin (let-values (((or-part_49) (char<=? '#\a c_12 '#\f))) (if or-part_49 or-part_49 (char<=? '#\0 c_12 '#\9))))))
(define-values
(hex-char->integer)
(lambda (c_13)
(begin
(if (char<=? '#\a c_13 '#\f)
(let-values () (- (char->integer c_13) (+ 10 (char->integer '#\a))))
(if (char<=? '#\A c_13 '#\F)
(let-values () (- (char->integer c_13) (+ 10 (char->integer '#\A))))
(let-values () (- (char->integer c_13) (char->integer '#\0))))))))
(define-values
(check-planet-part)
(lambda (v_43 len_6)
(begin
(let-values (((start-package-version-pos_1 end-package-version-pos_1 colon1-pos_0 colon2-pos_0)
((letrec-values (((loop_58)
(lambda (j_2
start-package-version-pos_2
end-package-version-pos_2
colon1-pos_1
colon2-pos_1)
(begin
'loop
(if (= j_2 len_6)
(let-values ()
(values
start-package-version-pos_2
(let-values (((or-part_50) end-package-version-pos_2))
(if or-part_50 or-part_50 j_2))
colon1-pos_1
colon2-pos_1))
(let-values ()
(let-values (((tmp_7) (string-ref v_43 j_2)))
(if (equal? tmp_7 '#\/)
(let-values ()
(loop_58
(add1 j_2)
(let-values (((or-part_51) start-package-version-pos_2))
(if or-part_51 or-part_51 (add1 j_2)))
(if start-package-version-pos_2
(let-values (((or-part_52) end-package-version-pos_2))
(if or-part_52 or-part_52 j_2))
#f)
colon1-pos_1
colon2-pos_1))
(if (equal? tmp_7 '#\:)
(let-values ()
(if colon2-pos_1
(let-values () (values #f #f #f #f))
(if colon1-pos_1
(let-values ()
(loop_58
(add1 j_2)
start-package-version-pos_2
end-package-version-pos_2
colon1-pos_1
j_2))
(let-values ()
(loop_58
(add1 j_2)
start-package-version-pos_2
end-package-version-pos_2
j_2
#f)))))
(let-values ()
(loop_58
(add1 j_2)
start-package-version-pos_2
end-package-version-pos_2
colon1-pos_1
colon2-pos_1)))))))))))
loop_58)
0
#f
#f
#f
#f)))
(if (if start-package-version-pos_1
(if (> end-package-version-pos_1 start-package-version-pos_1)
(let-values (((or-part_53) (not colon2-pos_0)))
(if or-part_53 or-part_53 (< (add1 colon2-pos_0) end-package-version-pos_1)))
#f)
#f)
(let-values ()
(if colon1-pos_0
(let-values ()
(let-values (((colon1-end_0)
(let-values (((or-part_54) colon2-pos_0))
(if or-part_54 or-part_54 end-package-version-pos_1))))
(if (if (integer-sequence? v_43 (add1 colon1-pos_0) colon1-end_0)
(let-values (((or-part_55) (not colon2-pos_0)))
(if or-part_55
or-part_55
(let-values (((tmp_8) (string-ref v_43 (add1 colon2-pos_0))))
(if (equal? tmp_8 '#\=)
(let-values () (integer-sequence? v_43 (+ 2 colon2-pos_0) end-package-version-pos_1))
(if (if (equal? tmp_8 '#\>) #t (equal? tmp_8 '#\<))
(let-values ()
(if (if (< (+ 2 colon2-pos_0) end-package-version-pos_1)
(char=? '#\= (string-ref v_43 (+ colon2-pos_0 2)))
#f)
(let-values ()
(integer-sequence? v_43 (+ 3 colon2-pos_0) end-package-version-pos_1))
(let-values ()
(integer-sequence? v_43 (+ 2 colon2-pos_0) end-package-version-pos_1))))
(let-values ()
(integer-range-sequence? v_43 (add1 colon2-pos_0) end-package-version-pos_1)))))))
#f)
(let-values () (values colon1-pos_0 end-package-version-pos_1))
(let-values () (values #f #f)))))
(let-values () (values 0 0))))
(let-values () (values #f #f)))))))
(define-values
(integer-sequence?)
(lambda (s_39 start_10 end_4)
(begin
(if (< start_10 end_4)
(let-values (((start_11) start_10) ((end_5) end_4) ((inc_0) 1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-range start_11 end_5 inc_0)))
((letrec-values (((for-loop_16)
(lambda (result_10 pos_5)
(begin
'for-loop
(if (< pos_5 end_5)
(let-values (((i_37) pos_5))
(let-values (((result_0)
(let-values ()
(let-values (((result_11)
(let-values ()
(let-values ()
(char<=? '#\0 (string-ref s_39 i_37) '#\9)))))
(values result_11)))))
(if (if (not ((lambda x_13 (not result_0)) i_37)) (not #f) #f)
(for-loop_16 result_0 (+ pos_5 inc_0))
result_0)))
result_10)))))
for-loop_16)
#t
start_11)))
#f))))
(define-values
(integer-range-sequence?)
(lambda (s_40 start_12 end_6)
(begin
(if (< start_12 end_6)
(if (let-values (((start_13) start_12) ((end_7) end_6) ((inc_1) 1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-range start_13 end_7 inc_1)))
((letrec-values (((for-loop_17)
(lambda (result_12 pos_6)
(begin
'for-loop
(if (< pos_6 end_7)
(let-values (((i_38) pos_6))
(let-values (((result_13)
(let-values ()
(let-values (((result_14)
(let-values ()
(let-values ()
(let-values (((c_14)
(string-ref s_40 i_38)))
(let-values (((or-part_56)
(char=? c_14 '#\-)))
(if or-part_56
or-part_56
(char<=? '#\0 c_14 '#\9))))))))
(values result_14)))))
(if (if (not ((lambda x_1 (not result_13)) i_38)) (not #f) #f)
(for-loop_17 result_13 (+ pos_6 inc_1))
result_13)))
result_12)))))
for-loop_17)
#t
start_13)))
(>=
1
(let-values (((start_14) start_12) ((end_8) end_6) ((inc_2) 1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-range start_14 end_8 inc_2)))
((letrec-values (((for-loop_18)
(lambda (result_15 pos_7)
(begin
'for-loop
(if (< pos_7 end_8)
(let-values (((i_39) pos_7))
(let-values (((result_16)
(let-values (((result_17) result_15))
(let-values (((result_18)
(let-values ()
(+
result_17
(let-values ()
(if (char=? (string-ref s_40 i_39) '#\-)
1
0))))))
(values result_18)))))
(if (not #f) (for-loop_18 result_16 (+ pos_7 inc_2)) result_16)))
result_15)))))
for-loop_18)
0
start_14))))
#f)
#f))))
(define-values
(struct:weak-intern-table weak-intern-table1.1 weak-intern-table? weak-intern-table-box)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'weak-intern-table
#f
1
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0)
#f
'weak-intern-table)))))
(values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'box))))
(define-values
(struct:table table2.1 table? table-ht table-count table-prune-at)
(let-values (((struct:_3 make-_3 ?_3 -ref_3 -set!_3)
(let-values ()
(let-values ()
(make-struct-type
'table
#f
3
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1 2)
#f
'table)))))
(values
struct:_3
make-_3
?_3
(make-struct-field-accessor -ref_3 0 'ht)
(make-struct-field-accessor -ref_3 1 'count)
(make-struct-field-accessor -ref_3 2 'prune-at))))
(define-values (make-weak-intern-table) (lambda () (begin (weak-intern-table1.1 (box (table2.1 (hasheqv) 0 128))))))
(define-values
(weak-intern!)
(lambda (tt_0 v_44)
(begin
(let-values (((b_9) (weak-intern-table-box tt_0)))
(let-values (((t_1) (unbox b_9)))
(let-values (((code_0) (equal-hash-code v_44)))
(let-values (((vals_0) (hash-ref (table-ht t_1) code_0 null)))
(let-values (((or-part_57)
(let-values (((lst_23) vals_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_23)))
((letrec-values (((for-loop_19)
(lambda (result_19 lst_24)
(begin
'for-loop
(if (pair? lst_24)
(let-values (((b_10) (unsafe-car lst_24))
((rest_8) (unsafe-cdr lst_24)))
(let-values (((result_20)
(let-values ()
(let-values (((result_21)
(let-values ()
(let-values ()
(let-values (((bv_0)
(weak-box-value
b_10)))
(if (equal? bv_0 v_44)
bv_0
#f))))))
(values result_21)))))
(if (if (not ((lambda x_14 result_20) b_10)) (not #f) #f)
(for-loop_19 result_20 rest_8)
result_20)))
result_19)))))
for-loop_19)
#f
lst_23)))))
(if or-part_57
or-part_57
(let-values (((pruned-t_0) (if (= (table-count t_1) (table-prune-at t_1)) (prune-table t_1) t_1)))
(let-values (((ht_23) (table-ht pruned-t_0)))
(let-values (((new-t_0)
(table2.1
(hash-set ht_23 code_0 (cons (make-weak-box v_44) (hash-ref ht_23 code_0 null)))
(add1 (table-count pruned-t_0))
(table-prune-at pruned-t_0))))
(let-values (((or-part_34) (if (box-cas! b_9 t_1 new-t_0) v_44 #f)))
(if or-part_34 or-part_34 (weak-intern! tt_0 v_44)))))))))))))))
(define-values
(prune-table)
(lambda (t_2)
(begin
(let-values (((new-ht_0)
(let-values (((ht_24) (table-ht t_2)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_24)))
((letrec-values (((for-loop_20)
(lambda (table_8 i_40)
(begin
'for-loop
(if i_40
(let-values (((k_9 vals_1) (hash-iterate-key+value ht_24 i_40)))
(let-values (((table_9)
(let-values (((new-vals_0)
(reverse$1
(let-values (((lst_25) vals_1))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-list lst_25)))
((letrec-values (((for-loop_21)
(lambda (fold-var_7
lst_26)
(begin
'for-loop
(if (pair?
lst_26)
(let-values (((b_11)
(unsafe-car
lst_26))
((rest_9)
(unsafe-cdr
lst_26)))
(let-values (((fold-var_8)
(let-values (((fold-var_9)
fold-var_7))
(if (weak-box-value
b_11)
(let-values (((fold-var_10)
fold-var_9))
(let-values (((fold-var_11)
(let-values ()
(cons
(let-values ()
b_11)
fold-var_10))))
(values
fold-var_11)))
fold-var_9))))
(if (not
#f)
(for-loop_21
fold-var_8
rest_9)
fold-var_8)))
fold-var_7)))))
for-loop_21)
null
lst_25))))))
(begin
#t
((letrec-values (((for-loop_22)
(lambda (table_10)
(begin
'for-loop
(let-values ()
(let-values (((table_11)
(let-values (((table_12)
table_10))
(if (pair?
new-vals_0)
(let-values (((table_13)
table_12))
(let-values (((table_14)
(let-values ()
(let-values (((key_11
val_2)
(let-values ()
(values
k_9
new-vals_0))))
(hash-set
table_13
key_11
val_2)))))
(values
table_14)))
table_12))))
table_11))))))
for-loop_22)
table_8)))))
(if (not #f)
(for-loop_20 table_9 (hash-iterate-next ht_24 i_40))
table_9)))
table_8)))))
for-loop_20)
'#hash()
(hash-iterate-first ht_24))))))
(let-values (((count_0)
(let-values (((ht_25) new-ht_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_25)))
((letrec-values (((for-loop_23)
(lambda (result_22 i_41)
(begin
'for-loop
(if i_41
(let-values (((k_10 vals_2) (hash-iterate-key+value ht_25 i_41)))
(let-values (((result_23)
(let-values (((result_24) result_22))
(let-values (((result_25)
(let-values ()
(+
result_24
(let-values () (length vals_2))))))
(values result_25)))))
(if (not #f)
(for-loop_23 result_23 (hash-iterate-next ht_25 i_41))
result_23)))
result_22)))))
for-loop_23)
0
(hash-iterate-first ht_25))))))
(table2.1 new-ht_0 count_0 (max 128 (* 2 count_0))))))))
(define-values
(struct:resolved-module-path resolved-module-path1.1 1/resolved-module-path? 1/resolved-module-path-name)
(let-values (((struct:_4 make-_4 ?_4 -ref_4 -set!_4)
(let-values ()
(let-values ()
(make-struct-type
'resolved-module-path
#f
1
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (r_4 ser-push!_0 state_0)
(begin
(ser-push!_0 'tag '#:resolved-module-path)
(ser-push!_0 (1/resolved-module-path-name r_4)))))
(cons
prop:custom-write
(lambda (r_8 port_0 mode_3)
(begin
(if mode_3 (let-values () (write-string "#<resolved-module-path:" port_0)) (void))
(fprintf port_0 "~a" (format-resolved-module-path-name (1/resolved-module-path-name r_8)))
(if mode_3 (let-values () (write-string ">" port_0)) (void)))))
(cons
prop:equal+hash
(list
(lambda (a_11 b_12 eql?_0)
(eql?_0 (1/resolved-module-path-name a_11) (1/resolved-module-path-name b_12)))
(lambda (a_12 hash-code_0) (hash-code_0 (1/resolved-module-path-name a_12)))
(lambda (a_13 hash-code_1) (hash-code_1 (1/resolved-module-path-name a_13))))))
(current-inspector)
#f
'(0)
#f
'resolved-module-path)))))
(values struct:_4 make-_4 ?_4 (make-struct-field-accessor -ref_4 0 'name))))
(define-values
(format-resolved-module-path-name)
(lambda (p_4)
(begin
(if (path? p_4)
(let-values () (string-append "\"" (path->string p_4) "\""))
(if (symbol? p_4)
(let-values () (format-symbol p_4))
(let-values () (format-submod (format-resolved-module-path-name (car p_4)) (cdr p_4))))))))
(define-values
(format-symbol)
(lambda (p_5) (begin (format "'~s~a" p_5 (if (symbol-interned? p_5) "" (format "[~a]" (eq-hash-code p_5)))))))
(define-values
(format-submod)
(lambda (base_1 syms_0)
(begin
(format
"(submod ~a~a)"
base_1
(apply
string-append
(reverse$1
(let-values (((lst_27) syms_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_27)))
((letrec-values (((for-loop_24)
(lambda (fold-var_12 lst_28)
(begin
'for-loop
(if (pair? lst_28)
(let-values (((i_42) (unsafe-car lst_28)) ((rest_10) (unsafe-cdr lst_28)))
(let-values (((fold-var_13)
(let-values (((fold-var_14) fold-var_12))
(let-values (((fold-var_8)
(let-values ()
(cons
(let-values () (format " ~s" i_42))
fold-var_14))))
(values fold-var_8)))))
(if (not #f) (for-loop_24 fold-var_13 rest_10) fold-var_13)))
fold-var_12)))))
for-loop_24)
null
lst_27)))))))))
(define-values
(resolved-module-path-root-name)
(lambda (r_9)
(begin (let-values (((name_7) (1/resolved-module-path-name r_9))) (if (pair? name_7) (car name_7) name_7)))))
(define-values (resolved-module-paths) (make-weak-intern-table))
(define-values
(1/make-resolved-module-path)
(lambda (p_6)
(begin
'make-resolved-module-path
(begin
(if (let-values (((or-part_35) (symbol? p_6)))
(if or-part_35
or-part_35
(let-values (((or-part_36) (if (path? p_6) (complete-path? p_6) #f)))
(if or-part_36
or-part_36
(if (pair? p_6)
(if (pair? (cdr p_6))
(if (list? p_6)
(if (let-values (((or-part_37) (symbol? (car p_6))))
(if or-part_37 or-part_37 (if (path? (car p_6)) (complete-path? (car p_6)) #f)))
(let-values (((lst_21) (cdr p_6)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_21)))
((letrec-values (((for-loop_14)
(lambda (result_4 lst_22)
(begin
'for-loop
(if (pair? lst_22)
(let-values (((s_41) (unsafe-car lst_22))
((rest_7) (unsafe-cdr lst_22)))
(let-values (((result_5)
(let-values ()
(let-values (((result_6)
(let-values ()
(let-values ()
(symbol? s_41)))))
(values result_6)))))
(if (if (not ((lambda x_15 (not result_5)) s_41))
(not #f)
#f)
(for-loop_14 result_5 rest_7)
result_5)))
result_4)))))
for-loop_14)
#t
lst_21)))
#f)
#f)
#f)
#f)))))
(void)
(let-values ()
(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_6)))
(weak-intern! resolved-module-paths (resolved-module-path1.1 p_6))))))
(define-values
(resolved-module-path->module-path)
(lambda (r_10)
(begin
(let-values (((name_8) (1/resolved-module-path-name r_10)))
(let-values (((root-name_0) (if (pair? name_8) (car name_8) name_8)))
(let-values (((root-mod-path_0) (if (path? root-name_0) root-name_0 (list 'quote root-name_0))))
(if (pair? name_8) (list* 'submod root-mod-path_0 (cdr name_8)) root-mod-path_0)))))))
(define-values
(struct:module-path-index
module-path-index2.1
1/module-path-index?
module-path-index-path
module-path-index-base
module-path-index-resolved
module-path-index-shift-cache
set-module-path-index-resolved!
set-module-path-index-shift-cache!)
(let-values (((struct:_5 make-_5 ?_5 -ref_5 -set!_5)
(let-values ()
(let-values ()
(make-struct-type
'module-path-index
#f
4
0
#f
(list
(cons prop:authentic #t)
(cons
prop:custom-write
(lambda (r_11 port_1 mode_4)
(begin
(write-string "#<module-path-index" port_1)
(if (top-level-module-path-index? r_11)
(let-values () (fprintf port_1 ":top-level"))
(if (module-path-index-path r_11)
(let-values ()
(let-values (((l_29)
((letrec-values (((loop_59)
(lambda (r_12)
(begin
'loop
(if (not r_12)
(let-values () null)
(if (1/resolved-module-path? r_12)
(let-values () (list "+" (format "~a" r_12)))
(if (module-path-index-path r_12)
(let-values ()
(cons
((letrec-values (((loop_60)
(lambda (v_45)
(begin
'loop
(if (if (pair? v_45)
(if (eq?
'quote
(car
v_45))
(null?
(cddr
v_45))
#f)
#f)
(let-values ()
(format-symbol
(cadr v_45)))
(if (if (pair?
v_45)
(eq?
'submod
(car v_45))
#f)
(let-values ()
(format-submod
(loop_60
(cadr v_45))
(cddr v_45)))
(let-values ()
(format
"~.s"
v_45))))))))
loop_60)
(module-path-index-path r_12))
(loop_59 (module-path-index-base r_12))))
(if (module-path-index-resolved r_12)
(let-values ()
(list
"+"
(format
"~a"
(module-path-index-resolved r_12))))
(let-values () null)))))))))
loop_59)
r_11)))
(fprintf
port_1
":~.a"
(apply
string-append
(car l_29)
(reverse$1
(let-values (((lst_29) (cdr l_29)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_29)))
((letrec-values (((for-loop_25)
(lambda (fold-var_15 lst_30)
(begin
'for-loop
(if (pair? lst_30)
(let-values (((i_43) (unsafe-car lst_30))
((rest_11) (unsafe-cdr lst_30)))
(let-values (((fold-var_16)
(let-values (((fold-var_17)
fold-var_15))
(let-values (((fold-var_18)
(let-values ()
(cons
(let-values ()
(format
" ~a"
i_43))
fold-var_17))))
(values fold-var_18)))))
(if (not #f)
(for-loop_25 fold-var_16 rest_11)
fold-var_16)))
fold-var_15)))))
for-loop_25)
null
lst_29))))))))
(if (module-path-index-resolved r_11)
(let-values () (fprintf port_1 "=~a" (module-path-index-resolved r_11)))
(void))))
(write-string ">" port_1))))
(cons
prop:equal+hash
(list
(lambda (a_14 b_13 eql?_1)
(if (eql?_1 (module-path-index-path a_14) (module-path-index-path b_13))
(eql?_1 (module-path-index-base a_14) (module-path-index-base b_13))
#f))
(lambda (a_15 hash-code_2)
(+ (hash-code_2 (module-path-index-path a_15)) (hash-code_2 (module-path-index-base a_15))))
(lambda (a_16 hash-code_3)
(+
(hash-code_3 (module-path-index-path a_16))
(hash-code_3 (module-path-index-base a_16)))))))
(current-inspector)
#f
'(0 1)
#f
'module-path-index)))))
(values
struct:_5
make-_5
?_5
(make-struct-field-accessor -ref_5 0 'path)
(make-struct-field-accessor -ref_5 1 'base)
(make-struct-field-accessor -ref_5 2 'resolved)
(make-struct-field-accessor -ref_5 3 'shift-cache)
(make-struct-field-mutator -set!_5 2 'resolved)
(make-struct-field-mutator -set!_5 3 'shift-cache))))
(define-values (empty-shift-cache) '())
(define-values
(deserialize-module-path-index)
(case-lambda
((path_6 base_5) (begin (1/module-path-index-join path_6 base_5)))
((name_9) (make-self-module-path-index (1/make-resolved-module-path name_9)))
(() top-level-module-path-index)))
(define-values
(1/module-path-index-resolve)
(let-values (((module-path-index-resolve_0)
(lambda (mpi4_0 load?3_0)
(begin
'module-path-index-resolve
(let-values (((mpi_0) mpi4_0))
(let-values (((load?_0) load?3_0))
(let-values ()
(let-values ()
(let-values ()
(begin
(if (1/module-path-index? mpi_0)
(void)
(let-values ()
(raise-argument-error 'module-path-index-resolve "module-path-index?" mpi_0)))
(let-values (((or-part_58) (module-path-index-resolved mpi_0)))
(if or-part_58
or-part_58
(let-values (((mod-name_0)
(begin
(if log-performance?
(let-values () (start-performance-region 'eval 'resolver))
(void))
(begin0
(let-values ()
((1/current-module-name-resolver)
(module-path-index-path mpi_0)
(module-path-index-resolve/maybe
(module-path-index-base mpi_0)
load?_0)
#f
load?_0))
(if log-performance?
(let-values () (end-performance-region))
(void))))))
(begin
(if (1/resolved-module-path? mod-name_0)
(void)
(let-values ()
(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! mpi_0 mod-name_0)
mod-name_0))))))))))))))
(case-lambda
((mpi_1) (begin 'module-path-index-resolve (module-path-index-resolve_0 mpi_1 #f)))
((mpi_2 load?3_1) (module-path-index-resolve_0 mpi_2 load?3_1)))))
(define-values
(module-path-index-unresolve)
(lambda (mpi_3)
(begin
(if (module-path-index-resolved mpi_3)
(let-values ()
(let-values (((path_7 base_6) (1/module-path-index-split mpi_3))) (1/module-path-index-join path_7 base_6)))
(let-values () mpi_3)))))
(define-values
(1/module-path-index-join)
(let-values (((module-path-index-join_0)
(lambda (mod-path6_0 base7_0 submod5_0)
(begin
'module-path-index-join
(let-values (((mod-path_0) mod-path6_0))
(let-values (((base_7) base7_0))
(let-values (((submod_0) submod5_0))
(let-values ()
(let-values ()
(let-values ()
(begin
(if ((lambda (x_16)
(let-values (((or-part_59) (not x_16)))
(if or-part_59 or-part_59 (1/module-path? x_16))))
mod-path_0)
(void)
(let-values ()
(raise-argument-error
'module-path-index-join
"(or/c #f module-path?)"
mod-path_0)))
(if (let-values (((or-part_60) (not base_7)))
(if or-part_60
or-part_60
(let-values (((or-part_61) (1/resolved-module-path? base_7)))
(if or-part_61 or-part_61 (1/module-path-index? base_7)))))
(void)
(let-values ()
(raise-argument-error
'module-path-index-join
"(or/c #f resolved-module-path? module-path-index?)"
base_7)))
(if (let-values (((or-part_62) (not submod_0)))
(if or-part_62
or-part_62
(if (pair? submod_0) (if (list? submod_0) (andmap2 symbol? submod_0) #f) #f)))
(void)
(let-values ()
(raise-argument-error
'module-path-index-join
"(or/c #f (non-empty-listof symbol?))"
submod_0)))
(if (if (not mod-path_0) base_7 #f)
(let-values ()
(raise-arguments-error
'module-path-index-join
"cannot combine #f path with non-#f base"
"given base"
base_7))
(void))
(if (if submod_0 mod-path_0 #f)
(let-values ()
(raise-arguments-error
'module-path-index-join
"cannot combine #f submodule list with non-#f module path"
"given module path"
mod-path_0
"given submodule list"
submod_0))
(void))
(if submod_0
(let-values ()
(make-self-module-path-index
(1/make-resolved-module-path (cons generic-module-name submod_0))))
(let-values ()
(let-values (((keep-base_0)
((letrec-values (((loop_61)
(lambda (mod-path_1)
(begin
'loop
(if (path? mod-path_1)
(let-values () #f)
(if (if (pair? mod-path_1)
(eq? 'quote (car mod-path_1))
#f)
(let-values () #f)
(if (symbol? mod-path_1)
(let-values () #f)
(if (if (pair? mod-path_1)
(eq? 'submod (car mod-path_1))
#f)
(let-values ()
(loop_61 (cadr mod-path_1)))
(let-values () base_7)))))))))
loop_61)
mod-path_0)))
(module-path-index2.1 mod-path_0 keep-base_0 #f empty-shift-cache)))))))))))))))
(case-lambda
((mod-path_2 base_8) (begin 'module-path-index-join (module-path-index-join_0 mod-path_2 base_8 #f)))
((mod-path_3 base_9 submod5_1) (module-path-index-join_0 mod-path_3 base_9 submod5_1)))))
(define-values
(module-path-index-resolve/maybe)
(lambda (base_10 load?_1)
(begin (if (1/module-path-index? base_10) (1/module-path-index-resolve base_10 load?_1) base_10))))
(define-values
(1/module-path-index-split)
(lambda (mpi_4)
(begin
'module-path-index-split
(let-values ()
(let-values ()
(begin
(if (1/module-path-index? mpi_4)
(void)
(let-values () (raise-argument-error 'module-path-index-split "module-path-index?" mpi_4)))
(values (module-path-index-path mpi_4) (module-path-index-base mpi_4))))))))
(define-values
(1/module-path-index-submodule)
(lambda (mpi_5)
(begin
'module-path-index-submodule
(let-values ()
(let-values ()
(begin
(if (1/module-path-index? mpi_5)
(void)
(let-values () (raise-argument-error 'module-path-index-submodule "module-path-index?" mpi_5)))
(if (not (module-path-index-path mpi_5))
(let-values (((r_13) (module-path-index-resolved mpi_5)))
(if r_13 (let-values (((p_7) (1/resolved-module-path-name r_13))) (if (pair? p_7) (cdr p_7) #f)) #f))
#f)))))))
(define-values
(make-self-module-path-index)
(case-lambda
((name_10) (begin (module-path-index2.1 #f #f name_10 empty-shift-cache)))
((name_11 enclosing_0)
(make-self-module-path-index
(let-values (((name19_0) name_11) ((temp20_1) (if enclosing_0 (1/module-path-index-resolve enclosing_0) #f)))
(build-module-name.1 unsafe-undefined name19_0 temp20_1))))))
(define-values (cell.1$8) (unsafe-make-place-local (make-weak-hash)))
(define-values (generic-module-name) '|expanded module|)
(define-values (module-path-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$8 (make-weak-hash)))))
(define-values
(make-generic-self-module-path-index)
(lambda (self_0)
(begin
(let-values (((r_14) (resolved-module-path-to-generic-resolved-module-path (module-path-index-resolved self_0))))
(begin
(start-atomic)
(begin0
(let-values (((or-part_48)
(let-values (((e_9) (hash-ref (unsafe-place-local-ref cell.1$8) r_14 #f)))
(if e_9 (ephemeron-value e_9) #f))))
(if or-part_48
or-part_48
(let-values (((mpi_6) (module-path-index2.1 #f #f r_14 empty-shift-cache)))
(begin (hash-set! (unsafe-place-local-ref cell.1$8) r_14 (make-ephemeron r_14 mpi_6)) mpi_6))))
(end-atomic)))))))
(define-values
(resolved-module-path-to-generic-resolved-module-path)
(lambda (r_15)
(begin
(let-values (((name_12) (1/resolved-module-path-name r_15)))
(1/make-resolved-module-path
(if (symbol? name_12) generic-module-name (cons generic-module-name (cdr name_12))))))))
(define-values
(imitate-generic-module-path-index!)
(lambda (mpi_7)
(begin
(let-values (((r_16) (module-path-index-resolved mpi_7)))
(if r_16
(let-values ()
(set-module-path-index-resolved! mpi_7 (resolved-module-path-to-generic-resolved-module-path r_16)))
(void))))))
(define-values
(module-path-index-shift)
(lambda (mpi_8 from-mpi_0 to-mpi_0)
(begin
(if (eq? mpi_8 from-mpi_0)
(let-values () to-mpi_0)
(let-values ()
(let-values (((base_11) (module-path-index-base mpi_8)))
(if (not base_11)
(let-values () mpi_8)
(let-values ()
(let-values (((shifted-base_0) (module-path-index-shift base_11 from-mpi_0 to-mpi_0)))
(if (eq? shifted-base_0 base_11)
(let-values () mpi_8)
(let-values (((c1_17) (shift-cache-ref (module-path-index-shift-cache shifted-base_0) mpi_8)))
(if c1_17
c1_17
(let-values ()
(let-values (((shifted-mpi_0)
(module-path-index2.1
(module-path-index-path mpi_8)
shifted-base_0
#f
empty-shift-cache)))
(begin (shift-cache-set! shifted-base_0 shifted-mpi_0) shifted-mpi_0)))))))))))))))
(define-values
(shift-cache-ref)
(lambda (cache_0 mpi_9)
(begin
(let-values (((lst_31) cache_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_31)))
((letrec-values (((for-loop_26)
(lambda (result_26 lst_32)
(begin
'for-loop
(if (pair? lst_32)
(let-values (((wb_0) (unsafe-car lst_32)) ((rest_12) (unsafe-cdr lst_32)))
(let-values (((result_27)
(let-values ()
(let-values (((result_28)
(let-values ()
(let-values ()
(let-values (((v_46) (weak-box-value wb_0)))
(if v_46
(if (equal?
(module-path-index-path v_46)
(module-path-index-path mpi_9))
v_46
#f)
#f))))))
(values result_28)))))
(if (if (not ((lambda x_17 result_27) wb_0)) (not #f) #f)
(for-loop_26 result_27 rest_12)
result_27)))
result_26)))))
for-loop_26)
#f
lst_31))))))
(define-values
(shift-cache-set!)
(lambda (base_12 v_47)
(begin
(let-values (((new-cache_0)
(cons
(make-weak-box v_47)
((letrec-values (((loop_62)
(lambda (n_19 l_30)
(begin
'loop
(if (null? l_30)
(let-values () null)
(if (eqv? n_19 0)
(let-values () null)
(if (not (weak-box-value (car l_30)))
(let-values () (loop_62 n_19 (cdr l_30)))
(let-values ()
(let-values (((r_17) (loop_62 (fx- n_19 1) (cdr l_30))))
(if (eq? r_17 (cdr l_30)) l_30 (cons (car l_30) r_17)))))))))))
loop_62)
32
(module-path-index-shift-cache base_12)))))
(set-module-path-index-shift-cache! base_12 new-cache_0)))))
(define-values (top-level-module-path-index) (make-self-module-path-index (1/make-resolved-module-path 'top-level)))
(define-values (top-level-module-path-index?) (lambda (mpi_10) (begin (eq? top-level-module-path-index mpi_10))))
(define-values (non-self-module-path-index?) (lambda (mpi_11) (begin (if (module-path-index-path mpi_11) #t #f))))
(define-values
(inside-module-context?)
(lambda (mpi_12 inside-mpi_0)
(begin
(let-values (((or-part_63) (eq? mpi_12 inside-mpi_0)))
(if or-part_63
or-part_63
(if (1/module-path-index? mpi_12)
(if (1/module-path-index? inside-mpi_0)
(if (module-path-index-resolved mpi_12)
(eq? (module-path-index-resolved mpi_12) (module-path-index-resolved inside-mpi_0))
#f)
#f)
#f))))))
(define-values
(core-module-name-resolver)
(case-lambda
((name_13 from-namespace_0) (begin (void)))
((p_8 enclosing_1 source-stx-stx_0 load?_2)
(begin
(if (1/module-path? p_8)
(void)
(let-values () (raise-argument-error 'core-module-name-resolver "module-path?" p_8)))
(if (let-values (((or-part_64) (not enclosing_1)))
(if or-part_64 or-part_64 (1/resolved-module-path? enclosing_1)))
(void)
(let-values () (raise-argument-error 'core-module-name-resolver "resolved-module-path?" enclosing_1)))
(if (if (list? p_8) (if (= (length p_8) 2) (if (eq? 'quote (car p_8)) (symbol? (cadr p_8)) #f) #f) #f)
(let-values () (1/make-resolved-module-path (cadr p_8)))
(if (if (list? p_8) (if (eq? 'submod (car p_8)) (equal? ".." (cadr p_8)) #f) #f)
(let-values ()
(let-values (((lst_33) (cdr p_8)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_33)))
((letrec-values (((for-loop_27)
(lambda (enclosing_2 lst_34)
(begin
'for-loop
(if (pair? lst_34)
(let-values (((s_42) (unsafe-car lst_34)) ((rest_13) (unsafe-cdr lst_34)))
(let-values (((enclosing_3)
(let-values (((enclosing_4) enclosing_2))
(let-values (((enclosing_5)
(let-values ()
(let-values (((s21_0) s_42)
((enclosing22_0) enclosing_4)
((p23_0) p_8))
(build-module-name.1
p23_0
s21_0
enclosing22_0)))))
(values enclosing_5)))))
(if (not #f) (for-loop_27 enclosing_3 rest_13) enclosing_3)))
enclosing_2)))))
for-loop_27)
enclosing_1
lst_33))))
(if (if (list? p_8) (if (eq? 'submod (car p_8)) (equal? "." (cadr p_8)) #f) #f)
(let-values ()
(let-values (((lst_35) (cddr p_8)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_35)))
((letrec-values (((for-loop_28)
(lambda (enclosing_6 lst_36)
(begin
'for-loop
(if (pair? lst_36)
(let-values (((s_43) (unsafe-car lst_36)) ((rest_14) (unsafe-cdr lst_36)))
(let-values (((enclosing_7)
(let-values (((enclosing_8) enclosing_6))
(let-values (((enclosing_9)
(let-values ()
(let-values (((s24_0) s_43)
((enclosing25_0) enclosing_8)
((p26_0) p_8))
(build-module-name.1
p26_0
s24_0
enclosing25_0)))))
(values enclosing_9)))))
(if (not #f) (for-loop_28 enclosing_7 rest_14) enclosing_7)))
enclosing_6)))))
for-loop_28)
enclosing_1
lst_35))))
(if (if (list? p_8) (eq? 'submod (car p_8)) #f)
(let-values ()
(let-values (((base_13) ((1/current-module-name-resolver) (cadr p_8) enclosing_1 #f #f)))
(let-values (((lst_37) (cddr p_8)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_37)))
((letrec-values (((for-loop_29)
(lambda (enclosing_10 lst_38)
(begin
'for-loop
(if (pair? lst_38)
(let-values (((s_44) (unsafe-car lst_38)) ((rest_15) (unsafe-cdr lst_38)))
(let-values (((enclosing_11)
(let-values (((enclosing_12) enclosing_10))
(let-values (((enclosing_13)
(let-values ()
(let-values (((s27_0) s_44)
((enclosing28_0)
enclosing_12)
((p29_0) p_8))
(build-module-name.1
p29_0
s27_0
enclosing28_0)))))
(values enclosing_13)))))
(if (not #f) (for-loop_29 enclosing_11 rest_15) enclosing_11)))
enclosing_10)))))
for-loop_29)
base_13
lst_37)))))
(let-values () (error 'core-module-name-resolver "not a supported module path: ~v" p_8))))))))))
(define-values
(build-module-name.1)
(lambda (original8_0 name10_0 enclosing11_0)
(begin
'build-module-name
(let-values (((name_14) name10_0))
(let-values (((enclosing_14) enclosing11_0))
(let-values (((orig-name_0) (if (eq? original8_0 unsafe-undefined) name_14 original8_0)))
(let-values ()
(let-values (((enclosing-module-name_0) (if enclosing_14 (1/resolved-module-path-name enclosing_14) #f)))
(1/make-resolved-module-path
(if (not enclosing-module-name_0)
(let-values () name_14)
(if (symbol? enclosing-module-name_0)
(let-values () (list enclosing-module-name_0 name_14))
(if (equal? name_14 "..")
(let-values ()
(if (symbol? enclosing-module-name_0)
(let-values () (error "too many \"..\"s:" orig-name_0))
(if (= 2 (length enclosing-module-name_0))
(let-values () (car enclosing-module-name_0))
(let-values () (reverse$1 (cdr (reverse$1 enclosing-module-name_0)))))))
(let-values () (append enclosing-module-name_0 (list name_14)))))))))))))))
(define-values
(1/current-module-name-resolver)
(make-parameter
core-module-name-resolver
(lambda (v_48)
(begin
(if (if (procedure? v_48) (if (procedure-arity-includes? v_48 2) (procedure-arity-includes? v_48 4) #f) #f)
(void)
(let-values ()
(raise-argument-error
'current-module-name-resolver
"(and/c (procedure-arity-includes/c 2) (procedure-arity-includes/c 4))"
v_48)))
v_48))
'current-module-name-resolver))
(define-values
(1/current-module-declare-name)
(make-parameter
#f
(lambda (r_18)
(begin
(if (let-values (((or-part_65) (not r_18))) (if or-part_65 or-part_65 (1/resolved-module-path? r_18)))
(void)
(let-values () (raise-argument-error 'current-module-declare-name "(or/c #f resolved-module-path?)" r_18)))
r_18))
'current-module-declare-name))
(define-values
(1/current-module-declare-source)
(make-parameter
#f
(lambda (s_45)
(begin
(if (let-values (((or-part_66) (not s_45)))
(if or-part_66
or-part_66
(let-values (((or-part_67) (symbol? s_45)))
(if or-part_67 or-part_67 (if (path? s_45) (complete-path? s_45) #f)))))
(void)
(let-values ()
(raise-argument-error 'current-module-declare-source "(or/c #f symbol? (and/c path? complete-path?))" s_45)))
s_45))
'current-module-declare-source))
(define-values
(substitute-module-declare-name)
(lambda (default-name_0)
(begin
(let-values (((current-name_0) (1/current-module-declare-name)))
(let-values (((root-name_1)
(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_1 (cdr default-name_0)) root-name_1)))))))
(define-values
(struct:promise promise1.1 promise? promise-val promise-status set-promise-val! set-promise-status!)
(let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6)
(let-values ()
(let-values ()
(make-struct-type
'promise
#f
2
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'()
#f
'promise)))))
(values
struct:_6
make-_6
?_6
(make-struct-field-accessor -ref_6 0 'val)
(make-struct-field-accessor -ref_6 1 'status)
(make-struct-field-mutator -set!_6 0 'val)
(make-struct-field-mutator -set!_6 1 'status))))
(define-values
(force)
(lambda (v_49)
(begin
(if (promise? v_49)
(let-values ()
(let-values (((s_46) (promise-status v_49)))
(if (not s_46)
(let-values ()
(let-values (((result_29) ((promise-val v_49))))
(begin (set-promise-val! v_49 result_29) (set-promise-status! v_49 #t) result_29)))
(let-values () (promise-val v_49)))))
(let-values () v_49)))))
(define-values
(phase?)
(lambda (v_31) (begin (let-values (((or-part_0) (not v_31))) (if or-part_0 or-part_0 (exact-integer? v_31))))))
(define-values (phase+) (lambda (a_2 b_14) (begin (if a_2 (if b_14 (+ a_2 b_14) #f) #f))))
(define-values (phase-) (lambda (a_17 b_15) (begin (if a_17 (if b_15 (- a_17 b_15) #f) #f))))
(define-values
(phase<?)
(lambda (a_18 b_16)
(begin (if (not b_16) (let-values () #f) (if (not a_18) (let-values () #t) (let-values () (< a_18 b_16)))))))
(define-values (zero-phase?) (lambda (a_19) (begin (eq? a_19 0))))
(define-values (label-phase?) (lambda (a_20) (begin (not a_20))))
(define-values (phase?-string) "(or/c exact-integer? #f)")
(define-values (make-small-hasheq) (lambda () (begin (box '#hasheq()))))
(define-values (make-small-hasheqv) (lambda () (begin (box '#hasheqv()))))
(define-values
(small-hash-ref)
(lambda (small-ht_0 key_12 default_6) (begin (hash-ref (unbox small-ht_0) key_12 default_6))))
(define-values
(small-hash-set!)
(lambda (small-ht_1 key_13 val_3) (begin (set-box! small-ht_1 (hash-set (unbox small-ht_1) key_13 val_3)))))
(define-values (small-hash-keys) (lambda (small-ht_2) (begin (hash-keys (unbox small-ht_2)))))
(define-values
(struct:serialize-state
serialize-state1.1
serialize-state?
serialize-state-reachable-scopes
serialize-state-bindings-intern
serialize-state-bulk-bindings-intern
serialize-state-scopes
serialize-state-shifted-multi-scopes
serialize-state-multi-scope-tables
serialize-state-mpi-shifts
serialize-state-context-triples
serialize-state-props
serialize-state-interned-props
serialize-state-syntax-context
serialize-state-sharing-syntaxes)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'serialize-state
#f
12
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1 2 3 4 5 6 7 8 9 10 11)
#f
'serialize-state)))))
(values
struct:_2
make-_2
?_2
(make-struct-field-accessor -ref_2 0 'reachable-scopes)
(make-struct-field-accessor -ref_2 1 'bindings-intern)
(make-struct-field-accessor -ref_2 2 'bulk-bindings-intern)
(make-struct-field-accessor -ref_2 3 'scopes)
(make-struct-field-accessor -ref_2 4 'shifted-multi-scopes)
(make-struct-field-accessor -ref_2 5 'multi-scope-tables)
(make-struct-field-accessor -ref_2 6 'mpi-shifts)
(make-struct-field-accessor -ref_2 7 'context-triples)
(make-struct-field-accessor -ref_2 8 'props)
(make-struct-field-accessor -ref_2 9 'interned-props)
(make-struct-field-accessor -ref_2 10 'syntax-context)
(make-struct-field-accessor -ref_2 11 'sharing-syntaxes))))
(define-values
(make-serialize-state)
(lambda (reachable-scopes_0)
(begin
(let-values (((state_1)
(serialize-state1.1
reachable-scopes_0
(make-hasheq)
(make-hasheq)
(make-hash)
(make-hash)
(make-hasheq)
(make-hasheq)
(make-hasheq)
(make-hasheq)
(make-hash)
(box null)
(make-hasheq))))
(let-values (((empty-seteq_0) (seteq)))
(begin
(hash-set! (serialize-state-scopes state_1) empty-seteq_0 empty-seteq_0)
(hash-set! (serialize-state-shifted-multi-scopes state_1) empty-seteq_0 empty-seteq_0)
(hash-set! (serialize-state-interned-props state_1) empty-seteq_0 empty-seteq_0)
state_1))))))
(define-values
(intern-scopes)
(lambda (scs_0 state_2)
(begin
(let-values (((or-part_12) (hash-ref (serialize-state-scopes state_2) scs_0 #f)))
(if or-part_12 or-part_12 (begin (hash-set! (serialize-state-scopes state_2) scs_0 scs_0) scs_0))))))
(define-values
(intern-shifted-multi-scopes)
(lambda (sms_0 state_3)
(begin
(let-values (((or-part_14) (hash-ref (serialize-state-shifted-multi-scopes state_3) sms_0 #f)))
(if or-part_14
or-part_14
(begin (hash-set! (serialize-state-shifted-multi-scopes state_3) sms_0 sms_0) sms_0))))))
(define-values
(intern-mpi-shifts)
(lambda (mpi-shifts_0 state_4)
(begin
(if (null? mpi-shifts_0)
(let-values () null)
(let-values ()
(let-values (((tail_0) (intern-mpi-shifts (cdr mpi-shifts_0) state_4)))
(let-values (((tail-table_0)
(let-values (((or-part_33) (hash-ref (serialize-state-mpi-shifts state_4) tail_0 #f)))
(if or-part_33
or-part_33
(let-values (((ht_26) (make-hasheq)))
(begin (hash-set! (serialize-state-mpi-shifts state_4) tail_0 ht_26) ht_26))))))
(let-values (((or-part_68) (hash-ref tail-table_0 (car mpi-shifts_0) #f)))
(if or-part_68
or-part_68
(let-values (((v_50) (cons (car mpi-shifts_0) tail_0)))
(begin (hash-set! tail-table_0 (car mpi-shifts_0) v_50) v_50)))))))))))
(define-values
(intern-context-triple)
(lambda (scs_1 sms_1 mpi-shifts_1 state_5)
(begin
(let-values (((scs-ht_0)
(let-values (((or-part_4) (hash-ref (serialize-state-context-triples state_5) scs_1 #f)))
(if or-part_4
or-part_4
(let-values (((ht_27) (make-hasheq)))
(begin (hash-set! (serialize-state-context-triples state_5) scs_1 ht_27) ht_27))))))
(let-values (((sms-ht_0)
(let-values (((or-part_6) (hash-ref scs-ht_0 sms_1 #f)))
(if or-part_6
or-part_6
(let-values (((ht_28) (make-hasheq))) (begin (hash-set! scs-ht_0 sms_1 ht_28) ht_28))))))
(let-values (((or-part_34) (hash-ref sms-ht_0 mpi-shifts_1 #f)))
(if or-part_34
or-part_34
(let-values (((vec_14) (vector-immutable scs_1 sms_1 mpi-shifts_1)))
(begin (hash-set! sms-ht_0 mpi-shifts_1 vec_14) vec_14)))))))))
(define-values
(intern-properties)
(lambda (all-props_0 get-preserved-props_0 state_6)
(begin
(let-values (((v_38) (hash-ref (serialize-state-props state_6) all-props_0 'no)))
(if (eq? v_38 'no)
(let-values ()
(let-values (((preserved-props_0) (get-preserved-props_0)))
(let-values (((p_5)
(if (zero? (hash-count preserved-props_0))
(let-values () #f)
(let-values (((c1_18)
(hash-ref (serialize-state-interned-props state_6) preserved-props_0 #f)))
(if c1_18
((lambda (p_9) p_9) c1_18)
(let-values ()
(begin
(hash-set!
(serialize-state-interned-props state_6)
preserved-props_0
preserved-props_0)
preserved-props_0)))))))
(begin (hash-set! (serialize-state-props state_6) all-props_0 p_5) p_5))))
(let-values () v_38))))))
(define-values
(push-syntax-context!)
(lambda (state_7 v_51)
(begin (let-values (((b_17) (serialize-state-syntax-context state_7))) (set-box! b_17 (cons v_51 (unbox b_17)))))))
(define-values
(get-syntax-context)
(lambda (state_8)
(begin
(let-values (((b_18) (serialize-state-syntax-context state_8)))
(if (null? (unbox b_18)) #f (car (unbox b_18)))))))
(define-values
(pop-syntax-context!)
(lambda (state_9)
(begin (let-values (((b_11) (serialize-state-syntax-context state_9))) (set-box! b_11 (cdr (unbox b_11)))))))
(define-values (root-tag) (unsafe-root-continuation-prompt-tag))
(define-values (default-val.1$2) #f)
(define-values
(current-module-code-inspector)
(lambda () (begin (continuation-mark-set-first #f current-module-code-inspector default-val.1$2 root-tag))))
(define-values
(immutable-prefab-struct-key)
(lambda (v_31)
(begin (let-values (((k_11) (prefab-struct-key v_31))) (if k_11 (if (all-fields-immutable?$1 k_11) k_11 #f) #f)))))
(define-values
(prefab-key-all-fields-immutable?)
(lambda (k_12)
(begin
(begin
(if (prefab-key? k_12)
(void)
(let-values () (raise-argument-error 'prefab-key-all-fields-immutable? "prefab-key?" k_12)))
(all-fields-immutable?$1 k_12)))))
(define-values
(all-fields-immutable?$1)
(lambda (k_13)
(begin
'all-fields-immutable?
(let-values (((or-part_2) (symbol? k_13)))
(if or-part_2
or-part_2
(let-values (((or-part_30) (null? k_13)))
(if or-part_30
or-part_30
(let-values (((rk_0) (cdr k_13)))
(let-values (((rk_1) (if (if (pair? rk_0) (exact-integer? (car rk_0)) #f) (cdr rk_0) rk_0)))
(let-values (((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-values (all-fields-immutable?) (lambda (k_14) (begin (prefab-key-all-fields-immutable? k_14))))
(define-values
(datum-map-slow)
(lambda (tail?_0 s_7 f_20 seen_0 known-pairs_0)
(begin
((letrec-values (((loop_63)
(lambda (tail?_1 s_9 prev-seen_0)
(begin
'loop
(let-values (((seen_1)
(if (if prev-seen_0 (datum-has-elements? s_9) #f)
(let-values ()
(if (hash-ref prev-seen_0 s_9 #f)
(let-values () ((hash-ref prev-seen_0 'cycle-fail) s_9))
(let-values () (hash-set prev-seen_0 s_9 #t))))
(let-values () prev-seen_0))))
(if (null? s_9)
(let-values () (f_20 tail?_1 s_9))
(if (pair? s_9)
(let-values ()
(if (if known-pairs_0 (if tail?_1 (hash-ref known-pairs_0 s_9 #f) #f) #f)
(let-values () s_9)
(let-values ()
(f_20
tail?_1
(cons
(loop_63 #f (car s_9) seen_1)
(loop_63 (if tail?_1 (fx+ 1 tail?_1) 1) (cdr s_9) seen_1))))))
(if (let-values (((or-part_69) (symbol? s_9)))
(if or-part_69
or-part_69
(let-values (((or-part_70) (boolean? s_9)))
(if or-part_70 or-part_70 (number? s_9)))))
(let-values () (f_20 #f s_9))
(if (vector? s_9)
(let-values ()
(f_20
#f
(vector->immutable-vector
(let-values (((len_7) (vector-length s_9)))
(begin
(if (exact-nonnegative-integer? len_7)
(void)
(let-values ()
(raise-argument-error
'for/vector
"exact-nonnegative-integer?"
len_7)))
(let-values (((v_52) (make-vector len_7 0)))
(begin
(if (zero? len_7)
(void)
(let-values ()
(let-values (((vec_15 len_8)
(let-values (((vec_16) s_9))
(begin
(check-vector vec_16)
(values
vec_16
(unsafe-vector-length vec_16))))))
(begin
#f
((letrec-values (((for-loop_30)
(lambda (i_44 pos_8)
(begin
'for-loop
(if (unsafe-fx< pos_8 len_8)
(let-values (((e_10)
(unsafe-vector-ref
vec_15
pos_8)))
(let-values (((i_45)
(let-values (((i_46)
i_44))
(let-values (((i_47)
(let-values ()
(begin
(unsafe-vector*-set!
v_52
i_46
(let-values ()
(loop_63
#f
e_10
seen_1)))
(unsafe-fx+
1
i_46)))))
(values i_47)))))
(if (if (not
((lambda x_18
(unsafe-fx=
i_45
len_7))
e_10))
(not #f)
#f)
(for-loop_30
i_45
(unsafe-fx+ 1 pos_8))
i_45)))
i_44)))))
for-loop_30)
0
0)))))
v_52)))))))
(if (box? s_9)
(let-values () (f_20 #f (box-immutable (loop_63 #f (unbox s_9) seen_1))))
(let-values (((c1_19) (immutable-prefab-struct-key s_9)))
(if c1_19
((lambda (key_14)
(f_20
#f
(apply
make-prefab-struct
key_14
(reverse$1
(let-values (((v*_0 start*_0 stop*_1 step*_0)
(if (variable-reference-from-unsafe?
(#%variable-reference))
(unsafe-normalise-inputs
unsafe-vector-length
(struct->vector s_9)
1
#f
1)
(normalise-inputs
'in-vector
"vector"
(lambda (x_19) (vector? x_19))
(lambda (x_20) (unsafe-vector-length x_20))
(struct->vector s_9)
1
#f
1))))
(begin
#t
((letrec-values (((for-loop_31)
(lambda (fold-var_19 idx_0)
(begin
'for-loop
(if (unsafe-fx< idx_0 stop*_1)
(let-values (((e_11)
(unsafe-vector-ref
v*_0
idx_0)))
(let-values (((fold-var_15)
(let-values (((fold-var_20)
fold-var_19))
(let-values (((fold-var_21)
(let-values ()
(cons
(let-values ()
(loop_63
#f
e_11
seen_1))
fold-var_20))))
(values
fold-var_21)))))
(if (not #f)
(for-loop_31
fold-var_15
(unsafe-fx+ idx_0 1))
fold-var_15)))
fold-var_19)))))
for-loop_31)
null
start*_0)))))))
c1_19)
(if (if (hash? s_9) (immutable? s_9) #f)
(let-values ()
(if (hash-eq? s_9)
(let-values ()
(f_20
#f
(let-values (((ht_29) s_9))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_29)))
((letrec-values (((for-loop_32)
(lambda (table_15 i_48)
(begin
'for-loop
(if i_48
(let-values (((k_15 v_53)
(hash-iterate-key+value
ht_29
i_48)))
(let-values (((table_16)
(let-values (((table_17)
table_15))
(let-values (((table_18)
(let-values ()
(let-values (((key_15
val_4)
(let-values ()
(values
k_15
(loop_63
#f
v_53
seen_1)))))
(hash-set
table_17
key_15
val_4)))))
(values
table_18)))))
(if (not #f)
(for-loop_32
table_16
(hash-iterate-next ht_29 i_48))
table_16)))
table_15)))))
for-loop_32)
'#hasheq()
(hash-iterate-first ht_29))))))
(if (hash-eqv? s_9)
(let-values ()
(f_20
#f
(let-values (((ht_30) s_9))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_30)))
((letrec-values (((for-loop_33)
(lambda (table_19 i_49)
(begin
'for-loop
(if i_49
(let-values (((k_16 v_54)
(hash-iterate-key+value
ht_30
i_49)))
(let-values (((table_20)
(let-values (((table_21)
table_19))
(let-values (((table_22)
(let-values ()
(let-values (((key_16
val_5)
(let-values ()
(values
k_16
(loop_63
#f
v_54
seen_1)))))
(hash-set
table_21
key_16
val_5)))))
(values
table_22)))))
(if (not #f)
(for-loop_33
table_20
(hash-iterate-next
ht_30
i_49))
table_20)))
table_19)))))
for-loop_33)
'#hasheqv()
(hash-iterate-first ht_30))))))
(let-values ()
(f_20
#f
(let-values (((ht_31) s_9))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_31)))
((letrec-values (((for-loop_34)
(lambda (table_23 i_50)
(begin
'for-loop
(if i_50
(let-values (((k_17 v_55)
(hash-iterate-key+value
ht_31
i_50)))
(let-values (((table_24)
(let-values (((table_25)
table_23))
(let-values (((table_26)
(let-values ()
(let-values (((key_17
val_6)
(let-values ()
(values
k_17
(loop_63
#f
v_55
seen_1)))))
(hash-set
table_25
key_17
val_6)))))
(values
table_26)))))
(if (not #f)
(for-loop_34
table_24
(hash-iterate-next
ht_31
i_50))
table_24)))
table_23)))))
for-loop_34)
'#hash()
(hash-iterate-first ht_31)))))))))
(let-values () (f_20 #f s_9)))))))))))))))
loop_63)
tail?_0
s_7
seen_0))))
(define-values
(datum-has-elements?)
(lambda (d_0)
(begin
(let-values (((or-part_71) (pair? d_0)))
(if or-part_71
or-part_71
(let-values (((or-part_72) (vector? d_0)))
(if or-part_72
or-part_72
(let-values (((or-part_73) (box? d_0)))
(if or-part_73
or-part_73
(let-values (((or-part_59) (immutable-prefab-struct-key d_0)))
(if or-part_59
or-part_59
(if (hash? d_0) (if (immutable? d_0) (positive? (hash-count d_0)) #f) #f))))))))))))
(define-values
(struct:preserved-property-value
preserved-property-value1.1
preserved-property-value?
preserved-property-value-content)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'preserved-property-value
#f
1
0
#f
null
(current-inspector)
#f
'(0)
#f
'preserved-property-value)))))
(values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'content))))
(define-values
(plain-property-value)
(lambda (v_56) (begin (if (preserved-property-value? v_56) (preserved-property-value-content v_56) v_56))))
(define-values
(check-value-to-preserve)
(lambda (v_57 syntax?_0)
(begin
(let-values (((check-preserve_0)
(lambda (tail?_2 v_0)
(begin
'check-preserve
(begin
(if (let-values (((or-part_74) (null? v_0)))
(if or-part_74
or-part_74
(let-values (((or-part_14) (boolean? v_0)))
(if or-part_14
or-part_14
(let-values (((or-part_75) (symbol? v_0)))
(if or-part_75
or-part_75
(let-values (((or-part_76) (number? v_0)))
(if or-part_76
or-part_76
(let-values (((or-part_77) (char? v_0)))
(if or-part_77
or-part_77
(let-values (((or-part_57) (string? v_0)))
(if or-part_57
or-part_57
(let-values (((or-part_33) (bytes? v_0)))
(if or-part_33
or-part_33
(let-values (((or-part_78) (regexp? v_0)))
(if or-part_78
or-part_78
(let-values (((or-part_68) (syntax?_0 v_0)))
(if or-part_68
or-part_68
(let-values (((or-part_79) (pair? v_0)))
(if or-part_79
or-part_79
(let-values (((or-part_80) (vector? v_0)))
(if or-part_80
or-part_80
(let-values (((or-part_81) (box? v_0)))
(if or-part_81
or-part_81
(let-values (((or-part_82) (hash? v_0)))
(if or-part_82
or-part_82
(immutable-prefab-struct-key
v_0)))))))))))))))))))))))))))
(void)
(let-values ()
(raise-arguments-error
'write
"disallowed value in preserved syntax property"
"value"
v_0)))
v_0)))))
(let-values (((s_47) v_57)
((f_21) check-preserve_0)
((gf_0) check-preserve_0)
((seen_2) disallow-cycles$1)
((known-pairs_1) #f))
((letrec-values (((loop_64)
(lambda (tail?_3 s_48 prev-depth_0)
(begin
'loop
(let-values (((depth_0) (fx+ 1 prev-depth_0)))
(if (if seen_2 (fx> depth_0 32) #f)
(let-values ()
(datum-map-slow
tail?_3
s_48
(lambda (tail?_4 s_49) (gf_0 tail?_4 s_49))
seen_2
known-pairs_1))
(if (null? s_48)
(let-values () (f_21 tail?_3 s_48))
(if (pair? s_48)
(let-values ()
(f_21
tail?_3
(cons (loop_64 #f (car s_48) depth_0) (loop_64 1 (cdr s_48) depth_0))))
(if (symbol? s_48)
(let-values () (f_21 #f s_48))
(if (boolean? s_48)
(let-values () (f_21 #f s_48))
(if (number? s_48)
(let-values () (f_21 #f s_48))
(if (let-values (((or-part_83) (vector? s_48)))
(if or-part_83
or-part_83
(let-values (((or-part_84) (box? s_48)))
(if or-part_84
or-part_84
(let-values (((or-part_85) (prefab-struct-key s_48)))
(if or-part_85 or-part_85 (hash? s_48)))))))
(let-values ()
(datum-map-slow
tail?_3
s_48
(lambda (tail?_5 s_50) (gf_0 tail?_5 s_50))
seen_2
known-pairs_1))
(let-values () (gf_0 #f s_48))))))))))))))
loop_64)
#f
s_47
0))))))
(define-values
(disallow-cycles$1)
(hash
'cycle-fail
(lambda (v_58) (raise-arguments-error 'write "disallowed cycle in preserved syntax property" "at" v_58))))
(define-values
(tamper?)
(lambda (v_31)
(begin
(let-values (((or-part_0) (not v_31)))
(if or-part_0 or-part_0 (let-values (((or-part_1) (symbol? v_31))) (if or-part_1 or-part_1 (set? v_31))))))))
(define-values (tamper-tainted?) (lambda (v_59) (begin (symbol? v_59))))
(define-values (tamper-armed?) (lambda (v_60) (begin (set? v_60))))
(define-values (tamper-clean?) (lambda (v_61) (begin (not v_61))))
(define-values
(tamper-tainted-for-content)
(lambda (v_56) (begin (if (datum-has-elements? v_56) 'tainted/need-propagate 'tainted))))
(define-values (tamper-needs-propagate?) (lambda (t_3) (begin (eq? t_3 'tainted/need-propagate))))
(define-values (tamper-propagated) (lambda (t_4) (begin (if (eq? t_4 'tainted/need-propagate) 'tainted t_4))))
(define-values (serialize-tamper) (lambda (t_5) (begin (if (tamper-armed? t_5) 'armed t_5))))
(define-values (current-arm-inspectors) (make-parameter (seteq) #f 'current-arm-inspectors))
(define-values (deserialize-tamper) (lambda (t_6) (begin (if (eq? t_6 'armed) (current-arm-inspectors) t_6))))
(define-values
(struct:modified-content
modified-content1.1
modified-content?
modified-content-content
modified-content-scope-propagations+tamper)
(let-values (((struct:_7 make-_7 ?_7 -ref_7 -set!_7)
(let-values ()
(let-values ()
(make-struct-type
'modified-content
#f
2
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1)
#f
'modified-content)))))
(values
struct:_7
make-_7
?_7
(make-struct-field-accessor -ref_7 0 'content)
(make-struct-field-accessor -ref_7 1 'scope-propagations+tamper))))
(define-values
(struct:syntax
syntax2.1
syntax?$1
syntax-content*
syntax-scopes
syntax-shifted-multi-scopes
syntax-mpi-shifts
syntax-srcloc
syntax-props
syntax-inspector
set-syntax-content*!)
(let-values (((struct:_8 make-_8 ?_8 -ref_8 -set!_8)
(let-values ()
(let-values ()
(make-struct-type
'syntax
#f
7
0
#f
(list
(cons prop:authentic #t)
(cons
prop:reach-scopes
(lambda (s_51 reach_0)
(let-values (((content*_0) (syntax-content* s_51)))
(begin
(reach_0
(if (modified-content? content*_0)
(let-values (((prop_0) (modified-content-scope-propagations+tamper content*_0)))
(if (propagation?$1 prop_0)
((propagation-ref prop_0) s_51)
(modified-content-content content*_0)))
content*_0))
(reach_0 (syntax-scopes s_51))
(reach_0 (syntax-shifted-multi-scopes s_51))
(let-values (((ht_32) (syntax-props s_51)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_32)))
((letrec-values (((for-loop_35)
(lambda (i_51)
(begin
'for-loop
(if i_51
(let-values (((k_18 v_62)
(unsafe-immutable-hash-iterate-key+value
ht_32
i_51)))
(let-values ((()
(let-values ()
(if (preserved-property-value? v_62)
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(reach_0
(plain-property-value
v_62)))
(values)))))
(values)))
(values)))))
(if (not #f)
(for-loop_35
(unsafe-immutable-hash-iterate-next ht_32 i_51))
(values))))
(values))))))
for-loop_35)
(unsafe-immutable-hash-iterate-first ht_32))))
(void)
(reach_0 (syntax-srcloc s_51))))))
(cons
prop:serialize
(lambda (s_52 ser-push!_1 state_10)
(let-values (((content*_1) (syntax-content* s_52)))
(let-values (((content_0)
(if (modified-content? content*_1)
(let-values (((prop_1)
(modified-content-scope-propagations+tamper content*_1)))
(if (propagation?$1 prop_1)
((propagation-ref prop_1) s_52)
(modified-content-content content*_1)))
content*_1)))
(let-values (((properties_0)
(intern-properties
(syntax-props s_52)
(lambda ()
(let-values (((ht_18) (syntax-props s_52)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_18)))
((letrec-values (((for-loop_4)
(lambda (table_27 i_23)
(begin
'for-loop
(if i_23
(let-values (((k_2 v_63)
(hash-iterate-key+value
ht_18
i_23)))
(let-values (((table_28)
(let-values (((table_29)
table_27))
(if (preserved-property-value?
v_63)
(let-values (((table_30)
table_29))
(let-values (((table_31)
(let-values ()
(let-values (((key_18
val_7)
(let-values ()
(values
k_2
(check-value-to-preserve
(plain-property-value
v_63)
syntax?$1)))))
(hash-set
table_30
key_18
val_7)))))
(values table_31)))
table_29))))
(if (not #f)
(for-loop_4
table_28
(hash-iterate-next ht_18 i_23))
table_28)))
table_27)))))
for-loop_4)
'#hasheq()
(hash-iterate-first ht_18)))))
state_10)))
(let-values (((tamper_0) (serialize-tamper (syntax-tamper s_52))))
(let-values (((context-triple_0)
(intern-context-triple
(intern-scopes (syntax-scopes s_52) state_10)
(intern-shifted-multi-scopes
(syntax-shifted-multi-scopes s_52)
state_10)
(intern-mpi-shifts (syntax-mpi-shifts s_52) state_10)
state_10)))
(let-values (((stx-state_0) (get-syntax-context state_10)))
(if (let-values (((or-part_86) properties_0)) (if or-part_86 or-part_86 tamper_0))
(let-values ()
(begin
(ser-push!_1 'tag '#:syntax+props)
(push-syntax-context! state_10 #f)
(ser-push!_1 content_0)
(pop-syntax-context! state_10)
(ser-push!_1 'reference context-triple_0)
(ser-push!_1 'reference (syntax-srcloc s_52))
(ser-push!_1 properties_0)
(ser-push!_1 tamper_0)
(if stx-state_0
(let-values () (set-syntax-state-all-sharing?! stx-state_0 #f))
(void))))
(let-values ()
(let-values (((sharing-mode_0)
(hash-ref
(serialize-state-sharing-syntaxes state_10)
s_52
'unknown)))
(begin
(if (eq? sharing-mode_0 'share)
(let-values ()
(begin
(ser-push!_1 'tag '#:datum->syntax)
(ser-push!_1 (syntax->datum$1 s_52))))
(if (eq? sharing-mode_0 'unknown)
(let-values ()
(let-values ((() (begin (ser-push!_1 'tag '#:syntax) (values))))
(let-values (((this-state_0)
(if (no-pair-syntax-in-cdr? content_0)
(syntax-state17.1
#t
context-triple_0
(syntax-srcloc s_52))
#f)))
(let-values ((()
(begin
(push-syntax-context! state_10 this-state_0)
(values))))
(let-values ((() (begin (ser-push!_1 content_0) (values))))
(let-values ((()
(begin
(pop-syntax-context! state_10)
(values))))
(let-values (((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_10)
s_52
(if (datum-has-elements? content_0)
new-sharing-mode_0
'none))
(if (if stx-state_0 (eq? new-sharing-mode_0 'none) #f)
(let-values ()
(set-syntax-state-all-sharing?! stx-state_0 #f))
(void))))))))))
(let-values ()
(begin
(ser-push!_1 'tag '#:syntax)
(push-syntax-context! state_10 #f)
(ser-push!_1 content_0)
(pop-syntax-context! state_10)))))
(ser-push!_1 'reference context-triple_0)
(ser-push!_1 'reference (syntax-srcloc s_52))
(if stx-state_0
(let-values ()
(if (if (eq?
context-triple_0
(syntax-state-context-triple stx-state_0))
(equal? (syntax-srcloc s_52) (syntax-state-srcloc stx-state_0))
#f)
(void)
(let-values () (set-syntax-state-all-sharing?! stx-state_0 #f))))
(void))))))))))))))
(cons
prop:custom-write
(lambda (s_53 port_2 mode_5)
(let-values ((() (begin (write-string "#<syntax" port_2) (values))))
(let-values (((srcloc_0) (syntax-srcloc s_53)))
(begin
(if srcloc_0
(let-values ()
(let-values (((srcloc-str_0) (srcloc->string srcloc_0)))
(if srcloc-str_0 (let-values () (fprintf port_2 ":~a" srcloc-str_0)) (void))))
(void))
(fprintf port_2 " ~.s" (syntax->datum$1 s_53))
(write-string ">" port_2)))))))
(current-inspector)
#f
'(1 2 3 4 5 6)
#f
'syntax)))))
(values
struct:_8
make-_8
?_8
(make-struct-field-accessor -ref_8 0 'content*)
(make-struct-field-accessor -ref_8 1 'scopes)
(make-struct-field-accessor -ref_8 2 'shifted-multi-scopes)
(make-struct-field-accessor -ref_8 3 'mpi-shifts)
(make-struct-field-accessor -ref_8 4 'srcloc)
(make-struct-field-accessor -ref_8 5 'props)
(make-struct-field-accessor -ref_8 6 'inspector)
(make-struct-field-mutator -set!_8 0 'content*))))
(define-values (prop:propagation propagation?$1 propagation-ref) (make-struct-type-property 'propagation))
(define-values
(prop:propagation-tamper propagation-tamper? propagation-tamper-ref)
(make-struct-type-property 'propagation-tamper))
(define-values
(prop:propagation-set-tamper propagation-set-tamper? propagation-set-tamper-ref)
(make-struct-type-property 'propagation-set-tamper))
(define-values
(syntax-content)
(lambda (s_54)
(begin
(let-values (((content*_2) (syntax-content* s_54)))
(if (modified-content? content*_2) (modified-content-content content*_2) content*_2)))))
(define-values
(syntax-tamper)
(lambda (s_55)
(begin
(let-values (((content*_3) (syntax-content* s_55)))
(if (modified-content? content*_3)
(let-values ()
(let-values (((v_64) (modified-content-scope-propagations+tamper content*_3)))
(if (tamper? v_64) v_64 ((propagation-tamper-ref v_64) v_64))))
(let-values () #f))))))
(define-values (syntax-content*-cas!) (lambda (stx_0 old_0 new_1) (begin (unsafe-struct*-cas! stx_0 0 old_0 new_1))))
(define-values
(re-modify-content)
(lambda (s_38 d_1)
(begin
(let-values (((content*_4) (syntax-content* s_38)))
(if (modified-content? content*_4)
(modified-content1.1 d_1 (modified-content-scope-propagations+tamper content*_4))
d_1)))))
(define-values (empty-scopes) (seteq))
(define-values (empty-shifted-multi-scopes) (seteq))
(define-values (empty-mpi-shifts) null)
(define-values (empty-props) '#hasheq())
(define-values
(empty-syntax)
(syntax2.1 #f empty-scopes empty-shifted-multi-scopes empty-mpi-shifts #f empty-props #f))
(define-values (identifier?) (lambda (s_56) (begin (if (syntax?$1 s_56) (symbol? (syntax-content s_56)) #f))))
(define-values (syntax-identifier?) (lambda (s_57) (begin (symbol? (syntax-content s_57)))))
(define-values
(syntax->datum$1)
(lambda (s_58)
(begin
'syntax->datum
(let-values (((s_59) s_58)
((f_22) (lambda (tail?_6 x_21) (begin 'f x_21)))
((d->s_0) (lambda (s_60 d_2) (begin 'd->s d_2)))
((s-e_0) syntax-content)
((seen_3) #f))
((letrec-values (((loop_65)
(lambda (s_61)
(begin
'loop
(let-values (((s_62) s_61)
((f_23) f_22)
((gf_1)
(lambda (tail?_7 v_65)
(begin
'gf
(if (syntax?$1 v_65)
(let-values () (d->s_0 v_65 (loop_65 (s-e_0 v_65))))
(let-values () (f_22 tail?_7 v_65))))))
((seen_4) seen_3)
((known-pairs_2) #f))
((letrec-values (((loop_66)
(lambda (tail?_8 s_63 prev-depth_1)
(begin
'loop
(let-values (((depth_1) (fx+ 1 prev-depth_1)))
(if (if seen_4 (fx> depth_1 32) #f)
(let-values ()
(datum-map-slow
tail?_8
s_63
(lambda (tail?_9 s_64) (gf_1 tail?_9 s_64))
seen_4
known-pairs_2))
(if (null? s_63)
(let-values () (f_23 tail?_8 s_63))
(if (pair? s_63)
(let-values ()
(f_23
tail?_8
(cons
(loop_66 #f (car s_63) depth_1)
(loop_66 1 (cdr s_63) depth_1))))
(if (symbol? s_63)
(let-values () (f_23 #f s_63))
(if (boolean? s_63)
(let-values () (f_23 #f s_63))
(if (number? s_63)
(let-values () (f_23 #f s_63))
(if (let-values (((or-part_87) (vector? s_63)))
(if or-part_87
or-part_87
(let-values (((or-part_88) (box? s_63)))
(if or-part_88
or-part_88
(let-values (((or-part_89)
(prefab-struct-key s_63)))
(if or-part_89
or-part_89
(hash? s_63)))))))
(let-values ()
(datum-map-slow
tail?_8
s_63
(lambda (tail?_10 s_65) (gf_1 tail?_10 s_65))
seen_4
known-pairs_2))
(let-values () (gf_1 #f s_63))))))))))))))
loop_66)
#f
s_62
0))))))
loop_65)
s_59)))))
(define-values (cell.1$7) (unsafe-make-place-local (make-weak-hasheq)))
(define-values
(immediate-datum->syntax)
(lambda (stx-c_0 content_1 stx-l_0 props_0 insp_0)
(begin
(syntax2.1
(if (if stx-c_0 (syntax-tamper stx-c_0) #f)
(modified-content1.1 content_1 (tamper-tainted-for-content content_1))
content_1)
(if stx-c_0 (syntax-scopes stx-c_0) empty-scopes)
(if stx-c_0 (syntax-shifted-multi-scopes stx-c_0) empty-shifted-multi-scopes)
(if stx-c_0 (syntax-mpi-shifts stx-c_0) empty-mpi-shifts)
(if stx-l_0 (syntax-srcloc stx-l_0) #f)
props_0
(if insp_0
(if stx-c_0
(let-values (((a_21) insp_0) ((b_19) (syntax-inspector stx-c_0)))
(if (eq? a_21 b_19)
(let-values () a_21)
(if (not a_21)
(let-values () #f)
(if (not b_19)
(let-values () #f)
(if (inspector-superior? a_21 b_19)
(let-values () b_19)
(if (inspector-superior? b_19 a_21) (let-values () a_21) (let-values () #f)))))))
#f)
#f)))))
(define-values
(datum->syntax$1)
(let-values (((datum->syntax_0)
(lambda (stx-c5_0 s6_0 stx-l3_0 stx-p4_0)
(begin
'datum->syntax
(let-values (((stx-c_1) stx-c5_0))
(let-values (((s_66) s6_0))
(let-values (((stx-l_1) stx-l3_0))
(let-values (((stx-p_0) stx-p4_0))
(let-values ()
(if (syntax?$1 s_66)
(let-values () s_66)
(let-values ()
(let-values (((insp_1)
(if (syntax?$1 s_66) 'not-needed (current-module-code-inspector))))
(let-values (((wrap_0)
(lambda (content_2)
(begin
'wrap
(let-values (((content_3) (datum-intern-literal content_2)))
(immediate-datum->syntax
stx-c_1
content_3
stx-l_1
empty-props
insp_1))))))
(let-values (((result-s_0)
(let-values (((s_67) s_66)
((f_24)
(lambda (tail?_11 x_22)
(begin
'f
(if tail?_11
(let-values ()
(begin
(if (if (fx> tail?_11 32)
(fx=
0
(fxand tail?_11 (fx- tail?_11 1)))
#f)
(let-values ()
(hash-set!
(unsafe-place-local-ref cell.1$7)
x_22
#t))
(void))
x_22))
(let-values () (wrap_0 x_22))))))
((s->_0) (lambda (s_43) (begin 's-> s_43)))
((seen_5) disallow-cycles)
((known-pairs_3) (unsafe-place-local-ref cell.1$7)))
(let-values (((s_68) s_67)
((f_25) f_24)
((gf_2)
(lambda (tail?_12 v_66)
(begin
'gf
(if (syntax?$1 v_66)
(let-values () (s->_0 v_66))
(let-values () (f_24 tail?_12 v_66))))))
((seen_6) seen_5)
((known-pairs_4) known-pairs_3))
((letrec-values (((loop_67)
(lambda (tail?_13 s_69 prev-depth_2)
(begin
'loop
(let-values (((depth_2)
(fx+ 1 prev-depth_2)))
(if (if seen_6 (fx> depth_2 32) #f)
(let-values ()
(datum-map-slow
tail?_13
s_69
(lambda (tail?_14 s_44)
(gf_2 tail?_14 s_44))
seen_6
known-pairs_4))
(if (null? s_69)
(let-values () (f_25 tail?_13 s_69))
(if (pair? s_69)
(let-values ()
(f_25
tail?_13
(cons
(loop_67
#f
(car s_69)
depth_2)
(loop_67
1
(cdr s_69)
depth_2))))
(if (symbol? s_69)
(let-values () (f_25 #f s_69))
(if (boolean? s_69)
(let-values () (f_25 #f s_69))
(if (number? s_69)
(let-values ()
(f_25 #f s_69))
(if (let-values (((or-part_90)
(vector?
s_69)))
(if or-part_90
or-part_90
(let-values (((or-part_91)
(box?
s_69)))
(if or-part_91
or-part_91
(let-values (((or-part_92)
(prefab-struct-key
s_69)))
(if or-part_92
or-part_92
(hash?
s_69)))))))
(let-values ()
(datum-map-slow
tail?_13
s_69
(lambda (tail?_15 s_70)
(gf_2 tail?_15 s_70))
seen_6
known-pairs_4))
(let-values ()
(gf_2
#f
s_69))))))))))))))
loop_67)
#f
s_68
0)))))
(if (if stx-p_0 (not (eq? (syntax-props stx-p_0) empty-props)) #f)
(let-values (((the-struct_0) result-s_0))
(if (syntax?$1 the-struct_0)
(let-values (((props20_0) (syntax-props stx-p_0)))
(syntax2.1
(syntax-content* the-struct_0)
(syntax-scopes the-struct_0)
(syntax-shifted-multi-scopes the-struct_0)
(syntax-mpi-shifts the-struct_0)
(syntax-srcloc the-struct_0)
props20_0
(syntax-inspector the-struct_0)))
(raise-argument-error 'struct-copy "syntax?" the-struct_0)))
result-s_0)))))))))))))))
(case-lambda
((stx-c_2 s_71) (begin 'datum->syntax (datum->syntax_0 stx-c_2 s_71 #f #f)))
((stx-c_3 s_72 stx-l_2 stx-p4_1) (datum->syntax_0 stx-c_3 s_72 stx-l_2 stx-p4_1))
((stx-c_4 s_73 stx-l3_1) (datum->syntax_0 stx-c_4 s_73 stx-l3_1 #f)))))
(define-values
(disallow-cycles)
(hasheq
'cycle-fail
(lambda (s_74) (raise-arguments-error 'datum->syntax "cannot create syntax from cyclic datum" "datum" s_74))))
(define-values (syntax-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$7 (make-weak-hasheq)))))
(define-values
(struct:syntax-state
syntax-state17.1
syntax-state?
syntax-state-all-sharing?
syntax-state-context-triple
syntax-state-srcloc
set-syntax-state-all-sharing?!)
(let-values (((struct:_9 make-_9 ?_9 -ref_9 -set!_9)
(let-values ()
(let-values ()
(make-struct-type
'syntax-state
#f
3
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(1 2)
#f
'syntax-state)))))
(values
struct:_9
make-_9
?_9
(make-struct-field-accessor -ref_9 0 'all-sharing?)
(make-struct-field-accessor -ref_9 1 'context-triple)
(make-struct-field-accessor -ref_9 2 'srcloc)
(make-struct-field-mutator -set!_9 0 'all-sharing?))))
(define-values
(no-pair-syntax-in-cdr?)
(lambda (content_4)
(begin
(if (pair? content_4)
(let-values ()
((letrec-values (((loop_68)
(lambda (content_5)
(begin
'loop
(if (if (syntax?$1 content_5) (pair? (syntax-content content_5)) #f)
(let-values () #f)
(if (pair? content_5)
(let-values () (loop_68 (cdr content_5)))
(let-values () #t)))))))
loop_68)
(cdr content_4)))
(let-values () #t)))))
(define-values
(deserialize-syntax)
(lambda (content_6 context-triple_1 srcloc_1 props_1 tamper_1 inspector_0)
(begin
(syntax2.1
(let-values (((t_7) (deserialize-tamper tamper_1))) (if t_7 (modified-content1.1 content_6 t_7) content_6))
(vector*-ref context-triple_1 0)
(vector*-ref context-triple_1 1)
(vector*-ref context-triple_1 2)
srcloc_1
(if props_1
(let-values (((ht_33) props_1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_33)))
((letrec-values (((for-loop_36)
(lambda (table_32 i_52)
(begin
'for-loop
(if i_52
(let-values (((k_19 v_67) (unsafe-immutable-hash-iterate-key+value ht_33 i_52)))
(let-values (((table_33)
(let-values (((table_34) table_32))
(let-values (((table_35)
(let-values ()
(let-values (((key_19 val_8)
(let-values ()
(values
k_19
(preserved-property-value1.1
v_67)))))
(hash-set table_34 key_19 val_8)))))
(values table_35)))))
(if (not #f)
(for-loop_36 table_33 (unsafe-immutable-hash-iterate-next ht_33 i_52))
table_33)))
table_32)))))
for-loop_36)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_33))))
empty-props)
inspector_0))))
(define-values
(deserialize-datum->syntax)
(lambda (content_7 context-triple_2 srcloc_2 inspector_1)
(begin
(let-values (((s_75) (deserialize-syntax #f context-triple_2 srcloc_2 #f #f inspector_1)))
(datum->syntax$1 s_75 content_7 s_75 s_75)))))
(define-values
(struct:full-binding full-binding1.1 full-binding? full-binding-frame-id full-binding-free=id)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'full-binding
#f
2
0
#f
(list
(cons prop:authentic #t)
(cons prop:binding-reach-scopes (lambda (b_20) (binding-free=id b_20))))
(current-inspector)
#f
'(0 1)
#f
'full-binding)))))
(values
struct:_2
make-_2
?_2
(make-struct-field-accessor -ref_2 0 'frame-id)
(make-struct-field-accessor -ref_2 1 'free=id))))
(define-values (binding-frame-id) (lambda (b_16) (begin (if (full-binding? b_16) (full-binding-frame-id b_16) #f))))
(define-values (binding-free=id) (lambda (b_21) (begin (if (full-binding? b_21) (full-binding-free=id b_21) #f))))
(define-values
(make-module-binding.1)
(lambda (extra-inspector7_0
extra-nominal-bindings8_0
frame-id5_0
free=id6_0
nominal-module1_0
nominal-phase2_0
nominal-require-phase4_0
nominal-sym3_0
module17_0
phase18_0
sym19_0)
(begin
'make-module-binding
(let-values (((module_0) module17_0))
(let-values (((phase_0) phase18_0))
(let-values (((sym_0) sym19_0))
(let-values (((nominal-module_0) (if (eq? nominal-module1_0 unsafe-undefined) module_0 nominal-module1_0)))
(let-values (((nominal-phase_0) (if (eq? nominal-phase2_0 unsafe-undefined) phase_0 nominal-phase2_0)))
(let-values (((nominal-sym_0) (if (eq? nominal-sym3_0 unsafe-undefined) sym_0 nominal-sym3_0)))
(let-values (((nominal-require-phase_0) nominal-require-phase4_0))
(let-values (((frame-id_0) frame-id5_0))
(let-values (((free=id_0) free=id6_0))
(let-values (((extra-inspector_0) extra-inspector7_0))
(let-values (((extra-nominal-bindings_0) extra-nominal-bindings8_0))
(let-values ()
(if (let-values (((or-part_79) frame-id_0))
(if or-part_79
or-part_79
(let-values (((or-part_80) free=id_0))
(if or-part_80
or-part_80
(let-values (((or-part_81) extra-inspector_0))
(if or-part_81
or-part_81
(not
(if (eqv? nominal-phase_0 phase_0)
(if (eq? nominal-sym_0 sym_0)
(if (eqv? nominal-require-phase_0 0)
(null? extra-nominal-bindings_0)
#f)
#f)
#f))))))))
(let-values ()
(full-module-binding45.1
frame-id_0
free=id_0
module_0
phase_0
sym_0
nominal-module_0
nominal-phase_0
nominal-sym_0
nominal-require-phase_0
extra-inspector_0
extra-nominal-bindings_0))
(let-values ()
(simple-module-binding46.1 module_0 phase_0 sym_0 nominal-module_0))))))))))))))))))
(define-values
(module-binding-update.1)
(lambda (extra-inspector30_0
extra-nominal-bindings31_0
frame-id28_0
free=id29_0
module21_0
nominal-module24_0
nominal-phase25_0
nominal-require-phase27_0
nominal-sym26_0
phase22_0
sym23_0
b43_0)
(begin
'module-binding-update
(let-values (((b_8) b43_0))
(let-values (((module_1) (if (eq? module21_0 unsafe-undefined) (module-binding-module b_8) module21_0)))
(let-values (((phase_1) (if (eq? phase22_0 unsafe-undefined) (module-binding-phase b_8) phase22_0)))
(let-values (((sym_1) (if (eq? sym23_0 unsafe-undefined) (module-binding-sym b_8) sym23_0)))
(let-values (((nominal-module_1)
(if (eq? nominal-module24_0 unsafe-undefined)
(module-binding-nominal-module b_8)
nominal-module24_0)))
(let-values (((nominal-phase_1)
(if (eq? nominal-phase25_0 unsafe-undefined)
(module-binding-nominal-phase b_8)
nominal-phase25_0)))
(let-values (((nominal-sym_1)
(if (eq? nominal-sym26_0 unsafe-undefined)
(module-binding-nominal-sym b_8)
nominal-sym26_0)))
(let-values (((nominal-require-phase_1)
(if (eq? nominal-require-phase27_0 unsafe-undefined)
(module-binding-nominal-require-phase b_8)
nominal-require-phase27_0)))
(let-values (((frame-id_1)
(if (eq? frame-id28_0 unsafe-undefined) (binding-frame-id b_8) frame-id28_0)))
(let-values (((free=id_1)
(if (eq? free=id29_0 unsafe-undefined) (binding-free=id b_8) free=id29_0)))
(let-values (((extra-inspector_1)
(if (eq? extra-inspector30_0 unsafe-undefined)
(module-binding-extra-inspector b_8)
extra-inspector30_0)))
(let-values (((extra-nominal-bindings_1)
(if (eq? extra-nominal-bindings31_0 unsafe-undefined)
(module-binding-extra-nominal-bindings b_8)
extra-nominal-bindings31_0)))
(let-values ()
(let-values (((module47_0) module_1)
((phase48_0) phase_1)
((sym49_0) sym_1)
((nominal-module50_0) nominal-module_1)
((nominal-phase51_0) nominal-phase_1)
((nominal-sym52_0) nominal-sym_1)
((nominal-require-phase53_0) nominal-require-phase_1)
((frame-id54_0) frame-id_1)
((free=id55_0) free=id_1)
((extra-inspector56_0) extra-inspector_1)
((extra-nominal-bindings57_0) extra-nominal-bindings_1))
(make-module-binding.1
extra-inspector56_0
extra-nominal-bindings57_0
frame-id54_0
free=id55_0
nominal-module50_0
nominal-phase51_0
nominal-require-phase53_0
nominal-sym52_0
module47_0
phase48_0
sym49_0))))))))))))))))))
(define-values
(module-binding?)
(lambda (b_22)
(begin
(let-values (((or-part_93) (simple-module-binding? b_22)))
(if or-part_93 or-part_93 (full-module-binding? b_22))))))
(define-values
(struct:full-module-binding
full-module-binding45.1
full-module-binding?
full-module-binding-module
full-module-binding-phase
full-module-binding-sym
full-module-binding-nominal-module
full-module-binding-nominal-phase
full-module-binding-nominal-sym
full-module-binding-nominal-require-phase
full-module-binding-extra-inspector
full-module-binding-extra-nominal-bindings)
(let-values (((struct:_10 make-_10 ?_10 -ref_10 -set!_10)
(let-values ()
(let-values ()
(make-struct-type
'full-module-binding
struct:full-binding
9
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (b_23 ser-push!_2 state_11)
(let-values (((simplified-b_0)
(if (full-binding-frame-id b_23)
(let-values (((b59_0) b_23) ((temp60_0) #f))
(module-binding-update.1
unsafe-undefined
unsafe-undefined
temp60_0
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
b59_0))
b_23)))
(if (full-module-binding? simplified-b_0)
(let-values ()
(begin
(ser-push!_2 'tag '#:module-binding)
(ser-push!_2 (full-module-binding-module b_23))
(ser-push!_2 (full-module-binding-sym b_23))
(ser-push!_2 (full-module-binding-phase b_23))
(ser-push!_2 (full-module-binding-nominal-module b_23))
(ser-push!_2 (full-module-binding-nominal-phase b_23))
(ser-push!_2 (full-module-binding-nominal-sym b_23))
(ser-push!_2 (full-module-binding-nominal-require-phase b_23))
(ser-push!_2 (full-binding-free=id b_23))
(if (full-module-binding-extra-inspector b_23)
(ser-push!_2 'tag '#:inspector)
(ser-push!_2 #f))
(ser-push!_2 (full-module-binding-extra-nominal-bindings b_23))))
(let-values () (ser-push!_2 simplified-b_0)))))))
#f
#f
'(0 1 2 3 4 5 6 7 8)
#f
'full-module-binding)))))
(values
struct:_10
make-_10
?_10
(make-struct-field-accessor -ref_10 0 'module)
(make-struct-field-accessor -ref_10 1 'phase)
(make-struct-field-accessor -ref_10 2 'sym)
(make-struct-field-accessor -ref_10 3 'nominal-module)
(make-struct-field-accessor -ref_10 4 'nominal-phase)
(make-struct-field-accessor -ref_10 5 'nominal-sym)
(make-struct-field-accessor -ref_10 6 'nominal-require-phase)
(make-struct-field-accessor -ref_10 7 'extra-inspector)
(make-struct-field-accessor -ref_10 8 'extra-nominal-bindings))))
(define-values
(struct:simple-module-binding
simple-module-binding46.1
simple-module-binding?
simple-module-binding-module
simple-module-binding-phase
simple-module-binding-sym
simple-module-binding-nominal-module)
(let-values (((struct:_11 make-_11 ?_11 -ref_11 -set!_11)
(let-values ()
(let-values ()
(make-struct-type
'simple-module-binding
#f
4
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (b_24 ser-push!_3 state_12)
(begin
(ser-push!_3 'tag '#:simple-module-binding)
(ser-push!_3 (simple-module-binding-module b_24))
(ser-push!_3 (simple-module-binding-sym b_24))
(ser-push!_3 (simple-module-binding-phase b_24))
(ser-push!_3 (simple-module-binding-nominal-module b_24))))))
#f
#f
'(0 1 2 3)
#f
'simple-module-binding)))))
(values
struct:_11
make-_11
?_11
(make-struct-field-accessor -ref_11 0 'module)
(make-struct-field-accessor -ref_11 1 'phase)
(make-struct-field-accessor -ref_11 2 'sym)
(make-struct-field-accessor -ref_11 3 'nominal-module))))
(define-values
(deserialize-full-module-binding)
(lambda (module_2
sym_2
phase_2
nominal-module_2
nominal-phase_2
nominal-sym_2
nominal-require-phase_2
free=id_2
extra-inspector_2
extra-nominal-bindings_2)
(begin
(let-values (((module62_0) module_2)
((phase63_0) phase_2)
((sym64_0) sym_2)
((nominal-module65_0) nominal-module_2)
((nominal-phase66_0) nominal-phase_2)
((nominal-sym67_0) nominal-sym_2)
((nominal-require-phase68_0) nominal-require-phase_2)
((free=id69_0) free=id_2)
((extra-inspector70_0) extra-inspector_2)
((extra-nominal-bindings71_0) extra-nominal-bindings_2))
(make-module-binding.1
extra-inspector70_0
extra-nominal-bindings71_0
#f
free=id69_0
nominal-module65_0
nominal-phase66_0
nominal-require-phase68_0
nominal-sym67_0
module62_0
phase63_0
sym64_0)))))
(define-values
(deserialize-simple-module-binding)
(lambda (module_3 sym_3 phase_3 nominal-module_3)
(begin (simple-module-binding46.1 module_3 phase_3 sym_3 nominal-module_3))))
(define-values
(module-binding-module)
(lambda (b_25)
(begin (if (simple-module-binding? b_25) (simple-module-binding-module b_25) (full-module-binding-module b_25)))))
(define-values
(module-binding-phase)
(lambda (b_26)
(begin (if (simple-module-binding? b_26) (simple-module-binding-phase b_26) (full-module-binding-phase b_26)))))
(define-values
(module-binding-sym)
(lambda (b_27)
(begin (if (simple-module-binding? b_27) (simple-module-binding-sym b_27) (full-module-binding-sym b_27)))))
(define-values
(module-binding-nominal-module)
(lambda (b_28)
(begin
(if (simple-module-binding? b_28)
(simple-module-binding-nominal-module b_28)
(full-module-binding-nominal-module b_28)))))
(define-values
(module-binding-nominal-phase)
(lambda (b_29)
(begin
(if (simple-module-binding? b_29) (simple-module-binding-phase b_29) (full-module-binding-nominal-phase b_29)))))
(define-values
(module-binding-nominal-sym)
(lambda (b_30)
(begin (if (simple-module-binding? b_30) (simple-module-binding-sym b_30) (full-module-binding-nominal-sym b_30)))))
(define-values
(module-binding-nominal-require-phase)
(lambda (b_31) (begin (if (simple-module-binding? b_31) 0 (full-module-binding-nominal-require-phase b_31)))))
(define-values
(module-binding-extra-inspector)
(lambda (b_32) (begin (if (simple-module-binding? b_32) #f (full-module-binding-extra-inspector b_32)))))
(define-values
(module-binding-extra-nominal-bindings)
(lambda (b_33) (begin (if (simple-module-binding? b_33) null (full-module-binding-extra-nominal-bindings b_33)))))
(define-values (empty-binding-table) '#hasheq())
(define-values
(struct:table-with-bulk-bindings
table-with-bulk-bindings1.1
table-with-bulk-bindings?
table-with-bulk-bindings-syms
table-with-bulk-bindings-syms/serialize
table-with-bulk-bindings-bulk-bindings)
(let-values (((struct:_12 make-_12 ?_12 -ref_12 -set!_12)
(let-values ()
(let-values ()
(make-struct-type
'table-with-bulk-bindings
#f
3
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (twbb_0 ser-push!_4 state_13)
(begin
(ser-push!_4 'tag '#:table-with-bulk-bindings)
(ser-push!_4 (table-with-bulk-bindings-syms/serialize twbb_0))
(ser-push!_4 (table-with-bulk-bindings-bulk-bindings twbb_0))))))
(current-inspector)
#f
'(0 1 2)
#f
'table-with-bulk-bindings)))))
(values
struct:_12
make-_12
?_12
(make-struct-field-accessor -ref_12 0 'syms)
(make-struct-field-accessor -ref_12 1 'syms/serialize)
(make-struct-field-accessor -ref_12 2 'bulk-bindings))))
(define-values
(deserialize-table-with-bulk-bindings)
(lambda (syms_1 bulk-bindings_0) (begin (table-with-bulk-bindings1.1 syms_1 syms_1 bulk-bindings_0))))
(define-values
(struct:bulk-binding-at bulk-binding-at2.1 bulk-binding-at? bulk-binding-at-scopes bulk-binding-at-bulk)
(let-values (((struct:_13 make-_13 ?_13 -ref_13 -set!_13)
(let-values ()
(let-values ()
(make-struct-type
'bulk-binding-at
#f
2
0
#f
(list
(cons prop:authentic #t)
(cons prop:reach-scopes (lambda (sms_2 reach_1) (error "shouldn't get here")))
(cons
prop:serialize
(lambda (bba_0 ser-push!_5 state_14)
(begin
(ser-push!_5 'tag '#:bulk-binding-at)
(ser-push!_5 (bulk-binding-at-scopes bba_0))
(ser-push!_5 (bulk-binding-at-bulk bba_0))))))
(current-inspector)
#f
'(0 1)
#f
'bulk-binding-at)))))
(values
struct:_13
make-_13
?_13
(make-struct-field-accessor -ref_13 0 'scopes)
(make-struct-field-accessor -ref_13 1 'bulk))))
(define-values (deserialize-bulk-binding-at) (lambda (scopes_0 bulk_0) (begin (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-values
(struct:bulk-binding-class
bulk-binding-class3.1
bulk-binding-class?
bulk-binding-class-get-symbols
bulk-binding-class-create)
(let-values (((struct:_14 make-_14 ?_14 -ref_14 -set!_14)
(let-values ()
(let-values ()
(make-struct-type
'bulk-binding-class
#f
2
0
#f
null
(current-inspector)
#f
'(0 1)
#f
'bulk-binding-class)))))
(values
struct:_14
make-_14
?_14
(make-struct-field-accessor -ref_14 0 'get-symbols)
(make-struct-field-accessor -ref_14 1 'create))))
(define-values
(bulk-binding-symbols)
(lambda (b_34 s_76 extra-shifts_0)
(begin
((bulk-binding-class-get-symbols (bulk-binding-ref b_34))
b_34
(append extra-shifts_0 (if s_76 (syntax-mpi-shifts s_76) null))))))
(define-values (bulk-binding-create) (lambda (b_35) (begin (bulk-binding-class-create (bulk-binding-ref b_35)))))
(define-values (binding-table-empty?) (lambda (bt_0) (begin (if (hash? bt_0) (zero? (hash-count bt_0)) #f))))
(define-values
(binding-table-add)
(lambda (bt_1 scopes_1 sym_4 binding_0 just-for-nominal?_0)
(begin
(if (hash? bt_1)
(let-values () (hash-set bt_1 sym_4 (hash-set (hash-ref bt_1 sym_4 '#hash()) scopes_1 binding_0)))
(let-values ()
(let-values (((new-syms_0)
(binding-table-add
(table-with-bulk-bindings-syms bt_1)
scopes_1
sym_4
binding_0
just-for-nominal?_0)))
(let-values (((new-syms/serialize_0)
(if just-for-nominal?_0
(let-values () (table-with-bulk-bindings-syms/serialize bt_1))
(if (eq?
(table-with-bulk-bindings-syms bt_1)
(table-with-bulk-bindings-syms/serialize bt_1))
(let-values () new-syms_0)
(let-values ()
(binding-table-add
(table-with-bulk-bindings-syms/serialize bt_1)
scopes_1
sym_4
binding_0
#f))))))
(let-values (((the-struct_1) bt_1))
(if (table-with-bulk-bindings? the-struct_1)
(let-values (((syms26_0) new-syms_0) ((syms/serialize27_0) new-syms/serialize_0))
(table-with-bulk-bindings1.1
syms26_0
syms/serialize27_0
(table-with-bulk-bindings-bulk-bindings the-struct_1)))
(raise-argument-error 'struct-copy "table-with-bulk-bindings?" the-struct_1))))))))))
(define-values
(prop:implicitly-reachable implicitly-reachable? implicitly-reachable-ref)
(make-struct-type-property 'implicitly-reachable))
(define-values
(binding-table-add-bulk.1)
(lambda (shadow-except4_0 bt6_0 scopes7_0 bulk8_0)
(begin
'binding-table-add-bulk
(let-values (((bt_2) bt6_0))
(let-values (((scopes_2) scopes7_0))
(let-values (((bulk_1) bulk8_0))
(let-values (((shadow-except_0) shadow-except4_0))
(let-values ()
(if (table-with-bulk-bindings? bt_2)
(let-values ()
(let-values (((new-syms_1)
(let-values (((temp28_0) (table-with-bulk-bindings-syms bt_2))
((scopes29_0) scopes_2)
((bulk30_0) bulk_1)
((shadow-except31_0) shadow-except_0))
(remove-matching-bindings.1 shadow-except31_0 temp28_0 scopes29_0 bulk30_0))))
(let-values (((new-syms/serialize_1)
(if (eq?
(table-with-bulk-bindings-syms bt_2)
(table-with-bulk-bindings-syms/serialize bt_2))
new-syms_1
(let-values (((temp32_0) (table-with-bulk-bindings-syms/serialize bt_2))
((scopes33_0) scopes_2)
((bulk34_0) bulk_1)
((shadow-except35_0) shadow-except_0))
(remove-matching-bindings.1 shadow-except35_0 temp32_0 scopes33_0 bulk34_0)))))
(table-with-bulk-bindings1.1
new-syms_1
new-syms/serialize_1
(cons (bulk-binding-at2.1 scopes_2 bulk_1) (table-with-bulk-bindings-bulk-bindings bt_2))))))
(let-values ()
(let-values (((temp36_0) (table-with-bulk-bindings1.1 bt_2 bt_2 null))
((scopes37_0) scopes_2)
((bulk38_0) bulk_1))
(binding-table-add-bulk.1 #f temp36_0 scopes37_0 bulk38_0))))))))))))
(define-values
(remove-matching-bindings.1)
(lambda (except10_0 syms12_0 scopes13_0 bulk14_0)
(begin
'remove-matching-bindings
(let-values (((syms_2) syms12_0))
(let-values (((scopes_3) scopes13_0))
(let-values (((bulk_2) bulk14_0))
(let-values (((except_0) except10_0))
(let-values ()
(let-values (((bulk-symbols_0) (bulk-binding-symbols bulk_2 #f null)))
(if (< (hash-count syms_2) (hash-count bulk-symbols_0))
(let-values ()
(let-values (((ht_34) syms_2))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_34)))
((letrec-values (((for-loop_37)
(lambda (syms_3 i_53)
(begin
'for-loop
(if i_53
(let-values (((sym_5 sym-bindings_0)
(unsafe-immutable-hash-iterate-key+value ht_34 i_53)))
(let-values (((syms_4)
(let-values (((syms_5) syms_3))
(let-values (((syms_6)
(let-values ()
(if (hash-ref
bulk-symbols_0
sym_5
#f)
(let-values (((syms39_0) syms_5)
((sym40_0) sym_5)
((sym-bindings41_0)
sym-bindings_0)
((scopes42_0)
scopes_3)
((except43_0)
except_0))
(remove-matching-binding.1
except43_0
syms39_0
sym40_0
sym-bindings41_0
scopes42_0))
syms_5))))
(values syms_6)))))
(if (not #f)
(for-loop_37
syms_4
(unsafe-immutable-hash-iterate-next ht_34 i_53))
syms_4)))
syms_3)))))
for-loop_37)
syms_2
(unsafe-immutable-hash-iterate-first ht_34)))))
(let-values ()
(let-values (((ht_35) bulk-symbols_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_35)))
((letrec-values (((for-loop_38)
(lambda (syms_7 i_54)
(begin
'for-loop
(if i_54
(let-values (((sym_6) (unsafe-immutable-hash-iterate-key ht_35 i_54)))
(let-values (((syms_8)
(let-values (((syms_9) syms_7))
(let-values (((syms_10)
(let-values ()
(let-values (((sym-bindings_1)
(hash-ref
syms_9
sym_6
#f)))
(if sym-bindings_1
(let-values (((syms44_0) syms_9)
((sym45_0) sym_6)
((sym-bindings46_0)
sym-bindings_1)
((scopes47_0)
scopes_3)
((except48_0)
except_0))
(remove-matching-binding.1
except48_0
syms44_0
sym45_0
sym-bindings46_0
scopes47_0))
syms_9)))))
(values syms_10)))))
(if (not #f)
(for-loop_38
syms_8
(unsafe-immutable-hash-iterate-next ht_35 i_54))
syms_8)))
syms_7)))))
for-loop_38)
syms_2
(unsafe-immutable-hash-iterate-first ht_35)))))))))))))))
(define-values
(remove-matching-binding.1)
(lambda (except16_0 syms18_0 sym19_1 sym-bindings20_0 scopes21_0)
(begin
'remove-matching-binding
(let-values (((syms_11) syms18_0))
(let-values (((sym_7) sym19_1))
(let-values (((sym-bindings_2) sym-bindings20_0))
(let-values (((scopes_4) scopes21_0))
(let-values (((except_1) except16_0))
(let-values ()
(if (if except_1
(let-values (((b_36) (hash-ref sym-bindings_2 scopes_4 #f)))
(if (module-binding? b_36) (eq? except_1 (module-binding-module b_36)) #f))
#f)
(let-values () syms_11)
(let-values () (hash-set syms_11 sym_7 (hash-remove sym-bindings_2 scopes_4)))))))))))))
(define-values
(next-state-in-full-binding-table)
(lambda (sym-ht_0 sym-i_0)
(begin
(if sym-i_0
(let-values (((ht_36) (hash-iterate-value sym-ht_0 sym-i_0)))
(let-values (((i_55) (hash-iterate-first ht_36)))
(if i_55
(cons (vector sym-i_0 (hash-iterate-key sym-ht_0 sym-i_0) ht_36) i_55)
(next-state-in-full-binding-table sym-ht_0 (hash-iterate-next sym-ht_0 sym-i_0)))))
'(#f . #f)))))
(define-values
(binding-table-symbols)
(lambda (table_36 scs_2 s_69 extra-shifts_1)
(begin
(let-values (((ht_37 bulk-bindings_1)
(if (hash? table_36)
(values table_36 null)
(values
(table-with-bulk-bindings-syms table_36)
(table-with-bulk-bindings-bulk-bindings table_36)))))
(set-union
(let-values (((ht_38) ht_37))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_38)))
((letrec-values (((for-loop_39)
(lambda (table_37 i_56)
(begin
'for-loop
(if i_56
(let-values (((sym_8 at-sym_0) (hash-iterate-key+value ht_38 i_56)))
(let-values (((table_38)
(let-values (((table_39) table_37))
(if (let-values (((ht_39) at-sym_0))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values () (check-in-hash-keys ht_39)))
((letrec-values (((for-loop_40)
(lambda (result_30 i_57)
(begin
'for-loop
(if i_57
(let-values (((an-scs_0)
(hash-iterate-key
ht_39
i_57)))
(let-values (((result_31)
(let-values ()
(let-values (((result_32)
(let-values ()
(let-values ()
(subset?
an-scs_0
scs_2)))))
(values
result_32)))))
(if (if (not
((lambda x_23
result_31)
an-scs_0))
(not #f)
#f)
(for-loop_40
result_31
(hash-iterate-next
ht_39
i_57))
result_31)))
result_30)))))
for-loop_40)
#f
(hash-iterate-first ht_39))))
(let-values (((table_40) table_39))
(let-values (((table_41)
(let-values ()
(let-values (((key_20 val_9)
(let-values ()
(values
(let-values () sym_8)
#t))))
(hash-set table_40 key_20 val_9)))))
(values table_41)))
table_39))))
(if (not #f) (for-loop_39 table_38 (hash-iterate-next ht_38 i_56)) table_38)))
table_37)))))
for-loop_39)
'#hasheq()
(hash-iterate-first ht_38))))
(let-values (((lst_39) bulk-bindings_1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_39)))
((letrec-values (((for-loop_41)
(lambda (table_42 lst_40)
(begin
'for-loop
(if (pair? lst_40)
(let-values (((bba_1) (unsafe-car lst_40)) ((rest_16) (unsafe-cdr lst_40)))
(let-values (((table_43)
(let-values (((table_44) table_42))
(if (subset? (bulk-binding-at-scopes bba_1) scs_2)
(let-values (((ht_40)
(bulk-binding-symbols
(bulk-binding-at-bulk bba_1)
s_69
extra-shifts_1)))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values () (check-in-hash-keys ht_40)))
((letrec-values (((for-loop_42)
(lambda (table_45 i_58)
(begin
'for-loop
(if i_58
(let-values (((sym_9)
(hash-iterate-key
ht_40
i_58)))
(let-values (((table_46)
(let-values (((table_47)
table_45))
(let-values (((table_32)
(let-values ()
(let-values (((key_21
val_10)
(let-values ()
(values
(let-values ()
sym_9)
#t))))
(hash-set
table_47
key_21
val_10)))))
(values
table_32)))))
(if (not #f)
(for-loop_42
table_46
(hash-iterate-next
ht_40
i_58))
table_46)))
table_45)))))
for-loop_42)
table_44
(hash-iterate-first ht_40))))
table_44))))
(if (not #f) (for-loop_41 table_43 rest_16) table_43)))
table_42)))))
for-loop_41)
'#hasheq()
lst_39))))))))
(define-values
(binding-table-prune-to-reachable)
(lambda (bt_3 state_15)
(begin
(let-values (((or-part_94) (hash-ref (serialize-state-bindings-intern state_15) bt_3 #f)))
(if or-part_94
or-part_94
(let-values (((reachable-scopes_1) (serialize-state-reachable-scopes state_15)))
(let-values (((new-syms_2)
(let-values (((ht_41) (if (hash? bt_3) bt_3 (table-with-bulk-bindings-syms/serialize bt_3))))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_41)))
((letrec-values (((for-loop_43)
(lambda (table_48 i_59)
(begin
'for-loop
(if i_59
(let-values (((sym_10 bindings-for-sym_0)
(unsafe-immutable-hash-iterate-key+value
ht_41
i_59)))
(let-values (((table_49)
(let-values (((new-bindings-for-sym_0)
(let-values (((ht_42)
bindings-for-sym_0))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-in-immutable-hash
ht_42)))
((letrec-values (((for-loop_44)
(lambda (table_50
i_60)
(begin
'for-loop
(if i_60
(let-values (((scopes_5
binding_1)
(unsafe-immutable-hash-iterate-key+value
ht_42
i_60)))
(let-values (((table_51)
(let-values (((table_52)
table_50))
(if (subset?
scopes_5
reachable-scopes_1)
(let-values (((table_53)
table_52))
(let-values (((table_54)
(let-values ()
(let-values (((key_22
val_11)
(let-values ()
(values
(intern-scopes
scopes_5
state_15)
binding_1))))
(hash-set
table_53
key_22
val_11)))))
(values
table_54)))
table_52))))
(if (not
#f)
(for-loop_44
table_51
(unsafe-immutable-hash-iterate-next
ht_42
i_60))
table_51)))
table_50)))))
for-loop_44)
'#hash()
(unsafe-immutable-hash-iterate-first
ht_42))))))
(begin
#t
((letrec-values (((for-loop_45)
(lambda (table_55)
(begin
'for-loop
(let-values ()
(let-values (((table_56)
(let-values (((table_57)
table_55))
(if (positive?
(hash-count
new-bindings-for-sym_0))
(let-values (((table_58)
table_57))
(let-values (((table_59)
(let-values ()
(let-values (((key_23
val_12)
(let-values ()
(values
sym_10
new-bindings-for-sym_0))))
(hash-set
table_58
key_23
val_12)))))
(values
table_59)))
table_57))))
table_56))))))
for-loop_45)
table_48)))))
(if (not #f)
(for-loop_43
table_49
(unsafe-immutable-hash-iterate-next ht_41 i_59))
table_49)))
table_48)))))
for-loop_43)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_41))))))
(let-values (((new-bulk-bindings_0)
(if (hash? bt_3)
null
(reverse$1
(let-values (((lst_41) (table-with-bulk-bindings-bulk-bindings bt_3)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_41)))
((letrec-values (((for-loop_46)
(lambda (fold-var_22 lst_42)
(begin
'for-loop
(if (pair? lst_42)
(let-values (((bba_2) (unsafe-car lst_42))
((rest_17) (unsafe-cdr lst_42)))
(let-values (((fold-var_23)
(let-values (((fold-var_24) fold-var_22))
(if (subset?
(bulk-binding-at-scopes bba_2)
reachable-scopes_1)
(let-values (((fold-var_25) fold-var_24))
(let-values (((fold-var_26)
(let-values ()
(cons
(let-values ()
(let-values (((the-struct_2)
bba_2))
(if (bulk-binding-at?
the-struct_2)
(let-values (((scopes49_0)
(intern-scopes
(bulk-binding-at-scopes
bba_2)
state_15)))
(bulk-binding-at2.1
scopes49_0
(bulk-binding-at-bulk
the-struct_2)))
(raise-argument-error
'struct-copy
"bulk-binding-at?"
the-struct_2))))
fold-var_25))))
(values fold-var_26)))
fold-var_24))))
(if (not #f)
(for-loop_46 fold-var_23 rest_17)
fold-var_23)))
fold-var_22)))))
for-loop_46)
null
lst_41)))))))
(let-values (((new-bt_0)
(if (pair? new-bulk-bindings_0)
(table-with-bulk-bindings1.1 new-syms_2 new-syms_2 new-bulk-bindings_0)
new-syms_2)))
(begin (hash-set! (serialize-state-bulk-bindings-intern state_15) bt_3 new-bt_0) new-bt_0))))))))))
(define-values
(binding-table-register-reachable)
(lambda (bt_4 get-reachable-scopes_0 reach_2 register-trigger_0)
(begin
(begin
(let-values (((ht_43) (if (hash? bt_4) bt_4 (table-with-bulk-bindings-syms/serialize bt_4))))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_43)))
((letrec-values (((for-loop_47)
(lambda (i_61)
(begin
'for-loop
(if i_61
(let-values (((sym_11 bindings-for-sym_1)
(unsafe-immutable-hash-iterate-key+value ht_43 i_61)))
(let-values ((()
(let-values (((ht_44) bindings-for-sym_1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_44)))
((letrec-values (((for-loop_48)
(lambda (i_62)
(begin
'for-loop
(if i_62
(let-values (((scopes_6 binding_2)
(unsafe-immutable-hash-iterate-key+value
ht_44
i_62)))
(let-values ((()
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(let-values (((v_68)
(if (binding-reach-scopes?
binding_2)
((binding-reach-scopes-ref
binding_2)
binding_2)
#f)))
(scopes-register-reachable
scopes_6
v_68
get-reachable-scopes_0
reach_2
register-trigger_0)))
(values)))))
(values)))))
(if (not #f)
(for-loop_48
(unsafe-immutable-hash-iterate-next
ht_44
i_62))
(values))))
(values))))))
for-loop_48)
(unsafe-immutable-hash-iterate-first ht_44))))))
(if (not #f)
(for-loop_47 (unsafe-immutable-hash-iterate-next ht_43 i_61))
(values))))
(values))))))
for-loop_47)
(unsafe-immutable-hash-iterate-first ht_43))))
(void)
(if (table-with-bulk-bindings? bt_4)
(let-values ()
(begin
(let-values (((lst_43) (table-with-bulk-bindings-bulk-bindings bt_4)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_43)))
((letrec-values (((for-loop_49)
(lambda (lst_44)
(begin
'for-loop
(if (pair? lst_44)
(let-values (((bba_3) (unsafe-car lst_44)) ((rest_18) (unsafe-cdr lst_44)))
(let-values ((()
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(scopes-register-reachable
(bulk-binding-at-scopes bba_3)
#f
get-reachable-scopes_0
reach_2
register-trigger_0))
(values)))))
(values)))))
(if (not #f) (for-loop_49 rest_18) (values))))
(values))))))
for-loop_49)
lst_43)))
(void)))
(void))))))
(define-values
(scopes-register-reachable)
(lambda (scopes_7 v_69 get-reachable-scopes_1 reach_3 register-trigger_1)
(begin
(let-values (((reachable-scopes_2) (get-reachable-scopes_1)))
(if (subset? scopes_7 reachable-scopes_2)
(let-values () (reach_3 v_69))
(let-values ()
(let-values (((pending-scopes_0)
(let-values (((ht_45) scopes_7))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_45)))
((letrec-values (((for-loop_50)
(lambda (table_60 i_63)
(begin
'for-loop
(if i_63
(let-values (((sc_0)
(unsafe-immutable-hash-iterate-key ht_45 i_63)))
(let-values (((table_61)
(let-values (((table_62) table_60))
(if (let-values (((or-part_95)
(set-member?
reachable-scopes_2
sc_0)))
(if or-part_95
or-part_95
(implicitly-reachable? sc_0)))
table_62
(let-values (((table_63) table_62))
(let-values (((table_64)
(let-values ()
(let-values (((key_24
val_13)
(let-values ()
(values
(let-values ()
sc_0)
#t))))
(hash-set
table_63
key_24
val_13)))))
(values table_64)))))))
(if (not #f)
(for-loop_50
table_61
(unsafe-immutable-hash-iterate-next ht_45 i_63))
table_61)))
table_60)))))
for-loop_50)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_45))))))
(let-values (((check-trigger_0)
(lambda (reach_4)
(begin
'check-trigger
(if (zero? (hash-count pending-scopes_0))
(let-values ()
(begin
(reach_4 v_69)
(let-values (((ht_46) scopes_7))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_46)))
((letrec-values (((for-loop_51)
(lambda (i_64)
(begin
'for-loop
(if i_64
(let-values (((sc_1)
(unsafe-immutable-hash-iterate-key
ht_46
i_64)))
(let-values ((()
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(if (implicitly-reachable?
sc_1)
(let-values ()
(reach_4
sc_1))
(void)))
(values)))))
(values)))))
(if (not #f)
(for-loop_51
(unsafe-immutable-hash-iterate-next
ht_46
i_64))
(values))))
(values))))))
for-loop_51)
(unsafe-immutable-hash-iterate-first ht_46))))
(void)))
(void))))))
(begin
(let-values (((ht_47) pending-scopes_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_47)))
((letrec-values (((for-loop_52)
(lambda (i_65)
(begin
'for-loop
(if i_65
(let-values (((sc_2) (unsafe-immutable-hash-iterate-key ht_47 i_65)))
(let-values ((()
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(register-trigger_1
sc_2
(lambda (reach_5)
(begin
(set! pending-scopes_0
(hash-remove
pending-scopes_0
sc_2))
(check-trigger_0 reach_5)))))
(values)))))
(values)))))
(if (not #f)
(for-loop_52 (unsafe-immutable-hash-iterate-next ht_47 i_65))
(values))))
(values))))))
for-loop_52)
(unsafe-immutable-hash-iterate-first ht_47))))
(void)
(check-trigger_0 reach_3))))))))))
(define-values
(syntax-property$1)
(let-values ()
(let-values ()
(case-lambda
((s_77 key_25)
(begin
'syntax-property
(let-values ((()
(begin
(if (syntax?$1 s_77)
(void)
(let-values () (raise-argument-error 'syntax-property "syntax?" s_77)))
(values))))
(let-values (((v_59) (hash-ref (syntax-props s_77) key_25 #f))) (plain-property-value v_59)))))
((s_11 key_26 val_14)
(let-values ((()
(begin
(if (syntax?$1 s_11)
(void)
(let-values () (raise-argument-error 'syntax-property "syntax?" s_11)))
(values))))
(let-values (((pval_0) (if (eq? key_26 'paren-shape) (preserved-property-value1.1 val_14) val_14)))
(let-values (((the-struct_3) s_11))
(if (syntax?$1 the-struct_3)
(let-values (((props2_0) (hash-set (syntax-props s_11) key_26 pval_0)))
(syntax2.1
(syntax-content* the-struct_3)
(syntax-scopes the-struct_3)
(syntax-shifted-multi-scopes the-struct_3)
(syntax-mpi-shifts the-struct_3)
(syntax-srcloc the-struct_3)
props2_0
(syntax-inspector the-struct_3)))
(raise-argument-error 'struct-copy "syntax?" the-struct_3))))))
((s_3 key_27 val_15 preserved?_0)
(let-values ((()
(begin
(if (syntax?$1 s_3)
(void)
(let-values () (raise-argument-error 'syntax-property "syntax?" s_3)))
(values))))
(let-values ((()
(begin
(if preserved?_0
(let-values ()
(if (if (symbol? key_27) (symbol-interned? key_27) #f)
(void)
(let-values ()
(raise-arguments-error
'syntax-property
"key for a preserved property must be an interned symbol"
"given key"
key_27
"given value"
val_15))))
(void))
(values))))
(let-values (((pval_1) (if preserved?_0 (preserved-property-value1.1 val_15) val_15)))
(let-values (((the-struct_4) s_3))
(if (syntax?$1 the-struct_4)
(let-values (((props3_0) (hash-set (syntax-props s_3) key_27 pval_1)))
(syntax2.1
(syntax-content* the-struct_4)
(syntax-scopes the-struct_4)
(syntax-shifted-multi-scopes the-struct_4)
(syntax-mpi-shifts the-struct_4)
(syntax-srcloc the-struct_4)
props3_0
(syntax-inspector the-struct_4)))
(raise-argument-error 'struct-copy "syntax?" the-struct_4)))))))))))
(define-values
(1/syntax-property-preserved?)
(lambda (s_78 key_28)
(begin
'syntax-property-preserved?
(let-values ()
(let-values ()
(begin
(if (syntax?$1 s_78)
(void)
(let-values () (raise-argument-error 'syntax-property-preserved? "syntax?" s_78)))
(if (if (symbol? key_28) (symbol-interned? key_28) #f)
(void)
(let-values ()
(raise-argument-error 'syntax-property-preserved? "(and/c symbol? symbol-interned?)" key_28)))
(preserved-property-value? (hash-ref (syntax-props s_78) key_28 #f))))))))
(define-values
(1/syntax-property-symbol-keys)
(lambda (s_13)
(begin
'syntax-property-symbol-keys
(let-values ()
(let-values ()
(begin
(if (syntax?$1 s_13)
(void)
(let-values () (raise-argument-error 'syntax-property-symbol-keys "syntax" s_13)))
(reverse$1
(let-values (((ht_48) (syntax-props s_13)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_48)))
((letrec-values (((for-loop_53)
(lambda (fold-var_27 i_66)
(begin
'for-loop
(if i_66
(let-values (((k_20 v_35)
(unsafe-immutable-hash-iterate-key+value ht_48 i_66)))
(let-values (((fold-var_28)
(let-values (((fold-var_29) fold-var_27))
(if (if (symbol? k_20) (symbol-interned? k_20) #f)
(let-values (((fold-var_30) fold-var_29))
(let-values (((fold-var_31)
(let-values ()
(cons
(let-values () k_20)
fold-var_30))))
(values fold-var_31)))
fold-var_29))))
(if (not #f)
(for-loop_53 fold-var_28 (unsafe-immutable-hash-iterate-next ht_48 i_66))
fold-var_28)))
fold-var_27)))))
for-loop_53)
null
(unsafe-immutable-hash-iterate-first ht_48)))))))))))
(define-values
(1/syntax-property-remove)
(lambda (s_79 key_29)
(begin
'syntax-property-remove
(let-values ()
(let-values ()
(begin
(if (syntax?$1 s_79) (void) (let-values () (raise-argument-error 'syntax-property-remove "syntax?" s_79)))
(if (hash-ref (syntax-props s_79) key_29 #f)
(let-values (((the-struct_5) s_79))
(if (syntax?$1 the-struct_5)
(let-values (((props7_0) (hash-remove (syntax-props s_79) key_29)))
(syntax2.1
(syntax-content* the-struct_5)
(syntax-scopes the-struct_5)
(syntax-shifted-multi-scopes the-struct_5)
(syntax-mpi-shifts the-struct_5)
(syntax-srcloc the-struct_5)
props7_0
(syntax-inspector the-struct_5)))
(raise-argument-error 'struct-copy "syntax?" the-struct_5)))
s_79)))))))
(define-values (syntax-has-property?) (lambda (from-s_0 key_30) (begin (hash-ref (syntax-props from-s_0) key_30 #f))))
(define-values
(taint-content)
(lambda (d_3)
(begin
(let-values (((s_3) d_3)
((f_26) (lambda (tail?_16 x_24) (begin 'f x_24)))
((s->_1)
(lambda (sub-s_0)
(begin
's->
(if (tamper-tainted? (syntax-tamper sub-s_0))
(let-values () sub-s_0)
(let-values ()
(let-values (((stx_1) sub-s_0))
(let-values (((t_8) (tamper-tainted-for-content (syntax-content sub-s_0))))
(let-values (((content*_5) (syntax-content* stx_1)))
(let-values (((content_8)
(if (modified-content? content*_5)
(modified-content-content content*_5)
content*_5)))
(let-values (((p_10)
(if (modified-content? content*_5)
(modified-content-scope-propagations+tamper content*_5)
#f)))
(let-values (((the-struct_6) stx_1))
(if (syntax?$1 the-struct_6)
(let-values (((content*3_0)
(let-values (((new-p_0)
(if (tamper? p_10)
t_8
((propagation-set-tamper-ref p_10) p_10 t_8))))
(if new-p_0
(modified-content1.1 content_8 new-p_0)
content_8))))
(syntax2.1
content*3_0
(syntax-scopes the-struct_6)
(syntax-shifted-multi-scopes the-struct_6)
(syntax-mpi-shifts the-struct_6)
(syntax-srcloc the-struct_6)
(syntax-props the-struct_6)
(syntax-inspector the-struct_6)))
(raise-argument-error 'struct-copy "syntax?" the-struct_6)))))))))))))
((seen_7) #f)
((known-pairs_5) #f))
(let-values (((s_47) s_3)
((f_21) f_26)
((gf_0)
(lambda (tail?_17 v_70)
(begin
'gf
(if (syntax?$1 v_70) (let-values () (s->_1 v_70)) (let-values () (f_26 tail?_17 v_70))))))
((seen_2) seen_7)
((known-pairs_1) known-pairs_5))
((letrec-values (((loop_69)
(lambda (tail?_18 s_80 prev-depth_3)
(begin
'loop
(let-values (((depth_3) (fx+ 1 prev-depth_3)))
(if (if seen_2 (fx> depth_3 32) #f)
(let-values ()
(datum-map-slow
tail?_18
s_80
(lambda (tail?_19 s_81) (gf_0 tail?_19 s_81))
seen_2
known-pairs_1))
(if (null? s_80)
(let-values () (f_21 tail?_18 s_80))
(if (pair? s_80)
(let-values ()
(f_21
tail?_18
(cons (loop_69 #f (car s_80) depth_3) (loop_69 1 (cdr s_80) depth_3))))
(if (symbol? s_80)
(let-values () (f_21 #f s_80))
(if (boolean? s_80)
(let-values () (f_21 #f s_80))
(if (number? s_80)
(let-values () (f_21 #f s_80))
(if (let-values (((or-part_85) (vector? s_80)))
(if or-part_85
or-part_85
(let-values (((or-part_96) (box? s_80)))
(if or-part_96
or-part_96
(let-values (((or-part_97) (prefab-struct-key s_80)))
(if or-part_97 or-part_97 (hash? s_80)))))))
(let-values ()
(datum-map-slow
tail?_18
s_80
(lambda (tail?_20 s_82) (gf_0 tail?_20 s_82))
seen_2
known-pairs_1))
(let-values () (gf_0 #f s_80))))))))))))))
loop_69)
#f
s_47
0))))))
(define-values (syntax-tainted?$1) (lambda (s_83) (begin 'syntax-tainted? (tamper-tainted? (syntax-tamper s_83)))))
(define-values (syntax-clean?) (lambda (s_84) (begin (tamper-clean? (syntax-tamper s_84)))))
(define-values
(syntax-arm$1)
(lambda (s_85 insp_2)
(begin
'syntax-arm
(let-values (((t_9) (syntax-tamper s_85)))
(if (tamper-tainted? t_9)
(let-values () s_85)
(if (if t_9
(let-values (((or-part_98) (set-member? t_9 insp_2)))
(if or-part_98
or-part_98
(let-values (((ht_49) t_9))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_49)))
((letrec-values (((for-loop_54)
(lambda (result_33 i_67)
(begin
'for-loop
(if i_67
(let-values (((already-insp_0)
(unsafe-immutable-hash-iterate-key ht_49 i_67)))
(let-values (((result_34)
(let-values ()
(let-values (((result_35)
(let-values ()
(let-values ()
(inspector-superior-or-same?
already-insp_0
insp_2)))))
(values result_35)))))
(if (if (not ((lambda x_25 result_34) already-insp_0)) (not #f) #f)
(for-loop_54
result_34
(unsafe-immutable-hash-iterate-next ht_49 i_67))
result_34)))
result_33)))))
for-loop_54)
#f
(unsafe-immutable-hash-iterate-first ht_49))))))
#f)
(let-values () s_85)
(let-values ()
(let-values (((stx_2) s_85))
(let-values (((t_10) (set-add (if t_9 (remove-inferior t_9 insp_2) (seteq)) insp_2)))
(let-values (((content*_6) (syntax-content* stx_2)))
(let-values (((content_9)
(if (modified-content? content*_6) (modified-content-content content*_6) content*_6)))
(let-values (((p_11)
(if (modified-content? content*_6)
(modified-content-scope-propagations+tamper content*_6)
#f)))
(let-values (((the-struct_7) stx_2))
(if (syntax?$1 the-struct_7)
(let-values (((content*4_0)
(let-values (((new-p_1)
(if (tamper? p_11)
t_10
((propagation-set-tamper-ref p_11) p_11 t_10))))
(if new-p_1 (modified-content1.1 content_9 new-p_1) content_9))))
(syntax2.1
content*4_0
(syntax-scopes the-struct_7)
(syntax-shifted-multi-scopes the-struct_7)
(syntax-mpi-shifts the-struct_7)
(syntax-srcloc the-struct_7)
(syntax-props the-struct_7)
(syntax-inspector the-struct_7)))
(raise-argument-error 'struct-copy "syntax?" the-struct_7)))))))))))))))
(define-values
(remove-inferior)
(lambda (t_11 insp_3)
(begin
(let-values (((ht_50) t_11))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_50)))
((letrec-values (((for-loop_55)
(lambda (table_65 i_46)
(begin
'for-loop
(if i_46
(let-values (((already-insp_1) (unsafe-immutable-hash-iterate-key ht_50 i_46)))
(let-values (((table_66)
(let-values (((table_67) table_65))
(if (inspector-superior-or-same? insp_3 already-insp_1)
table_67
(let-values (((table_68) table_67))
(let-values (((table_69)
(let-values ()
(let-values (((key_31 val_16)
(let-values ()
(values
(let-values () already-insp_1)
#t))))
(hash-set table_68 key_31 val_16)))))
(values table_69)))))))
(if (not #f)
(for-loop_55 table_66 (unsafe-immutable-hash-iterate-next ht_50 i_46))
table_66)))
table_65)))))
for-loop_55)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_50)))))))
(define-values
(syntax-disarm$1)
(let-values (((syntax-disarm_0)
(lambda (s2_5 insp1_0)
(begin
'syntax-disarm
(let-values (((s_86) s2_5))
(let-values (((insp_4) insp1_0))
(let-values ()
(let-values (((t_12) (syntax-tamper s_86)))
(if (not (tamper-armed? t_12))
(let-values () s_86)
(if (not insp_4)
(let-values ()
(let-values (((stx_3) s_86))
(let-values (((t_13) #f))
(let-values (((content*_7) (syntax-content* stx_3)))
(let-values (((content_10)
(if (modified-content? content*_7)
(modified-content-content content*_7)
content*_7)))
(let-values (((p_12)
(if (modified-content? content*_7)
(modified-content-scope-propagations+tamper content*_7)
#f)))
(let-values (((the-struct_8) stx_3))
(if (syntax?$1 the-struct_8)
(let-values (((content*5_0)
(let-values (((new-p_2)
(if (tamper? p_12)
t_13
((propagation-set-tamper-ref p_12)
p_12
t_13))))
(if new-p_2
(modified-content1.1 content_10 new-p_2)
content_10))))
(syntax2.1
content*5_0
(syntax-scopes the-struct_8)
(syntax-shifted-multi-scopes the-struct_8)
(syntax-mpi-shifts the-struct_8)
(syntax-srcloc the-struct_8)
(syntax-props the-struct_8)
(syntax-inspector the-struct_8)))
(raise-argument-error 'struct-copy "syntax?" the-struct_8)))))))))
(let-values ()
(let-values (((new-t_1) (remove-inferior t_12 insp_4)))
(let-values (((stx_4) s_86))
(let-values (((t_14) (if (not (set-empty? new-t_1)) new-t_1 #f)))
(let-values (((content*_8) (syntax-content* stx_4)))
(let-values (((content_11)
(if (modified-content? content*_8)
(modified-content-content content*_8)
content*_8)))
(let-values (((p_13)
(if (modified-content? content*_8)
(modified-content-scope-propagations+tamper content*_8)
#f)))
(let-values (((the-struct_9) stx_4))
(if (syntax?$1 the-struct_9)
(let-values (((content*6_0)
(let-values (((new-p_3)
(if (tamper? p_13)
t_14
((propagation-set-tamper-ref p_13)
p_13
t_14))))
(if new-p_3
(modified-content1.1 content_11 new-p_3)
content_11))))
(syntax2.1
content*6_0
(syntax-scopes the-struct_9)
(syntax-shifted-multi-scopes the-struct_9)
(syntax-mpi-shifts the-struct_9)
(syntax-srcloc the-struct_9)
(syntax-props the-struct_9)
(syntax-inspector the-struct_9)))
(raise-argument-error
'struct-copy
"syntax?"
the-struct_9))))))))))))))))))))
(case-lambda
((s_87) (begin 'syntax-disarm (syntax-disarm_0 s_87 #f)))
((s_88 insp1_1) (syntax-disarm_0 s_88 insp1_1)))))
(define-values
(syntax-rearm$1)
(lambda (s_89 from-s_1)
(begin
'syntax-rearm
(let-values (((t_15) (syntax-tamper s_89)))
(if (tamper-tainted? t_15)
(let-values () s_89)
(let-values ()
(let-values (((from-t_0) (syntax-tamper from-s_1)))
(if (tamper-clean? from-t_0)
(let-values () s_89)
(if (tamper-tainted? from-t_0)
(let-values ()
(let-values (((stx_5) s_89))
(let-values (((t_16) (tamper-tainted-for-content (syntax-content s_89))))
(let-values (((content*_9) (syntax-content* stx_5)))
(let-values (((content_12)
(if (modified-content? content*_9)
(modified-content-content content*_9)
content*_9)))
(let-values (((p_14)
(if (modified-content? content*_9)
(modified-content-scope-propagations+tamper content*_9)
#f)))
(let-values (((the-struct_10) stx_5))
(if (syntax?$1 the-struct_10)
(let-values (((content*7_0)
(let-values (((new-p_4)
(if (tamper? p_14)
t_16
((propagation-set-tamper-ref p_14) p_14 t_16))))
(if new-p_4 (modified-content1.1 content_12 new-p_4) content_12))))
(syntax2.1
content*7_0
(syntax-scopes the-struct_10)
(syntax-shifted-multi-scopes the-struct_10)
(syntax-mpi-shifts the-struct_10)
(syntax-srcloc the-struct_10)
(syntax-props the-struct_10)
(syntax-inspector the-struct_10)))
(raise-argument-error 'struct-copy "syntax?" the-struct_10)))))))))
(if (tamper-clean? t_15)
(let-values ()
(let-values (((stx_6) s_89))
(let-values (((t_17) from-t_0))
(let-values (((content*_10) (syntax-content* stx_6)))
(let-values (((content_13)
(if (modified-content? content*_10)
(modified-content-content content*_10)
content*_10)))
(let-values (((p_15)
(if (modified-content? content*_10)
(modified-content-scope-propagations+tamper content*_10)
#f)))
(let-values (((the-struct_11) stx_6))
(if (syntax?$1 the-struct_11)
(let-values (((content*8_0)
(let-values (((new-p_5)
(if (tamper? p_15)
t_17
((propagation-set-tamper-ref p_15) p_15 t_17))))
(if new-p_5 (modified-content1.1 content_13 new-p_5) content_13))))
(syntax2.1
content*8_0
(syntax-scopes the-struct_11)
(syntax-shifted-multi-scopes the-struct_11)
(syntax-mpi-shifts the-struct_11)
(syntax-srcloc the-struct_11)
(syntax-props the-struct_11)
(syntax-inspector the-struct_11)))
(raise-argument-error 'struct-copy "syntax?" the-struct_11)))))))))
(let-values ()
(let-values (((stx_7) s_89))
(let-values (((t_18)
(let-values (((ht_51) from-t_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_51)))
((letrec-values (((for-loop_56)
(lambda (t_19 i_68)
(begin
'for-loop
(if i_68
(let-values (((from-i_0)
(unsafe-immutable-hash-iterate-key
ht_51
i_68)))
(let-values (((t_20)
(let-values (((t_21) t_19))
(let-values (((t_22)
(let-values ()
(if (set-member?
t_21
from-i_0)
(let-values ()
t_21)
(if (any-superior?
t_21
from-i_0)
(let-values ()
t_21)
(let-values ()
(set-add
(remove-inferior
t_21
from-i_0)
from-i_0)))))))
(values t_22)))))
(if (not #f)
(for-loop_56
t_20
(unsafe-immutable-hash-iterate-next
ht_51
i_68))
t_20)))
t_19)))))
for-loop_56)
t_15
(unsafe-immutable-hash-iterate-first ht_51))))))
(let-values (((content*_11) (syntax-content* stx_7)))
(let-values (((content_14)
(if (modified-content? content*_11)
(modified-content-content content*_11)
content*_11)))
(let-values (((p_16)
(if (modified-content? content*_11)
(modified-content-scope-propagations+tamper content*_11)
#f)))
(let-values (((the-struct_12) stx_7))
(if (syntax?$1 the-struct_12)
(let-values (((content*9_0)
(let-values (((new-p_6)
(if (tamper? p_16)
t_18
((propagation-set-tamper-ref p_16) p_16 t_18))))
(if new-p_6 (modified-content1.1 content_14 new-p_6) content_14))))
(syntax2.1
content*9_0
(syntax-scopes the-struct_12)
(syntax-shifted-multi-scopes the-struct_12)
(syntax-mpi-shifts the-struct_12)
(syntax-srcloc the-struct_12)
(syntax-props the-struct_12)
(syntax-inspector the-struct_12)))
(raise-argument-error 'struct-copy "syntax?" the-struct_12)))))))))))))))))))
(define-values
(syntax-taint$1)
(lambda (s_53)
(begin
'syntax-taint
(if (tamper-tainted? (syntax-tamper s_53))
s_53
(let-values (((stx_8) s_53))
(let-values (((t_23) (tamper-tainted-for-content (syntax-content s_53))))
(let-values (((content*_12) (syntax-content* stx_8)))
(let-values (((content_15)
(if (modified-content? content*_12) (modified-content-content content*_12) content*_12)))
(let-values (((p_17)
(if (modified-content? content*_12)
(modified-content-scope-propagations+tamper content*_12)
#f)))
(let-values (((the-struct_13) stx_8))
(if (syntax?$1 the-struct_13)
(let-values (((content*10_0)
(let-values (((new-p_7)
(if (tamper? p_17)
t_23
((propagation-set-tamper-ref p_17) p_17 t_23))))
(if new-p_7 (modified-content1.1 content_15 new-p_7) content_15))))
(syntax2.1
content*10_0
(syntax-scopes the-struct_13)
(syntax-shifted-multi-scopes the-struct_13)
(syntax-mpi-shifts the-struct_13)
(syntax-srcloc the-struct_13)
(syntax-props the-struct_13)
(syntax-inspector the-struct_13)))
(raise-argument-error 'struct-copy "syntax?" the-struct_13))))))))))))
(define-values
(any-superior?)
(lambda (t_24 from-i_1)
(begin
(let-values (((ht_52) t_24))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_52)))
((letrec-values (((for-loop_57)
(lambda (result_36 i_36)
(begin
'for-loop
(if i_36
(let-values (((i_69) (unsafe-immutable-hash-iterate-key ht_52 i_36)))
(let-values (((result_37)
(let-values ()
(let-values (((result_38)
(let-values ()
(let-values ()
(inspector-superior-or-same? i_69 from-i_1)))))
(values result_38)))))
(if (if (not ((lambda x_26 result_37) i_69)) (not #f) #f)
(for-loop_57 result_37 (unsafe-immutable-hash-iterate-next ht_52 i_36))
result_37)))
result_36)))))
for-loop_57)
#f
(unsafe-immutable-hash-iterate-first ht_52)))))))
(define-values
(inspector-superior-or-same?)
(lambda (sup-i_0 i_70)
(begin
(let-values (((or-part_99) (eq? sup-i_0 i_70))) (if or-part_99 or-part_99 (inspector-superior? sup-i_0 i_70))))))
(define-values
(struct:fallback fallback1.1 fallback? fallback-search-list)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values () (make-struct-type 'fallback #f 1 0 #f null 'prefab #f '(0) #f 'fallback)))))
(values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'search-list))))
(define-values
(fallback-first)
(lambda (smss_0) (begin (if (fallback? smss_0) (car (fallback-search-list smss_0)) smss_0))))
(define-values
(fallback-rest)
(lambda (smss_1)
(begin
(let-values (((l_31) (cdr (fallback-search-list smss_1))))
(if (null? (cdr l_31)) (car l_31) (fallback1.1 l_31))))))
(define-values
(fallback-push)
(lambda (smss_2 smss/maybe-fallback_0)
(begin
(fallback1.1
(cons
smss_2
(if (fallback? smss/maybe-fallback_0)
(fallback-search-list smss/maybe-fallback_0)
(list smss/maybe-fallback_0)))))))
(define-values
(fallback-update-first)
(lambda (smss_3 f_27)
(begin
(if (fallback? smss_3)
(let-values (((l_32) (fallback-search-list smss_3))) (fallback1.1 (cons (f_27 (car l_32)) (cdr l_32))))
(f_27 smss_3)))))
(define-values
(fallback-map)
(lambda (smss_4 f_28)
(begin
(if (fallback? smss_4)
(fallback1.1
(reverse$1
(let-values (((lst_45) (fallback-search-list smss_4)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_45)))
((letrec-values (((for-loop_58)
(lambda (fold-var_32 lst_23)
(begin
'for-loop
(if (pair? lst_23)
(let-values (((smss_5) (unsafe-car lst_23)) ((rest_19) (unsafe-cdr lst_23)))
(let-values (((fold-var_33)
(let-values (((fold-var_34) fold-var_32))
(let-values (((fold-var_27)
(let-values ()
(cons
(let-values () (f_28 smss_5))
fold-var_34))))
(values fold-var_27)))))
(if (not #f) (for-loop_58 fold-var_33 rest_19) fold-var_33)))
fold-var_32)))))
for-loop_58)
null
lst_45)))))
(f_28 smss_4)))))
(define-values
(fallback->list)
(lambda (smss_6) (begin (if (fallback? smss_6) (fallback-search-list smss_6) (list smss_6)))))
(define-values (make-cache$1) (lambda () (begin 'make-cache (box (make-weak-box #f)))))
(define-values (cell.1$6) (unsafe-make-place-local (make-cache$1)))
(define-values (resolve-cache-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$6 (make-cache$1)))))
(define-values
(clear-resolve-cache!)
(case-lambda
((sym_12)
(begin
(let-values (((c_15) (weak-box-value (unbox* (unsafe-place-local-ref cell.1$6)))))
(begin
(if c_15 (let-values () (hash-remove! c_15 sym_12)) (void))
(set-box*! (unsafe-place-local-ref cell.2$3) #f)))))
(()
(let-values (((c_10) (weak-box-value (unbox* (unsafe-place-local-ref cell.1$6)))))
(begin (if c_10 (let-values () (hash-clear! c_10)) (void)) (set-box*! (unsafe-place-local-ref cell.2$3) #f))))))
(define-values
(struct:entry entry1.1 entry? entry-scs entry-smss entry-phase entry-binding)
(let-values (((struct:_15 make-_15 ?_15 -ref_15 -set!_15)
(let-values ()
(let-values ()
(make-struct-type
'entry
#f
4
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1 2 3)
#f
'entry)))))
(values
struct:_15
make-_15
?_15
(make-struct-field-accessor -ref_15 0 'scs)
(make-struct-field-accessor -ref_15 1 'smss)
(make-struct-field-accessor -ref_15 2 'phase)
(make-struct-field-accessor -ref_15 3 'binding))))
(define-values
(resolve-cache-get)
(lambda (sym_13 phase_4 scs_3 smss_7)
(begin
(let-values (((c_12) (weak-box-value (unbox* (unsafe-place-local-ref cell.1$6)))))
(if c_12
(let-values (((v_71) (hash-ref c_12 sym_13 #f)))
(if v_71
(if (eqv? phase_4 (entry-phase v_71))
(if (set=? scs_3 (entry-scs v_71)) (if (set=? smss_7 (entry-smss v_71)) (entry-binding v_71) #f) #f)
#f)
#f))
#f)))))
(define-values
(resolve-cache-set!)
(lambda (sym_14 phase_5 scs_4 smss_8 b_37)
(begin
(let-values (((wb_1) (unbox* (unsafe-place-local-ref cell.1$6))))
(let-values (((c_16) (weak-box-value wb_1)))
(if (not c_16)
(let-values ()
(begin
(box-cas! (unsafe-place-local-ref cell.1$6) wb_1 (make-weak-box (make-hasheq)))
(resolve-cache-set! sym_14 phase_5 scs_4 smss_8 b_37)))
(let-values () (hash-set! c_16 sym_14 (entry1.1 scs_4 smss_8 phase_5 b_37)))))))))
(define-values (SHIFTED-CACHE-SIZE) 16)
(define-values (cell.2$3) (unsafe-make-place-local (box #f)))
(define-values (cell.3$1) (unsafe-make-place-local 0))
(define-values
(struct:shifted-entry shifted-entry2.1 shifted-entry? shifted-entry-s shifted-entry-phase shifted-entry-binding)
(let-values (((struct:_16 make-_16 ?_16 -ref_16 -set!_16)
(let-values ()
(let-values ()
(make-struct-type
'shifted-entry
#f
3
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1 2)
#f
'shifted-entry)))))
(values
struct:_16
make-_16
?_16
(make-struct-field-accessor -ref_16 0 's)
(make-struct-field-accessor -ref_16 1 'phase)
(make-struct-field-accessor -ref_16 2 'binding))))
(define-values
(shifted-cache-vector)
(lambda ()
(begin
(let-values (((wb_2) (unbox* (unsafe-place-local-ref cell.2$3))))
(let-values (((c1_20) (if wb_2 (weak-box-value wb_2) #f)))
(if c1_20
((lambda (vec_17) vec_17) c1_20)
(let-values ()
(let-values (((vec_18) (make-vector SHIFTED-CACHE-SIZE #f)))
(begin (set-box*! (unsafe-place-local-ref cell.2$3) (make-weak-box vec_18)) vec_18)))))))))
(define-values
(resolve+shift-cache-get)
(lambda (s_90 phase_6)
(begin
(let-values (((vec_19) (shifted-cache-vector)))
(let-values (((vec_20 len_9)
(let-values (((vec_21) vec_19))
(begin (check-vector vec_21) (values vec_21 (unsafe-vector-length vec_21))))))
(begin
#f
((letrec-values (((for-loop_59)
(lambda (result_39 pos_9)
(begin
'for-loop
(if (unsafe-fx< pos_9 len_9)
(let-values (((e_12) (unsafe-vector-ref vec_20 pos_9)))
(let-values (((result_40)
(let-values ()
(let-values (((result_10)
(let-values ()
(let-values ()
(if e_12
(if (eq? s_90 (shifted-entry-s e_12))
(if (eqv?
phase_6
(shifted-entry-phase e_12))
(shifted-entry-binding e_12)
#f)
#f)
#f)))))
(values result_10)))))
(if (if (not ((lambda x_27 result_40) e_12)) (not #f) #f)
(for-loop_59 result_40 (unsafe-fx+ 1 pos_9))
result_40)))
result_39)))))
for-loop_59)
#f
0)))))))
(define-values
(resolve+shift-cache-set!)
(lambda (s_91 phase_7 b_38)
(begin
(let-values (((vec_22) (shifted-cache-vector)))
(let-values (((p_8) (unsafe-place-local-ref cell.3$1)))
(begin
(vector*-set! vec_22 p_8 (shifted-entry2.1 s_91 phase_7 b_38))
(unsafe-place-local-set! cell.3$1 (fxand (fx+ 1 p_8) (fx- SHIFTED-CACHE-SIZE 1)))))))))
(define-values (NUM-CACHE-SLOTS) 8)
(define-values (make-cached-sets) (lambda () (begin (make-weak-box (make-vector NUM-CACHE-SLOTS #f)))))
(define-values (cell.4$1) (unsafe-make-place-local (make-cached-sets)))
(define-values (cell.5$1) (unsafe-make-place-local 0))
(define-values (make-cached-hashes) (lambda () (begin (make-weak-box (make-vector NUM-CACHE-SLOTS #f)))))
(define-values (cell.6$1) (unsafe-make-place-local (make-cached-hashes)))
(define-values (cell.7) (unsafe-make-place-local 0))
(define-values
(sets-place-init!)
(lambda ()
(begin
(begin
(unsafe-place-local-set! cell.4$1 (make-cached-sets))
(unsafe-place-local-set! cell.6$1 (make-cached-hashes))))))
(define-values
(cache-or-reuse-set)
(lambda (s_40)
(begin
(let-values (((vec_23)
(let-values (((or-part_100) (weak-box-value (unsafe-place-local-ref cell.4$1))))
(if or-part_100
or-part_100
(let-values (((vec_24) (make-vector NUM-CACHE-SLOTS #f)))
(begin (unsafe-place-local-set! cell.4$1 (make-weak-box vec_24)) vec_24))))))
(let-values (((or-part_101)
(let-values (((vec_25 len_10)
(let-values (((vec_26) vec_23))
(begin (check-vector vec_26) (values vec_26 (unsafe-vector-length vec_26))))))
(begin
#f
((letrec-values (((for-loop_60)
(lambda (result_41 pos_10)
(begin
'for-loop
(if (unsafe-fx< pos_10 len_10)
(let-values (((s2_6) (unsafe-vector-ref vec_25 pos_10)))
(let-values (((result_14)
(let-values ()
(let-values (((result_42)
(let-values ()
(let-values ()
(if s2_6
(if (set=? s_40 s2_6) s2_6 #f)
#f)))))
(values result_42)))))
(if (if (not ((lambda x_1 result_14) s2_6)) (not #f) #f)
(for-loop_60 result_14 (unsafe-fx+ 1 pos_10))
result_14)))
result_41)))))
for-loop_60)
#f
0)))))
(if or-part_101
or-part_101
(begin
(vector*-set! vec_23 (unsafe-place-local-ref cell.5$1) s_40)
(unsafe-place-local-set!
cell.5$1
(fxand (fx+ 1 (unsafe-place-local-ref cell.5$1)) (fx- NUM-CACHE-SLOTS 1)))
s_40)))))))
(define-values
(cache-or-reuse-hash)
(lambda (s_92)
(begin
(let-values (((vec_27)
(let-values (((or-part_102) (weak-box-value (unsafe-place-local-ref cell.6$1))))
(if or-part_102
or-part_102
(let-values (((vec_28) (make-vector NUM-CACHE-SLOTS #f)))
(begin (unsafe-place-local-set! cell.6$1 (make-weak-box vec_28)) vec_28))))))
(let-values (((or-part_103)
(let-values (((vec_29 len_11)
(let-values (((vec_30) vec_27))
(begin (check-vector vec_30) (values vec_30 (unsafe-vector-length vec_30))))))
(begin
#f
((letrec-values (((for-loop_61)
(lambda (result_18 pos_11)
(begin
'for-loop
(if (unsafe-fx< pos_11 len_11)
(let-values (((s2_7) (unsafe-vector-ref vec_29 pos_11)))
(let-values (((result_43)
(let-values ()
(let-values (((result_44)
(let-values ()
(let-values ()
(if s2_7
(if (equal? s_92 s2_7) s2_7 #f)
#f)))))
(values result_44)))))
(if (if (not ((lambda x_28 result_43) s2_7)) (not #f) #f)
(for-loop_61 result_43 (unsafe-fx+ 1 pos_11))
result_43)))
result_18)))))
for-loop_61)
#f
0)))))
(if or-part_103
or-part_103
(begin
(vector*-set! vec_27 (unsafe-place-local-ref cell.7) s_92)
(unsafe-place-local-set! cell.7 (fxand (fx+ 1 (unsafe-place-local-ref cell.7)) (fx- NUM-CACHE-SLOTS 1)))
s_92)))))))
(define-values (cache-place-init!) (lambda () (begin (begin (resolve-cache-place-init!) (sets-place-init!)))))
(define-values
(struct:scope scope1.1 scope? scope-id scope-kind scope-binding-table set-scope-binding-table!)
(let-values (((struct:_17 make-_17 ?_17 -ref_17 -set!_17)
(let-values ()
(let-values ()
(make-struct-type
'scope
#f
3
0
#f
(list
(cons prop:authentic #t)
(cons
prop:scope-with-bindings
(lambda (s_93 get-reachable-scopes_2 reach_6 register-trigger_2)
(binding-table-register-reachable
(scope-binding-table s_93)
get-reachable-scopes_2
reach_6
register-trigger_2)))
(cons prop:reach-scopes (lambda (s_94 reach_7) (void)))
(cons
prop:serialize-fill!
(lambda (s_95 ser-push!_6 state_16)
(if (binding-table-empty? (scope-binding-table s_95))
(let-values () (ser-push!_6 'tag #f))
(let-values ()
(begin
(ser-push!_6 'tag '#:scope-fill!)
(ser-push!_6 (binding-table-prune-to-reachable (scope-binding-table s_95) state_16)))))))
(cons
prop:serialize
(lambda (s_96 ser-push!_7 state_17)
(begin
(if (set-member? (serialize-state-reachable-scopes state_17) s_96)
(void)
(let-values () (error "internal error: found supposedly unreachable scope")))
(if (eq? s_96 top-level-common-scope)
(let-values () (ser-push!_7 'tag '#:scope))
(let-values ()
(begin (ser-push!_7 'tag '#:scope+kind) (ser-push!_7 (scope-kind s_96))))))))
(cons
prop:custom-write
(lambda (sc_3 port_3 mode_6)
(begin
(write-string "#<scope:" port_3)
(display (scope-id sc_3) port_3)
(write-string ":" port_3)
(display (scope-kind sc_3) port_3)
(write-string ">" port_3)))))
(current-inspector)
#f
'(0 1)
#f
'scope)))))
(values
struct:_17
make-_17
?_17
(make-struct-field-accessor -ref_17 0 'id)
(make-struct-field-accessor -ref_17 1 'kind)
(make-struct-field-accessor -ref_17 2 'binding-table)
(make-struct-field-mutator -set!_17 2 'binding-table))))
(define-values
(deserialize-scope)
(case-lambda
(() (begin top-level-common-scope))
((kind_0) (scope1.1 (new-deserialize-scope-id!) kind_0 empty-binding-table))))
(define-values (deserialize-scope-fill!) (lambda (s_14 bt_1) (begin (set-scope-binding-table! s_14 bt_1))))
(define-values
(struct:interned-scope interned-scope2.1 interned-scope? interned-scope-key)
(let-values (((struct:_18 make-_18 ?_18 -ref_18 -set!_18)
(let-values ()
(let-values ()
(make-struct-type
'interned-scope
struct:scope
1
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (s_97 ser-push!_8 state_18)
(begin
(if (set-member? (serialize-state-reachable-scopes state_18) s_97)
(void)
(let-values () (error "internal error: found supposedly unreachable scope")))
(ser-push!_8 'tag '#:interned-scope)
(ser-push!_8 (interned-scope-key s_97)))))
(cons
prop:custom-write
(lambda (sc_4 port_4 mode_7)
(begin
(write-string "#<scope:" port_4)
(display (scope-id sc_4) port_4)
(write-string ":" port_4)
(display (scope-kind sc_4) port_4)
(write-string " " port_4)
(display (interned-scope-key sc_4) port_4)
(write-string ">" port_4)))))
(current-inspector)
#f
'(0)
#f
'interned-scope)))))
(values struct:_18 make-_18 ?_18 (make-struct-field-accessor -ref_18 0 'key))))
(define-values
(struct:multi-scope
multi-scope3.1
multi-scope?
multi-scope-id
multi-scope-name
multi-scope-scopes
multi-scope-shifted
multi-scope-label-shifted)
(let-values (((struct:_19 make-_19 ?_19 -ref_19 -set!_19)
(let-values ()
(let-values ()
(make-struct-type
'multi-scope
#f
5
0
#f
(list
(cons prop:authentic #t)
(cons
prop:scope-with-bindings
(lambda (ms_0 get-reachable-scopes_3 reach_8 register-trigger_3)
(begin
(let-values (((ht_53) (unbox (multi-scope-scopes ms_0))))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash-values ht_53)))
((letrec-values (((for-loop_62)
(lambda (i_34)
(begin
'for-loop
(if i_34
(let-values (((sc_5) (hash-iterate-value ht_53 i_34)))
(let-values ((()
(let-values ()
(let-values ((()
(let-values ()
(begin
(let-values ()
(if (binding-table-empty?
(scope-binding-table
sc_5))
(void)
(let-values ()
(reach_8 sc_5))))
(values)))))
(values)))))
(if (not #f)
(for-loop_62 (hash-iterate-next ht_53 i_34))
(values))))
(values))))))
for-loop_62)
(hash-iterate-first ht_53))))
(void))))
(cons prop:reach-scopes (lambda (s_98 reach_9) (void)))
(cons
prop:serialize
(lambda (ms_1 ser-push!_9 state_19)
(let-values ((() (begin (ser-push!_9 'tag '#:multi-scope) (values))))
(let-values ((() (begin (ser-push!_9 (multi-scope-name ms_1)) (values))))
(let-values (((multi-scope-tables_0) (serialize-state-multi-scope-tables state_19)))
(ser-push!_9
(let-values (((or-part_104)
(hash-ref multi-scope-tables_0 (multi-scope-scopes ms_1) #f)))
(if or-part_104
or-part_104
(let-values (((ht_54)
(let-values (((ht_55) (unbox (multi-scope-scopes ms_1))))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-hash ht_55)))
((letrec-values (((for-loop_63)
(lambda (table_70 i_71)
(begin
'for-loop
(if i_71
(let-values (((phase_8 sc_6)
(hash-iterate-key+value
ht_55
i_71)))
(let-values (((table_23)
(let-values (((table_71)
table_70))
(if (set-member?
(serialize-state-reachable-scopes
state_19)
sc_6)
(let-values (((table_72)
table_71))
(let-values (((table_73)
(let-values ()
(let-values (((key_32
val_17)
(let-values ()
(values
phase_8
sc_6))))
(hash-set
table_72
key_32
val_17)))))
(values
table_73)))
table_71))))
(if (not #f)
(for-loop_63
table_23
(hash-iterate-next ht_55 i_71))
table_23)))
table_70)))))
for-loop_63)
'#hasheqv()
(hash-iterate-first ht_55))))))
(begin
(hash-set! multi-scope-tables_0 (multi-scope-scopes ms_1) ht_54)
ht_54)))))))))))
(current-inspector)
#f
'(0 1 2 3 4)
#f
'multi-scope)))))
(values
struct:_19
make-_19
?_19
(make-struct-field-accessor -ref_19 0 'id)
(make-struct-field-accessor -ref_19 1 'name)
(make-struct-field-accessor -ref_19 2 'scopes)
(make-struct-field-accessor -ref_19 3 'shifted)
(make-struct-field-accessor -ref_19 4 'label-shifted))))
(define-values
(deserialize-multi-scope)
(lambda (name_15 scopes_8)
(begin (multi-scope3.1 (new-deserialize-scope-id!) name_15 (box scopes_8) (box (hasheqv)) (box (hash))))))
(define-values
(struct:representative-scope
representative-scope4.1
representative-scope?
representative-scope-owner
representative-scope-phase
set-representative-scope-owner!
set-representative-scope-phase!)
(let-values (((struct:_20 make-_20 ?_20 -ref_20 -set!_20)
(let-values ()
(let-values ()
(make-struct-type
'representative-scope
struct:scope
2
0
#f
(list
(cons prop:authentic #t)
(cons prop:implicitly-reachable #t)
(cons prop:reach-scopes (lambda (s_29 reach_10) (reach_10 (representative-scope-owner s_29))))
(cons
prop:serialize-fill!
(lambda (s_99 ser-push!_10 state_20)
(begin
(ser-push!_10 'tag '#:representative-scope-fill!)
(ser-push!_10 (binding-table-prune-to-reachable (scope-binding-table s_99) state_20))
(ser-push!_10 (representative-scope-owner s_99)))))
(cons
prop:serialize
(lambda (s_32 ser-push!_11 state_21)
(begin
(ser-push!_11 'tag '#:representative-scope)
(ser-push!_11 (scope-kind s_32))
(ser-push!_11 (representative-scope-phase s_32)))))
(cons
prop:custom-write
(lambda (sc_7 port_5 mode_8)
(begin
(write-string "#<scope:" port_5)
(display (scope-id sc_7) port_5)
(if (representative-scope-owner sc_7)
(let-values ()
(begin
(write-string "=" port_5)
(display (multi-scope-id (representative-scope-owner sc_7)) port_5)))
(void))
(write-string "@" port_5)
(display (representative-scope-phase sc_7) port_5)
(write-string ">" port_5)))))
(current-inspector)
#f
'()
#f
'representative-scope)))))
(values
struct:_20
make-_20
?_20
(make-struct-field-accessor -ref_20 0 'owner)
(make-struct-field-accessor -ref_20 1 'phase)
(make-struct-field-mutator -set!_20 0 'owner)
(make-struct-field-mutator -set!_20 1 'phase))))
(define-values
(deserialize-representative-scope)
(lambda (kind_1 phase_9)
(begin (let-values (((v_72) (representative-scope4.1 (new-deserialize-scope-id!) kind_1 #f #f phase_9))) v_72))))
(define-values
(deserialize-representative-scope-fill!)
(lambda (s_53 bt_5 owner_0)
(begin (begin (deserialize-scope-fill! s_53 bt_5) (set-representative-scope-owner! s_53 owner_0)))))
(define-values
(struct:shifted-multi-scope
shifted-multi-scope5.1
shifted-multi-scope?
shifted-multi-scope-phase
shifted-multi-scope-multi-scope)
(let-values (((struct:_21 make-_21 ?_21 -ref_21 -set!_21)
(let-values ()
(let-values ()
(make-struct-type
'shifted-multi-scope
#f
2
0
#f
(list
(cons prop:authentic #t)
(cons
prop:reach-scopes
(lambda (sms_3 reach_11) (reach_11 (shifted-multi-scope-multi-scope sms_3))))
(cons
prop:serialize
(lambda (sms_4 ser-push!_12 state_22)
(begin
(ser-push!_12 'tag '#:shifted-multi-scope)
(ser-push!_12 (shifted-multi-scope-phase sms_4))
(ser-push!_12 (shifted-multi-scope-multi-scope sms_4)))))
(cons
prop:custom-write
(lambda (sms_5 port_6 mode_9)
(begin
(write-string "#<scope:" port_6)
(display (multi-scope-id (shifted-multi-scope-multi-scope sms_5)) port_6)
(write-string "@" port_6)
(display (shifted-multi-scope-phase sms_5) port_6)
(write-string ">" port_6)))))
(current-inspector)
#f
'(0 1)
#f
'shifted-multi-scope)))))
(values
struct:_21
make-_21
?_21
(make-struct-field-accessor -ref_21 0 'phase)
(make-struct-field-accessor -ref_21 1 'multi-scope))))
(define-values
(deserialize-shifted-multi-scope)
(lambda (phase_10 multi-scope_0) (begin (intern-shifted-multi-scope phase_10 multi-scope_0))))
(define-values
(intern-shifted-multi-scope)
(lambda (phase_11 multi-scope_1)
(begin
(letrec-values (((transaction-loop_0)
(lambda (boxed-table_0 key_33 make_0)
(begin
'transaction-loop
(let-values (((or-part_105) (hash-ref (unbox boxed-table_0) phase_11 #f)))
(if or-part_105
or-part_105
(let-values (((val_18) (make_0)))
(let-values (((current_0) (unbox boxed-table_0)))
(let-values (((next_3) (hash-set current_0 key_33 val_18)))
(if (box-cas! boxed-table_0 current_0 next_3)
val_18
(transaction-loop_0 boxed-table_0 key_33 make_0)))))))))))
(if (phase? phase_11)
(let-values ()
(let-values (((or-part_106) (hash-ref (unbox (multi-scope-shifted multi-scope_1)) phase_11 #f)))
(if or-part_106
or-part_106
(transaction-loop_0
(multi-scope-shifted multi-scope_1)
phase_11
(lambda () (shifted-multi-scope5.1 phase_11 multi-scope_1))))))
(let-values ()
(let-values (((or-part_107) (hash-ref (unbox (multi-scope-label-shifted multi-scope_1)) phase_11 #f)))
(if or-part_107
or-part_107
(transaction-loop_0
(multi-scope-label-shifted multi-scope_1)
phase_11
(lambda () (shifted-multi-scope5.1 phase_11 multi-scope_1)))))))))))
(define-values
(struct:shifted-to-label-phase shifted-to-label-phase6.1 shifted-to-label-phase? shifted-to-label-phase-from)
(let-values (((struct:_22 make-_22 ?_22 -ref_22 -set!_22)
(let-values ()
(let-values ()
(make-struct-type
'shifted-to-label-phase
#f
1
0
#f
null
'prefab
#f
'(0)
#f
'shifted-to-label-phase)))))
(values struct:_22 make-_22 ?_22 (make-struct-field-accessor -ref_22 0 'from))))
(define-values (cell.1$5) (unsafe-make-place-local 0))
(define-values
(new-scope-id!)
(lambda ()
(begin
(begin
(unsafe-place-local-set! cell.1$5 (add1 (unsafe-place-local-ref cell.1$5)))
(unsafe-place-local-ref cell.1$5)))))
(define-values (new-deserialize-scope-id!) (lambda () (begin (- (new-scope-id!)))))
(define-values (deserialized-scope-id?) (lambda (scope-id_0) (begin (negative? scope-id_0))))
(define-values (top-level-common-scope) (scope1.1 0 'module empty-binding-table))
(define-values (new-scope) (lambda (kind_2) (begin (scope1.1 (new-scope-id!) kind_2 empty-binding-table))))
(define-values (cell.2$2) (unsafe-make-place-local (make-weak-hasheq)))
(define-values (scope-place-init!) (lambda () (begin (unsafe-place-local-set! cell.2$2 (make-weak-hasheq)))))
(define-values
(make-interned-scope)
(lambda (sym_15)
(begin
(let-values (((make_1)
(lambda ()
(begin
'make
(make-ephemeron
sym_15
(interned-scope2.1 (- (new-scope-id!)) 'interned empty-binding-table sym_15))))))
(call-as-atomic
(lambda ()
(let-values (((or-part_108) (ephemeron-value (hash-ref! (unsafe-place-local-ref cell.2$2) sym_15 make_1))))
(if or-part_108
or-part_108
(let-values (((new_2) (make_1)))
(begin (hash-set! (unsafe-place-local-ref cell.2$2) sym_15 new_2) (ephemeron-value new_2)))))))))))
(define-values
(new-multi-scope)
(let-values (((new-multi-scope_0)
(lambda (name7_0)
(begin
'new-multi-scope
(let-values (((name_16) name7_0))
(let-values ()
(intern-shifted-multi-scope
0
(multi-scope3.1 (new-scope-id!) name_16 (box (hasheqv)) (box (hasheqv)) (box (hash))))))))))
(case-lambda (() (begin (new-multi-scope_0 #f))) ((name7_1) (new-multi-scope_0 name7_1)))))
(define-values
(multi-scope-to-scope-at-phase)
(lambda (ms_2 phase_12)
(begin
(let-values (((scopes_9) (unbox (multi-scope-scopes ms_2))))
(let-values (((or-part_63) (hash-ref scopes_9 phase_12 #f)))
(if or-part_63
or-part_63
(let-values (((s_91)
(representative-scope4.1
(if (deserialized-scope-id? (multi-scope-id ms_2))
(new-deserialize-scope-id!)
(new-scope-id!))
'module
empty-binding-table
ms_2
phase_12)))
(if (box-cas! (multi-scope-scopes ms_2) scopes_9 (hash-set scopes_9 phase_12 s_91))
s_91
(multi-scope-to-scope-at-phase ms_2 phase_12)))))))))
(define-values (scope>?) (lambda (sc1_0 sc2_0) (begin (> (scope-id sc1_0) (scope-id sc2_0)))))
(define-values (scope<?) (lambda (sc1_1 sc2_1) (begin (< (scope-id sc1_1) (scope-id sc2_1)))))
(define-values
(shifted-multi-scope<?)
(lambda (sms1_0 sms2_0)
(begin
(let-values (((ms1_0) (shifted-multi-scope-multi-scope sms1_0)))
(let-values (((ms2_0) (shifted-multi-scope-multi-scope sms2_0)))
(if (eq? ms1_0 ms2_0)
(let-values (((p1_0) (shifted-multi-scope-phase sms1_0)) ((p2_0) (shifted-multi-scope-phase sms2_0)))
(if (shifted-to-label-phase? p1_0)
(let-values ()
(if (shifted-to-label-phase? p2_0)
(let-values () (phase<? (shifted-to-label-phase-from p1_0) (shifted-to-label-phase-from p2_0)))
(let-values () #f)))
(if (shifted-to-label-phase? p2_0) (let-values () #t) (let-values () (phase<? p1_0 p2_0)))))
(< (multi-scope-id ms1_0) (multi-scope-id ms2_0))))))))
(define-values
(syntax-propagated-content*)
(lambda (s_66)
(begin
(let-values (((content*_13) (syntax-content* s_66)))
(if (not (modified-content? content*_13))
(let-values () content*_13)
(let-values ()
(let-values (((prop_2) (modified-content-scope-propagations+tamper content*_13)))
(if (let-values (((or-part_109) (propagation? prop_2)))
(if or-part_109 or-part_109 (tamper-needs-propagate? prop_2)))
(let-values ()
(let-values (((content_16) (modified-content-content content*_13)))
(let-values (((new-content_0)
(if (propagation? prop_2)
(let-values ()
(let-values (((s_67) content_16)
((f_24) (lambda (tail?_11 x_22) (begin 'f x_22)))
((s->_0)
(lambda (sub-s_1)
(begin
's->
(let-values (((sub-content*_0) (syntax-content* sub-s_1)))
(let-values (((sub-content_0)
(if (modified-content? sub-content*_0)
(modified-content-content sub-content*_0)
sub-content*_0)))
(let-values (((scope-propagations+tamper_0)
(propagation-merge
sub-content_0
prop_2
(if (modified-content? sub-content*_0)
(modified-content-scope-propagations+tamper
sub-content*_0)
#f)
(syntax-scopes sub-s_1)
(syntax-shifted-multi-scopes sub-s_1)
(syntax-mpi-shifts sub-s_1))))
(let-values (((the-struct_14) sub-s_1))
(if (syntax?$1 the-struct_14)
(let-values (((scopes41_0)
(propagation-apply
prop_2
(syntax-scopes sub-s_1)
s_66))
((shifted-multi-scopes42_0)
(propagation-apply-shifted
prop_2
(syntax-shifted-multi-scopes sub-s_1)
s_66))
((mpi-shifts43_0)
(propagation-apply-mpi-shifts
prop_2
(syntax-mpi-shifts sub-s_1)
s_66))
((inspector44_0)
(propagation-apply-inspector
prop_2
(syntax-inspector sub-s_1)))
((content*45_0)
(if scope-propagations+tamper_0
(modified-content1.1
sub-content_0
scope-propagations+tamper_0)
sub-content_0)))
(syntax2.1
content*45_0
scopes41_0
shifted-multi-scopes42_0
mpi-shifts43_0
(syntax-srcloc the-struct_14)
(syntax-props the-struct_14)
inspector44_0))
(raise-argument-error
'struct-copy
"syntax?"
the-struct_14)))))))))
((seen_5) #f)
((known-pairs_3) #f))
(let-values (((s_69) s_67)
((f_29) f_24)
((gf_3)
(lambda (tail?_21 v_73)
(begin
'gf
(if (syntax?$1 v_73)
(let-values () (s->_0 v_73))
(let-values () (f_24 tail?_21 v_73))))))
((seen_8) seen_5)
((known-pairs_6) known-pairs_3))
((letrec-values (((loop_70)
(lambda (tail?_15 s_70 prev-depth_4)
(begin
'loop
(let-values (((depth_4) (fx+ 1 prev-depth_4)))
(if (if seen_8 (fx> depth_4 32) #f)
(let-values ()
(datum-map-slow
tail?_15
s_70
(lambda (tail?_22 s_71) (gf_3 tail?_22 s_71))
seen_8
known-pairs_6))
(if (null? s_70)
(let-values () (f_29 tail?_15 s_70))
(if (pair? s_70)
(let-values ()
(f_29
tail?_15
(cons
(loop_70 #f (car s_70) depth_4)
(loop_70 1 (cdr s_70) depth_4))))
(if (symbol? s_70)
(let-values () (f_29 #f s_70))
(if (boolean? s_70)
(let-values () (f_29 #f s_70))
(if (number? s_70)
(let-values () (f_29 #f s_70))
(if (let-values (((or-part_110)
(vector? s_70)))
(if or-part_110
or-part_110
(let-values (((or-part_111)
(box? s_70)))
(if or-part_111
or-part_111
(let-values (((or-part_112)
(prefab-struct-key
s_70)))
(if or-part_112
or-part_112
(hash? s_70)))))))
(let-values ()
(datum-map-slow
tail?_15
s_70
(lambda (tail?_23 s_100)
(gf_3 tail?_23 s_100))
seen_8
known-pairs_6))
(let-values ()
(gf_3 #f s_70))))))))))))))
loop_70)
#f
s_69
0))))
(let-values ()
(let-values (((s_73) content_16)
((f_30) (lambda (tail?_24 x_29) (begin 'f x_29)))
((s->_2)
(lambda (sub-s_2)
(begin
's->
(let-values (((stx_9) sub-s_2))
(let-values (((t_25)
(tamper-tainted-for-content
(syntax-content sub-s_2))))
(let-values (((content*_14) (syntax-content* stx_9)))
(let-values (((content_5)
(if (modified-content? content*_14)
(modified-content-content content*_14)
content*_14)))
(let-values (((p_18)
(if (modified-content? content*_14)
(modified-content-scope-propagations+tamper
content*_14)
#f)))
(let-values (((the-struct_15) stx_9))
(if (syntax?$1 the-struct_15)
(let-values (((content*46_0)
(let-values (((new-p_8)
(if (tamper? p_18)
t_25
((propagation-set-tamper-ref
p_18)
p_18
t_25))))
(if new-p_8
(modified-content1.1
content_5
new-p_8)
content_5))))
(syntax2.1
content*46_0
(syntax-scopes the-struct_15)
(syntax-shifted-multi-scopes the-struct_15)
(syntax-mpi-shifts the-struct_15)
(syntax-srcloc the-struct_15)
(syntax-props the-struct_15)
(syntax-inspector the-struct_15)))
(raise-argument-error
'struct-copy
"syntax?"
the-struct_15)))))))))))
((seen_9) #f)
((known-pairs_7) #f))
(let-values (((s_101) s_73)
((f_31) f_30)
((gf_4)
(lambda (tail?_25 v_74)
(begin
'gf
(if (syntax?$1 v_74)
(let-values () (s->_2 v_74))
(let-values () (f_30 tail?_25 v_74))))))
((seen_10) seen_9)
((known-pairs_8) known-pairs_7))
((letrec-values (((loop_71)
(lambda (tail?_26 s_102 prev-depth_5)
(begin
'loop
(let-values (((depth_5) (fx+ 1 prev-depth_5)))
(if (if seen_10 (fx> depth_5 32) #f)
(let-values ()
(datum-map-slow
tail?_26
s_102
(lambda (tail?_27 s_103) (gf_4 tail?_27 s_103))
seen_10
known-pairs_8))
(if (null? s_102)
(let-values () (f_31 tail?_26 s_102))
(if (pair? s_102)
(let-values ()
(f_31
tail?_26
(cons
(loop_71 #f (car s_102) depth_5)
(loop_71 1 (cdr s_102) depth_5))))
(if (symbol? s_102)
(let-values () (f_31 #f s_102))
(if (boolean? s_102)
(let-values () (f_31 #f s_102))
(if (number? s_102)
(let-values () (f_31 #f s_102))
(if (let-values (((or-part_113)
(vector? s_102)))
(if or-part_113
or-part_113
(let-values (((or-part_114)
(box? s_102)))
(if or-part_114
or-part_114
(let-values (((or-part_115)
(prefab-struct-key
s_102)))
(if or-part_115
or-part_115
(hash? s_102)))))))
(let-values ()
(datum-map-slow
tail?_26
s_102
(lambda (tail?_28 s_75)
(gf_4 tail?_28 s_75))
seen_10
known-pairs_8))
(let-values ()
(gf_4 #f s_102))))))))))))))
loop_71)
#f
s_101
0)))))))
(let-values (((new-tamper_0)
(tamper-propagated (if (propagation? prop_2) (propagation-tamper prop_2) prop_2))))
(let-values (((new-content*_0)
(if new-tamper_0 (modified-content1.1 new-content_0 new-tamper_0) new-content_0)))
(if (syntax-content*-cas! s_66 content*_13 new-content*_0)
new-content*_0
(syntax-propagated-content* s_66)))))))
(let-values () content*_13)))))))))
(define-values
(syntax-e/no-taint)
(lambda (s_104)
(begin
(let-values (((content*_15) (syntax-propagated-content* s_104)))
(if (modified-content? content*_15) (modified-content-content content*_15) content*_15)))))
(define-values
(syntax-e$1)
(lambda (s_105)
(begin
'syntax-e
(let-values (((e_13) (syntax-content* s_105)))
(if (symbol? e_13)
(let-values () e_13)
(let-values ()
(let-values (((content*_16) (syntax-propagated-content* s_105)))
(if (modified-content? content*_16)
(let-values ()
(let-values (((content_17) (modified-content-content content*_16)))
(let-values (((prop_3) (modified-content-scope-propagations+tamper content*_16)))
(if (not (tamper-armed? prop_3))
(let-values () content_17)
(if (datum-has-elements? content_17)
(let-values () (taint-content content_17))
(let-values () content_17))))))
(let-values () content*_16)))))))))
(define-values
(generalize-scope)
(lambda (sc_8)
(begin
(if (representative-scope? sc_8)
(intern-shifted-multi-scope (representative-scope-phase sc_8) (representative-scope-owner sc_8))
sc_8))))
(define-values
(add-scope)
(lambda (s_106 sc_9)
(begin
(let-values (((s_107) s_106) ((sc_10) (generalize-scope sc_9)) ((op_0) set-add) ((prop-op_0) propagation-add))
(let-values (((content*_17) (syntax-content* s_107)))
(let-values (((content_18)
(if (modified-content? content*_17) (modified-content-content content*_17) content*_17)))
(if (shifted-multi-scope? sc_10)
(let-values (((the-struct_16) s_107))
(if (syntax?$1 the-struct_16)
(let-values (((shifted-multi-scopes47_0)
(fallback-update-first
(syntax-shifted-multi-scopes s_107)
(lambda (smss_9) (op_0 (fallback-first smss_9) sc_10))))
((content*48_0)
(if (datum-has-elements? content_18)
(let-values (((prop_4)
(prop-op_0
(if (modified-content? content*_17)
(modified-content-scope-propagations+tamper content*_17)
#f)
sc_10
(syntax-scopes s_107)
(syntax-shifted-multi-scopes s_107)
(syntax-mpi-shifts s_107))))
(if prop_4 (modified-content1.1 content_18 prop_4) content_18))
content*_17)))
(syntax2.1
content*48_0
(syntax-scopes the-struct_16)
shifted-multi-scopes47_0
(syntax-mpi-shifts the-struct_16)
(syntax-srcloc the-struct_16)
(syntax-props the-struct_16)
(syntax-inspector the-struct_16)))
(raise-argument-error 'struct-copy "syntax?" the-struct_16)))
(let-values (((the-struct_17) s_107))
(if (syntax?$1 the-struct_17)
(let-values (((scopes49_1) (op_0 (syntax-scopes s_107) sc_10))
((content*50_0)
(if (datum-has-elements? content_18)
(let-values (((prop_5)
(prop-op_0
(if (modified-content? content*_17)
(modified-content-scope-propagations+tamper content*_17)
#f)
sc_10
(syntax-scopes s_107)
(syntax-shifted-multi-scopes s_107)
(syntax-mpi-shifts s_107))))
(if prop_5 (modified-content1.1 content_18 prop_5) content_18))
content*_17)))
(syntax2.1
content*50_0
scopes49_1
(syntax-shifted-multi-scopes the-struct_17)
(syntax-mpi-shifts the-struct_17)
(syntax-srcloc the-struct_17)
(syntax-props the-struct_17)
(syntax-inspector the-struct_17)))
(raise-argument-error 'struct-copy "syntax?" the-struct_17))))))))))
(define-values
(add-scopes)
(lambda (s_108 scs_5)
(begin
(let-values (((lst_42) scs_5))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_42)))
((letrec-values (((for-loop_64)
(lambda (s_109 lst_46)
(begin
'for-loop
(if (pair? lst_46)
(let-values (((sc_11) (unsafe-car lst_46)) ((rest_20) (unsafe-cdr lst_46)))
(let-values (((s_110)
(let-values (((s_111) s_109))
(let-values (((s_112) (let-values () (add-scope s_111 sc_11))))
(values s_112)))))
(if (not #f) (for-loop_64 s_110 rest_20) s_110)))
s_109)))))
for-loop_64)
s_108
lst_42))))))
(define-values
(remove-scope)
(lambda (s_113 sc_12)
(begin
(let-values (((s_114) s_113)
((sc_13) (generalize-scope sc_12))
((op_1) set-remove)
((prop-op_1) propagation-remove))
(let-values (((content*_18) (syntax-content* s_114)))
(let-values (((content_19)
(if (modified-content? content*_18) (modified-content-content content*_18) content*_18)))
(if (shifted-multi-scope? sc_13)
(let-values (((the-struct_18) s_114))
(if (syntax?$1 the-struct_18)
(let-values (((shifted-multi-scopes51_0)
(fallback-update-first
(syntax-shifted-multi-scopes s_114)
(lambda (smss_10) (op_1 (fallback-first smss_10) sc_13))))
((content*52_0)
(if (datum-has-elements? content_19)
(let-values (((prop_6)
(prop-op_1
(if (modified-content? content*_18)
(modified-content-scope-propagations+tamper content*_18)
#f)
sc_13
(syntax-scopes s_114)
(syntax-shifted-multi-scopes s_114)
(syntax-mpi-shifts s_114))))
(if prop_6 (modified-content1.1 content_19 prop_6) content_19))
content*_18)))
(syntax2.1
content*52_0
(syntax-scopes the-struct_18)
shifted-multi-scopes51_0
(syntax-mpi-shifts the-struct_18)
(syntax-srcloc the-struct_18)
(syntax-props the-struct_18)
(syntax-inspector the-struct_18)))
(raise-argument-error 'struct-copy "syntax?" the-struct_18)))
(let-values (((the-struct_19) s_114))
(if (syntax?$1 the-struct_19)
(let-values (((scopes53_0) (op_1 (syntax-scopes s_114) sc_13))
((content*54_0)
(if (datum-has-elements? content_19)
(let-values (((prop_7)
(prop-op_1
(if (modified-content? content*_18)
(modified-content-scope-propagations+tamper content*_18)
#f)
sc_13
(syntax-scopes s_114)
(syntax-shifted-multi-scopes s_114)
(syntax-mpi-shifts s_114))))
(if prop_7 (modified-content1.1 content_19 prop_7) content_19))
content*_18)))
(syntax2.1
content*54_0
scopes53_0
(syntax-shifted-multi-scopes the-struct_19)
(syntax-mpi-shifts the-struct_19)
(syntax-srcloc the-struct_19)
(syntax-props the-struct_19)
(syntax-inspector the-struct_19)))
(raise-argument-error 'struct-copy "syntax?" the-struct_19))))))))))
(define-values
(remove-scopes)
(lambda (s_115 scs_6)
(begin
(let-values (((lst_47) scs_6))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_47)))
((letrec-values (((for-loop_65)
(lambda (s_116 lst_48)
(begin
'for-loop
(if (pair? lst_48)
(let-values (((sc_14) (unsafe-car lst_48)) ((rest_21) (unsafe-cdr lst_48)))
(let-values (((s_117)
(let-values (((s_118) s_116))
(let-values (((s_119) (let-values () (remove-scope s_118 sc_14))))
(values s_119)))))
(if (not #f) (for-loop_65 s_117 rest_21) s_117)))
s_116)))))
for-loop_65)
s_115
lst_47))))))
(define-values
(set-flip)
(lambda (s_120 e_14) (begin (if (set-member? s_120 e_14) (set-remove s_120 e_14) (set-add s_120 e_14)))))
(define-values
(flip-scope)
(lambda (s_121 sc_15)
(begin
(let-values (((s_122) s_121) ((sc_16) (generalize-scope sc_15)) ((op_2) set-flip) ((prop-op_2) propagation-flip))
(let-values (((content*_19) (syntax-content* s_122)))
(let-values (((content_20)
(if (modified-content? content*_19) (modified-content-content content*_19) content*_19)))
(if (shifted-multi-scope? sc_16)
(let-values (((the-struct_20) s_122))
(if (syntax?$1 the-struct_20)
(let-values (((shifted-multi-scopes55_0)
(fallback-update-first
(syntax-shifted-multi-scopes s_122)
(lambda (smss_11) (op_2 (fallback-first smss_11) sc_16))))
((content*56_0)
(if (datum-has-elements? content_20)
(let-values (((prop_8)
(prop-op_2
(if (modified-content? content*_19)
(modified-content-scope-propagations+tamper content*_19)
#f)
sc_16
(syntax-scopes s_122)
(syntax-shifted-multi-scopes s_122)
(syntax-mpi-shifts s_122))))
(if prop_8 (modified-content1.1 content_20 prop_8) content_20))
content*_19)))
(syntax2.1
content*56_0
(syntax-scopes the-struct_20)
shifted-multi-scopes55_0
(syntax-mpi-shifts the-struct_20)
(syntax-srcloc the-struct_20)
(syntax-props the-struct_20)
(syntax-inspector the-struct_20)))
(raise-argument-error 'struct-copy "syntax?" the-struct_20)))
(let-values (((the-struct_21) s_122))
(if (syntax?$1 the-struct_21)
(let-values (((scopes57_0) (op_2 (syntax-scopes s_122) sc_16))
((content*58_0)
(if (datum-has-elements? content_20)
(let-values (((prop_9)
(prop-op_2
(if (modified-content? content*_19)
(modified-content-scope-propagations+tamper content*_19)
#f)
sc_16
(syntax-scopes s_122)
(syntax-shifted-multi-scopes s_122)
(syntax-mpi-shifts s_122))))
(if prop_9 (modified-content1.1 content_20 prop_9) content_20))
content*_19)))
(syntax2.1
content*58_0
scopes57_0
(syntax-shifted-multi-scopes the-struct_21)
(syntax-mpi-shifts the-struct_21)
(syntax-srcloc the-struct_21)
(syntax-props the-struct_21)
(syntax-inspector the-struct_21)))
(raise-argument-error 'struct-copy "syntax?" the-struct_21))))))))))
(define-values
(flip-scopes)
(lambda (s_123 scs_7)
(begin
(let-values (((lst_49) scs_7))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_49)))
((letrec-values (((for-loop_66)
(lambda (s_124 lst_0)
(begin
'for-loop
(if (pair? lst_0)
(let-values (((sc_17) (unsafe-car lst_0)) ((rest_22) (unsafe-cdr lst_0)))
(let-values (((s_125)
(let-values (((s_126) s_124))
(let-values (((s_127) (let-values () (flip-scope s_126 sc_17))))
(values s_127)))))
(if (not #f) (for-loop_66 s_125 rest_22) s_125)))
s_124)))))
for-loop_66)
s_123
lst_49))))))
(define-values
(push-scope)
(lambda (s_128 sms_6)
(begin
(let-values (((smss/maybe-fallbacks59_0) #f))
(let-values (((prev-result_0) #f))
(let-values (((push_0)
(lambda (smss/maybe-fallbacks_0)
(begin
'push
(if (eq? smss/maybe-fallbacks59_0 smss/maybe-fallbacks_0)
(let-values () prev-result_0)
(let-values ()
(let-values (((r_19)
(let-values ()
(let-values (((smss_12) (fallback-first smss/maybe-fallbacks_0)))
(if (set-empty? smss_12)
(let-values () (set-add smss_12 sms_6))
(if (set-member? smss_12 sms_6)
(let-values () smss/maybe-fallbacks_0)
(let-values ()
(fallback-push
(set-add smss_12 sms_6)
smss/maybe-fallbacks_0))))))))
(begin
(set! smss/maybe-fallbacks59_0 smss/maybe-fallbacks_0)
(set! prev-result_0 r_19)
r_19))))))))
(let-values (((s_129) s_128)
((f_32) (lambda (tail?_29 x_30) (begin 'f x_30)))
((d->s_1)
(lambda (s_130 d_4)
(begin
'd->s
(let-values (((the-struct_22) s_130))
(if (syntax?$1 the-struct_22)
(let-values (((content*60_0) (re-modify-content s_130 d_4))
((shifted-multi-scopes61_0)
(push_0 (syntax-shifted-multi-scopes s_130))))
(syntax2.1
content*60_0
(syntax-scopes the-struct_22)
shifted-multi-scopes61_0
(syntax-mpi-shifts the-struct_22)
(syntax-srcloc the-struct_22)
(syntax-props the-struct_22)
(syntax-inspector the-struct_22)))
(raise-argument-error 'struct-copy "syntax?" the-struct_22))))))
((s-e_1) syntax-e/no-taint)
((seen_11) #f))
((letrec-values (((loop_18)
(lambda (s_131)
(begin
'loop
(let-values (((s_132) s_131)
((f_33) f_32)
((gf_5)
(lambda (tail?_30 v_75)
(begin
'gf
(if (syntax?$1 v_75)
(let-values () (d->s_1 v_75 (loop_18 (s-e_1 v_75))))
(let-values () (f_32 tail?_30 v_75))))))
((seen_12) seen_11)
((known-pairs_9) #f))
((letrec-values (((loop_72)
(lambda (tail?_31 s_133 prev-depth_6)
(begin
'loop
(let-values (((depth_6) (fx+ 1 prev-depth_6)))
(if (if seen_12 (fx> depth_6 32) #f)
(let-values ()
(datum-map-slow
tail?_31
s_133
(lambda (tail?_32 s_134) (gf_5 tail?_32 s_134))
seen_12
known-pairs_9))
(if (null? s_133)
(let-values () (f_33 tail?_31 s_133))
(if (pair? s_133)
(let-values ()
(f_33
tail?_31
(cons
(loop_72 #f (car s_133) depth_6)
(loop_72 1 (cdr s_133) depth_6))))
(if (symbol? s_133)
(let-values () (f_33 #f s_133))
(if (boolean? s_133)
(let-values () (f_33 #f s_133))
(if (number? s_133)
(let-values () (f_33 #f s_133))
(if (let-values (((or-part_116)
(vector? s_133)))
(if or-part_116
or-part_116
(let-values (((or-part_117)
(box? s_133)))
(if or-part_117
or-part_117
(let-values (((or-part_118)
(prefab-struct-key
s_133)))
(if or-part_118
or-part_118
(hash? s_133)))))))
(let-values ()
(datum-map-slow
tail?_31
s_133
(lambda (tail?_33 s_135)
(gf_5 tail?_33 s_135))
seen_12
known-pairs_9))
(let-values () (gf_5 #f s_133))))))))))))))
loop_72)
#f
s_132
0))))))
loop_18)
s_129))))))))
(define-values
(struct:propagation
propagation12.1
propagation?
propagation-prev-scs
propagation-prev-smss
propagation-scope-ops
propagation-prev-mss
propagation-add-mpi-shifts
propagation-inspector
propagation-tamper)
(let-values (((struct:_23 make-_23 ?_23 -ref_23 -set!_23)
(let-values ()
(let-values ()
(make-struct-type
'propagation
#f
7
0
#f
(list
(cons prop:authentic #t)
(cons prop:propagation-set-tamper (lambda (p_19 v_76) (propagation-set-tamper p_19 v_76)))
(cons prop:propagation-tamper (lambda (p_20) (propagation-tamper p_20)))
(cons prop:propagation syntax-e$1))
(current-inspector)
#f
'(0 1 2 3 4 5 6)
#f
'propagation)))))
(values
struct:_23
make-_23
?_23
(make-struct-field-accessor -ref_23 0 'prev-scs)
(make-struct-field-accessor -ref_23 1 'prev-smss)
(make-struct-field-accessor -ref_23 2 'scope-ops)
(make-struct-field-accessor -ref_23 3 'prev-mss)
(make-struct-field-accessor -ref_23 4 'add-mpi-shifts)
(make-struct-field-accessor -ref_23 5 'inspector)
(make-struct-field-accessor -ref_23 6 'tamper))))
(define-values
(propagation-add)
(lambda (prop_10 sc_18 prev-scs_0 prev-smss_0 prev-mss_0)
(begin
(if (propagation? prop_10)
(let-values (((the-struct_23) prop_10))
(if (propagation? the-struct_23)
(let-values (((scope-ops63_0) (hash-set (propagation-scope-ops prop_10) sc_18 'add)))
(propagation12.1
(propagation-prev-scs the-struct_23)
(propagation-prev-smss the-struct_23)
scope-ops63_0
(propagation-prev-mss the-struct_23)
(propagation-add-mpi-shifts the-struct_23)
(propagation-inspector the-struct_23)
(propagation-tamper the-struct_23)))
(raise-argument-error 'struct-copy "propagation?" the-struct_23)))
(propagation12.1 prev-scs_0 prev-smss_0 (hasheq sc_18 'add) prev-mss_0 #f #f prop_10)))))
(define-values
(propagation-remove)
(lambda (prop_11 sc_19 prev-scs_1 prev-smss_1 prev-mss_1)
(begin
(if (propagation? prop_11)
(let-values (((the-struct_24) prop_11))
(if (propagation? the-struct_24)
(let-values (((scope-ops64_0) (hash-set (propagation-scope-ops prop_11) sc_19 'remove)))
(propagation12.1
(propagation-prev-scs the-struct_24)
(propagation-prev-smss the-struct_24)
scope-ops64_0
(propagation-prev-mss the-struct_24)
(propagation-add-mpi-shifts the-struct_24)
(propagation-inspector the-struct_24)
(propagation-tamper the-struct_24)))
(raise-argument-error 'struct-copy "propagation?" the-struct_24)))
(propagation12.1 prev-scs_1 prev-smss_1 (hasheq sc_19 'remove) prev-mss_1 #f #f prop_11)))))
(define-values
(propagation-flip)
(lambda (prop_12 sc_20 prev-scs_2 prev-smss_2 prev-mss_2)
(begin
(if (propagation? prop_12)
(let-values (((ops_0) (propagation-scope-ops prop_12)))
(let-values (((current-op_0) (hash-ref ops_0 sc_20 #f)))
(if (if (eq? current-op_0 'flip)
(if (= 1 (hash-count ops_0))
(if (not (propagation-inspector prop_12)) (not (propagation-add-mpi-shifts prop_12)) #f)
#f)
#f)
(let-values () (propagation-tamper prop_12))
(let-values ()
(let-values (((the-struct_25) prop_12))
(if (propagation? the-struct_25)
(let-values (((scope-ops65_0)
(if (eq? current-op_0 'flip)
(hash-remove ops_0 sc_20)
(hash-set
ops_0
sc_20
(let-values (((tmp_9) current-op_0))
(if (equal? tmp_9 'add)
(let-values () 'remove)
(if (equal? tmp_9 'remove) (let-values () 'add) (let-values () 'flip))))))))
(propagation12.1
(propagation-prev-scs the-struct_25)
(propagation-prev-smss the-struct_25)
scope-ops65_0
(propagation-prev-mss the-struct_25)
(propagation-add-mpi-shifts the-struct_25)
(propagation-inspector the-struct_25)
(propagation-tamper the-struct_25)))
(raise-argument-error 'struct-copy "propagation?" the-struct_25)))))))
(propagation12.1 prev-scs_2 prev-smss_2 (hasheq sc_20 'flip) prev-mss_2 #f #f prop_12)))))
(define-values
(propagation-mpi-shift)
(lambda (prop_13 add_0 inspector_2 prev-scs_3 prev-smss_3 prev-mss_3)
(begin
(if (propagation? prop_13)
(let-values (((the-struct_26) prop_13))
(if (propagation? the-struct_26)
(let-values (((add-mpi-shifts66_0)
(let-values (((base-add_0) (propagation-add-mpi-shifts prop_13)))
(if (if add_0 base-add_0 #f)
(lambda (mss_0) (begin 'add-mpi-shifts66 (add_0 (base-add_0 mss_0))))
(let-values (((or-part_119) add_0)) (if or-part_119 or-part_119 base-add_0)))))
((inspector67_0)
(let-values (((or-part_120) (propagation-inspector prop_13)))
(if or-part_120 or-part_120 inspector_2))))
(propagation12.1
(propagation-prev-scs the-struct_26)
(propagation-prev-smss the-struct_26)
(propagation-scope-ops the-struct_26)
(propagation-prev-mss the-struct_26)
add-mpi-shifts66_0
inspector67_0
(propagation-tamper the-struct_26)))
(raise-argument-error 'struct-copy "propagation?" the-struct_26)))
(propagation12.1 prev-scs_3 prev-smss_3 '#hasheq() prev-mss_3 add_0 inspector_2 prop_13)))))
(define-values
(propagation-apply)
(lambda (prop_14 scs_8 parent-s_0)
(begin
(if (eq? (propagation-prev-scs prop_14) scs_8)
(let-values () (syntax-scopes parent-s_0))
(let-values ()
(let-values (((new-scs_0)
(let-values (((ht_56) (propagation-scope-ops prop_14)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_56)))
((letrec-values (((for-loop_67)
(lambda (scs_9 i_72)
(begin
'for-loop
(if i_72
(let-values (((sc_21 op_3)
(unsafe-immutable-hash-iterate-key+value ht_56 i_72)))
(let-values (((scs_10)
(let-values (((scs_11) scs_9))
(if (not (shifted-multi-scope? sc_21))
(let-values (((scs_12) scs_11))
(let-values (((scs_13)
(let-values ()
(let-values (((tmp_10) op_3))
(if (equal? tmp_10 'add)
(let-values ()
(set-add scs_12 sc_21))
(if (equal?
tmp_10
'remove)
(let-values ()
(set-remove
scs_12
sc_21))
(let-values ()
(set-flip
scs_12
sc_21))))))))
(values scs_13)))
scs_11))))
(if (not #f)
(for-loop_67
scs_10
(unsafe-immutable-hash-iterate-next ht_56 i_72))
scs_10)))
scs_9)))))
for-loop_67)
scs_8
(unsafe-immutable-hash-iterate-first ht_56))))))
(if (set=? new-scs_0 (syntax-scopes parent-s_0))
(syntax-scopes parent-s_0)
(cache-or-reuse-set new-scs_0))))))))
(define-values
(propagation-apply-shifted)
(lambda (prop_15 smss_13 parent-s_1)
(begin
(if (eq? (propagation-prev-smss prop_15) smss_13)
(let-values () (syntax-shifted-multi-scopes parent-s_1))
(let-values ()
(let-values (((new-smss_0)
(let-values (((ht_57) (propagation-scope-ops prop_15)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_57)))
((letrec-values (((for-loop_68)
(lambda (smss_14 i_73)
(begin
'for-loop
(if i_73
(let-values (((sms_7 op_4)
(unsafe-immutable-hash-iterate-key+value ht_57 i_73)))
(let-values (((smss_15)
(let-values (((smss_16) smss_14))
(if (shifted-multi-scope? sms_7)
(let-values (((smss_17) smss_16))
(let-values (((smss_18)
(let-values ()
(fallback-update-first
smss_17
(lambda (smss_19)
(let-values (((tmp_11)
op_4))
(if (equal? tmp_11 'add)
(let-values ()
(set-add
smss_19
sms_7))
(if (equal?
tmp_11
'remove)
(let-values ()
(set-remove
smss_19
sms_7))
(let-values ()
(set-flip
smss_19
sms_7))))))))))
(values smss_18)))
smss_16))))
(if (not #f)
(for-loop_68
smss_15
(unsafe-immutable-hash-iterate-next ht_57 i_73))
smss_15)))
smss_14)))))
for-loop_68)
smss_13
(unsafe-immutable-hash-iterate-first ht_57))))))
(let-values (((parent-smss_0) (syntax-shifted-multi-scopes parent-s_1)))
(if (if (set? new-smss_0) (if (set? parent-smss_0) (set=? new-smss_0 parent-smss_0) #f) #f)
parent-smss_0
(cache-or-reuse-hash new-smss_0)))))))))
(define-values
(propagation-apply-mpi-shifts)
(lambda (prop_16 mss_1 parent-s_2)
(begin
(if (eq? (propagation-prev-mss prop_16) mss_1)
(let-values () (syntax-mpi-shifts parent-s_2))
(let-values () (let-values (((add_1) (propagation-add-mpi-shifts prop_16))) (if add_1 (add_1 mss_1) mss_1)))))))
(define-values
(propagation-apply-inspector)
(lambda (prop_17 i_74)
(begin (let-values (((or-part_121) i_74)) (if or-part_121 or-part_121 (propagation-inspector prop_17))))))
(define-values
(propagation-set-tamper)
(lambda (prop_18 t_26)
(begin
(if (propagation? prop_18)
(let-values (((the-struct_27) prop_18))
(if (propagation? the-struct_27)
(let-values (((tamper68_0) t_26))
(propagation12.1
(propagation-prev-scs the-struct_27)
(propagation-prev-smss the-struct_27)
(propagation-scope-ops the-struct_27)
(propagation-prev-mss the-struct_27)
(propagation-add-mpi-shifts the-struct_27)
(propagation-inspector the-struct_27)
tamper68_0))
(raise-argument-error 'struct-copy "propagation?" the-struct_27)))
t_26))))
(define-values
(propagation-merge)
(lambda (content_21 prop_19 base-prop_0 prev-scs_4 prev-smss_4 prev-mss_4)
(begin
(if (not (datum-has-elements? content_21))
(let-values () (if (tamper-tainted? (propagation-tamper prop_19)) 'tainted base-prop_0))
(if (not (propagation? base-prop_0))
(let-values ()
(if (if (eq? (propagation-prev-scs prop_19) prev-scs_4)
(if (eq? (propagation-prev-smss prop_19) prev-smss_4)
(if (eq? (propagation-prev-mss prop_19) prev-mss_4)
(eq? (propagation-tamper prop_19) base-prop_0)
#f)
#f)
#f)
(let-values () prop_19)
(let-values ()
(propagation12.1
prev-scs_4
prev-smss_4
(propagation-scope-ops prop_19)
prev-mss_4
(propagation-add-mpi-shifts prop_19)
(propagation-inspector prop_19)
(if (tamper-tainted? (propagation-tamper prop_19)) 'tainted/need-propagate base-prop_0)))))
(let-values ()
(let-values (((new-ops_0)
(let-values (((ht_58) (propagation-scope-ops prop_19)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_58)))
((letrec-values (((for-loop_69)
(lambda (ops_1 i_75)
(begin
'for-loop
(if i_75
(let-values (((sc_22 op_5)
(unsafe-immutable-hash-iterate-key+value
ht_58
i_75)))
(let-values (((ops_2)
(let-values (((ops_3) ops_1))
(let-values (((ops_4)
(let-values ()
(let-values (((tmp_12) op_5))
(if (equal? tmp_12 'add)
(let-values ()
(hash-set
ops_3
sc_22
'add))
(if (equal? tmp_12 'remove)
(let-values ()
(hash-set
ops_3
sc_22
'remove))
(let-values ()
(let-values (((current-op_1)
(hash-ref
ops_3
sc_22
#f)))
(let-values (((tmp_13)
current-op_1))
(if (equal?
tmp_13
'add)
(let-values ()
(hash-set
ops_3
sc_22
'remove))
(if (equal?
tmp_13
'remove)
(let-values ()
(hash-set
ops_3
sc_22
'add))
(if (equal?
tmp_13
'flip)
(let-values ()
(hash-remove
ops_3
sc_22))
(let-values ()
(hash-set
ops_3
sc_22
'flip))))))))))))))
(values ops_4)))))
(if (not #f)
(for-loop_69
ops_2
(unsafe-immutable-hash-iterate-next ht_58 i_75))
ops_2)))
ops_1)))))
for-loop_69)
(propagation-scope-ops base-prop_0)
(unsafe-immutable-hash-iterate-first ht_58))))))
(let-values (((add_2) (propagation-add-mpi-shifts prop_19)))
(let-values (((base-add_1) (propagation-add-mpi-shifts base-prop_0)))
(let-values (((new-tamper_1)
(if (let-values (((or-part_122) (tamper-tainted? (propagation-tamper prop_19))))
(if or-part_122 or-part_122 (tamper-tainted? (propagation-tamper base-prop_0))))
'tainted/need-propagate
(propagation-tamper base-prop_0))))
(if (if (zero? (hash-count new-ops_0))
(if (not add_2)
(if (not base-add_1)
(if (not (propagation-inspector prop_19)) (not (propagation-inspector base-prop_0)) #f)
#f)
#f)
#f)
new-tamper_1
(let-values (((the-struct_28) base-prop_0))
(if (propagation? the-struct_28)
(let-values (((scope-ops69_0) new-ops_0)
((add-mpi-shifts70_0)
(if (if add_2 base-add_1 #f)
(lambda (mss_2) (begin 'add-mpi-shifts70 (add_2 (base-add_1 mss_2))))
(let-values (((or-part_123) add_2)) (if or-part_123 or-part_123 base-add_1))))
((inspector71_0)
(let-values (((or-part_124) (propagation-inspector base-prop_0)))
(if or-part_124 or-part_124 (propagation-inspector prop_19))))
((tamper72_0) new-tamper_1))
(propagation12.1
(propagation-prev-scs the-struct_28)
(propagation-prev-smss the-struct_28)
scope-ops69_0
(propagation-prev-mss the-struct_28)
add-mpi-shifts70_0
inspector71_0
tamper72_0))
(raise-argument-error 'struct-copy "propagation?" the-struct_28))))))))))))))
(define-values
(shift-multi-scope)
(lambda (sms_8 delta_1)
(begin
(if (zero-phase? delta_1)
(let-values () sms_8)
(if (label-phase? delta_1)
(let-values ()
(if (shifted-to-label-phase? (shifted-multi-scope-phase sms_8))
(let-values () #f)
(let-values ()
(intern-shifted-multi-scope
(shifted-to-label-phase6.1 (phase- 0 (shifted-multi-scope-phase sms_8)))
(shifted-multi-scope-multi-scope sms_8)))))
(if (shifted-to-label-phase? (shifted-multi-scope-phase sms_8))
(let-values () sms_8)
(let-values ()
(intern-shifted-multi-scope
(phase+ delta_1 (shifted-multi-scope-phase sms_8))
(shifted-multi-scope-multi-scope sms_8)))))))))
(define-values
(syntax-shift-phase-level$1)
(lambda (s_136 phase_13)
(begin
'syntax-shift-phase-level
(if (eqv? phase_13 0)
s_136
(let-values ()
(let-values (((smss73_0) #f))
(let-values (((prev-result_1) #f))
(let-values (((shift-all_0)
(lambda (smss_20)
(begin
'shift-all
(if (eq? smss73_0 smss_20)
(let-values () prev-result_1)
(let-values ()
(let-values (((r_20)
(let-values ()
(fallback-map
smss_20
(lambda (smss_21)
(let-values (((ht_59) smss_21))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_59)))
((letrec-values (((for-loop_70)
(lambda (table_74 i_76)
(begin
'for-loop
(if i_76
(let-values (((sms_9)
(unsafe-immutable-hash-iterate-key
ht_59
i_76)))
(let-values (((table_75)
(let-values (((new-sms_0)
(shift-multi-scope
sms_9
phase_13)))
(begin
#t
((letrec-values (((for-loop_71)
(lambda (table_76)
(begin
'for-loop
(let-values ()
(let-values (((table_77)
(let-values (((table_78)
table_76))
(if new-sms_0
(let-values (((table_79)
table_78))
(let-values (((table_80)
(let-values ()
(let-values (((key_34
val_19)
(let-values ()
(values
(let-values ()
new-sms_0)
#t))))
(hash-set
table_79
key_34
val_19)))))
(values
table_80)))
table_78))))
table_77))))))
for-loop_71)
table_74)))))
(if (not #f)
(for-loop_70
table_75
(unsafe-immutable-hash-iterate-next
ht_59
i_76))
table_75)))
table_74)))))
for-loop_70)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_59)))))))))
(begin (set! smss73_0 smss_20) (set! prev-result_1 r_20) r_20))))))))
(let-values (((s_137) s_136)
((f_34) (lambda (tail?_34 d_5) (begin 'f d_5)))
((d->s_2)
(lambda (s_138 d_6)
(begin
'd->s
(let-values (((the-struct_29) s_138))
(if (syntax?$1 the-struct_29)
(let-values (((content*74_0) (re-modify-content s_138 d_6))
((shifted-multi-scopes75_0)
(shift-all_0 (syntax-shifted-multi-scopes s_138))))
(syntax2.1
content*74_0
(syntax-scopes the-struct_29)
shifted-multi-scopes75_0
(syntax-mpi-shifts the-struct_29)
(syntax-srcloc the-struct_29)
(syntax-props the-struct_29)
(syntax-inspector the-struct_29)))
(raise-argument-error 'struct-copy "syntax?" the-struct_29))))))
((s-e_2) syntax-e/no-taint)
((seen_13) #f))
((letrec-values (((loop_73)
(lambda (s_139)
(begin
'loop
(let-values (((s_140) s_139)
((f_35) f_34)
((gf_6)
(lambda (tail?_35 v_77)
(begin
'gf
(if (syntax?$1 v_77)
(let-values () (d->s_2 v_77 (loop_73 (s-e_2 v_77))))
(let-values () (f_34 tail?_35 v_77))))))
((seen_14) seen_13)
((known-pairs_10) #f))
((letrec-values (((loop_74)
(lambda (tail?_36 s_141 prev-depth_7)
(begin
'loop
(let-values (((depth_7) (fx+ 1 prev-depth_7)))
(if (if seen_14 (fx> depth_7 32) #f)
(let-values ()
(datum-map-slow
tail?_36
s_141
(lambda (tail?_37 s_142) (gf_6 tail?_37 s_142))
seen_14
known-pairs_10))
(if (null? s_141)
(let-values () (f_35 tail?_36 s_141))
(if (pair? s_141)
(let-values ()
(f_35
tail?_36
(cons
(loop_74 #f (car s_141) depth_7)
(loop_74 1 (cdr s_141) depth_7))))
(if (symbol? s_141)
(let-values () (f_35 #f s_141))
(if (boolean? s_141)
(let-values () (f_35 #f s_141))
(if (number? s_141)
(let-values () (f_35 #f s_141))
(if (let-values (((or-part_125)
(vector? s_141)))
(if or-part_125
or-part_125
(let-values (((or-part_126)
(box? s_141)))
(if or-part_126
or-part_126
(let-values (((or-part_127)
(prefab-struct-key
s_141)))
(if or-part_127
or-part_127
(hash? s_141)))))))
(let-values ()
(datum-map-slow
tail?_36
s_141
(lambda (tail?_38 s_143)
(gf_6 tail?_38 s_143))
seen_14
known-pairs_10))
(let-values ()
(gf_6 #f s_141))))))))))))))
loop_74)
#f
s_140
0))))))
loop_73)
s_137))))))))))
(define-values
(syntax-swap-scopes)
(lambda (s_144 src-scopes_0 dest-scopes_0)
(begin
(if (equal? src-scopes_0 dest-scopes_0)
s_144
(let-values (((src-smss_0 src-scs_0)
(set-partition
(let-values (((ht_60) src-scopes_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_60)))
((letrec-values (((for-loop_72)
(lambda (table_81 i_77)
(begin
'for-loop
(if i_77
(let-values (((sc_23)
(unsafe-immutable-hash-iterate-key ht_60 i_77)))
(let-values (((table_82)
(let-values (((table_83) table_81))
(let-values (((table_84)
(let-values ()
(let-values (((key_35 val_20)
(let-values ()
(values
(let-values ()
(generalize-scope
sc_23))
#t))))
(hash-set
table_83
key_35
val_20)))))
(values table_84)))))
(if (not #f)
(for-loop_72
table_82
(unsafe-immutable-hash-iterate-next ht_60 i_77))
table_82)))
table_81)))))
for-loop_72)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_60))))
shifted-multi-scope?
(seteq)
(seteq)))
((dest-smss_0 dest-scs_0)
(set-partition
(let-values (((ht_61) dest-scopes_0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_61)))
((letrec-values (((for-loop_73)
(lambda (table_85 i_78)
(begin
'for-loop
(if i_78
(let-values (((sc_24)
(unsafe-immutable-hash-iterate-key ht_61 i_78)))
(let-values (((table_86)
(let-values (((table_87) table_85))
(let-values (((table_88)
(let-values ()
(let-values (((key_36 val_21)
(let-values ()
(values
(let-values ()
(generalize-scope
sc_24))
#t))))
(hash-set
table_87
key_36
val_21)))))
(values table_88)))))
(if (not #f)
(for-loop_73
table_86
(unsafe-immutable-hash-iterate-next ht_61 i_78))
table_86)))
table_85)))))
for-loop_73)
'#hasheq()
(unsafe-immutable-hash-iterate-first ht_61))))
shifted-multi-scope?
(seteq)
(seteq))))
(let-values (((scs76_0) #f))
(let-values (((prev-result_2) #f))
(let-values (((swap-scs_0)
(lambda (scs_14)
(begin
'swap-scs
(if (eq? scs76_0 scs_14)
(let-values () prev-result_2)
(let-values ()
(let-values (((r_21)
(let-values ()
(if (subset? src-scs_0 scs_14)
(set-union (set-subtract scs_14 src-scs_0) dest-scs_0)
scs_14))))
(begin (set! scs76_0 scs_14) (set! prev-result_2 r_21) r_21))))))))
(let-values (((smss77_0) #f))
(let-values (((prev-result_3) #f))
(let-values (((swap-smss_0)
(lambda (smss_22)
(begin
'swap-smss
(if (eq? smss77_0 smss_22)
(let-values () prev-result_3)
(let-values ()
(let-values (((r_22)
(let-values ()
(fallback-update-first
smss_22
(lambda (smss_23)
(if (subset? src-smss_0 smss_23)
(set-union (set-subtract smss_23 src-smss_0) dest-smss_0)
smss_23))))))
(begin (set! smss77_0 smss_22) (set! prev-result_3 r_22) r_22))))))))
(let-values (((s_145) s_144)
((f_36) (lambda (tail?_39 d_7) (begin 'f d_7)))
((d->s_3)
(lambda (s_146 d_8)
(begin
'd->s
(let-values (((the-struct_30) s_146))
(if (syntax?$1 the-struct_30)
(let-values (((content*78_0) (re-modify-content s_146 d_8))
((scopes79_0) (swap-scs_0 (syntax-scopes s_146)))
((shifted-multi-scopes80_0)
(swap-smss_0 (syntax-shifted-multi-scopes s_146))))
(syntax2.1
content*78_0
scopes79_0
shifted-multi-scopes80_0
(syntax-mpi-shifts the-struct_30)
(syntax-srcloc the-struct_30)
(syntax-props the-struct_30)
(syntax-inspector the-struct_30)))
(raise-argument-error 'struct-copy "syntax?" the-struct_30))))))
((s-e_3) syntax-e/no-taint)
((seen_15) #f))
((letrec-values (((loop_75)
(lambda (s_147)
(begin
'loop
(let-values (((s_148) s_147)
((f_37) f_36)
((gf_7)
(lambda (tail?_40 v_78)
(begin
'gf
(if (syntax?$1 v_78)
(let-values () (d->s_3 v_78 (loop_75 (s-e_3 v_78))))
(let-values () (f_36 tail?_40 v_78))))))
((seen_16) seen_15)
((known-pairs_11) #f))
((letrec-values (((loop_76)
(lambda (tail?_41 s_149 prev-depth_8)
(begin
'loop
(let-values (((depth_8) (fx+ 1 prev-depth_8)))
(if (if seen_16 (fx> depth_8 32) #f)
(let-values ()
(datum-map-slow
tail?_41
s_149
(lambda (tail?_42 s_150)
(gf_7 tail?_42 s_150))
seen_16
known-pairs_11))
(if (null? s_149)
(let-values () (f_37 tail?_41 s_149))
(if (pair? s_149)
(let-values ()
(f_37
tail?_41
(cons
(loop_76 #f (car s_149) depth_8)
(loop_76 1 (cdr s_149) depth_8))))
(if (symbol? s_149)
(let-values () (f_37 #f s_149))
(if (boolean? s_149)
(let-values () (f_37 #f s_149))
(if (number? s_149)
(let-values () (f_37 #f s_149))
(if (let-values (((or-part_128)
(vector? s_149)))
(if or-part_128
or-part_128
(let-values (((or-part_129)
(box? s_149)))
(if or-part_129
or-part_129
(let-values (((or-part_130)
(prefab-struct-key
s_149)))
(if or-part_130
or-part_130
(hash? s_149)))))))
(let-values ()
(datum-map-slow
tail?_41
s_149
(lambda (tail?_43 s_151)
(gf_7 tail?_43 s_151))
seen_16
known-pairs_11))
(let-values ()
(gf_7 #f s_149))))))))))))))
loop_76)
#f
s_148
0))))))
loop_75)
s_145)))))))))))))
(define-values
(syntax-scope-set)
(lambda (s_152 phase_14)
(begin (scope-set-at-fallback s_152 (fallback-first (syntax-shifted-multi-scopes s_152)) phase_14))))
(define-values
(scope-set-at-fallback)
(lambda (s_153 smss_24 phase_15)
(begin
(let-values (((ht_62) smss_24))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_62)))
((letrec-values (((for-loop_74)
(lambda (scopes_10 i_79)
(begin
'for-loop
(if i_79
(let-values (((sms_10) (unsafe-immutable-hash-iterate-key ht_62 i_79)))
(let-values (((scopes_11)
(let-values (((scopes_12) scopes_10))
(if (let-values (((or-part_131) (label-phase? phase_15)))
(if or-part_131
or-part_131
(not
(shifted-to-label-phase?
(shifted-multi-scope-phase sms_10)))))
(let-values (((scopes_13) scopes_12))
(let-values (((scopes_14)
(let-values ()
(set-add
scopes_13
(multi-scope-to-scope-at-phase
(shifted-multi-scope-multi-scope sms_10)
(let-values (((ph_0)
(shifted-multi-scope-phase
sms_10)))
(if (shifted-to-label-phase? ph_0)
(shifted-to-label-phase-from ph_0)
(phase- ph_0 phase_15))))))))
(values scopes_14)))
scopes_12))))
(if (not #f)
(for-loop_74 scopes_11 (unsafe-immutable-hash-iterate-next ht_62 i_79))
scopes_11)))
scopes_10)))))
for-loop_74)
(syntax-scopes s_153)
(unsafe-immutable-hash-iterate-first ht_62)))))))
(define-values
(find-max-scope)
(lambda (scopes_15)
(begin
(begin
(if (set-empty? scopes_15) (let-values () (error "cannot bind in empty scope set")) (void))
(let-values (((ht_63) scopes_15))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_63)))
((letrec-values (((for-loop_75)
(lambda (max-sc_0 i_80)
(begin
'for-loop
(if i_80
(let-values (((sc_25) (unsafe-immutable-hash-iterate-key ht_63 i_80)))
(let-values (((max-sc_1)
(let-values (((max-sc_2) max-sc_0))
(let-values (((max-sc_3)
(let-values ()
(if (scope>? sc_25 max-sc_2) sc_25 max-sc_2))))
(values max-sc_3)))))
(if (not #f)
(for-loop_75 max-sc_1 (unsafe-immutable-hash-iterate-next ht_63 i_80))
max-sc_1)))
max-sc_0)))))
for-loop_75)
(set-first scopes_15)
(unsafe-immutable-hash-iterate-first ht_63))))))))
(define-values
(add-binding-in-scopes!.1)
(lambda (just-for-nominal?13_0 scopes15_0 sym16_0 binding17_0)
(begin
'add-binding-in-scopes!
(let-values (((scopes_16) scopes15_0))
(let-values (((sym_16) sym16_0))
(let-values (((binding_3) binding17_0))
(let-values (((just-for-nominal?_1) just-for-nominal?13_0))
(let-values ()
(let-values (((max-sc_4) (find-max-scope scopes_16)))
(let-values (((bt_6)
(binding-table-add
(scope-binding-table max-sc_4)
scopes_16
sym_16
binding_3
just-for-nominal?_1)))
(begin (set-scope-binding-table! max-sc_4 bt_6) (clear-resolve-cache! sym_16))))))))))))
(define-values
(add-bulk-binding-in-scopes!.1)
(lambda (shadow-except19_0 scopes21_1 bulk-binding22_0)
(begin
'add-bulk-binding-in-scopes!
(let-values (((scopes_17) scopes21_1))
(let-values (((bulk-binding_0) bulk-binding22_0))
(let-values (((shadow-except_1) shadow-except19_0))
(let-values ()
(let-values (((max-sc_5) (find-max-scope scopes_17)))
(let-values (((bt_7)
(let-values (((temp81_0) (scope-binding-table max-sc_5))
((scopes82_0) scopes_17)
((bulk-binding83_0) bulk-binding_0)
((shadow-except84_0) shadow-except_1))
(binding-table-add-bulk.1 shadow-except84_0 temp81_0 scopes82_0 bulk-binding83_0))))
(begin (set-scope-binding-table! max-sc_5 bt_7) (clear-resolve-cache!)))))))))))
(define-values
(syntax-any-macro-scopes?)
(lambda (s_154)
(begin
(let-values (((ht_64) (syntax-scopes s_154)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-in-immutable-hash-keys ht_64)))
((letrec-values (((for-loop_76)
(lambda (result_45 i_81)
(begin
'for-loop
(if i_81
(let-values (((sc_26) (unsafe-immutable-hash-iterate-key ht_64 i_81)))
(let-values (((result_46)
(let-values ()
(let-values (((result_47)
(let-values ()
(let-values () (eq? (scope-kind sc_26) 'macro)))))
(values result_47)))))
(if (if (not ((lambda x_31 result_46) sc_26)) (not #f) #f)
(for-loop_76 result_46 (unsafe-immutable-hash-iterate-next ht_64 i_81))
result_46)))
result_45)))))
for-loop_76)
#f
(unsafe-immutable-hash-iterate-first ht_64)))))))
(define-values
(resolve.1)
(lambda (ambiguous-value24_0 exactly?25_0 extra-shifts27_0 get-scopes?26_0 s32_0 phase33_0)
(begin
'resolve
(let-values (((s_155) s32_0))
(let-values (((phase_16) phase33_0))
(let-values (((ambiguous-value_0) ambiguous-value24_0))
(let-values (((exactly?_0) exactly?25_0))
(let-values (((get-scopes?_0) get-scopes?26_0))
(let-values (((extra-shifts_2) extra-shifts27_0))
(let-values ()
(let-values (((sym_17) (syntax-content s_155)))
((letrec-values (((fallback-loop_0)
(lambda (smss_25)
(begin
'fallback-loop
(let-values (((c1_21)
(if (not exactly?_0)
(if (not get-scopes?_0)
(resolve-cache-get
sym_17
phase_16
(syntax-scopes s_155)
(fallback-first smss_25))
#f)
#f)))
(if c1_21
((lambda (b_39)
(if (eq? b_39 '#:none)
(let-values ()
(if (fallback? smss_25)
(fallback-loop_0 (fallback-rest smss_25))
#f))
(let-values () b_39)))
c1_21)
(let-values ()
(let-values (((scopes_18)
(scope-set-at-fallback
s_155
(fallback-first smss_25)
phase_16)))
(let-values (((best-scopes_0 best-binding_0)
(let-values (((ht_65) scopes_18))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-in-immutable-hash-keys ht_65)))
((letrec-values (((for-loop_77)
(lambda (best-scopes_1
best-binding_1
i_82)
(begin
'for-loop
(if i_82
(let-values (((sc_27)
(unsafe-immutable-hash-iterate-key
ht_65
i_82)))
(let-values (((best-scopes_2
best-binding_2)
(let-values (((ht_66
bulk-bindings_2)
(let-values (((table_89)
(scope-binding-table
sc_27)))
(if (hash?
table_89)
(values
(hash-ref
table_89
sym_17
'#hash())
null)
(values
(hash-ref
(table-with-bulk-bindings-syms
table_89)
sym_17
'#hash())
(table-with-bulk-bindings-bulk-bindings
table_89)))))
((s_156)
s_155)
((extra-shifts_3)
extra-shifts_2))
(begin
#t
((letrec-values (((for-loop_78)
(lambda (best-scopes_3
best-binding_3
i_83)
(begin
'for-loop
(if (not
(null?
i_83))
(let-values (((b-scopes_0)
(if (pair?
i_83)
(let-values ()
(bulk-binding-at-scopes
(car
i_83)))
(let-values ()
(hash-iterate-key
ht_66
i_83))))
((binding_4)
(if (pair?
i_83)
(let-values ()
(let-values (((bulk_3)
(bulk-binding-at-bulk
(car
i_83))))
(let-values (((b-info_0)
(if (symbol-interned?
sym_17)
(hash-ref
(bulk-binding-symbols
bulk_3
s_156
extra-shifts_3)
sym_17
#f)
#f)))
(if b-info_0
((bulk-binding-create
bulk_3)
bulk_3
b-info_0
sym_17)
#f))))
(let-values ()
(hash-iterate-value
ht_66
i_83)))))
(let-values (((best-scopes_4
best-binding_4)
(let-values (((best-scopes_5)
best-scopes_3)
((best-binding_5)
best-binding_3))
(if (if b-scopes_0
(if binding_4
(subset?
b-scopes_0
scopes_18)
#f)
#f)
(let-values (((best-scopes_6)
best-scopes_5)
((best-binding_6)
best-binding_5))
(let-values (((best-scopes_7
best-binding_7)
(let-values ()
(if (pair?
best-scopes_6)
(let-values ()
(if (let-values (((lst_50)
best-scopes_6))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-list
lst_50)))
((letrec-values (((for-loop_79)
(lambda (result_48
lst_51)
(begin
'for-loop
(if (pair?
lst_51)
(let-values (((amb-scopes_0)
(unsafe-car
lst_51))
((rest_23)
(unsafe-cdr
lst_51)))
(let-values (((result_49)
(let-values ()
(let-values (((result_50)
(let-values ()
(let-values ()
(subset?
amb-scopes_0
b-scopes_0)))))
(values
result_50)))))
(if (if (not
((lambda x_32
(not
result_49))
amb-scopes_0))
(not
#f)
#f)
(for-loop_79
result_49
rest_23)
result_49)))
result_48)))))
for-loop_79)
#t
lst_50)))
(let-values ()
(values
b-scopes_0
binding_4))
(let-values ()
(values
(cons
b-scopes_0
best-scopes_6)
#f))))
(if (not
best-scopes_6)
(let-values ()
(values
b-scopes_0
binding_4))
(if (subset?
b-scopes_0
best-scopes_6)
(let-values ()
(values
best-scopes_6
best-binding_6))
(if (subset?
best-scopes_6
b-scopes_0)
(let-values ()
(values
b-scopes_0
binding_4))
(let-values ()
(values
(list
best-scopes_6
b-scopes_0)
#f)))))))))
(values
best-scopes_7
best-binding_7)))
(values
best-scopes_5
best-binding_5)))))
(if (not
#f)
(for-loop_78
best-scopes_4
best-binding_4
(if (pair?
i_83)
(let-values ()
(cdr
i_83))
(let-values ()
(let-values (((or-part_132)
(hash-iterate-next
ht_66
i_83)))
(if or-part_132
or-part_132
bulk-bindings_2)))))
(values
best-scopes_4
best-binding_4))))
(values
best-scopes_3
best-binding_3))))))
for-loop_78)
best-scopes_1
best-binding_1
(let-values (((or-part_133)
(hash-iterate-first
ht_66)))
(if or-part_133
or-part_133
bulk-bindings_2)))))))
(if (not #f)
(for-loop_77
best-scopes_2
best-binding_2
(unsafe-immutable-hash-iterate-next
ht_65
i_82))
(values
best-scopes_2
best-binding_2))))
(values
best-scopes_1
best-binding_1))))))
for-loop_77)
#f
#f
(unsafe-immutable-hash-iterate-first ht_65))))))
(if (pair? best-scopes_0)
(let-values ()
(if (fallback? smss_25)
(fallback-loop_0 (fallback-rest smss_25))
ambiguous-value_0))
(if best-scopes_0
(let-values ()
(begin
(resolve-cache-set!
sym_17
phase_16
(syntax-scopes s_155)
(fallback-first smss_25)
best-binding_0)
(if (let-values (((or-part_134) (not exactly?_0)))
(if or-part_134
or-part_134
(eqv?
(set-count scopes_18)
(set-count best-scopes_0))))
(if get-scopes?_0 best-scopes_0 best-binding_0)
#f)))
(let-values ()
(begin
(resolve-cache-set!
sym_17
phase_16
(syntax-scopes s_155)
(fallback-first smss_25)
'#:none)
(if (fallback? smss_25)
(fallback-loop_0 (fallback-rest smss_25))
#f))))))))))))))
fallback-loop_0)
(syntax-shifted-multi-scopes s_155)))))))))))))
(define-values
(bound-identifier=?$1)
(lambda (a_22 b_40 phase_17)
(begin
'bound-identifier=?
(if (eq? (syntax-e$1 a_22) (syntax-e$1 b_40))
(equal? (syntax-scope-set a_22 phase_17) (syntax-scope-set b_40 phase_17))
#f))))
(define-values
(local-binding?)
(lambda (b_41)
(begin (let-values (((or-part_0) (full-local-binding? b_41))) (if or-part_0 or-part_0 (symbol? b_41))))))
(define-values
(struct:full-local-binding full-local-binding1.1 full-local-binding? full-local-binding-key)
(let-values (((struct:_24 make-_24 ?_24 -ref_24 -set!_24)
(let-values ()
(let-values ()
(make-struct-type
'full-local-binding
struct:full-binding
1
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (b_21 ser-push!_13 state_2)
(begin
(ser-push!_13 'tag '#:local-binding)
(ser-push!_13 (full-local-binding-key b_21))
(ser-push!_13 (full-binding-free=id b_21))))))
(current-inspector)
#f
'(0)
#f
'full-local-binding)))))
(values struct:_24 make-_24 ?_24 (make-struct-field-accessor -ref_24 0 'key))))
(define-values
(deserialize-full-local-binding)
(lambda (key_27 free=id_3) (begin (full-local-binding1.1 #f free=id_3 key_27))))
(define-values
(make-local-binding.1)
(lambda (frame-id2_0 free=id3_0 key6_0)
(begin
'make-local-binding
(let-values (((key_37) key6_0))
(let-values (((frame-id_2) frame-id2_0))
(let-values (((free=id_4) free=id3_0))
(let-values ()
(if (if (not frame-id_2) (not free=id_4) #f)
(let-values () key_37)
(let-values () (full-local-binding1.1 frame-id_2 free=id_4 key_37))))))))))
(define-values
(local-binding-update.1)
(lambda (frame-id9_0 free=id10_0 key8_0 b14_0)
(begin
'local-binding-update
(let-values (((b_42) b14_0))
(let-values (((key_38) (if (eq? key8_0 unsafe-undefined) (local-binding-key b_42) key8_0)))
(let-values (((frame-id_3) (if (eq? frame-id9_0 unsafe-undefined) (binding-frame-id b_42) frame-id9_0)))
(let-values (((free=id_5) (if (eq? free=id10_0 unsafe-undefined) (binding-free=id b_42) free=id10_0)))
(let-values ()
(let-values (((key17_0) key_38) ((frame-id18_0) frame-id_3) ((free=id19_0) free=id_5))
(make-local-binding.1 frame-id18_0 free=id19_0 key17_0))))))))))
(define-values
(local-binding-key)
(lambda (b_43) (begin (if (full-local-binding? b_43) (full-local-binding-key b_43) b_43))))
(define-values
(1/prop:rename-transformer 1/rename-transformer? rename-transformer-value)
(make-struct-type-property
'rename-transformer
(lambda (v_31 info_0)
(let-values ((()
(begin
(if (let-values (((or-part_11) (exact-nonnegative-integer? v_31)))
(if or-part_11
or-part_11
(let-values (((or-part_2) (identifier? v_31)))
(if or-part_2 or-part_2 (if (procedure? v_31) (procedure-arity-includes? v_31 1) #f)))))
(void)
(let-values ()
(raise-argument-error
'guard-for-prop:rename-transformer
(string-append
"(or/c exact-nonnegative-integer?\n"
" identifier?\n"
" (procedure-arity-includes? proc 1))")
v_31)))
(values))))
(let-values ((()
(begin
(if (exact-nonnegative-integer? v_31)
(let-values ()
(begin
(if (<= v_31 (list-ref info_0 1))
(void)
(let-values ()
(raise-arguments-error
'guard-for-prop:rename-transformer
"field index >= initialized-field count for structure type"
"field index"
v_31
"initialized-field count"
(list-ref info_0 1))))
(if (member v_31 (list-ref info_0 5))
(void)
(let-values ()
(raise-arguments-error
'guard-for-prop:rename-transformer
"field index not declared immutable"
"field index"
v_31)))))
(void))
(values))))
(let-values (((ref_0) (list-ref info_0 3)))
(if (identifier? v_31)
(let-values () (lambda (t_27) v_31))
(if (integer? v_31)
(let-values ()
(lambda (t_28)
(let-values (((val_22) (ref_0 t_28 v_31)))
(if (identifier? val_22) val_22 (datum->syntax$1 #f '?)))))
(let-values ()
(lambda (t_4)
(let-values (((id_0) (call-with-continuation-barrier (lambda () (v_31 t_4)))))
(begin
(if (identifier? id_0)
(void)
(let-values ()
(raise-arguments-error
'prop:rename-transformer
"contract violation for given value; expected an identifier"
"given"
id_0)))
id_0))))))))))))
(define-values
(struct:id-rename-transformer id-rename-transformer1.1 id-rename-transformer? id-rename-transformer-id)
(let-values (((struct:_25 make-_25 ?_25 -ref_25 -set!_25)
(let-values ()
(let-values ()
(make-struct-type
'rename-transformer
#f
1
0
#f
(list (cons 1/prop:rename-transformer 0))
(current-inspector)
#f
'(0)
#f
'id-rename-transformer)))))
(values struct:_25 make-_25 ?_25 (make-struct-field-accessor -ref_25 0 'id))))
(define-values
(1/make-rename-transformer)
(lambda (id_1)
(begin
'make-rename-transformer
(begin
(if (identifier? id_1)
(void)
(let-values () (raise-argument-error 'make-rename-transformer "identifier?" id_1)))
(id-rename-transformer1.1 id_1)))))
(define-values
(1/rename-transformer-target)
(lambda (t_29) (begin 'rename-transformer-target ((rename-transformer-value t_29) t_29))))
(define-values
(free-identifier=?$1)
(lambda (a_23 b_44 a-phase_0 b-phase_0)
(begin
'free-identifier=?
(let-values (((ab_0)
(toplevel-as-symbol
(let-values (((a39_0) a_23) ((a-phase40_0) a-phase_0) ((temp41_0) #t))
(resolve+shift.1 #f #f null unsafe-undefined temp41_0 a39_0 a-phase40_0)))))
(let-values (((bb_0)
(toplevel-as-symbol
(let-values (((b42_0) b_44) ((b-phase43_0) b-phase_0) ((temp44_0) #t))
(resolve+shift.1 #f #f null unsafe-undefined temp44_0 b42_0 b-phase43_0)))))
(if (let-values (((or-part_14) (symbol? ab_0))) (if or-part_14 or-part_14 (symbol? bb_0)))
(let-values () (eq? ab_0 bb_0))
(let-values () (same-binding? ab_0 bb_0))))))))
(define-values
(toplevel-as-symbol)
(lambda (b_45)
(begin
(if (if (module-binding? b_45) (top-level-module-path-index? (module-binding-module b_45)) #f)
(module-binding-sym b_45)
b_45))))
(define-values
(same-binding?)
(lambda (ab_1 bb_1)
(begin
(if (module-binding? ab_1)
(let-values ()
(if (module-binding? bb_1)
(if (eq? (module-binding-sym ab_1) (module-binding-sym bb_1))
(if (eqv? (module-binding-phase ab_1) (module-binding-phase bb_1))
(eq?
(1/module-path-index-resolve (module-binding-module ab_1))
(1/module-path-index-resolve (module-binding-module bb_1)))
#f)
#f)
#f))
(if (local-binding? ab_1)
(let-values () (if (local-binding? bb_1) (eq? (local-binding-key ab_1) (local-binding-key bb_1)) #f))
(let-values () (error "bad binding" ab_1)))))))
(define-values
(same-binding-nominals?)
(lambda (ab_2 bb_2)
(begin
(if (eq?
(1/module-path-index-resolve (module-binding-nominal-module ab_2))
(1/module-path-index-resolve (module-binding-nominal-module bb_2)))
(if (eqv? (module-binding-nominal-require-phase ab_2) (module-binding-nominal-require-phase bb_2))
(eqv? (module-binding-nominal-sym ab_2) (module-binding-nominal-sym bb_2))
#f)
#f))))
(define-values
(identifier-binding-symbol$1)
(lambda (id_2 phase_18)
(begin
'identifier-binding-symbol
(let-values (((b_46)
(let-values (((id45_0) id_2) ((phase46_0) phase_18) ((temp47_0) #t))
(resolve+shift.1 #f #f null unsafe-undefined temp47_0 id45_0 phase46_0))))
(if (symbol? b_46)
(let-values () b_46)
(if (module-binding? b_46)
(let-values () (module-binding-sym b_46))
(if (local-binding? b_46) (let-values () (local-binding-key b_46)) (let-values () (syntax-e$1 id_2)))))))))
(define-values
(identifier-binding$1)
(let-values (((identifier-binding_0)
(lambda (id2_0 phase3_0 top-level-symbol?1_0)
(begin
'identifier-binding
(let-values (((id_3) id2_0))
(let-values (((phase_19) phase3_0))
(let-values (((top-level-symbol?_0) top-level-symbol?1_0))
(let-values ()
(let-values (((b_47)
(let-values (((id48_0) id_3) ((phase49_0) phase_19))
(resolve+shift.1 #f #f null unsafe-undefined #f id48_0 phase49_0))))
(if (module-binding? b_47)
(let-values ()
(if (top-level-module-path-index? (module-binding-module b_47))
(if top-level-symbol?_0 (list (module-binding-nominal-sym b_47)) #f)
(list
(module-binding-module b_47)
(module-binding-sym b_47)
(module-binding-nominal-module b_47)
(module-binding-nominal-sym b_47)
(module-binding-phase b_47)
(module-binding-nominal-require-phase b_47)
(module-binding-nominal-phase b_47))))
(if (local-binding? b_47) (let-values () 'lexical) (let-values () #f))))))))))))
(case-lambda
((id_4 phase_20) (begin 'identifier-binding (identifier-binding_0 id_4 phase_20 #f)))
((id_5 phase_21 top-level-symbol?1_1) (identifier-binding_0 id_5 phase_21 top-level-symbol?1_1)))))
(define-values
(maybe-install-free=id!)
(lambda (val_23 id_6 phase_22)
(begin
(if (1/rename-transformer? val_23)
(let-values ()
(let-values (((free=id_5) (1/rename-transformer-target val_23)))
(if (syntax-property$1 free=id_5 'not-free-identifier=?)
(void)
(let-values ()
(let-values (((b_48)
(let-values (((id53_0) id_6) ((phase54_0) phase_22) ((temp55_0) #t) ((temp56_0) #t))
(resolve+shift.1 #f temp55_0 null temp56_0 #f id53_0 phase54_0))))
(let-values (((temp50_0) (syntax-scope-set id_6 phase_22))
((temp51_0) (syntax-e$1 id_6))
((temp52_0) (binding-set-free=id b_48 free=id_5)))
(add-binding-in-scopes!.1 #f temp50_0 temp51_0 temp52_0)))))))
(void)))))
(define-values
(binding-set-free=id)
(lambda (b_49 free=id_6)
(begin
(if (module-binding? b_49)
(let-values ()
(let-values (((b57_0) b_49) ((free=id58_0) free=id_6))
(module-binding-update.1
unsafe-undefined
unsafe-undefined
unsafe-undefined
free=id58_0
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
b57_0)))
(if (local-binding? b_49)
(let-values ()
(let-values (((b59_1) b_49) ((free=id60_0) free=id_6))
(local-binding-update.1 unsafe-undefined free=id60_0 unsafe-undefined b59_1)))
(let-values () (error "bad binding for free=id:" b_49)))))))
(define-values
(struct:non-source-shift non-source-shift4.1 non-source-shift? non-source-shift-from non-source-shift-to)
(let-values (((struct:_14 make-_14 ?_14 -ref_14 -set!_14)
(let-values ()
(let-values ()
(make-struct-type 'non-source-shift #f 2 0 #f null 'prefab #f '(0 1) #f 'non-source-shift)))))
(values
struct:_14
make-_14
?_14
(make-struct-field-accessor -ref_14 0 'from)
(make-struct-field-accessor -ref_14 1 'to))))
(define-values (shift-from) (lambda (s_157) (begin (if (pair? s_157) (car s_157) (non-source-shift-from s_157)))))
(define-values (shift-to) (lambda (s_76) (begin (if (pair? s_76) (cdr s_76) (non-source-shift-to s_76)))))
(define-values
(syntax-module-path-index-shift.1)
(lambda (non-source?5_0 s8_0 from-mpi9_0 to-mpi10_0 inspector7_0)
(begin
'syntax-module-path-index-shift
(let-values (((s_35) s8_0))
(let-values (((from-mpi_1) from-mpi9_0))
(let-values (((to-mpi_1) to-mpi10_0))
(let-values (((inspector_3) inspector7_0))
(let-values (((non-source?_0) non-source?5_0))
(let-values ()
(if (eq? from-mpi_1 to-mpi_1)
(let-values () (if inspector_3 (syntax-set-inspector s_35 inspector_3) s_35))
(let-values ()
(let-values (((shift_0)
(if non-source?_0
(non-source-shift4.1 from-mpi_1 to-mpi_1)
(cons from-mpi_1 to-mpi_1))))
(let-values (((content*_20) (syntax-content* s_35)))
(let-values (((content_22)
(if (modified-content? content*_20)
(modified-content-content content*_20)
content*_20)))
(let-values (((the-struct_31) s_35))
(if (syntax?$1 the-struct_31)
(let-values (((mpi-shifts62_0) (shift-cons shift_0 (syntax-mpi-shifts s_35)))
((inspector63_0)
(let-values (((or-part_135) (syntax-inspector s_35)))
(if or-part_135 or-part_135 inspector_3)))
((content*64_0)
(if (datum-has-elements? content_22)
(modified-content1.1
content_22
(propagation-mpi-shift
(if (modified-content? content*_20)
(modified-content-scope-propagations+tamper content*_20)
#f)
(lambda (s_21) (shift-cons shift_0 s_21))
inspector_3
(syntax-scopes s_35)
(syntax-shifted-multi-scopes s_35)
(syntax-mpi-shifts s_35)))
content*_20)))
(syntax2.1
content*64_0
(syntax-scopes the-struct_31)
(syntax-shifted-multi-scopes the-struct_31)
mpi-shifts62_0
(syntax-srcloc the-struct_31)
(syntax-props the-struct_31)
inspector63_0))
(raise-argument-error 'struct-copy "syntax?" the-struct_31)))))))))))))))))
(define-values
(shift-cons)
(lambda (shift_1 shifts_0)
(begin
(if (if (pair? shifts_0) (eq? (shift-from shift_1) (shift-from (car shifts_0))) #f)
(let-values () shifts_0)
(let-values () (cons shift_1 shifts_0))))))
(define-values
(resolve+shift.1)
(lambda (ambiguous-value12_0 exactly?13_0 extra-shifts16_0 immediate?14_0 unbound-sym?15_0 s22_0 phase23_0)
(begin
'resolve+shift
(let-values (((s_29) s22_0))
(let-values (((phase_23) phase23_0))
(let-values (((ambiguous-value_1) ambiguous-value12_0))
(let-values (((exactly?_1) exactly?13_0))
(let-values (((immediate?_0) (if (eq? immediate?14_0 unsafe-undefined) exactly?_1 immediate?14_0)))
(let-values (((unbound-sym?_0) unbound-sym?15_0))
(let-values (((extra-shifts_4) extra-shifts16_0))
(let-values ()
(let-values (((can-cache?_0)
(if (not exactly?_1) (if (not immediate?_0) (null? extra-shifts_4) #f) #f)))
(let-values (((c1_22) (if can-cache?_0 (resolve+shift-cache-get s_29 phase_23) #f)))
(if c1_22
((lambda (b_50) (if (eq? b_50 '#:none) (if unbound-sym?_0 (syntax-content s_29) #f) b_50))
c1_22)
(let-values ()
(let-values (((immediate-b_0)
(let-values (((s65_0) s_29)
((phase66_0) phase_23)
((ambiguous-value67_0) ambiguous-value_1)
((exactly?68_0) exactly?_1)
((extra-shifts69_0) extra-shifts_4))
(resolve.1
ambiguous-value67_0
exactly?68_0
extra-shifts69_0
#f
s65_0
phase66_0))))
(let-values (((b_51)
(if (if immediate-b_0
(if (not immediate?_0) (binding-free=id immediate-b_0) #f)
#f)
(let-values (((temp70_0) (binding-free=id immediate-b_0))
((phase71_0) phase_23)
((temp72_0)
(append extra-shifts_4 (syntax-mpi-shifts s_29)))
((ambiguous-value73_0) ambiguous-value_1)
((exactly?74_0) exactly?_1)
((unbound-sym?75_0) unbound-sym?_0))
(resolve+shift.1
ambiguous-value73_0
exactly?74_0
temp72_0
unsafe-undefined
unbound-sym?75_0
temp70_0
phase71_0))
immediate-b_0)))
(if (module-binding? b_51)
(let-values ()
(let-values (((mpi-shifts_2) (syntax-mpi-shifts s_29)))
(if (null? mpi-shifts_2)
(let-values () b_51)
(let-values ()
(let-values (((mod_0) (module-binding-module b_51)))
(let-values (((shifted-mod_0) (apply-syntax-shifts mod_0 mpi-shifts_2)))
(let-values (((nominal-mod_0) (module-binding-nominal-module b_51)))
(let-values (((shifted-nominal-mod_0)
(if (eq? mod_0 nominal-mod_0)
shifted-mod_0
(apply-syntax-shifts nominal-mod_0 mpi-shifts_2))))
(let-values (((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_51))
(null?
(module-binding-extra-nominal-bindings
b_51))
#f)
#f)
#f)
b_51
(let-values (((b76_0) b_51)
((shifted-mod77_0) shifted-mod_0)
((shifted-nominal-mod78_0)
shifted-nominal-mod_0)
((temp79_0)
(if (binding-free=id b_51)
(let-values (((temp81_1)
(binding-free=id
b_51))
((s82_0) s_29))
(syntax-transfer-shifts.1
#f
temp81_1
s82_0
#f))
#f))
((temp80_0)
(reverse$1
(let-values (((lst_52)
(module-binding-extra-nominal-bindings
b_51)))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-list lst_52)))
((letrec-values (((for-loop_80)
(lambda (fold-var_35
lst_31)
(begin
'for-loop
(if (pair?
lst_31)
(let-values (((b_52)
(unsafe-car
lst_31))
((rest_24)
(unsafe-cdr
lst_31)))
(let-values (((fold-var_36)
(let-values (((fold-var_37)
fold-var_35))
(let-values (((fold-var_38)
(let-values ()
(cons
(let-values ()
(apply-syntax-shifts-to-binding
b_52
mpi-shifts_2))
fold-var_37))))
(values
fold-var_38)))))
(if (not
#f)
(for-loop_80
fold-var_36
rest_24)
fold-var_36)))
fold-var_35)))))
for-loop_80)
null
lst_52))))))
(module-binding-update.1
unsafe-undefined
temp80_0
unsafe-undefined
temp79_0
shifted-mod77_0
shifted-nominal-mod78_0
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
b76_0)))))
(begin
(if can-cache?_0
(let-values ()
(resolve+shift-cache-set! s_29 phase_23 result-b_0))
(void))
result-b_0))))))))))
(let-values ()
(begin
(if can-cache?_0
(let-values ()
(resolve+shift-cache-set!
s_29
phase_23
(let-values (((or-part_136) b_51)) (if or-part_136 or-part_136 '#:none))))
(void))
(let-values (((or-part_51) b_51))
(if or-part_51
or-part_51
(if unbound-sym?_0 (syntax-content s_29) #f)))))))))))))))))))))))
(define-values
(apply-syntax-shifts)
(lambda (mpi_13 shifts_1)
(begin
(if (null? shifts_1)
(let-values () mpi_13)
(let-values ()
(let-values (((shifted-mpi_1) (apply-syntax-shifts mpi_13 (cdr shifts_1))))
(let-values (((shift_2) (car shifts_1)))
(module-path-index-shift shifted-mpi_1 (shift-from shift_2) (shift-to shift_2)))))))))
(define-values
(apply-syntax-shifts-to-binding)
(lambda (b_53 shifts_2)
(begin
(if (null? shifts_2)
(let-values () b_53)
(let-values ()
(let-values (((shifted-b_0) (apply-syntax-shifts-to-binding b_53 (cdr shifts_2))))
(let-values (((shift_3) (car shifts_2)))
(binding-module-path-index-shift shifted-b_0 (shift-from shift_3) (shift-to shift_3)))))))))
(define-values
(binding-module-path-index-shift)
(lambda (b_54 from-mpi_2 to-mpi_2)
(begin
(if (module-binding? b_54)
(let-values ()
(let-values (((b83_0) b_54)
((temp84_0) (module-path-index-shift (module-binding-module b_54) from-mpi_2 to-mpi_2))
((temp85_0) (module-path-index-shift (module-binding-nominal-module b_54) from-mpi_2 to-mpi_2))
((temp86_0)
(reverse$1
(let-values (((lst_53) (module-binding-extra-nominal-bindings b_54)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_53)))
((letrec-values (((for-loop_81)
(lambda (fold-var_39 lst_54)
(begin
'for-loop
(if (pair? lst_54)
(let-values (((b_55) (unsafe-car lst_54))
((rest_25) (unsafe-cdr lst_54)))
(let-values (((fold-var_40)
(let-values (((fold-var_41) fold-var_39))
(let-values (((fold-var_42)
(let-values ()
(cons
(let-values ()
(binding-module-path-index-shift
b_55
from-mpi_2
to-mpi_2))
fold-var_41))))
(values fold-var_42)))))
(if (not #f) (for-loop_81 fold-var_40 rest_25) fold-var_40)))
fold-var_39)))))
for-loop_81)
null
lst_53))))))
(module-binding-update.1
unsafe-undefined
temp86_0
unsafe-undefined
unsafe-undefined
temp84_0
temp85_0
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
unsafe-undefined
b83_0)))
(let-values () b_54)))))
(define-values
(syntax-transfer-shifts.1)
(lambda (non-source?25_0 to-s28_0 from-s29_0 inspector27_0)
(begin
'syntax-transfer-shifts
(let-values (((to-s_0) to-s28_0))
(let-values (((from-s_2) from-s29_0))
(let-values (((inspector_4) inspector27_0))
(let-values (((non-source?_1) non-source?25_0))
(let-values ()
(let-values (((to-s87_0) to-s_0)
((temp88_0) (syntax-mpi-shifts from-s_2))
((inspector89_0) inspector_4)
((non-source?90_0) non-source?_1))
(syntax-add-shifts.1 non-source?90_0 to-s87_0 temp88_0 inspector89_0))))))))))
(define-values
(syntax-add-shifts.1)
(lambda (non-source?31_0 to-s34_0 shifts35_0 inspector33_0)
(begin
'syntax-add-shifts
(let-values (((to-s_1) to-s34_0))
(let-values (((shifts_3) shifts35_0))
(let-values (((inspector_5) inspector33_0))
(let-values (((non-source?_2) non-source?31_0))
(let-values ()
(if (if (null? shifts_3) inspector_5 #f)
(let-values () (syntax-set-inspector to-s_1 inspector_5))
(let-values ()
(let-values (((lst_55) (reverse$1 shifts_3)) ((start_15) 0))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_55)))
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-naturals start_15)))
((letrec-values (((for-loop_82)
(lambda (s_158 lst_56 pos_12)
(begin
'for-loop
(if (if (pair? lst_56) #t #f)
(let-values (((shift_4) (unsafe-car lst_56))
((rest_26) (unsafe-cdr lst_56))
((i_84) pos_12))
(let-values (((s_159)
(let-values (((s_160) s_158))
(let-values (((s_161)
(let-values ()
(let-values (((s91_0) s_160)
((temp92_0)
(shift-from shift_4))
((temp93_0)
(shift-to shift_4))
((temp94_0)
(if (zero? i_84)
inspector_5
#f))
((non-source?95_0)
non-source?_2))
(syntax-module-path-index-shift.1
non-source?95_0
s91_0
temp92_0
temp93_0
temp94_0)))))
(values s_161)))))
(if (not #f) (for-loop_82 s_159 rest_26 (+ pos_12 1)) s_159)))
s_158)))))
for-loop_82)
to-s_1
lst_55
start_15)))))))))))))
(define-values
(syntax-set-inspector)
(lambda (s_162 insp_5)
(begin
(let-values (((content*_21) (syntax-content* s_162)))
(let-values (((content_23)
(if (modified-content? content*_21) (modified-content-content content*_21) content*_21)))
(let-values (((the-struct_32) s_162))
(if (syntax?$1 the-struct_32)
(let-values (((inspector96_0)
(let-values (((or-part_137) (syntax-inspector s_162))) (if or-part_137 or-part_137 insp_5)))
((content*97_0)
(if (datum-has-elements? content_23)
(modified-content1.1
content_23
(propagation-mpi-shift
(if (modified-content? content*_21)
(modified-content-scope-propagations+tamper content*_21)
#f)
#f
insp_5
(syntax-scopes s_162)
(syntax-shifted-multi-scopes s_162)
(syntax-mpi-shifts s_162)))
content*_21)))
(syntax2.1
content*97_0
(syntax-scopes the-struct_32)
(syntax-shifted-multi-scopes the-struct_32)
(syntax-mpi-shifts the-struct_32)
(syntax-srcloc the-struct_32)
(syntax-props the-struct_32)
inspector96_0))
(raise-argument-error 'struct-copy "syntax?" the-struct_32))))))))
(define-values
(1/syntax-source-module)
(let-values (((syntax-source-module_0)
(lambda (s38_0 source?37_0)
(begin
'syntax-source-module
(let-values (((s_118) s38_0))
(let-values (((source?_0) source?37_0))
(let-values ()
(begin
(if (syntax?$1 s_118)
(void)
(let-values () (raise-argument-error 'syntax-track-origin "syntax?" s_118)))
(let-values (((lst_57) (reverse$1 (syntax-mpi-shifts s_118))))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference))
(void)
(let-values () (check-list lst_57)))
((letrec-values (((for-loop_50)
(lambda (result_51 lst_58)
(begin
'for-loop
(if (pair? lst_58)
(let-values (((shift_5) (unsafe-car lst_58))
((rest_27) (unsafe-cdr lst_58)))
(let-values (((result_52)
(let-values (((result_53) result_51))
(if (non-source-shift? shift_5)
result_53
(let-values ()
(let-values (((result_54)
(let-values ()
(let-values ()
(let-values (((from-mpi_3)
(car
shift_5)))
(let-values (((path_8
base_14)
(1/module-path-index-split
from-mpi_3)))
(if (not path_8)
(if (module-path-index-resolved
from-mpi_3)
(let-values (((mpi_14)
(apply-syntax-shifts
from-mpi_3
(syntax-mpi-shifts
s_118))))
(if source?_0
(1/resolved-module-path-name
(1/module-path-index-resolve
mpi_14
#f))
mpi_14))
#f)
#f)))))))
(values result_54)))))))
(if (if (not ((lambda x_33 result_52) shift_5)) (not #f) #f)
(for-loop_50 result_52 rest_27)
result_52)))
result_51)))))
for-loop_50)
#f
lst_57)))))))))))
(case-lambda
((s_163) (begin 'syntax-source-module (syntax-source-module_0 s_163 #f)))
((s_164 source?37_1) (syntax-source-module_0 s_164 source?37_1)))))
(define-values
(1/identifier-prune-to-source-module)
(lambda (id_7)
(begin
'identifier-prune-to-source-module
(begin
(if (identifier? id_7)
(void)
(let-values () (raise-argument-error 'identifier-prune-to-source-module "identifier?" id_7)))
(let-values (((the-struct_33) (datum->syntax$1 #f (syntax-e$1 id_7) id_7 id_7)))
(if (syntax?$1 the-struct_33)
(let-values (((mpi-shifts98_0) (syntax-mpi-shifts id_7)))
(syntax2.1
(syntax-content* the-struct_33)
(syntax-scopes the-struct_33)
(syntax-shifted-multi-scopes the-struct_33)
mpi-shifts98_0
(syntax-srcloc the-struct_33)
(syntax-props the-struct_33)
(syntax-inspector the-struct_33)))
(raise-argument-error 'struct-copy "syntax?" the-struct_33)))))))
(define-values
(struct:provided provided1.1 provided? provided-binding provided-protected? provided-syntax?)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'provided
#f
3
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (p_21 ser-push!_14 state_23)
(begin
(ser-push!_14 'tag '#:provided)
(ser-push!_14 (provided-binding p_21))
(ser-push!_14 (provided-protected? p_21))
(ser-push!_14 (provided-syntax? p_21))))))
#f
#f
'(0 1 2)
#f
'provided)))))
(values
struct:_2
make-_2
?_2
(make-struct-field-accessor -ref_2 0 'binding)
(make-struct-field-accessor -ref_2 1 'protected?)
(make-struct-field-accessor -ref_2 2 'syntax?))))
(define-values (provided-as-binding) (lambda (v_79) (begin (if (provided? v_79) (provided-binding v_79) v_79))))
(define-values (provided-as-protected?) (lambda (v_80) (begin (if (provided? v_80) (provided-protected? v_80) #f))))
(define-values (provided-as-transformer?) (lambda (v_81) (begin (if (provided? v_81) (provided-syntax? v_81) #f))))
(define-values
(deserialize-provided)
(lambda (binding_5 protected?_0 syntax?_1) (begin (provided1.1 binding_5 protected?_0 syntax?_1))))
(define-values
(provide-binding-to-require-binding.1)
(lambda (mpi2_0 phase-shift4_0 provide-phase-level3_0 self1_0 binding/p9_0 sym10_0)
(begin
'provide-binding-to-require-binding
(let-values (((binding/p_0) binding/p9_0))
(let-values (((sym_18) sym10_0))
(let-values (((self_1) self1_0))
(let-values (((mpi_15) mpi2_0))
(let-values (((provide-phase-level_0) provide-phase-level3_0))
(let-values (((phase-shift_0) phase-shift4_0))
(let-values ()
(let-values (((binding_6) (provided-as-binding binding/p_0)))
(let-values (((from-mod_0) (module-binding-module binding_6)))
(let-values (((binding15_0) binding_6)
((temp16_1) (module-path-index-shift from-mod_0 self_1 mpi_15))
((mpi17_0) mpi_15)
((provide-phase-level18_0) provide-phase-level_0)
((sym19_2) sym_18)
((phase-shift20_0) phase-shift_0)
((temp21_1) #f)
((temp22_1)
(if (not (provided-as-protected? binding/p_0))
(module-binding-extra-inspector binding_6)
#f))
((null23_0) null))
(module-binding-update.1
temp22_1
null23_0
temp21_1
unsafe-undefined
temp16_1
mpi17_0
provide-phase-level18_0
phase-shift20_0
sym19_2
unsafe-undefined
unsafe-undefined
binding15_0))))))))))))))
(define-values
(struct:bulk-binding
bulk-binding12.1
bulk-binding?
bulk-binding-provides
bulk-binding-prefix
bulk-binding-excepts
bulk-binding-self
bulk-binding-mpi
bulk-binding-provide-phase-level
bulk-binding-phase-shift
bulk-binding-bulk-binding-registry
set-bulk-binding-provides!
set-bulk-binding-self!)
(let-values (((struct:_26 make-_26 ?_26 -ref_26 -set!_26)
(let-values ()
(let-values ()
(make-struct-type
'bulk-binding
#f
8
0
#f
(list
(cons prop:authentic #t)
(cons
prop:serialize
(lambda (b_56 ser-push!_15 reachable-scopes_3)
(begin
(ser-push!_15 'tag '#:bulk-binding)
(ser-push!_15 (bulk-binding-prefix b_56))
(ser-push!_15 (bulk-binding-excepts b_56))
(ser-push!_15 (bulk-binding-mpi b_56))
(ser-push!_15 (bulk-binding-provide-phase-level b_56))
(ser-push!_15 (bulk-binding-phase-shift b_56))
(ser-push!_15 'tag '#:bulk-binding-registry))))
(cons
prop:bulk-binding
(bulk-binding-class3.1
(lambda (b_57 mpi-shifts_3)
(let-values (((or-part_138) (bulk-binding-provides b_57)))
(if or-part_138
or-part_138
(let-values (((mod-name_1)
(1/module-path-index-resolve
(apply-syntax-shifts (bulk-binding-mpi b_57) mpi-shifts_3))))
(let-values ((()
(begin
(if (bulk-binding-bulk-binding-registry b_57)
(void)
(let-values ()
(error
"namespace mismatch: no bulk-binding registry available:"
mod-name_1)))
(values))))
(let-values (((table_65)
(bulk-binding-registry-table
(bulk-binding-bulk-binding-registry b_57))))
(let-values (((bulk-provide_0) (hash-ref table_65 mod-name_1 #f)))
(let-values ((()
(begin
(if bulk-provide_0
(void)
(let-values ()
(error
"namespace mismatch: bulk bindings not found in registry for module:"
mod-name_1)))
(values))))
(let-values ((()
(begin
(set-bulk-binding-self! b_57 (bulk-provide-self bulk-provide_0))
(values))))
(let-values (((provides_0)
(hash-ref
(bulk-provide-provides bulk-provide_0)
(bulk-binding-provide-phase-level b_57))))
(let-values (((excepts_0) (bulk-binding-excepts b_57)))
(let-values (((prefix_0) (bulk-binding-prefix b_57)))
(let-values (((adjusted-provides_0)
(if (let-values (((or-part_139) prefix_0))
(if or-part_139
or-part_139
(positive? (hash-count excepts_0))))
(let-values ()
(bulk-provides-add-prefix-remove-exceptions
provides_0
prefix_0
excepts_0))
(let-values () provides_0))))
(begin
(set-bulk-binding-provides! b_57 adjusted-provides_0)
adjusted-provides_0))))))))))))))
(lambda (b_58 binding_7 sym_19)
(let-values (((binding25_0) binding_7)
((temp26_1)
(if (bulk-binding-prefix b_58)
(string->symbol
(substring
(symbol->string sym_19)
(string-length (symbol->string (bulk-binding-prefix b_58)))))
sym_19))
((temp27_0) (bulk-binding-self b_58))
((temp28_1) (bulk-binding-mpi b_58))
((temp29_0) (bulk-binding-provide-phase-level b_58))
((temp30_0) (bulk-binding-phase-shift b_58)))
(provide-binding-to-require-binding.1
temp28_1
temp30_0
temp29_0
temp27_0
binding25_0
temp26_1))))))
(current-inspector)
#f
'(1 2 4 5 6 7)
#f
'bulk-binding)))))
(values
struct:_26
make-_26
?_26
(make-struct-field-accessor -ref_26 0 'provides)
(make-struct-field-accessor -ref_26 1 'prefix)
(make-struct-field-accessor -ref_26 2 'excepts)
(make-struct-field-accessor -ref_26 3 'self)
(make-struct-field-accessor -ref_26 4 'mpi)
(make-struct-field-accessor -ref_26 5 'provide-phase-level)
(make-struct-field-accessor -ref_26 6 'phase-shift)
(make-struct-field-accessor -ref_26 7 'bulk-binding-registry)
(make-struct-field-mutator -set!_26 0 'provides)
(make-struct-field-mutator -set!_26 3 'self))))
(define-values
(deserialize-bulk-binding)
(lambda (prefix_1 excepts_1 mpi_16 provide-phase-level_1 phase-shift_1 bulk-binding-registry_0)
(begin
(bulk-binding12.1 #f prefix_1 excepts_1 #f mpi_16 provide-phase-level_1 phase-shift_1 bulk-binding-registry_0))))
(define-values
(bulk-provides-add-prefix-remove-exceptions)
(lambda (provides_1 prefix_2 excepts_2)
(begin
(let-values (((ht_67) provides_1))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_67)))
((letrec-values (((for-loop_83)
(lambda (table_90 i_85)
(begin
'for-loop
(if i_85
(let-values (((sym_20 val_24) (hash-iterate-key+value ht_67 i_85)))
(let-values (((table_19)
(let-values (((table_91) table_90))
(if (hash-ref excepts_2 sym_20 #f)
table_91
(let-values (((table_92) table_91))
(if (symbol-interned? sym_20)
(let-values (((table_93) table_92))
(let-values (((table_20)
(let-values ()
(let-values (((key_39 val_25)
(let-values ()
(values
(if prefix_2
(string->symbol
(format
"~a~a"
prefix_2
sym_20))
sym_20)
val_24))))
(hash-set table_93 key_39 val_25)))))
(values table_20)))
table_92))))))
(if (not #f) (for-loop_83 table_19 (hash-iterate-next ht_67 i_85)) table_19)))
table_90)))))
for-loop_83)
'#hash()
(hash-iterate-first ht_67)))))))
(define-values
(struct:bulk-provide bulk-provide13.1 bulk-provide? bulk-provide-self bulk-provide-provides)
(let-values (((struct:_27 make-_27 ?_27 -ref_27 -set!_27)
(let-values ()
(let-values ()
(make-struct-type 'bulk-provide #f 2 0 #f null (current-inspector) #f '(0 1) #f 'bulk-provide)))))
(values
struct:_27
make-_27
?_27
(make-struct-field-accessor -ref_27 0 'self)
(make-struct-field-accessor -ref_27 1 'provides))))
(define-values
(struct:bulk-binding-registry bulk-binding-registry14.1 bulk-binding-registry? bulk-binding-registry-table)
(let-values (((struct:_28 make-_28 ?_28 -ref_28 -set!_28)
(let-values ()
(let-values ()
(make-struct-type
'bulk-binding-registry
#f
1
0
#f
null
(current-inspector)
#f
'(0)
#f
'bulk-binding-registry)))))
(values struct:_28 make-_28 ?_28 (make-struct-field-accessor -ref_28 0 'table))))
(define-values (make-bulk-binding-registry) (lambda () (begin (bulk-binding-registry14.1 (make-hasheq)))))
(define-values
(register-bulk-provide!)
(lambda (bulk-binding-registry_1 mod-name_2 self_2 provides_2)
(begin
(hash-set!
(bulk-binding-registry-table bulk-binding-registry_1)
mod-name_2
(bulk-provide13.1 self_2 provides_2)))))
(define-values
(registered-bulk-provide?)
(lambda (bulk-binding-registry_2 mod-name_3)
(begin (if (hash-ref (bulk-binding-registry-table bulk-binding-registry_2) mod-name_3 #f) #t #f))))
(define-values (generate-lift-key) (lambda () (begin (gensym 'lift))))
(define-values
(struct:root-expand-context/outer
root-expand-context/outer1.1
root-expand-context/outer?
root-expand-context/outer-inner
root-expand-context/outer-post-expansion
root-expand-context/outer-use-site-scopes
root-expand-context/outer-frame-id)
(let-values (((struct:_29 make-_29 ?_29 -ref_29 -set!_29)
(let-values ()
(let-values ()
(make-struct-type
'root-expand-context
#f
4
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1 2 3)
#f
'root-expand-context/outer)))))
(values
struct:_29
make-_29
?_29
(make-struct-field-accessor -ref_29 0 'inner)
(make-struct-field-accessor -ref_29 1 'post-expansion)
(make-struct-field-accessor -ref_29 2 'use-site-scopes)
(make-struct-field-accessor -ref_29 3 'frame-id))))
(define-values
(struct:root-expand-context/inner
root-expand-context/inner2.1
root-expand-context/inner?
root-expand-context/inner-self-mpi
root-expand-context/inner-module-scopes
root-expand-context/inner-top-level-bind-scope
root-expand-context/inner-all-scopes-stx
root-expand-context/inner-defined-syms
root-expand-context/inner-counter
root-expand-context/inner-lift-key)
(let-values (((struct:_30 make-_30 ?_30 -ref_30 -set!_30)
(let-values ()
(let-values ()
(make-struct-type
'root-expand-context/inner
#f
7
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1 2 3 4 5 6)
#f
'root-expand-context/inner)))))
(values
struct:_30
make-_30
?_30
(make-struct-field-accessor -ref_30 0 'self-mpi)
(make-struct-field-accessor -ref_30 1 'module-scopes)
(make-struct-field-accessor -ref_30 2 'top-level-bind-scope)
(make-struct-field-accessor -ref_30 3 'all-scopes-stx)
(make-struct-field-accessor -ref_30 4 'defined-syms)
(make-struct-field-accessor -ref_30 5 'counter)
(make-struct-field-accessor -ref_30 6 'lift-key))))
(define-values
(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_4
counter_0
lift-key_0)
(begin
(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_4))))
(define-values
(root-expand-context-post-expansion)
(lambda (v_3) (begin (root-expand-context/outer-post-expansion v_3))))
(define-values
(root-expand-context-use-site-scopes)
(lambda (v_36) (begin (root-expand-context/outer-use-site-scopes v_36))))
(define-values (root-expand-context-frame-id) (lambda (v_4) (begin (root-expand-context/outer-frame-id v_4))))
(define-values
(root-expand-context-self-mpi)
(lambda (v_37) (begin (root-expand-context/inner-self-mpi (root-expand-context/outer-inner v_37)))))
(define-values
(root-expand-context-module-scopes)
(lambda (v_70) (begin (root-expand-context/inner-module-scopes (root-expand-context/outer-inner v_70)))))
(define-values
(root-expand-context-top-level-bind-scope)
(lambda (v_82) (begin (root-expand-context/inner-top-level-bind-scope (root-expand-context/outer-inner v_82)))))
(define-values
(root-expand-context-all-scopes-stx)
(lambda (v_5) (begin (root-expand-context/inner-all-scopes-stx (root-expand-context/outer-inner v_5)))))
(define-values
(root-expand-context-defined-syms)
(lambda (v_83) (begin (root-expand-context/inner-defined-syms (root-expand-context/outer-inner v_83)))))
(define-values
(root-expand-context-counter)
(lambda (v_84) (begin (root-expand-context/inner-counter (root-expand-context/outer-inner v_84)))))
(define-values
(root-expand-context-lift-key)
(lambda (v_85) (begin (root-expand-context/inner-lift-key (root-expand-context/outer-inner v_85)))))
(define-values
(make-root-expand-context.1)
(lambda (all-scopes-stx7_0 initial-scopes4_0 outside-scope5_0 post-expansion-scope6_0 self-mpi3_0)
(begin
'make-root-expand-context
(let-values (((self-mpi_1) self-mpi3_0))
(let-values (((initial-scopes_0) initial-scopes4_0))
(let-values (((outside-scope_0)
(if (eq? outside-scope5_0 unsafe-undefined) top-level-common-scope outside-scope5_0)))
(let-values (((post-expansion-scope_0)
(if (eq? post-expansion-scope6_0 unsafe-undefined)
(new-multi-scope 'top-level)
post-expansion-scope6_0)))
(let-values (((all-scopes-stx_1) all-scopes-stx7_0))
(let-values ()
(let-values (((module-scopes_1) (list* post-expansion-scope_0 outside-scope_0 initial-scopes_0)))
(root-expand-context/make
self-mpi_1
module-scopes_1
post-expansion-scope_0
(new-scope 'module)
(let-values (((or-part_140) all-scopes-stx_1))
(if or-part_140 or-part_140 (add-scopes empty-syntax module-scopes_1)))
(box null)
(make-hasheqv)
(string->uninterned-symbol "root-frame")
(box 0)
(generate-lift-key))))))))))))
(define-values
(apply-post-expansion)
(lambda (pe_0 s_35)
(begin
(if (not pe_0)
(let-values () s_35)
(if (shifted-multi-scope? pe_0)
(let-values () (push-scope s_35 pe_0))
(if (pair? pe_0)
(let-values ()
(let-values (((temp16_2) (push-scope s_35 (car pe_0))) ((temp17_0) (cdr pe_0)))
(syntax-add-shifts.1 #f temp16_2 temp17_0 #f)))
(let-values () (pe_0 s_35))))))))
(define-values
(post-expansion-scope)
(lambda (pe_1)
(begin
(if (shifted-multi-scope? pe_1)
(let-values () pe_1)
(if (pair? pe_1)
(let-values () (car pe_1))
(let-values () (error 'post-expansion-scope "internal error: cannot extract scope from ~s" pe_1)))))))
(define-values
(root-expand-context-encode-for-module)
(lambda (ctx_0 orig-self_0 new-self_0)
(begin
(datum->syntax$1
#f
(vector
(add-scopes empty-syntax (root-expand-context-module-scopes ctx_0))
(apply-post-expansion (root-expand-context-post-expansion ctx_0) empty-syntax)
(let-values (((temp18_0) (root-expand-context-all-scopes-stx ctx_0))
((orig-self19_0) orig-self_0)
((new-self20_0) new-self_0))
(syntax-module-path-index-shift.1 #f temp18_0 orig-self19_0 new-self20_0 #f))
(add-scopes empty-syntax (unbox (root-expand-context-use-site-scopes ctx_0)))
(let-values (((ht_68) (root-expand-context-defined-syms ctx_0)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_68)))
((letrec-values (((for-loop_25)
(lambda (table_94 i_86)
(begin
'for-loop
(if i_86
(let-values (((phase_24 ht_29) (hash-iterate-key+value ht_68 i_86)))
(let-values (((table_95)
(let-values (((table_15) table_94))
(let-values (((table_96)
(let-values ()
(let-values (((key_40 val_26)
(let-values ()
(values phase_24 ht_29))))
(hash-set table_15 key_40 val_26)))))
(values table_96)))))
(if (not #f) (for-loop_25 table_95 (hash-iterate-next ht_68 i_86)) table_95)))
table_94)))))
for-loop_25)
'#hasheqv()
(hash-iterate-first ht_68))))
(root-expand-context-frame-id ctx_0)
(unbox (root-expand-context-counter ctx_0)))))))
(define-values
(root-expand-context-decode-for-module)
(lambda (vec-s_0 self_3)
(begin
(let-values (((vec_31) (if (syntax?$1 vec-s_0) (syntax-e$1 vec-s_0) #f)))
(begin
(if (if (vector? vec_31)
(if (= (vector-length vec_31) 7)
(if (syntax?$1 (vector-ref vec_31 0))
(if (syntax-with-one-scope? (vector-ref vec_31 1))
(if (syntax?$1 (vector-ref vec_31 2))
(if (syntax?$1 (vector-ref vec_31 3))
(if (defined-syms-hash? (syntax-e$1 (vector-ref vec_31 4)))
(if (symbol? (syntax-e$1 (vector-ref vec_31 5)))
(exact-nonnegative-integer? (syntax-e$1 (vector-ref vec_31 6)))
#f)
#f)
#f)
#f)
#f)
#f)
#f)
#f)
(void)
(let-values () (error 'root-expand-context-decode-for-module "bad encoding: ~s" vec-s_0)))
(root-expand-context/make
self_3
(extract-scope-list (vector-ref vec_31 0))
(cons (extract-scope (vector-ref vec_31 1)) (extract-shifts (vector-ref vec_31 1)))
(new-scope 'module)
(vector-ref vec_31 2)
(box (extract-scope-list (vector-ref vec_31 3)))
(unpack-defined-syms (vector-ref vec_31 4))
(syntax-e$1 (vector-ref vec_31 5))
(box (syntax-e$1 (vector-ref vec_31 6)))
(generate-lift-key)))))))
(define-values
(defined-syms-hash?)
(lambda (v_86)
(begin
(let-values (((ht_69) v_86))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_69)))
((letrec-values (((for-loop_9)
(lambda (result_55 i_87)
(begin
'for-loop
(if i_87
(let-values (((phase_25 ht-s_0) (hash-iterate-key+value ht_69 i_87)))
(let-values (((result_56)
(let-values ()
(let-values (((result_57)
(let-values ()
(let-values ()
(if (phase? phase_25)
(if (hash? (syntax-e$1 ht-s_0))
(let-values (((ht_70) (syntax-e$1 ht-s_0)))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values () (check-in-hash ht_70)))
((letrec-values (((for-loop_84)
(lambda (result_58 i_88)
(begin
'for-loop
(if i_88
(let-values (((sym_21
id_8)
(hash-iterate-key+value
ht_70
i_88)))
(let-values (((result_59)
(let-values ()
(let-values (((result_60)
(let-values ()
(let-values ()
(if (symbol?
sym_21)
(identifier?
id_8)
#f)))))
(values
result_60)))))
(if (if (not
((lambda x_34
(not
result_59))
sym_21
id_8))
(not #f)
#f)
(for-loop_84
result_59
(hash-iterate-next
ht_70
i_88))
result_59)))
result_58)))))
for-loop_84)
#t
(hash-iterate-first ht_70))))
#f)
#f)))))
(values result_57)))))
(if (if (not ((lambda x_35 (not result_56)) phase_25 ht-s_0)) (not #f) #f)
(for-loop_9 result_56 (hash-iterate-next ht_69 i_87))
result_56)))
result_55)))))
for-loop_9)
#t
(hash-iterate-first ht_69)))))))
(define-values
(extract-scope-list)
(lambda (stx_10) (begin (map2 generalize-scope (set->list (syntax-scope-set stx_10 0))))))
(define-values
(syntax-with-one-scope?)
(lambda (stx_11) (begin (if (syntax?$1 stx_11) (= 1 (set-count (syntax-scope-set stx_11 0))) #f))))
(define-values
(extract-scope)
(lambda (stx_12) (begin (let-values (((s_165) (syntax-scope-set stx_12 0))) (generalize-scope (set-first s_165))))))
(define-values (extract-shifts) (lambda (stx_13) (begin (syntax-mpi-shifts stx_13))))
(define-values
(unpack-defined-syms)
(lambda (v_87)
(begin
(hash-copy
(let-values (((ht_18) (syntax-e$1 v_87)))
(begin
(if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_18)))
((letrec-values (((for-loop_4)
(lambda (table_27 i_23)
(begin
'for-loop
(if i_23
(let-values (((phase_26 ht-s_1) (hash-iterate-key+value ht_18 i_23)))
(let-values (((table_28)
(let-values (((table_29) table_27))
(let-values (((table_30)
(let-values ()
(let-values (((key_41 val_27)
(let-values ()
(values
phase_26
(hash-copy
(let-values (((ht_71)
(syntax-e$1
ht-s_1)))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values ()
(check-in-hash ht_71)))
((letrec-values (((for-loop_85)
(lambda (table_97
i_89)
(begin
'for-loop
(if i_89
(let-values (((sym_22
id_9)
(hash-iterate-key+value
ht_71
i_89)))
(let-values (((table_98)
(let-values (((table_99)
table_97))
(let-values (((table_100)
(let-values ()
(let-values (((key_42
val_28)
(let-values ()
(values
sym_22
id_9))))
(hash-set
table_99
key_42
val_28)))))
(values
table_100)))))
(if (not
#f)
(for-loop_85
table_98
(hash-iterate-next
ht_71
i_89))
table_98)))
table_97)))))
for-loop_85)
'#hash()
(hash-iterate-first
ht_71)))))))))
(hash-set table_29 key_41 val_27)))))
(values table_30)))))
(if (not #f) (for-loop_4 table_28 (hash-iterate-next ht_18 i_23)) table_28)))
table_27)))))
for-loop_4)
'#hasheqv()
(hash-iterate-first ht_18))))))))
(define-values
(1/primitive-table)
(hash-ref
(let-values (((or-part_12) (primitive-table '#%bootstrap-linklet)))
(if or-part_12 or-part_12 (primitive-table '#%linklet)))
'primitive-table
#f))
(define-values
(1/primitive->compiled-position)
(hash-ref
(let-values (((or-part_13) (primitive-table '#%bootstrap-linklet)))
(if or-part_13 or-part_13 (primitive-table '#%linklet)))
'primitive->compiled-position
#f))
(define-values
(1/compiled-position->primitive)
(hash-ref
(let-values (((or-part_74) (primitive-table '#%bootstrap-linklet)))
(if or-part_74 or-part_74 (primitive-table '#%linklet)))
'compiled-position->primitive
#f))
(define-values
(1/primitive-in-category?)
(hash-ref
(let-values (((or-part_14) (primitive-table '#%bootstrap-linklet)))
(if or-part_14 or-part_14 (primitive-table '#%linklet)))
'primitive-in-category?
#f))
(define-values
(1/primitive-lookup)
(hash-ref
(let-values (((or-part_75) (primitive-table '#%bootstrap-linklet)))
(if or-part_75 or-part_75 (primitive-table '#%linklet)))
'primitive-lookup
#f))
(define-values
(1/linklet?)
(hash-ref
(let-values (((or-part_76) (primitive-table '#%bootstrap-linklet)))
(if or-part_76 or-part_76 (primitive-table '#%linklet)))
'linklet?
#f))
(define-values
(1/compile-linklet)
(hash-ref
(let-values (((or-part_77) (primitive-table '#%bootstrap-linklet)))
(if or-part_77 or-part_77 (primitive-table '#%linklet)))
'compile-linklet
#f))
(define-values
(1/recompile-linklet)
(hash-ref
(let-values (((or-part_57) (primitive-table '#%bootstrap-linklet)))
(if or-part_57 or-part_57 (primitive-table '#%linklet)))
'recompile-linklet
#f))
(define-values
(1/eval-linklet)
(hash-ref
(let-values (((or-part_33) (primitive-table '#%bootstrap-linklet)))
(if or-part_33 or-part_33 (primitive-table '#%linklet)))
'eval-linklet
#f))
(define-values
(1/instantiate-linklet)
(hash-ref
(let-values (((or-part_78) (primitive-table '#%bootstrap-linklet)))
(if or-part_78 or-part_78 (primitive-table '#%linklet)))
'instantiate-linklet
#f))
(define-values
(1/linklet-import-variables)
(hash-ref
(let-values (((or-part_68) (primitive-table '#%bootstrap-linklet)))
(if or-part_68 or-part_68 (primitive-table '#%linklet)))
'linklet-import-variables
#f))
(define-values
(1/linklet-export-variables)
(hash-ref
(let-values (((or-part_79) (primitive-table '#%bootstrap-linklet)))
(if or-part_79 or-part_79 (primitive-table '#%linklet)))
'linklet-export-variables
#f))
(define-values
(1/instance?)
(hash-ref
(let-values (((or-part_80) (primitive-table '#%bootstrap-linklet)))
(if or-part_80 or-part_80 (primitive-table '#%linklet)))
'instance?
#f))
(define-values
(1/make-instance)
(hash-ref
(let-values (((or-part_81) (primitive-table '#%bootstrap-linklet)))
(if or-part_81 or-part_81 (primitive-table '#%linklet)))
'make-instance
#f))
(define-values
(1/instance-name)
(hash-ref
(let-values (((or-part_82) (primitive-table '#%bootstrap-linklet)))
(if or-part_82 or-part_82 (primitive-table '#%linklet)))
'instance-name
#f))
(define-values
(1/instance-data)
(hash-ref
(let-values (((or-part_141) (primitive-table '#%bootstrap-linklet)))
(if or-part_141 or-part_141 (primitive-table '#%linklet)))
'instance-data
#f))
(define-values
(1/instance-variable-names)
(hash-ref
(let-values (((or-part_142) (primitive-table '#%bootstrap-linklet)))
(if or-part_142 or-part_142 (primitive-table '#%linklet)))
'instance-variable-names
#f))
(define-values
(1/instance-variable-value)
(hash-ref
(let-values (((or-part_3) (primitive-table '#%bootstrap-linklet)))
(if or-part_3 or-part_3 (primitive-table '#%linklet)))
'instance-variable-value
#f))
(define-values
(1/instance-set-variable-value!)
(hash-ref
(let-values (((or-part_4) (primitive-table '#%bootstrap-linklet)))
(if or-part_4 or-part_4 (primitive-table '#%linklet)))
'instance-set-variable-value!
#f))
(define-values
(1/instance-unset-variable!)
(hash-ref
(let-values (((or-part_5) (primitive-table '#%bootstrap-linklet)))
(if or-part_5 or-part_5 (primitive-table '#%linklet)))
'instance-unset-variable!
#f))
(define-values
(1/instance-describe-variable!)
(hash-ref
(let-values (((or-part_6) (primitive-table '#%bootstrap-linklet)))
(if or-part_6 or-part_6 (primitive-table '#%linklet)))
'instance-describe-variable!
#f))
(define-values
(1/linklet-virtual-machine-bytes)
(hash-ref
(let-values (((or-part_143) (primitive-table '#%bootstrap-linklet)))
(if or-part_143 or-part_143 (primitive-table '#%linklet)))
'linklet-virtual-machine-bytes
#f))
(define-values
(1/write-linklet-bundle-hash)
(hash-ref
(let-values (((or-part_34) (primitive-table '#%bootstrap-linklet)))
(if or-part_34 or-part_34 (primitive-table '#%linklet)))
'write-linklet-bundle-hash
#f))
(define-values
(1/read-linklet-bundle-hash)
(hash-ref
(let-values (((or-part_144) (primitive-table '#%bootstrap-linklet)))
(if or-part_144 or-part_144 (primitive-table '#%linklet)))
'read-linklet-bundle-hash
#f))
(define-values
(1/variable-reference?)
(hash-ref
(let-values (((or-part_145) (primitive-table '#%bootstrap-linklet)))
(if or-part_145 or-part_145 (primitive-table '#%linklet)))
'variable-reference?
#f))
(define-values
(1/variable-reference->instance)
(hash-ref
(let-values (((or-part_146) (primitive-table '#%bootstrap-linklet)))
(if or-part_146 or-part_146 (primitive-table '#%linklet)))
'variable-reference->instance
#f))
(define-values
(1/variable-reference-constant?)
(hash-ref
(let-values (((or-part_147) (primitive-table '#%bootstrap-linklet)))
(if or-part_147 or-part_147 (primitive-table '#%linklet)))
'variable-reference-constant?
#f))
(define-values
(1/variable-reference-from-unsafe?)
(hash-ref
(let-values (((or-part_83) (primitive-table '#%bootstrap-linklet)))
(if or-part_83 or-part_83 (primitive-table '#%linklet)))
'variable-reference-from-unsafe?
#f))
(void
(if 1/variable-reference-constant?
(void)
(let-values () (error "broken '#%linklet primitive table; maybe you need to use \"bootstrap-run.rkt\""))))
(define-values
(struct:module-registry module-registry1.1 module-registry? module-registry-declarations module-registry-lock-box)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'module-registry
#f
2
0
#f
null
(current-inspector)
#f
'(0 1)
#f
'module-registry)))))
(values
struct:_2
make-_2
?_2
(make-struct-field-accessor -ref_2 0 'declarations)
(make-struct-field-accessor -ref_2 1 'lock-box))))
(define-values (make-module-registry) (lambda () (begin (module-registry1.1 (make-hasheq) (box #f)))))
(define-values
(registry-call-with-lock)
(lambda (r_23 proc_2)
(begin
(let-values (((lock-box_0) (module-registry-lock-box r_23)))
((letrec-values (((loop_77)
(lambda ()
(begin
'loop
(let-values (((v_80) (unbox lock-box_0)))
(if (let-values (((or-part_12) (not v_80)))
(if or-part_12
or-part_12
(sync/timeout
0
(car v_80)
(let-values (((or-part_13) (weak-box-value (cdr v_80))))
(if or-part_13 or-part_13 never-evt)))))
(let-values ()
(let-values (((sema_0) (make-semaphore)))
(let-values (((lock_0)
(cons
(semaphore-peek-evt sema_0)
(make-weak-box (current-thread)))))
((dynamic-wind
void
(lambda ()
(if (box-cas! lock-box_0 v_80 lock_0)
(let-values () (begin (proc_2) void))
(let-values () (lambda () (loop_77)))))
(lambda () (semaphore-post sema_0)))))))
(if (eq? (current-thread) (weak-box-value (cdr v_80)))
(let-values () (proc_2))
(let-values ()
(begin
(sync
(car v_80)
(let-values (((or-part_75) (weak-box-value (cdr v_80))))
(if or-part_75 or-part_75 never-evt)))
(loop_77))))))))))
loop_77))))))
(define-values
(struct:namespace
namespace1.1
1/namespace?
namespace-mpi
namespace-source-name
namespace-root-expand-ctx
namespace-phase
namespace-0-phase
namespace-phase-to-namespace
namespace-phase-level-to-definitions
namespace-module-registry$1
namespace-bulk-binding-registry
namespace-submodule-declarations
namespace-root-namespace
namespace-declaration-inspector
namespace-inspector
namespace-available-module-instances
namespace-module-instances
set-namespace-inspector!)
(let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2)
(let-values ()
(let-values ()
(make-struct-type
'namespace
#f
15
0
#f
(list
(cons prop:authentic #t)
(cons
prop:custom-write
(lambda (ns_0 port_7 mode_10)
(let-values ((() (begin (write-string "#<namespace" port_7) (values))))
(let-values (((n_20) (namespace-source-name ns_0)))
(let-values ((()
(begin
(if n_20
(let-values () (fprintf port_7 ":~a" (namespace->name ns_0)))
(void))
(values))))
(let-values (((0-phase_0) (namespace-0-phase ns_0)))
(let-values (((phase-level_0) (phase- (namespace-phase ns_0) 0-phase_0)))
(begin
(if (zero-phase? phase-level_0)
(void)
(let-values () (fprintf port_7 ":~s" phase-level_0)))
(if (zero-phase? 0-phase_0)
(void)
(let-values ()
(fprintf port_7 "~a~s" (if (positive? 0-phase_0) "+" "") 0-phase_0)))
(write-string ">" port_7))))))))))
(current-inspector)
#f
'(0 1 2 3 4 5 6 7 8 9 10 11 13 14)
#f
'namespace)))))
(values
struct:_2
make-_2
?_2
(make-struct-field-accessor -ref_2 0 'mpi)
(make-struct-field-accessor -ref_2 1 'source-name)
(make-struct-field-accessor -ref_2 2 'root-expand-ctx)
(make-struct-field-accessor -ref_2 3 'phase)
(make-struct-field-accessor -ref_2 4 '0-phase)
(make-struct-field-accessor -ref_2 5 'phase-to-namespace)
(make-struct-field-accessor -ref_2 6 'phase-level-to-definitions)
(make-struct-field-accessor -ref_2 7 'module-registry)
(make-struct-field-accessor -ref_2 8 'bulk-binding-registry)
(make-struct-field-accessor -ref_2 9 'submodule-declarations)
(make-struct-field-accessor -ref_2 10 'root-namespace)
(make-struct-field-accessor -ref_2 11 'declaration-inspector)
(make-struct-field-accessor -ref_2 12 'inspector)
(make-struct-field-accessor -ref_2 13 'available-module-instances)
(make-struct-field-accessor -ref_2 14 'module-instances)
(make-struct-field-mutator -set!_2 12 'inspector))))
(define-values
(struct:definitions definitions2.1 definitions? definitions-variables definitions-transformers)
(let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6)
(let-values ()
(let-values ()
(make-struct-type
'definitions
#f
2
0
#f
(list (cons prop:authentic #t))
(current-inspector)
#f
'(0 1)
#f
'definitions)))))
(values
struct:_6
make-_6
?_6
(make-struct-field-accessor -ref_6 0 'variables)
(make-struct-field-accessor -ref_6 1 'transformers))))
(define-values (make-namespace) (lambda () (begin (let-values () (new-namespace.1 #t unsafe-undefined #f)))))
(define-values
(new-namespace.1)
(lambda (register?4_0 root-expand-ctx3_0 share-from-ns7_0)
(begin
'new-namespace
(let-values (((share-from-ns_0) share-from-ns7_0))
(let-values (((root-expand-ctx_0)
(if (eq? root-expand-ctx3_0 unsafe-undefined)
(let-values (((top-level-module-path-index16_0) top-level-module-path-index))
(make-root-expand-context.1
#f
null
unsafe-undefined
unsafe-undefined
top-level-module-path-index16_0))
root-expand-ctx3_0)))
(let-values (((register?_0) register?4_0))
(let-values ()
(let-values (((phase_27) (if share-from-ns_0 (namespace-phase share-from-ns_0) 0)))
(let-values (((ns_1)
(namespace1.1
top-level-module-path-index
#f
(box root-expand-ctx_0)
phase_27
phase_27
(make-small-hasheqv)
(make-small-hasheqv)
(if share-from-ns_0 (namespace-module-registry$1 share-from-ns_0) (make-module-registry))
(if share-from-ns_0
(namespace-bulk-binding-registry share-from-ns_0)
(make-bulk-binding-registry))
(make-small-hasheq)
(if share-from-ns_0
(let-values (((or-part_3) (namespace-root-namespace share-from-ns_0)))
(if or-part_3 or-part_3 share-from-ns_0))
#f)
#f
(make-inspector (current-code-inspector))
(if share-from-ns_0
(namespace-available-module-instances share-from-ns_0)
(make-hasheqv))
(if share-from-ns_0 (namespace-module-instances share-from-ns_0) (make-hasheqv)))))
(begin
(if register?_0
(let-values () (small-hash-set! (namespace-phase-to-namespace ns_1) phase_27 ns_1))
(void))
ns_1))))))))))
(define-values
(1/current-namespace)
(make-parameter
(make-namespace)
(lambda (v_88)
(begin
(if (1/namespace? v_88) (void) (let-values () (raise-argument-error 'current-namespace "namespace?" v_88)))
v_88))
'current-namespace))
(define-values
(namespace-get-root-expand-ctx)
(lambda (ns_2) (begin (force (unbox (namespace-root-expand-ctx ns_2))))))
(define-values
(namespace-set-root-expand-ctx!)
(lambda (ns_3 root-ctx_0) (begin (set-box! (namespace-root-expand-ctx ns_3) root-ctx_0))))
(define-values
(namespace-self-mpi)
(lambda (ns_4) (begin (root-expand-context-self-mpi (namespace-get-root-expand-ctx ns_4)))))
(define-values
(namespace-self-mpi/no-top-level)
(lambda (ns_5)
(begin
(let-values (((mpi_17) (root-expand-context-self-mpi (namespace-get-root-expand-ctx ns_5))))
(if (if mpi_17 (top-level-module-path-index? mpi_17) #f) #f mpi_17)))))
(define-values
(namespace->module)
(lambda (ns_6 name_17)
(begin
(let-values (((or-part_148) (small-hash-ref (namespace-submodule-declarations ns_6) name_17 #f)))
(if or-part_148
or-part_148
(hash-ref (module-registry-declarations (namespace-module-registry$1 ns_6)) name_17 #f))))))
(define-values
(namespace->namespace-at-phase)
(lambda (ns_7 phase_28)
(begin
(let-values (((or-part_70) (small-hash-ref (namespace-phase-to-namespace ns_7) phase_28 #f)))
(if or-part_70
or-part_70
(let-values (((p-ns_0)
(let-values (((the-struct_34) ns_7))
(if (1/namespace? the-struct_34)
(let-values (((phase17_0) phase_28)
((root-namespace18_0)
(let-values (((or-part_8) (namespace-root-namespace ns_7)))
(if or-part_8 or-part_8 ns_7))))
(namespace1.1
(namespace-mpi the-struct_34)
(namespace-source-name the-struct_34)
(namespace-root-expand-ctx the-struct_34)
phase17_0
(namespace-0-phase the-struct_34)
(namespace-phase-to-namespace the-struct_34)
(namespace-phase-level-to-definitions the-struct_34)
(namespace-module-registry$1 the-struct_34)
(namespace-bulk-binding-registry the-struct_34)
(namespace-submodule-declarations the-struct_34)
root-namespace18_0
(namespace-declaration-inspector the-struct_34)
(namespace-inspector the-struct_34)
(namespace-available-module-instances the-struct_34)
(namespace-module-instances the-struct_34)))
(raise-argument-error 'struct-copy "namespace?" the-struct_34)))))
(begin (small-hash-set! (namespace-phase-to-namespace ns_7) phase_28 p-ns_0) p-ns_0)))))))
(define-values
(namespace->name)
(lambda (ns_8)
(begin
(let-values (((n_21) (namespace-source-name ns_8)))
(let-values (((s_76)
(if (not n_21)
(let-values () 'top-level)
(if (symbol? n_21)
(let-values () (format "'~s" n_21))
(let-values () (string-append "\"" (path->string n_21) "\""))))))
(let-values (((r_24) (1/resolved-module-path-name (1/module-path-index-resolve (namespace-mpi ns_8)))))
(if (pair? r_24) (string-append "(submod " s_76 " " (substring (format "~s" (cdr r_24)) 1)) s_76)))))))
(define-values
(namespace->definitions)
(lambda (ns_9 phase-level_1)
(begin
(let-values (((d_9) (small-hash-ref (namespace-phase-level-to-definitions ns_9) phase-level_1 #f)))
(let-values (((or-part_149) d_9))
(if or-part_149
or-part_149
(let-values ()
(let-values (((p-ns_1)
(namespace->namespace-at-phase ns_9 (phase+ (namespace-0-phase ns_9) phase-level_1))))
(let-values (((d_10) (definitions2.1 (1/make-instance (namespace->name p-ns_1) p-ns_1) (make-hasheq))))
(begin (small-hash-set! (namespace-phase-level-to-definitions ns_9) phase-level_1 d_10) d_10))))))))))
(define-values
(namespace-set-variable!)
(let-values (((namespace-set-variable!_0)
(lambda (ns10_0 phase-level11_0 name12_0 val13_0 as-constant?9_0)
(begin
'namespace-set-variable!
(let-values (((ns_10) ns10_0))
(let-values (((phase-level_2) phase-level11_0))
(let-values (((name_18) name12_0))
(let-values (((val_29) val13_0))
(let-values (((as-constant?_0) as-constant?9_0))
(let-values ()
(let-values (((d_11) (namespace->definitions ns_10 phase-level_2)))
(1/instance-set-variable-value!
(definitions-variables d_11)
name_18
val_29
(if as-constant?_0 'constant #f)))))))))))))
(case-lambda
((ns_11 phase-level_3 name_19 val_30) (begin (namespace-set-variable!_0 ns_11 phase-level_3 name_19 val_30 #f)))
((ns_12 phase-level_4 name_20 val_31 as-constant?9_1)
(namespace-set-variable!_0 ns_12 phase-level_4 name_20 val_31 as-constant?9_1)))))
(define-values
(namespace-set-consistent!)
(lambda (ns_13 phase-level_5 name_21 val_32)
(begin
(let-values (((d_12) (namespace->definitions ns_13 phase-level_5)))
(1/instance-set-variable-value! (definitions-variables d_12) name_21 val_32 'consistent)))))
(define-values
(namespace-unset-variable!)
(lambda (ns_14 phase-level_6 name_22)
(begin
(let-values (((d_13) (namespace->definitions ns_14 phase-level_6)))
(1/instance-unset-variable! (definitions-variables d_13) name_22)))))
(define-values
(namespace-set-transformer!)
(lambda (ns_15 phase-level_7 name_23 val_33)
(begin
(let-values (((d_14) (namespace->definitions ns_15 (add1 phase-level_7))))
(hash-set! (definitions-transformers d_14) name_23 val_33)))))
(define-values
(namespace-unset-transformer!)
(lambda (ns_16 phase-level_8 name_24)
(begin
(let-values (((d_15) (namespace->definitions ns_16 (add1 phase-level_8))))
(hash-remove! (definitions-transformers d_15) name_24)))))
(define-values
(namespace-get-variable)
(lambda (ns_17 phase-level_9 name_25 fail-k_0)
(begin
(let-values (((d_16) (namespace->definitions ns_17 phase-level_9)))
(1/instance-variable-value (definitions-variables d_16) name_25 fail-k_0)))))
(define-values
(namespace-get-transformer)
(lambda (ns_18 phase-level_10 name_26 fail-k_1)
(begin
(let-values (((d_17) (namespace->definitions ns_18 (add1 phase-level_10))))
(hash-ref (definitions-transformers d_17) name_26 fail-k_1)))))
(define-values
(namespace->instance)
(lambda (ns_19 phase-shift_2) (begin (definitions-variables (namespace->definitions ns_19 phase-shift_2)))))
(define-values
(namespace-same-instance?)
(lambda (a-ns_0 b-ns_0)
(begin
(eq?
(small-hash-ref (namespace-phase-level-to-definitions a-ns_0) 0 'no-a)
(small-hash-ref (namespace-phase-level-to-definitions b-ns_0) 0 'no-b)))))
(define-values (original-property-sym) (gensym 'original))
(define-values
(syntax->list$1)
(lambda (s_0)
(begin
'syntax->list
(let-values (((l_33)
((letrec-values (((loop_78)
(lambda (s_1)
(begin
'loop
(if (pair? s_1)
(let-values () (cons (car s_1) (loop_78 (cdr s_1))))
(if (syntax?$1 s_1)
(let-values () (loop_78 (syntax-e$1 s_1)))
(let-values () s_1)))))))
loop_78)
s_0)))
(if (list? l_33) l_33 #f)))))
(define-values (missing$1) (gensym))
(define-values
(syntax-track-origin$1)
(let-values (((syntax-track-origin_0)
(lambda (new-stx2_0 old-stx3_0 id1_0)
(begin
'syntax-track-origin
(let-values (((new-stx_0) new-stx2_0))
(let-values (((old-stx_0) old-stx3_0))
(let-values (((id_10)
(if (eq? id1_0 unsafe-undefined)
(if (identifier? old-stx_0)
old-stx_0
(let-values (((v_33) (syntax-e/no-taint old-stx_0)))
(if (pair? v_33) (car v_33) #f)))
id1_0)))
(let-values ()
(let-values (((old-props_0) (syntax-props old-stx_0)))
(if (zero? (hash-count old-props_0))
(let-values ()
(if id_10
(syntax-property$1
new-stx_0
'origin
(cons id_10 (hash-ref (syntax-props new-stx_0) 'origin null)))
new-stx_0))
(let-values ()
(let-values (((new-props_0) (syntax-props new-stx_0)))
(if (zero? (hash-count new-props_0))
(let-values ()
(if id_10
(let-values ()
(let-values (((old-origin_0)
(plain-property-value
(hash-ref old-props_0 'origin missing$1))))
(let-values (((origin_0)
(if (eq? old-origin_0 missing$1)
(list id_10)
(cons id_10 old-origin_0))))
(let-values (((the-struct_35) new-stx_0))
(if (syntax?$1 the-struct_35)
(let-values (((props4_0) (hash-set old-props_0 'origin origin_0)))
(syntax2.1
(syntax-content* the-struct_35)
(syntax-scopes the-struct_35)
(syntax-shifted-multi-scopes the-struct_35)
(syntax-mpi-shifts the-struct_35)
(syntax-srcloc the-struct_35)
props4_0
(syntax-inspector the-struct_35)))
(raise-argument-error 'struct-copy "syntax?" the-struct_35))))))
(let-values ()
(let-values (((the-struct_36) new-stx_0))
(if (syntax?$1 the-struct_36)
(let-values (((props5_0) old-props_0))
(syntax2.1
(syntax-content* the-struct_36)
(syntax-scopes the-struct_36)
(syntax-shifted-multi-scopes the-struct_36)
(syntax-mpi-shifts the-struct_36)
(syntax-srcloc the-struct_36)
props5_0
(syntax-inspector the-struct_36)))
(raise-argument-error 'struct-copy "syntax?" the-struct_36))))))
(let-values ()
(let-values (((old-props-with-origin_0)
(if id_10
(hash-set
old-props_0
'origin
(cons id_10 (hash-ref old-props_0 'origin null)))
old-props_0)))
(let-values (((updated-props_0)
(if (<
(hash-count old-props-with-origin_0)
(hash-count new-props_0))
(let-values ()
(let-values (((ht_72) old-props-with-origin_0))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_72)))
((letrec-values (((for-loop_86)
(lambda (new-props_1 i_90)
(begin
'for-loop
(if i_90
(let-values (((k_21 v_2)
(unsafe-immutable-hash-iterate-key+value
ht_72
i_90)))
(let-values (((new-props_2)
(let-values (((new-props_3)
new-props_1))
(let-values (((new-props_4)
(let-values ()
(let-values (((new-v_0)
(hash-ref
new-props_3
k_21
missing$1)))
(hash-set
new-props_3
k_21
(if (eq?
new-v_0
missing$1)
v_2
(cons/preserve
new-v_0
v_2)))))))
(values
new-props_4)))))
(if (not #f)
(for-loop_86
new-props_2
(unsafe-immutable-hash-iterate-next
ht_72
i_90))
new-props_2)))
new-props_1)))))
for-loop_86)
new-props_0
(unsafe-immutable-hash-iterate-first ht_72)))))
(let-values ()
(let-values (((ht_73) new-props_0))
(begin
(if (variable-reference-from-unsafe?
(#%variable-reference))
(void)
(let-values () (check-in-immutable-hash ht_73)))
((letrec-values (((for-loop_87)
(lambda (old-props_1 i_91)
(begin
'for-loop
(if i_91
(let-values (((k_22 v_82)
(unsafe-immutable-hash-iterate-key+value
ht_73
i_91)))
(let-values (((old-props_2)
(let-values (((old-props_3)
old-props_1))
(let-values (((old-props_4)
(let-values ()
(let-values (((old-v_0)
(hash-ref
old-props_3
k_22
missing$1)))
(hash-set
old-props_3
k_22
(if (eq?
old-v_0
missing$1)
v_82
(cons/preserve
v_82
old-v_0)))))))
(values
old-props_4)))))
(if (not #f)
(for-loop_87
old-props_2
(unsafe-immutable-hash-iterate-next
ht_73
i_91))
old-props_2)))
old-props_1)))))
for-loop_87)
old-props-with-origin_0
(unsafe-immutable-hash-iterate-first ht_73))))))))
(let-values (((the-struct_37) new-stx_0))
(if (syntax?$1 the-struct_37)
(let-values (((props6_0) updated-props_0))
(syntax2.1
(syntax-content* the-struct_37)
(syntax-scopes the-struct_37)
(syntax-shifted-multi-scopes the-struct_37)
(syntax-mpi-shifts the-struct_37)
(syntax-srcloc the-struct_37)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment