From ff4657b4891365ec539e5803c8568721b4cde7ba Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sat, 28 Aug 2021 12:21:04 -0400 Subject: [PATCH 001/170] WIP --- js | 0 racketscript-compiler/racketscript/compiler/main.rkt | 3 ++- stuff.rkt | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 js create mode 100644 stuff.rkt diff --git a/js b/js new file mode 100644 index 00000000..e69de29b diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index c28a6b58..fffeb185 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -324,6 +324,7 @@ ["--ast" "Expand and print AST" (build-mode 'absyn)] ["--il" "Compile to intermediate langauge (IL)" (build-mode 'il)] ["--js" "Compile and print JS module to stdout" (build-mode 'js)] + ["--linklet" "Compile a linklet as an s-expression to JS and print to stdout" (build-mode 'linklet)] ["--complete" "Compile module and its dependencies to JS" (build-mode 'complete)] #:args ([filename 'stdin]) (match `(,filename ,(input-from-stdin?)) @@ -362,7 +363,7 @@ (unless (equal? (build-mode) 'js) (log-rjs-info "RacketScript root directory: ~a" racketscript-dir)) - (unless (input-from-stdin?) + (unless (or (input-from-stdin?) (equal? (build-mode) 'linklet)) ;; Initialize global-export-graph so that we can import each module as an ;; object and follow identifier's from there. For stdin builds, we have to ;; defer this operation. diff --git a/stuff.rkt b/stuff.rkt new file mode 100644 index 00000000..0f13308e --- /dev/null +++ b/stuff.rkt @@ -0,0 +1,6 @@ +#lang racket/base + +(+ 2 3) + +38 + From e64661ca746c0f8a57bbd3e5a77d7fbcd6fdb9c7 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sun, 26 Sep 2021 11:22:53 -0400 Subject: [PATCH 002/170] wip --- .../racketscript/compiler/absyn.rkt | 2 ++ .../racketscript/compiler/expand.rkt | 14 ++++++++++++++ .../racketscript/compiler/main.rkt | 10 +++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/absyn.rkt b/racketscript-compiler/racketscript/compiler/absyn.rkt index 42cfc8f5..8d9b0582 100644 --- a/racketscript-compiler/racketscript/compiler/absyn.rkt +++ b/racketscript-compiler/racketscript/compiler/absyn.rkt @@ -5,6 +5,8 @@ (provide (all-defined-out)) +(struct Linklet ([forms : (Listof GeneralTopLevelForm)])) + (struct Module ([id : Symbol] [path : Path] [lang : (U Symbol String (Listof Symbol))] diff --git a/racketscript-compiler/racketscript/compiler/expand.rkt b/racketscript-compiler/racketscript/compiler/expand.rkt index cbe1d51c..35597f2d 100644 --- a/racketscript-compiler/racketscript/compiler/expand.rkt +++ b/racketscript-compiler/racketscript/compiler/expand.rkt @@ -34,6 +34,7 @@ "util.rkt") (provide convert + convert-linklet open-read-module read-module to-absyn @@ -422,6 +423,12 @@ [_ (error 'convert "bad ~a ~a" mod (syntax->datum mod))])) +(define (convert-linklet linklet) + (syntax-parse linklet #;(freshen-linklet-forms linklet) + #:literal-sets () ;; what are these literal sets for? + [(linklet _imports _exports forms ...) + (Linklet (filter-map to-absyn (syntax->list #'(forms ...))))])) + (define (freshen-mod-forms mod) (syntax-parse mod #:literal-sets ((kernel-literals #:phase (current-phase))) @@ -459,6 +466,10 @@ [((~and mod-datum (~datum module)) . rest) (error 'do-expand "got ill-formed module: ~a\n" (syntax->datum #'rest))] + [((~datum linklet) _ _ . rest) (void)] + [((~datum linklet) . rest) + (error 'do-expand + "got ill-formed linklet: ~a\n" (syntax->datum #'rest))] [rest (error 'do-expand "got something that isn't a module: ~a\n" (syntax->datum #'rest))]) @@ -490,6 +501,9 @@ (read-accept-lang #t) (do-expand (read-syntax (object-name input) input))) +(define (read-and-expand-linklet input) + (read-syntax (object-name input) input)) + ;;;---------------------------------------------------------------------------- ;;; Flatten Phases in Module diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index fffeb185..51b1ce15 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -391,6 +391,10 @@ [else (quick-expand source)])) + (define (expanded-linklet) + (parameterize ([current-namespace (make-base-namespace)]) + + (match (build-mode) ['expand (~> (expanded-module) (syntax->datum _) @@ -415,6 +419,10 @@ (if (js-output-beautify?) (js-string-beautify (get-output-string output-string)) (get-output-string output-string)))] - ['complete (racket->js)]) + ['complete (racket->js)] + ['linklet + (~> (expanded-module) + (convert-linklet _) + (pretty-print _))]) (void)) From 2ec4cf456e6b3f5f8e3f80c2f9cdd1e1f4007a11 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 27 Sep 2021 21:58:09 -0400 Subject: [PATCH 003/170] parsing and expanding success --- .../racketscript/compiler/expand.rkt | 27 +++++++++++++++---- .../racketscript/compiler/main.rkt | 6 +---- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/expand.rkt b/racketscript-compiler/racketscript/compiler/expand.rkt index 35597f2d..bc9d4577 100644 --- a/racketscript-compiler/racketscript/compiler/expand.rkt +++ b/racketscript-compiler/racketscript/compiler/expand.rkt @@ -40,7 +40,8 @@ to-absyn to-absyn/top read-and-expand-module - quick-expand) + quick-expand + expand-linklet) (define current-module (make-parameter #f)) (define current-phase (make-parameter 0)) @@ -466,10 +467,6 @@ [((~and mod-datum (~datum module)) . rest) (error 'do-expand "got ill-formed module: ~a\n" (syntax->datum #'rest))] - [((~datum linklet) _ _ . rest) (void)] - [((~datum linklet) . rest) - (error 'do-expand - "got ill-formed linklet: ~a\n" (syntax->datum #'rest))] [rest (error 'do-expand "got something that isn't a module: ~a\n" (syntax->datum #'rest))]) @@ -478,6 +475,19 @@ (parameterize ([current-namespace (make-base-namespace)]) (expand stx))) +(define (do-expand-linklet stx) + (syntax-parse stx + [((~datum linklet) imports exports . rest) + (parameterize ([current-namespace (make-base-namespace)]) + #`(linklet imports exports #,@(map expand (syntax->list #'rest))))] + [((~datum linklet) . rest) + (error 'do-expand-linklet + "got ill-formed linklet: ~a\n" (syntax->datum #'rest))] + [rest + (error 'do-expand-linklet + "got something that isn't a module: ~a\n" (syntax->datum #'rest))])) + + ;;; Read modules (define (read-module input) @@ -488,6 +498,13 @@ (λ (in) (read-module in)))) +(define (expand-linklet in-path) + (log-rjs-info "[expand-linklet] ~a" in-path) + (define full-path (path->complete-path (actual-module-path in-path))) + (parameterize ([current-directory (path-only full-path)]) + (do-expand-linklet (open-read-module in-path)))) + + (define (quick-expand in-path) (log-rjs-info "[expand] ~a" in-path) (read-accept-reader #t) diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index 51b1ce15..47a83fb8 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -391,10 +391,6 @@ [else (quick-expand source)])) - (define (expanded-linklet) - (parameterize ([current-namespace (make-base-namespace)]) - - (match (build-mode) ['expand (~> (expanded-module) (syntax->datum _) @@ -421,7 +417,7 @@ (get-output-string output-string)))] ['complete (racket->js)] ['linklet - (~> (expanded-module) + (~> (expand-linklet source) (convert-linklet _) (pretty-print _))]) From d2aa0d6211e288e662fb03bbc95c91553649a25a Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 25 Oct 2021 22:52:13 -0400 Subject: [PATCH 004/170] expand linklets! --- racketscript-compiler/racketscript/compiler/expand.rkt | 5 ++++- racketscript-compiler/racketscript/compiler/main.rkt | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/expand.rkt b/racketscript-compiler/racketscript/compiler/expand.rkt index bc9d4577..8f43dfc7 100644 --- a/racketscript-compiler/racketscript/compiler/expand.rkt +++ b/racketscript-compiler/racketscript/compiler/expand.rkt @@ -268,6 +268,7 @@ (current-module-imports (set-add (current-module-imports) '#%kernel)) (current-module-imports (set-add (current-module-imports) src-mod-path))) + ;;HACK: See test/struct/import-struct.rkt. Somehow, the ;; struct constructor has different src-id returned by ;; identifier-binding than the actual identifier name used @@ -428,7 +429,9 @@ (syntax-parse linklet #;(freshen-linklet-forms linklet) #:literal-sets () ;; what are these literal sets for? [(linklet _imports _exports forms ...) - (Linklet (filter-map to-absyn (syntax->list #'(forms ...))))])) + (parameterize ([lexical-bindings (make-free-id-table)]) + (let ([contents (filter-map to-absyn (syntax->list #'(forms ...)))]) + (Linklet contents)))])) (define (freshen-mod-forms mod) (syntax-parse mod diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index 47a83fb8..d4e21d6c 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -363,7 +363,9 @@ (unless (equal? (build-mode) 'js) (log-rjs-info "RacketScript root directory: ~a" racketscript-dir)) - (unless (or (input-from-stdin?) (equal? (build-mode) 'linklet)) + (define linklet-mode? (equal? (build-mode) 'linklet)) + + (unless (or (input-from-stdin?) linklet-mode?) ;; Initialize global-export-graph so that we can import each module as an ;; object and follow identifier's from there. For stdin builds, we have to ;; defer this operation. @@ -372,6 +374,9 @@ (log-rjs-info "Resolving module dependencies and identifiers... ")) (global-export-graph (get-export-tree (list source)))) + (when linklet-mode? + (global-export-graph (get-export-tree (list (collection-file-path "base.rkt" "racket"))))) + (define (expanded-module) (cond [(input-from-stdin?) From a36b41f18891401df68cec7110f25443d7faaaac Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Nov 2021 17:36:21 -0400 Subject: [PATCH 005/170] transform linklet AST to IR --- js | 0 .../racketscript/compiler/absyn.rkt | 5 +- .../racketscript/compiler/expand.rkt | 10 ++- .../racketscript/compiler/il.rkt | 3 + .../racketscript/compiler/main.rkt | 5 +- .../racketscript/compiler/transform.rkt | 85 ++++++++++++------- 6 files changed, 69 insertions(+), 39 deletions(-) delete mode 100644 js diff --git a/js b/js deleted file mode 100644 index e69de29b..00000000 diff --git a/racketscript-compiler/racketscript/compiler/absyn.rkt b/racketscript-compiler/racketscript/compiler/absyn.rkt index 8d9b0582..58b2a90d 100644 --- a/racketscript-compiler/racketscript/compiler/absyn.rkt +++ b/racketscript-compiler/racketscript/compiler/absyn.rkt @@ -5,7 +5,10 @@ (provide (all-defined-out)) -(struct Linklet ([forms : (Listof GeneralTopLevelForm)])) +(struct Linklet ([path : Path] + [forms : (Listof GeneralTopLevelForm)] + [imports : (Setof (U Path Symbol))]) + #:transparent) (struct Module ([id : Symbol] [path : Path] diff --git a/racketscript-compiler/racketscript/compiler/expand.rkt b/racketscript-compiler/racketscript/compiler/expand.rkt index 8f43dfc7..7a886d25 100644 --- a/racketscript-compiler/racketscript/compiler/expand.rkt +++ b/racketscript-compiler/racketscript/compiler/expand.rkt @@ -425,13 +425,15 @@ [_ (error 'convert "bad ~a ~a" mod (syntax->datum mod))])) -(define (convert-linklet linklet) +(define (convert-linklet linklet path) (syntax-parse linklet #;(freshen-linklet-forms linklet) #:literal-sets () ;; what are these literal sets for? [(linklet _imports _exports forms ...) - (parameterize ([lexical-bindings (make-free-id-table)]) - (let ([contents (filter-map to-absyn (syntax->list #'(forms ...)))]) - (Linklet contents)))])) + (parameterize ([current-module-imports (set)] + [lexical-bindings (make-free-id-table)]) + (let ([contents (filter-map to-absyn (syntax->list #'(forms ...)))] + [imports (current-module-imports)]) + (Linklet path contents imports)))])) (define (freshen-mod-forms mod) (syntax-parse mod diff --git a/racketscript-compiler/racketscript/compiler/il.rkt b/racketscript-compiler/racketscript/compiler/il.rkt index f44973a2..165d249b 100644 --- a/racketscript-compiler/racketscript/compiler/il.rkt +++ b/racketscript-compiler/racketscript/compiler/il.rkt @@ -16,6 +16,9 @@ (define-predicate ILProgram? ILProgram) (define-type-alias ILModuleName (Option Path-String)) +(struct ILLinklet ([requires : ILRequire*] + [body : ILStatement*])) + (struct ILModule ([id : ILModuleName] [provides : ILProvide*] [requires : ILRequire*] diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index d4e21d6c..24301f51 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -422,8 +422,11 @@ (get-output-string output-string)))] ['complete (racket->js)] ['linklet + (define p (path->complete-path (main-source-file))) + (current-source-file p) (~> (expand-linklet source) - (convert-linklet _) + (convert-linklet _ p) + (absyn-linklet->il _) (pretty-print _))]) (void)) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 4a91b27a..f221fdab 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -26,7 +26,8 @@ (provide absyn-top-level->il absyn-gtl-form->il absyn-expr->il - absyn-module->il) + absyn-module->il + absyn-linklet->il) (define-type-alias ModuleObjectNameMap (HashTable (U Path Symbol) Symbol)) @@ -47,6 +48,54 @@ [(Begin? form) (absyn-expr->il form #f)] [else (error "only modules supported at top level")])) +;; FIXME I do ZERO handling of javascript forms +(: absyn-linklet->il (-> Linklet ILLinklet)) +(define (absyn-linklet->il lnk) + (match-define (Linklet path forms imports) lnk) + (log-rjs-info "[linklet il]") + + (define imported-mod-path-list (set->list imports)) + (define requires* (absyn-requires->il imported-mod-path-list path)) + + ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information + ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map + (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) + (ILLinklet + (filter ILRequire? (absyn-requires->il (set->list imports) path)) + (append-map absyn-gtl-form->il forms)))) + +(: make-module-map (-> (Listof (Option ILRequire)) (Listof (U Path Symbol)) ModuleObjectNameMap)) ;; TODO need type aliases +(define (make-module-map reqs imported-paths) + (for/fold ([acc (module-object-name-map)]) + ([req reqs] + [mod-path imported-paths]) + (if (ILRequire? req) + (hash-set acc + mod-path + (ILRequire-name req)) + acc))) + +(: absyn-requires->il (-> (Listof (U Path Symbol)) Path (Listof (Option ILRequire)))) +(define (absyn-requires->il import-list path) + (for/list ([mod-path import-list] + [counter (in-naturals)]) + (define mod-obj-name (string->symbol (~a "M" counter))) + (define import-name + (match mod-path + [(? symbol? _) + (jsruntime-import-path path + (jsruntime-module-path mod-path))] + [_ (module->relative-import (cast mod-path Path))])) + ;; See expansion of identifier in `expand.rkt` for primitive + ;; modules + (if (or (and (primitive-module? mod-path) ;; a self-import cycle + (equal? path (actual-module-path mod-path))) + (and (primitive-module-path? (actual-module-path path)) + (set-member? ignored-module-imports-in-boot mod-path))) + #f + (ILRequire import-name mod-obj-name '*)))) + + (: absyn-module->il (-> Module ILModule)) (define (absyn-module->il mod) @@ -73,28 +122,7 @@ (set-box! provides (append (unbox provides) p*))) (define imported-mod-path-list (set->list imports)) - - (: requires* (Listof (Option ILRequire))) - (define requires* - ;; FIXME: We put #f so that we can match it exactly - ;; later in mod-stms - (for/list ([mod-path imported-mod-path-list] - [counter (in-naturals)]) - (define mod-obj-name (string->symbol (~a "M" counter))) - (define import-name - (match mod-path - [(? symbol? _) - (jsruntime-import-path path - (jsruntime-module-path mod-path))] - [_ (module->relative-import (cast mod-path Path))])) - ;; See expansion of identifier in `expand.rkt` for primitive - ;; modules - (if (or (and (primitive-module? mod-path) ;; a self-import cycle - (equal? path (actual-module-path mod-path))) - (and (primitive-module-path? (actual-module-path path)) - (set-member? ignored-module-imports-in-boot mod-path))) - #f - (ILRequire import-name mod-obj-name '*)))) + (define requires* (absyn-requires->il imported-mod-path-list path)) ;; Append all JavaScript requires we find at GTL over here (: js-requires (Boxof (Listof ILRequire))) @@ -105,16 +133,7 @@ (define racket-requires (filter ILRequire? requires*)) (define mod-stms - (parameterize ([module-object-name-map - ; Names we will use for module objects in JS - (for/fold ([acc (module-object-name-map)]) - ([req requires*] - [mod-path imported-mod-path-list]) - (if (ILRequire? req) - (hash-set acc - mod-path - (ILRequire-name req)) - acc))]) + (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) (append-map (λ ([form : ModuleLevelForm]) (cond From e5fc2b854cbb12e14a14bf52e091070c12ae5ff5 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Nov 2021 21:48:30 -0400 Subject: [PATCH 006/170] add arity checks & assemble --- .../racketscript/compiler/assembler.rkt | 13 ++++++++++++- .../racketscript/compiler/il-analyze.rkt | 9 ++++++--- .../racketscript/compiler/main.rkt | 3 +++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index 21e49b3f..10ac76b4 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -16,6 +16,7 @@ (provide assemble assemble-module + assemble-linklet assemble-statement* assemble-statement) @@ -58,7 +59,7 @@ [(list? args) (map normalize-symbol args)] [(cons? args) (append1 (map normalize-symbol (car args)) (~a "..." (normalize-symbol (cdr args))))] - [else (error 'assemble-expr "λ must be unchecked by assembler phase")])) + [else (displayln args) (error 'assemble-expr "λ must be unchecked by assembler phase")])) (emit (string-join args-str ", ")) (emit ") {") (for ([s body]) @@ -234,6 +235,16 @@ (emit ")")) (emit ";")])) +(: assemble-linklet (-> ILLinklet Void)) +(define (assemble-linklet lnk) + (match-define (ILLinklet requires body) lnk) + (log-rjs-info "[assemble linklet]") + + (define out (open-output-file "foo.js" #:exists 'replace)) + (assemble-requires* requires out) + (for ([b body]) + (assemble-statement b out))) + (: assemble-module (-> ILModule (Option Output-Port) Void)) (define (assemble-module mod maybeout) (match-define (ILModule id provides requires body) mod) diff --git a/racketscript-compiler/racketscript/compiler/il-analyze.rkt b/racketscript-compiler/racketscript/compiler/il-analyze.rkt index f6bb7ebe..f7f67f91 100644 --- a/racketscript-compiler/racketscript/compiler/il-analyze.rkt +++ b/racketscript-compiler/racketscript/compiler/il-analyze.rkt @@ -45,7 +45,7 @@ (define pos-formals (cast (car formals*) (Listof Symbol))) (list (check-arity-stm '< (length pos-formals)))])) -(: insert-arity-checks (-> ILModule ILModule)) +(: insert-arity-checks (-> (U ILLinklet ILModule) (U ILLinklet ILModule))) (define (insert-arity-checks mod) (: traverse-expr (-> ILExpr ILExpr)) (define traverse-expr @@ -121,8 +121,11 @@ (define (traverse-stm* stm*) (map traverse-stm stm*)) - (match-define (ILModule id provides requires body) mod) - (ILModule id provides requires (traverse-stm* body))) + (match mod + [(ILModule id provides requires body) + (ILModule id provides requires (traverse-stm* body))] + [(ILLinklet requires body) + (ILLinklet requires (traverse-stm* body))])) ;; ---------------------------------------------------------------------------- ;; Tail Call Optimization diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index 24301f51..3b0e4311 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -423,10 +423,13 @@ ['complete (racket->js)] ['linklet (define p (path->complete-path (main-source-file))) + (displayln p) (current-source-file p) (~> (expand-linklet source) (convert-linklet _ p) (absyn-linklet->il _) + (insert-arity-checks _) + (assemble-linklet _) (pretty-print _))]) (void)) From 866b4643917c54d929674ab05466d38f24a20775 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 11 Nov 2021 21:13:40 -0500 Subject: [PATCH 007/170] linklets run --- .../racketscript/compiler/main.rkt | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index 3b0e4311..afbb51df 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -280,6 +280,28 @@ (npm-install-build)) (log-rjs-info "Finished.")]))) +(define (compile-collects-module mod) + (current-source-file mod) + (make-directory* (path-only (module-output-file mod))) + + (define expanded (quick-expand mod)) + (define ast (convert expanded (override-module-path mod))) + + (assemble-module (insert-arity-checks + (absyn-module->il* ast)) + #f) + + (for ([mod (in-set (Module-imports ast))] + #:when (and (not (symbol? mod)) + (collects-module? mod))) + (compile-collects-module mod))) + +(define (compile-linklet-imports lnk) + (for ([mod (in-set (Linklet-imports lnk))] + #:when (and (not (symbol? mod)) + (collects-module? mod))) + (compile-collects-module mod))) + ;; String -> String (define (js-string-beautify js-str) (match-define (list in-p-out out-p-in pid in-p-err control) @@ -423,13 +445,13 @@ ['complete (racket->js)] ['linklet (define p (path->complete-path (main-source-file))) - (displayln p) (current-source-file p) - (~> (expand-linklet source) - (convert-linklet _ p) - (absyn-linklet->il _) + + (define lnk-ast (convert-linklet (expand-linklet source) p)) + (~> (absyn-linklet->il lnk-ast) (insert-arity-checks _) - (assemble-linklet _) - (pretty-print _))]) + (assemble-linklet _)) + + (compile-linklet-imports lnk-ast)]) (void)) From 025a44366b84ddca5adb6c904110aab4cc5d0193 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Mon, 13 Dec 2021 14:54:00 -0500 Subject: [PATCH 008/170] build output directory and compile runtime imports --- .gitignore | 1 + .../racketscript/compiler/main.rkt | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 6b4aaf7e..db2b8d60 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ TAGS *.elc node_modules/ +*.rktl diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index afbb51df..a5dc2a66 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -280,7 +280,7 @@ (npm-install-build)) (log-rjs-info "Finished.")]))) -(define (compile-collects-module mod) +(define (compile-linklet-import mod) (current-source-file mod) (make-directory* (path-only (module-output-file mod))) @@ -292,15 +292,16 @@ #f) (for ([mod (in-set (Module-imports ast))] - #:when (and (not (symbol? mod)) - (collects-module? mod))) - (compile-collects-module mod))) + #:when (not (symbol? mod))) + (compile-linklet-import mod))) (define (compile-linklet-imports lnk) + (for ([mod (in-set primitive-modules)]) + (compile-linklet-import mod)) + (for ([mod (in-set (Linklet-imports lnk))] - #:when (and (not (symbol? mod)) - (collects-module? mod))) - (compile-collects-module mod))) + #:when (not (symbol? mod))) + (compile-linklet-import mod))) ;; String -> String (define (js-string-beautify js-str) @@ -447,6 +448,12 @@ (define p (path->complete-path (main-source-file))) (current-source-file p) + (define default-module-name (string-slice (~a (last-path-element + (main-source-file))) + 0 -5)) + + (prepare-build-directory default-module-name) + (define lnk-ast (convert-linklet (expand-linklet source) p)) (~> (absyn-linklet->il lnk-ast) (insert-arity-checks _) From 8a965a826f9afcd89e2a2df19e0aa0151ac54e7e Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 29 Dec 2021 15:01:54 -0500 Subject: [PATCH 009/170] linklets directory --- linklets/banana.rkt | 3 +++ racketscript-compiler/racketscript/compiler/expand.rkt | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 linklets/banana.rkt diff --git a/linklets/banana.rkt b/linklets/banana.rkt new file mode 100644 index 00000000..552d07ea --- /dev/null +++ b/linklets/banana.rkt @@ -0,0 +1,3 @@ +#lang racket/base + +5 diff --git a/racketscript-compiler/racketscript/compiler/expand.rkt b/racketscript-compiler/racketscript/compiler/expand.rkt index 7a886d25..baaeb943 100644 --- a/racketscript-compiler/racketscript/compiler/expand.rkt +++ b/racketscript-compiler/racketscript/compiler/expand.rkt @@ -428,7 +428,7 @@ (define (convert-linklet linklet path) (syntax-parse linklet #;(freshen-linklet-forms linklet) #:literal-sets () ;; what are these literal sets for? - [(linklet _imports _exports forms ...) + [(linklet _imports _exports forms ...) ;; FIXME it isn't actually matching 'linklet' literally, can use ~datum or try literal-sets (parameterize ([current-module-imports (set)] [lexical-bindings (make-free-id-table)]) (let ([contents (filter-map to-absyn (syntax->list #'(forms ...)))] From bd1b07137df102d7f841c8981bdc23224788d993 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 29 Dec 2021 15:02:20 -0500 Subject: [PATCH 010/170] linklets directory doesn't matter, regenerate expander linklet yourself --- linklets/banana.rkt | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 linklets/banana.rkt diff --git a/linklets/banana.rkt b/linklets/banana.rkt deleted file mode 100644 index 552d07ea..00000000 --- a/linklets/banana.rkt +++ /dev/null @@ -1,3 +0,0 @@ -#lang racket/base - -5 From 506679652ee2a19c15772f57cebdcc467859440b Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 3 Jan 2022 23:29:24 -0500 Subject: [PATCH 011/170] cover unsafe forms that weren't provided by kernel runtime --- exp.sh | 7 +++++++ .../racketscript/compiler/expand.rkt | 12 ++++++++---- .../racketscript/compiler/expander-forms.rkt | 10 ++++++++++ racketscript-compiler/racketscript/compiler/main.rkt | 2 +- .../racketscript/compiler/runtime/kernel.rkt | 11 +++++++++++ 5 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 exp.sh create mode 100644 racketscript-compiler/racketscript/compiler/expander-forms.rkt diff --git a/exp.sh b/exp.sh new file mode 100644 index 00000000..fa718aab --- /dev/null +++ b/exp.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +racks -l expander.rktl +mv foo.js js-build/modules/ +cd js-build/ +node modules/foo.js +cd .. diff --git a/racketscript-compiler/racketscript/compiler/expand.rkt b/racketscript-compiler/racketscript/compiler/expand.rkt index baaeb943..bdc1bbc7 100644 --- a/racketscript-compiler/racketscript/compiler/expand.rkt +++ b/racketscript-compiler/racketscript/compiler/expand.rkt @@ -31,7 +31,8 @@ "global.rkt" "logging.rkt" "moddeps.rkt" - "util.rkt") + "util.rkt" + "expander-forms.rkt") (provide convert convert-linklet @@ -230,7 +231,10 @@ (JSRequire (syntax-e #'name) (syntax-e #'mod) '*)] [(define-values (id ...) b) (DefineValues (syntax->datum #'(id ...)) (to-absyn #'b))] - [(#%top . x) (TopId (syntax-e #'x))] + [(#%top . x) + (if (set-member? EXPANDER-FORMS (syntax-e #'x)) + (ImportedIdent (syntax-e #'x) '#%kernel #t) + (TopId (syntax-e #'x)))] [(#%variable-reference x) (VarRef (to-absyn #'x))] [(#%variable-reference) (VarRef #f)] [i:identifier #:when (quoted?) (syntax-e #'i)] @@ -427,8 +431,8 @@ (define (convert-linklet linklet path) (syntax-parse linklet #;(freshen-linklet-forms linklet) - #:literal-sets () ;; what are these literal sets for? - [(linklet _imports _exports forms ...) ;; FIXME it isn't actually matching 'linklet' literally, can use ~datum or try literal-sets + #:literal-sets ((kernel-literals #:phase (current-phase))) + [((~datum linklet) _imports _exports forms ...) (parameterize ([current-module-imports (set)] [lexical-bindings (make-free-id-table)]) (let ([contents (filter-map to-absyn (syntax->list #'(forms ...)))] diff --git a/racketscript-compiler/racketscript/compiler/expander-forms.rkt b/racketscript-compiler/racketscript/compiler/expander-forms.rkt new file mode 100644 index 00000000..9bf36630 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/expander-forms.rkt @@ -0,0 +1,10 @@ +#lang racket/base + +(require racket/set) + +(provide EXPANDER-FORMS) + +(define EXPANDER-FORMS + (set 'unsafe-make-place-local + 'unsafe-root-continuation-prompt-tag)) + diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index a5dc2a66..08382a3c 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -347,7 +347,7 @@ ["--ast" "Expand and print AST" (build-mode 'absyn)] ["--il" "Compile to intermediate langauge (IL)" (build-mode 'il)] ["--js" "Compile and print JS module to stdout" (build-mode 'js)] - ["--linklet" "Compile a linklet as an s-expression to JS and print to stdout" (build-mode 'linklet)] + [("-l" "--linklet") "Compile a linklet as an s-expression to JS and print to stdout" (build-mode 'linklet)] ["--complete" "Compile module and its dependencies to JS" (build-mode 'complete)] #:args ([filename 'stdin]) (match `(,filename ,(input-from-stdin?)) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 1ae90cc4..3a0e7341 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -3,6 +3,7 @@ (require (for-syntax syntax/parse) racketscript/interop "lib.rkt") + ;; "unsafe.rkt") ;; ---------------------------------------------------------------------------- ;; Equality @@ -1338,3 +1339,13 @@ (define+provide syntax-column #js.Core.Correlated.syntaxColumn) (define+provide syntax-position #js.Core.Correlated.syntaxPosition) (define+provide syntax-span #js.Core.Correlated.syntaxSpan) + +;; ---------------------------------------------------------------------------- +;; Unsafe forms for Expander Linklet + +(define+provide unsafe-make-place-local #js.Core.Box.make) +(define+provide (unsafe-root-continuation-prompt-tag) + (#js.Core.Marks.defaultContinuationPromptTag)) + +;; (provide unsafe-make-place-local +;; unsafe-root-continuation-prompt-tag) From 939490ada3b1a7bfa8b3edede2b7f2dd44dcdcbc Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 3 Jan 2022 23:32:17 -0500 Subject: [PATCH 012/170] do not commit --- exp.sh | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 exp.sh diff --git a/exp.sh b/exp.sh deleted file mode 100644 index fa718aab..00000000 --- a/exp.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env sh - -racks -l expander.rktl -mv foo.js js-build/modules/ -cd js-build/ -node modules/foo.js -cd .. From 441cc38dceb91638ae4a88c8be6bd1c7b12027c5 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Mon, 24 Jan 2022 10:26:51 -0500 Subject: [PATCH 013/170] ephemeron hashes --- .../racketscript/compiler/runtime/core/hash.js | 4 ++++ .../racketscript/compiler/runtime/kernel.rkt | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/hash.js b/racketscript-compiler/racketscript/compiler/runtime/core/hash.js index ee17615c..d6dd263b 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/hash.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/hash.js @@ -276,3 +276,7 @@ export function isEqHash(h) { export function isWeakHash() { return false; // TODO: implement weak hashes } + +export function isEphemeronHash() { + return false; // TODO: implement ephemeron hashes +} diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index ba8b94ce..c95103b5 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -451,7 +451,8 @@ (define+provide hash-equal? #js.Core.Hash.isEqualHash) (define+provide hash-eqv? #js.Core.Hash.isEqvHash) (define+provide hash-eq? #js.Core.Hash.isEqHash) -(define+provide hash-weak? #js.Core.Hash.isWeakHash) ;; TODO: implement weak hashes +(define+provide hash-weak? #js.Core.Hash.isWeakHash) ;; TODO implement weak hashes +(define+provide hash-ephemeron? #js.Core.Hash.isEphemeronHash) ;; TODO implement ephemeron hashes (define+provide hash-ref (case-lambda @@ -1340,11 +1341,15 @@ (define+provide build-path ; multi-arity (v-λ (base) #:unchecked base)) -;; TODO: manually implement weak references? or ES6 WeakMap? see pr#106 +;; TODO manually implement weak references? or ES6 WeakMap? see pr#106 (define+provide make-weak-hash make-hash) (define+provide make-weak-hasheqv make-hasheqv) (define+provide make-weak-hasheq make-hasheq) +;; TODO manually implement ephemeron references? ES6 WeakMap doesn't work(?) +(define+provide make-ephemeron-hash make-hash) +(define+provide make-ephemeron-hasheqv make-hasheqv) +(define+provide make-ephemeron-hasheq make-hasheq) (define+provide (current-environment-variables) null) (define+provide (environment-variables-ref e n) #f) From c93292ba27f43d6a2f23356a410afd1dab83467c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 27 Jan 2022 10:30:37 -0500 Subject: [PATCH 014/170] expander linklet for convenience --- .gitignore | 1 + expander.rktl | 88894 ++++++++++++++++++++++++++++++++++++++++++++++++ notes.txt | 5 + 3 files changed, 88900 insertions(+) create mode 100644 expander.rktl create mode 100644 notes.txt diff --git a/.gitignore b/.gitignore index db2b8d60..f057645e 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ TAGS *.elc node_modules/ *.rktl +!expander.rktl diff --git a/expander.rktl b/expander.rktl new file mode 100644 index 00000000..e608eef0 --- /dev/null +++ b/expander.rktl @@ -0,0 +1,88894 @@ +;; This is not the original source code. Instead, this is the code after +;; fully expanding and flattening into a single linklet. +(linklet + () + ((boot boot) + (1/bound-identifier=? bound-identifier=?) + (1/compile compile) + (compile-keep-source-locations! compile-keep-source-locations!) + (1/compiled-expression-recompile compiled-expression-recompile) + (1/current-compile current-compile) + (1/current-compiled-file-roots current-compiled-file-roots) + (1/current-eval current-eval) + (1/current-library-collection-links current-library-collection-links) + (1/current-library-collection-paths current-library-collection-paths) + (1/current-load current-load) + (1/current-load/use-compiled current-load/use-compiled) + (1/current-namespace current-namespace) + (datum->kernel-syntax datum->kernel-syntax) + (1/datum->syntax datum->syntax) + (declare-primitive-module! declare-primitive-module!) + (1/dynamic-require dynamic-require) + (embedded-load embedded-load) + (1/eval eval) + (eval$1 eval-top-level) + (expand$1 expand) + (expander-place-init! expander-place-init!) + (1/find-compiled-file-roots find-compiled-file-roots) + (1/find-library-collection-links find-library-collection-links) + (1/find-library-collection-paths find-library-collection-paths) + (find-main-config find-main-config) + (1/identifier-binding identifier-binding) + (identifier? identifier?) + (1/load load) + (1/load-extension load-extension) + (1/load/use-compiled load/use-compiled) + (make-namespace make-namespace) + (maybe-raise-missing-module maybe-raise-missing-module) + (maybe-syntax->datum maybe-syntax->datum) + (1/module->language-info module->language-info) + (1/module-compiled-exports module-compiled-exports) + (1/module-compiled-indirect-exports module-compiled-indirect-exports) + (1/module-declared? module-declared?) + (1/module-path-index-join module-path-index-join) + (1/module-path-index? module-path-index?) + (1/module-path? module-path?) + (1/module-predefined? module-predefined?) + (namespace->instance namespace->instance) + (1/namespace-attach-module namespace-attach-module) + (1/namespace-attach-module-declaration namespace-attach-module-declaration) + (namespace-datum-introduce namespace-datum-introduce) + (1/namespace-mapped-symbols namespace-mapped-symbols) + (1/namespace-module-identifier namespace-module-identifier) + (1/namespace-require namespace-require) + (1/namespace-syntax-introduce namespace-syntax-introduce) + (1/namespace-variable-value namespace-variable-value) + (path-list-string->path-list path-list-string->path-list) + (1/read read) + (1/read-accept-compiled read-accept-compiled) + (1/read-syntax read-syntax) + (1/resolved-module-path? resolved-module-path?) + (seal seal) + (1/syntax->datum syntax->datum) + (1/syntax-debug-info syntax-debug-info) + (1/syntax-deserialize syntax-deserialize) + (1/syntax-e syntax-e) + (syntax-property$1 syntax-property) + (1/syntax-serialize syntax-serialize) + (1/syntax-shift-phase-level syntax-shift-phase-level) + (syntax?$1 syntax?) + (1/use-collection-link-paths use-collection-link-paths) + (1/use-compiled-file-check use-compiled-file-check) + (1/use-compiled-file-paths use-compiled-file-paths) + (1/use-user-specific-search-paths use-user-specific-search-paths)) + (define-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-arguments-error who_0 "not a proper list" "in" orig-l_0)))) + (define-values + (member) + (letrec-values (((member_0) + (lambda (v_0 orig-l_1 eql?_0) + (begin + 'member + ((letrec-values (((loop_0) + (lambda (ls_0 turtle_0) + (begin + 'loop + (if (null? ls_0) + (let-values () #f) + (if (not (pair? ls_0)) + (let-values () (bad-list$1 'member orig-l_1)) + (if (eql?_0 v_0 (car ls_0)) + (let-values () ls_0) + (let-values () + (let-values (((ls_1) (cdr ls_0))) + (if (null? ls_1) + (let-values () #f) + (if (let-values (((or-part_0) (not (pair? ls_1)))) + (if or-part_0 or-part_0 (eq? ls_1 turtle_0))) + (let-values () (bad-list$1 'member orig-l_1)) + (if (eql?_0 v_0 (car ls_1)) + (let-values () ls_1) + (let-values () + (loop_0 (cdr ls_1) (cdr turtle_0))))))))))))))) + loop_0) + orig-l_1 + orig-l_1))))) + (case-lambda + ((v_1 ls_2) (begin (member_0 v_1 ls_2 equal?))) + ((v_2 ls_3 eql?_1) + (begin + (if (if (procedure? eql?_1) (procedure-arity-includes? eql?_1 2) #f) + (void) + (raise-argument-error 'member "(procedure-arity-includes/c 2)" eq?)) + (member_0 v_2 ls_3 eql?_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_1) + (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_1 (cdr l_1))))))))) + loop_1) + 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_0) + (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_3) (hash-ref ht_0 key_0 default_0))) + (if (eq? v_3 not-there) + (raise-mismatch-error who_1 "no value found for key: " key_0) + (set_0 ht_0 key_0 (xform_0 v_3)))))))) + (define-values + (hash-update) + (case-lambda + ((ht_1 key_1 xform_1 default_1) (begin (do-hash-update 'hash-update #f hash-set ht_1 key_1 xform_1 default_1))) + ((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_2) (begin (do-hash-update 'hash-update! #t hash-set! ht_3 key_3 xform_3 default_2))) + ((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_4) (hash-ref ht_5 key_5 not-there))) + (if (eq? not-there v_4) + (let-values (((n_0) (if (procedure? new_0) (new_0) new_0))) (begin (hash-set! ht_5 key_5 n_0) n_0)) + v_4)))))) + (define-values + (path-string?) + (lambda (s_0) + (begin + (let-values (((or-part_1) (path? s_0))) + (if or-part_1 + or-part_1 + (if (string? s_0) + (let-values (((or-part_2) (relative-path? s_0))) (if or-part_2 or-part_2 (absolute-path? s_0))) + #f)))))) + (define-values (bsbs) (string '#\\ '#\\)) + (define-values + (normal-case-path) + (lambda (s_1) + (begin + (begin + (if (let-values (((or-part_3) (path-for-some-system? s_1))) (if or-part_3 or-part_3 (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_2) + (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_2 (+ offset_0 used_0 1)))))))))))))) + loop_2) + 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_4) (path-for-some-system? s_5))) + (if or-part_4 or-part_4 (path-string? s_5)))) + (let-values () (values "(or/c path-for-some-system? path-string?)" 0)) + (if (not (let-values (((or-part_5) (string? sfx_0))) (if or-part_5 or-part_5 (bytes? sfx_0)))) + (let-values () (values "(or/c string? bytes?)" 1)) + (if (not + (let-values (((or-part_6) trust-sep?_0)) + (if or-part_6 + or-part_6 + (let-values (((or-part_7) (string? sep_0))) + (if or-part_7 or-part_7 (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_3) + (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_3 i_2)))))))) + (loop_3 (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_8) (path-string? p_0))) + (if or-part_8 or-part_8 (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_9) (path-string? root_0))) + (if or-part_9 or-part_9 (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_10) (complete-path? p_0))) + (if or-part_10 or-part_10 (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_3 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_3 l_2) (cons (bytes->path s_11) l_2)))))) + (define-values + (path-list-string->path-list) + (lambda (s_12 default_4) + (begin + (begin + (if (let-values (((or-part_11) (bytes? s_12))) (if or-part_11 or-part_11 (string? s_12))) + (void) + (let-values () (raise-argument-error 'path-list-string->path-list "(or/c bytes? string?)" s_12))) + (if (regexp-match? '#rx#"\0" s_12) + (let-values () + (let-values (((label_0) (if (bytes? s_12) "byte string" "string"))) + (raise-arguments-error + 'path-list-string->path-list + (format "given ~a contains a nul character" label_0) + label_0 + s_12))) + (void)) + (if (if (list? default_4) + (andmap + (lambda (p_1) (let-values (((or-part_0) (eq? p_1 'same))) (if or-part_0 or-part_0 path?))) + default_4) + #f) + (void) + (let-values () (raise-argument-error 'path-list-string->path-list "(listof path?)" default_4))) + (init-rx:path-list!) + ((letrec-values (((loop_4) + (lambda (s_13) + (begin + 'loop + (let-values (((m_0) (regexp-match rx:path-list s_13))) + (if m_0 + (cons-path default_4 (cadr m_0) (loop_4 (caddr m_0))) + (cons-path default_4 s_13 null))))))) + loop_4) + (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_12) (not libpath_0))) + (if or-part_12 or-part_12 (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_13) (if reverse?_0 (next_0) #f))) + (if or-part_13 + or-part_13 + (let-values (((or-part_14) + (if (path? base_2) + (let-values (((lib_0) (build-path base_2 libpath_0))) + (if (let-values (((or-part_15) (directory-exists? lib_0))) + (if or-part_15 or-part_15 (file-exists? lib_0))) + lib_0 + #f)) + #f))) + (if or-part_14 or-part_14 (if (not reverse?_0) (next_0) #f))))))) + exec-name_0)))) + ((try-exec_0) + (lambda (program_1) + (begin + 'try-exec + (if (if (relative-path? program_1) + (let-values (((base_3 name_4 dir?_1) (split-path program_1))) (eq? base_3 'relative)) + #f) + (let-values (((paths-bstr_0) + (environment-variables-ref (current-environment-variables) #"PATH")) + ((win-add_0) + (lambda (s_14) + (begin + 'win-add + (if (eq? (system-type) 'windows) + (cons (bytes->path #".") s_14) + s_14))))) + ((letrec-values (((loop_5) + (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_1))) + (if (file-exists? name_5) + (found-exec_0 name_5) + (loop_5 (cdr paths_0)))))))))) + loop_5) + (win-add_0 (if paths-bstr_0 (path-list-string->path-list paths-bstr_0 null) null)))) + (let-values (((p_2) (path->complete-path program_1))) + (if (file-exists? p_2) (found-exec_0 p_2) #f))))))) + (let-values (((or-part_4) (try-exec_0 program_0))) + (if or-part_4 + or-part_4 + (if (eq? 'windows (system-type)) + (let-values (((base_5 name_6 dir?_2) (split-path program_0))) + (if (path? name_6) + (if (not (regexp-match? '#rx"[.]" name_6)) + (try-exec_0 (path-replace-extension program_0 #".exe")) + #f) + #f)) + #f))))))) + ((program_2 libpath_1) (find-executable-path program_2 libpath_1 #f)) + ((program_3) (find-executable-path program_3 #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_5) + (begin (if (keyword-impersonator? v_5) (let-values () ((keyword-impersonator-ref v_5) v_5)) (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_6 info-l_0) (if (exact-integer? v_6) (make-struct-field-accessor (list-ref info-l_0 3) v_6) #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_3) + (begin + (if (keyword-procedure? p_3) + (let-values () (values (keyword-procedure-required p_3) (keyword-procedure-allowed p_3))) + (if (procedure? p_3) + (let-values () + (if (new-procedure? p_3) + (let-values (((v_7) (new-procedure-ref p_3))) + (if (procedure? v_7) + (procedure-keywords v_7) + (let-values (((a_1) (procedure-accessor-ref p_3))) + (if a_1 (procedure-keywords (a_1 p_3)) (values null null))))) + (values null null))) + (let-values () (raise-argument-error 'procedure-keywords "procedure?" p_3))))))) + (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_6) + (lambda (a_2 l_2) (begin 'loop (if (null? l_2) a_2 (loop_6 (cons (car l_2) a_2) (cdr l_2))))))) + (loop_6 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_7) + (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_7 + 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_8) + (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_8 + (unsafe-fx+ + a1_2 + 1) + (unsafe-fx+ + c1_3 + 1)))) + (void)))))) + loop_8) + a1_0 + c1_2) + (loop_7 + a1_0 + b1_1 + c1_2)))))))))) + loop_7) + 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_9) + (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_9 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_10) + (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_10 + (unsafe-fx+ a1_5 1) + (unsafe-fx+ + c1_7 + 1)))) + (void)))))) + loop_10) + a1_3 + c1_6) + (loop_9 a1_3 b1_3 c1_6)))))))))) + loop_9) + 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_11) + (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_11 + 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_12) + (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_12 + (unsafe-fx+ + a1_8 + 1) + (unsafe-fx+ + c1_11 + 1)))) + (void)))))) + loop_12) + a1_6 + c1_10) + (loop_11 + a1_6 + b1_5 + c1_10)))))))))) + loop_11) + 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_13) + (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_13 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_14) + (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_14 + (unsafe-fx+ + a1_11 + 1) + (unsafe-fx+ + c1_15 + 1)))) + (void)))))) + loop_14) + a1_9 + c1_14) + (loop_13 a1_9 b1_7 c1_14)))))))))) + loop_13) + 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_15) + (lambda (last_0 next_1) + (begin + 'loop + (let-values (((or-part_16) (null? next_1))) + (if or-part_16 + or-part_16 + (if (not (less-than?_2 (unsafe-car next_1) last_0)) + (loop_15 (unsafe-car next_1) (unsafe-cdr next_1)) + #f))))))) + loop_15) + (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_16) + (lambda (i_6 lst_1) + (begin + 'loop + (if (pair? lst_1) + (let-values () + (begin + (vector-set! vec_0 i_6 (car lst_1)) + (loop_16 (add1 i_6) (cdr lst_1)))) + (void)))))) + loop_16) + 0 + lst_0) + (generic-sort_0 vec_0 less-than?_2 n_5) + ((letrec-values (((loop_17) + (lambda (i_7 r_0) + (begin + 'loop + (let-values (((i_8) (sub1 i_7))) + (if (< i_8 0) + r_0 + (loop_17 i_8 (cons (vector-ref vec_0 i_8) r_0)))))))) + loop_17) + 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_18) + (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_18 (unsafe-fx+ i_9 1) (cdr lst_4))))) + (void)))))) + loop_18) + 0 + lst_3) + (generic-sort/key_0 vec_1 less-than?_4 n_6 unsafe-car) + ((letrec-values (((loop_19) + (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_19 + i_11 + (cons (unsafe-cdr (unsafe-vector-ref vec_1 i_11)) r_1)))))))) + loop_19) + n_6 + '())))) + (if ((letrec-values (((loop_20) + (lambda (last_1 next_2) + (begin + 'loop + (let-values (((or-part_17) (null? next_2))) + (if or-part_17 + or-part_17 + (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_20 (unsafe-car next_2) (unsafe-cdr next_2)) + #f))))))) + loop_20) + (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_21) + (lambda (i_12 lst_5) + (begin + 'loop + (if (pair? lst_5) + (let-values () + (begin + (vector-set! vec_2 i_12 (car lst_5)) + (loop_21 (add1 i_12) (cdr lst_5)))) + (void)))))) + loop_21) + 0 + lst_3) + (generic-sort/key_0 vec_2 less-than?_4 n_6 getkey_1) + ((letrec-values (((loop_22) + (lambda (i_13 r_2) + (begin + 'loop + (let-values (((i_14) (sub1 i_13))) + (if (< i_14 0) + r_2 + (loop_22 i_14 (cons (vector-ref vec_2 i_14) r_2)))))))) + loop_22) + 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_23) + (lambda (prev-val_0 next-index_0) + (begin + 'loop + (let-values (((or-part_18) (unsafe-fx= next-index_0 end_0))) + (if or-part_18 + or-part_18 + (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_23 next-val_0 (unsafe-fx+ next-index_0 1)) + #f)))))))) + loop_23) + (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_24) + (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_24 (unsafe-fx+ i_15 1)))) + (void)))))) + loop_24) + 0) + (generic-sort/key_0 work-vec_1 less-than?_6 n_8 unsafe-car) + ((letrec-values (((loop_25) + (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_25 (unsafe-fx+ i_16 1)))) + (void)))))) + loop_25) + 0)))) + (if ((letrec-values (((loop_26) + (lambda (prev-val_1 next-index_1) + (begin + 'loop + (let-values (((or-part_19) (unsafe-fx= next-index_1 end_1))) + (if or-part_19 + or-part_19 + (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_26 next-val_1 (unsafe-fx+ next-index_1 1)) + #f)))))))) + loop_26) + (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_27) + (lambda (prev-val_2 next-index_2) + (begin + 'loop + (let-values (((or-part_20) (unsafe-fx= next-index_2 end_2))) + (if or-part_20 + or-part_20 + (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_27 next-val_2 (unsafe-fx+ next-index_2 1)) + #f)))))))) + loop_27) + (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_28) + (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_28 (unsafe-fx+ i_17 1)))) + (void)))))) + loop_28) + 0) + (generic-sort/key_0 work-vec_4 less-than?_8 n_10 unsafe-car) + ((letrec-values (((loop_29) + (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_29 (unsafe-fx+ i_18 1)))) + (void)))))) + loop_29) + 0)))) + (if ((letrec-values (((loop_30) + (lambda (prev-val_3 next-index_3) + (begin + 'loop + (let-values (((or-part_21) (unsafe-fx= next-index_3 end_3))) + (if or-part_21 + or-part_21 + (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_30 next-val_3 (unsafe-fx+ next-index_3 1)) + #f)))))))) + loop_30) + (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_8 si_0) + (begin + (if (if (vector? v_8) + (if (= 3 (vector-length v_8)) + (if (procedure? (vector-ref v_8 0)) + (if (procedure-arity-includes? (vector-ref v_8 0) 1) + (if (procedure? (vector-ref v_8 1)) + (if (procedure-arity-includes? (vector-ref v_8 1) 1) + (if (procedure? (vector-ref v_8 2)) (procedure-arity-includes? (vector-ref v_8 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_8))) + (vector->immutable-vector v_8))) + '() + #t)) + (define-values + (prop:gen-sequence sequence-via-prop? sequence-ref) + (make-struct-type-property + 'sequence + (lambda (v_9 si_1) + (begin + (if (if (procedure? v_9) (procedure-arity-includes? v_9 1) #f) + (void) + (let-values () (raise-argument-error 'guard-for-prop:sequence "(procedure-arity-includes/c 1)" v_9))) + v_9)))) + (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_10) (let-values (((cont?_0) (range-ref v_10 2))) (if cont?_0 (not (cont?_0 (range-ref v_10 0))) #f))) + (lambda (v_11) (range-ref v_11 0)) + (lambda (v_12) (make-range ((range-ref v_12 1) (range-ref v_12 0)) (range-ref v_12 1) (range-ref v_12 2))))) + (cons + prop:gen-sequence + (lambda (v_13) (values values #f (range-ref v_13 1) (range-ref v_13 0) (range-ref v_13 2) #f #f)))))) + (define-values (check-range) (lambda (a_9 b_7 step_0) (begin (check-range-generic 'in-range a_9 b_7 step_0)))) + (define-values + (check-range-generic) + (lambda (who_3 a_10 b_8 step_1) + (begin + (begin + (if (real? a_10) (void) (let-values () (raise-argument-error who_3 "real?" a_10))) + (if (real? b_8) (void) (let-values () (raise-argument-error who_3 "real?" b_8))) + (if (real? step_1) (void) (let-values () (raise-argument-error who_3 "real?" step_1))))))) + (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_14) (not (pair? (list-stream-ref v_14 0)))) + (lambda (v_15) (car (list-stream-ref v_15 0))) + (lambda (v_16) (make-list-stream (cdr (list-stream-ref v_16 0)))))) + (cons prop:gen-sequence (lambda (v_17) (values car cdr values (list-stream-ref v_17 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_4 type-name_0 vec_7 start_4 stop_0 step_2 len_0) + (begin + (begin + (if (if (exact-nonnegative-integer? start_4) + (let-values (((or-part_22) (< start_4 len_0))) (if or-part_22 or-part_22 (= len_0 start_4 stop_0))) + #f) + (void) + (let-values () (raise-range-error who_4 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_4 type-name_0 "stopping " stop_0 vec_7 -1 len_0))) + (if (if (exact-integer? step_2) (not (zero? step_2)) #f) + (void) + (let-values () (raise-argument-error who_4 "(and/c exact-integer? (not/c zero?))" step_2))) + (if (if (< start_4 stop_0) (< step_2 0) #f) + (let-values () + (raise-arguments-error + who_4 + "starting index less than stopping index, but given a negative step" + "starting index" + start_4 + "stopping index" + stop_0 + "step" + step_2)) + (void)) + (if (if (< stop_0 start_4) (> step_2 0) #f) + (let-values () + (raise-arguments-error + who_4 + "starting index more than stopping index, but given a positive step" + "starting index" + start_4 + "stopping index" + stop_0 + "step" + step_2)) + (void)))))) + (define-values + (normalise-inputs) + (lambda (who_5 type-name_1 vector?_0 unsafe-vector-length_0 vec_8 start_5 stop_1 step_3) + (begin + (begin + (if (vector?_0 vec_8) (void) (let-values () (raise-argument-error who_5 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_5 type-name_1 vec_8 start_5 stop*_0 step_3 len_1) + (values vec_8 start_5 stop*_0 step_3)))))))) + (define-values + (unsafe-normalise-inputs) + (lambda (unsafe-vector-length_1 vec_9 start_6 stop_2 step_4) + (begin + (values + vec_9 + start_6 + (let-values (((or-part_23) stop_2)) (if or-part_23 or-part_23 (unsafe-vector-length_1 vec_9))) + step_4)))) + (define-values + (check-vector) + (lambda (v_18) (begin (if (vector? v_18) (void) (let-values () (raise-argument-error 'in-vector "vector" v_18)))))) + (define-values + (check-string) + (lambda (v_19) (begin (if (string? v_19) (void) (let-values () (raise-argument-error 'in-string "string" v_19)))))) + (define-values + (check-bytes) + (lambda (v_20) (begin (if (bytes? v_20) (void) (let-values () (raise-argument-error 'in-bytes "bytes" v_20)))))) + (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_21) ((do-stream-ref v_21 0))) + (lambda (v_22) ((do-stream-ref v_22 1))) + (lambda (v_23) ((do-stream-ref v_23 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_0) + (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_0 r_3))))))))) + loop_0) + 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_31) + (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_31 r1_0 r2_0))))))))) + loop_31) + 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_5) + (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_5 r_4))))))))) + loop_5) + 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_32) + (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_32 r1_1 r2_1))))))))) + loop_32) + 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_33) + (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_33 r_5) #f)))))))) + loop_33) + 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_34) + (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_34 r1_2 r2_2) #f)))))))) + loop_34) + 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_35) + (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_24) (f_9 (car l_15)))) + (if or-part_24 or-part_24 (loop_35 r_6)))))))))) + loop_35) + 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_36) + (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_25) (f_10 (car l1_7) (car l2_7)))) + (if or-part_25 or-part_25 (loop_36 r1_3 r2_3)))))))))) + loop_36) + 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_6 f_12 ls_4) + (begin + (begin + (if (procedure? f_12) (void) (let-values () (raise-argument-error who_6 "procedure?" f_12))) + ((letrec-values (((loop_37) + (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_6 "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_6 + "all lists must have same size" + "first list length" + prev-len_0 + "other list length" + len_2 + "procedure" + f_12)) + (void)) + (loop_37 len_2 (cdr ls_5) (add1 i_20)))))))))))) + loop_37) + #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_6 + (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_26) + (let-values (((n_13) (object-name f_12))) (if (symbol? n_13) (symbol->string n_13) #f)))) + (if or-part_26 or-part_26 "#"))) + (append + (let-values (((a_11) (procedure-arity f_12))) + (if (pair? required-keywords_0) + (let-values () null) + (if (integer? a_11) + (let-values () (list "expected" a_11)) + (if (arity-at-least? a_11) + (let-values () + (list + "expected" + (unquoted-printing-string + (string-append "at least " (number->string (arity-at-least-value a_11)))))) + (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_38) + (lambda (kws_0) + (begin + 'loop + (if (null? kws_0) + (let-values () null) + (let-values () + (list* + " " + (string-append "#:" (keyword->string (car kws_0))) + (loop_38 (cdr kws_0))))))))) + loop_38) + 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_39) + (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_39 (cdr ls_6))))))))) + loop_39) + 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_40) + (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_40 next-ls_0))))))))) + loop_40) + 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_41) + (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_41 next-ls_1))))))))) + loop_41) + 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_42) + (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_42 next-ls_2) #f))))))))) + loop_42) + 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_43) + (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_27) (apply f_16 (map2 car ls_14)))) + (if or-part_27 or-part_27 (loop_43 next-ls_3))))))))))) + loop_43) + ls_13))))) + (define-values + (hash-keys) + (lambda (h_0) + (begin + ((letrec-values (((loop_6) + (lambda (pos_0) + (begin + 'loop + (if pos_0 + (let-values (((k_0) (hash-iterate-key h_0 pos_0 unsafe-undefined)) + ((r_7) (loop_6 (hash-iterate-next h_0 pos_0)))) + (if (eq? k_0 unsafe-undefined) r_7 (cons k_0 r_7))) + null))))) + loop_6) + (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_44) + (lambda (l_18 result_0) + (begin + 'loop + (if (null? l_18) + (reverse$1 result_0) + (loop_44 (cdr l_18) (if (f_17 (car l_18)) (cons (car l_18) result_0) result_0))))))) + loop_44) + 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 (mode37_0 path39_0 proc40_0) + (begin + 'with-input-from-file + (let-values (((path_1) path39_0)) + (let-values (((proc_0) proc40_0)) + (let-values (((mode_1) mode37_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 (mode51_0 path53_0 proc54_0) + (begin + 'call-with-input-file* + (let-values (((path_2) path53_0)) + (let-values (((proc_1) proc54_0)) + (let-values (((mode_2) mode51_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_4) (open-input-file path_2 mode_2))) + (dynamic-wind void (lambda () (proc_1 p_4)) (lambda () (close-input-port p_4)))))))))))) + (define-values + (print-value-columns) + (make-parameter + +inf.0 + (lambda (c_7) + (if (let-values (((or-part_1) (eqv? c_7 +inf.0))) (if or-part_1 or-part_1 (if (exact-integer? c_7) (> c_7 5) #f))) + c_7 + (raise-argument-error 'print-value-columns "(or/c +inf.0 (and/c exact-integer? (>/c 5)))" c_7))) + 'print-value-columns)) + (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_15 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_16) + (let-values (((s_17) s_15)) + (let-values (((s_18) (let-values () (hash-set s_17 e_2 #t)))) + (values s_18))))) + (if (not #f) (for-loop_0 s_16 rest_0) s_16))) + s_15))))) + 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_19 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_20) + (let-values (((s_21) s_19)) + (let-values (((s_22) (let-values () (hash-set s_21 e_3 #t)))) + (values s_22))))) + (if (not #f) (for-loop_1 s_20 rest_1) s_20))) + s_19))))) + for-loop_1) + the-empty-hasheq + lst_9)))))) + (define-values (seteqv) (lambda () (begin the-empty-hasheqv))) + (define-values (set?) (lambda (s_23) (begin (hash? s_23)))) + (define-values (set-empty?) (lambda (s_24) (begin (zero? (hash-count s_24))))) + (define-values (set-member?) (lambda (s_25 e_4) (begin (hash-ref s_25 e_4 #f)))) + (define-values (set-count) (lambda (s_26) (begin (hash-count s_26)))) + (define-values (set-add) (lambda (s_27 e_5) (begin (hash-set s_27 e_5 #t)))) + (define-values (set-remove) (lambda (s_28 e_6) (begin (hash-remove s_28 e_6)))) + (define-values (set-first) (lambda (s_29) (begin (hash-iterate-key s_29 (hash-iterate-first s_29))))) + (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_28) (eq? s1_1 s2_1))) + (if or-part_28 or-part_28 (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_1) (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_1)))) + (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_2) (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_2 #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_30 i_23) + (begin + 'for-loop + (if i_23 + (let-values (((k_3) (unsafe-immutable-hash-iterate-key ht_18 i_23))) + (let-values (((s_31) + (let-values (((s_32) s_30)) + (let-values (((s_33) + (let-values () + (if (hash-ref s1_12 k_3 #f) + s_32 + (hash-remove s_32 k_3))))) + (values s_33))))) + (if (not #f) + (for-loop_4 s_31 (unsafe-immutable-hash-iterate-next ht_18 i_23)) + s_31))) + s_30))))) + for-loop_4) + s2_4 + (unsafe-immutable-hash-iterate-first ht_18)))))))) + (define-values + (set-partition) + (lambda (s_34 pred_0 empty-y-set_0 empty-n-set_0) + (begin + (let-values (((ht_19) s_34)) + (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_24) (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_24) + (values (set-add y_8 v_24) n_16) + (values y_8 (set-add n_16 v_24)))))) + (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_35) + (begin + (reverse$1 + (let-values (((ht_20) s_35)) + (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_4) (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_4) 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_5) (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_5) #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_6) (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_6) #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$11) (unsafe-make-place-local #f)) + (define-values + (entered-err-string-handler) + (lambda (s_36 n_18) (begin (call-as-nonatomic (lambda () ((error-value->string-handler) s_36 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$11) (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$11 (current-thread)))) + (lambda () + (begin + (unsafe-place-local-set! cell.2$5 (current-parameterization)) + (unsafe-place-local-set! cell.3$2 (current-break-parameterization)) + (with-continuation-mark + 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$11 #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$11) (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$11 #f) + (unsafe-place-local-set! cell.4$2 0) + (end-breakable-atomic) + ((letrec-values (((loop_45) + (lambda (i_26) + (begin + 'loop + (if (zero? i_26) + (void) + (let-values () (begin (end-breakable-atomic) (loop_45 (sub1 i_26))))))))) + loop_45) + 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_38) + (lambda (i_27) + (begin + 'loop + (if (zero? i_27) + (void) + (let-values () + (begin (start-breakable-atomic) (loop_38 (sub1 i_27))))))))) + loop_38) + extra-depth_0) + (unsafe-place-local-set! cell.4$2 extra-depth_0) + (unsafe-place-local-set! cell.1$11 (current-thread))))))))))))))) + (define-values (not-an-fX.1) (lambda (who_7 v_25) (begin 'not-an-fX (raise-argument-error who_7 "fixnum?" v_25)))) + (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$10) (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$10 + (cons + (region1.1 + (if (unsafe-place-local-ref cell.1$10) + ((letrec-values (((loop_46) + (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_46 + (cdr path_4) + (if (pair? enclosing-path_0) (cdr enclosing-path_0) null)))))))) + loop_46) + path_3 + (region-path (car (unsafe-place-local-ref cell.1$10)))) + path_3) + (current-inexact-milliseconds) + (current-memory-use 'cumulative) + 0.0 + 0) + (unsafe-place-local-ref cell.1$10)))))) + (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_8) (car (unsafe-place-local-ref cell.1$10)))) + (let-values ((() + (begin + (unsafe-place-local-set! cell.1$10 (cdr (unsafe-place-local-ref cell.1$10))) + (values)))) + (let-values (((full-delta_0) (- now_0 (region-start r_8)))) + (let-values (((delta_0) (- full-delta_0 (region-as-nested r_8)))) + (let-values (((full-delta-memory_0) (- now-memory_0 (region-start-memory r_8)))) + (let-values (((delta-memory_0) (- full-delta-memory_0 (region-as-nested-memory r_8)))) + (begin + ((letrec-values (((loop_47) + (lambda (accums_0 path_5) + (begin + 'loop + (let-values (((key_9) (car path_5))) + (let-values (((accum_0) + (let-values (((or-part_26) (hash-ref accums_0 key_9 #f))) + (if or-part_26 + or-part_26 + (let-values (((accum_1) (make-hasheq))) + (begin + (hash-set! accums_0 key_9 accum_1) + accum_1)))))) + (let-values (((s_37) + (let-values (((or-part_29) + (hash-ref accum_0 stat-key #f))) + (if or-part_29 + or-part_29 + (let-values (((s_21) (stat2.1 0.0 0 0))) + (begin + (hash-set! accum_0 stat-key s_21) + s_21)))))) + (begin + (set-stat-msecs! s_37 (+ delta_0 (stat-msecs s_37))) + (set-stat-memory! s_37 (+ delta-memory_0 (stat-memory s_37))) + (if (null? (cdr path_5)) + (let-values () (set-stat-count! s_37 (add1 (stat-count s_37)))) + (void)) + (if (null? (cdr path_5)) + (void) + (let-values () (loop_47 accum_0 (cdr path_5)))))))))))) + loop_47) + (unsafe-place-local-ref cell.2$4) + (region-path r_8)) + (if (unsafe-place-local-ref cell.1$10) + (let-values () + (begin + (set-region-as-nested! + (car (unsafe-place-local-ref cell.1$10)) + (+ (region-as-nested (car (unsafe-place-local-ref cell.1$10))) full-delta_0)) + (set-region-as-nested-memory! + (car (unsafe-place-local-ref cell.1$10)) + (+ + (region-as-nested-memory (car (unsafe-place-local-ref cell.1$10))) + 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_38) + (begin + 'whole-len + (caar + (let-values (((or-part_30) (regexp-match-positions '#rx"[.]" s_38))) + (if or-part_30 or-part_30 '(0)))))))) + (let-values (((kb_0) + (lambda (b_9) + (begin + 'kb + (let-values (((s_29) (number->string (quotient b_9 1024)))) + (list->string + (let-values (((lst_15) (reverse$1 (string->list s_29))) ((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_8) (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_8 + '#\, + l_24)) + (let-values () + (cons + c_8 + 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_48) + (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_7 v_26) + (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_7 + stat-key) + (let-values () + (values + label-len_3 + (max + value-len_3 + (whole-len_0 + (format + "~a" + (stat-msecs + v_26)))) + (max + memory-len_3 + (string-length + (format + "~a" + (kb_0 + (stat-memory + v_26))))) + (max + count-len_3 + (string-length + (format + "~a" + (stat-count + v_26)))))) + (let-values () + (loop_48 + v_26 + (max + label-len_3 + (+ + indent_0 + (string-length + (format + "~a" + k_7)))) + 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_48) + (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_49) + (lambda (name_7 accums_2 indent_1 newline?_0) + (begin + 'loop + (let-values ((() + (begin + (if name_7 + (let-values () + (let-values (((v_27) (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_7 + (make-string + (+ + (- + label-max-len_0 + (string-length (format "~a" name_7)) + (string-length indent_1)) + (- + value-max-len_0 + (whole-len_0 + (format "~a" (stat-msecs v_27))))) + '#\space) + (regexp-replace + '#rx"[.](..).*" + (format "~a00" (stat-msecs v_27)) + ".\\1") + (make-string + (- + memory-max-len_0 + (string-length + (format "~a" (kb_0 (stat-memory v_27))))) + '#\space) + (kb_0 (stat-memory v_27)) + (make-string + (- + count-max-len_0 + (string-length + (format "~a" (stat-count v_27)))) + '#\space) + (stat-count v_27)) + (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_8) + (hash-iterate-key + ht_22 + i_30))) + (let-values (((fold-var_2) + (let-values (((fold-var_3) + fold-var_4)) + (if (not + (eq? + k_8 + stat-key)) + (let-values (((fold-var_5) + fold-var_3)) + (let-values (((fold-var_6) + (let-values () + (cons + (let-values () + k_8) + 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_9) (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_49 + k_9 + (hash-ref + accums_2 + k_9) + (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_49) + #f + (unsafe-place-local-ref cell.2$4) + "" + #t))))))))) + (void))) + print-values) + (define-values + (1/module-path?) + (lambda (v_28) + (begin + 'module-path? + (let-values (((or-part_1) (if (pair? v_28) (if (eq? (car v_28) 'submod) (submodule-module-path? v_28) #f) #f))) + (if or-part_1 or-part_1 (root-module-path? v_28)))))) + (define-values + (root-module-path?) + (lambda (v_29) + (begin + (let-values (((or-part_12) (path? v_29))) + (if or-part_12 + or-part_12 + (let-values (((or-part_3) (if (string? v_29) (string-module-path? v_29) #f))) + (if or-part_3 + or-part_3 + (let-values (((or-part_31) (if (symbol? v_29) (symbol-module-path? v_29) #f))) + (if or-part_31 + or-part_31 + (if (pair? v_29) + (let-values (((tmp_4) (car v_29))) + (if (equal? tmp_4 'quote) + (let-values () (if (pair? (cdr v_29)) (if (symbol? (cadr v_29)) (null? (cddr v_29)) #f) #f)) + (if (equal? tmp_4 'lib) + (let-values () (lib-module-path? v_29)) + (if (equal? tmp_4 'file) + (let-values () + (if (pair? (cdr v_29)) + (if (string? (cadr v_29)) (if (path-string? (cadr v_29)) (null? (cddr v_29)) #f) #f) + #f)) + (if (equal? tmp_4 'planet) + (let-values () (planet-module-path? v_29)) + (let-values () #f)))))) + #f)))))))))) + (define-values + (submodule-module-path?) + (lambda (v_30) + (begin + (if (pair? (cdr v_30)) + (if (list? v_30) + (if (let-values (((or-part_32) (equal? (cadr v_30) ".."))) + (if or-part_32 + or-part_32 + (let-values (((or-part_33) (equal? (cadr v_30) "."))) + (if or-part_33 or-part_33 (root-module-path? (cadr v_30)))))) + (let-values (((lst_19) (cddr v_30))) + (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_34) + (equal? e_7 ".."))) + (if or-part_34 + or-part_34 + (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_31) + (begin + (let-values (((v11_0) v_31) ((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_32) + (begin (let-values (((temp15_0) (symbol->string v_32))) (module-path-string?.1 #f #f #f #f temp15_0))))) + (define-values + (lib-module-path?) + (lambda (v_33) + (begin + (if (list? v_33) + (if (pair? (cdr v_33)) + ((letrec-values (((loop_50) + (lambda (v_34 first?_0) + (begin + 'loop + (let-values (((or-part_35) (null? v_34))) + (if or-part_35 + or-part_35 + (if (string? (car v_34)) + (if (let-values (((temp16_0) (car v_34)) + ((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_50 (cdr v_34) #f) + #f) + #f))))))) + loop_50) + (cdr v_33) + #t) + #f) + #f)))) + (define-values + (planet-module-path?) + (lambda (v_35) + (begin + (if (list? v_35) + (let-values (((tmp_5) (length v_35))) + (if (equal? tmp_5 1) + (let-values () #f) + (if (equal? tmp_5 2) + (let-values () + (let-values (((e_8) (cadr v_35))) + (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_35))) + (let-values (((pkg_0) (caddr v_35))) + (let-values (((subs_0) (cdddr v_35))) + (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_36) (null? (cddr pkg_0)))) + (if or-part_36 + or-part_36 + (let-values (((or-part_37) (planet-version-number? (caddr pkg_0)))) + (if or-part_37 + or-part_37 + (let-values (((or-part_38) (null? (cddr pkg_0)))) + (if or-part_38 + or-part_38 + (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_36) (begin (exact-nonnegative-integer? v_36)))) + (define-values + (planet-version-minor-spec?) + (lambda (v_37) + (begin + (let-values (((or-part_39) (planet-version-number? v_37))) + (if or-part_39 + or-part_39 + (if (pair? v_37) + (if (list? v_37) + (if (= 2 (length v_37)) + (let-values (((tmp_6) (car v_37))) + (if (if (equal? tmp_6 '=) #t (if (equal? tmp_6 '+) #t (equal? tmp_6 '-))) + (let-values () (planet-version-number? (cadr v_37))) + (let-values () (if (planet-version-number? (car v_37)) (planet-version-number? (cadr v_37)) #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_38) 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_38))) + (if (positive? len_3) + (if (not (char=? '#\/ (string-ref v_38 0))) + (if (not (char=? '#\/ (string-ref v_38 (sub1 len_3)))) + (let-values (((start-package-version-pos_0 end-package-version-pos_0) + (if for-planet?_0 (check-planet-part v_38 len_3) (values 0 0)))) + (if start-package-version-pos_0 + ((letrec-values (((loop_51) + (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_9) (string-ref v_38 i_32))) + (if (char=? c_9 '#\/) + (let-values () + (if (not prev-was-slash?_0) + (loop_51 (sub1 i_32) #t #t saw-dot?_0) + #f)) + (if (char=? c_9 '#\.) + (let-values () + (if (if (< (add1 i_32) len_3) + (if (not + (char=? (string-ref v_38 (add1 i_32)) '#\/)) + (not + (char=? (string-ref v_38 (add1 i_32)) '#\.)) + #f) + #f) + (if (not saw-slash?_0) + (loop_51 (sub1 i_32) #f saw-slash?_0 #t) + #f) + (loop_51 (sub1 i_32) #f saw-slash?_0 saw-dot?_0))) + (if (let-values (((or-part_40) (plain-char? c_9))) + (if or-part_40 + or-part_40 + (if (char=? c_9 '#\%) + (if (< (+ i_32 2) len_3) + (hex-sequence? v_38 (add1 i_32)) + #f) + #f))) + (let-values () + (loop_51 (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_51 (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_41) dots-dir-ok?_0)) + (if or-part_41 + or-part_41 + ((letrec-values (((loop_40) + (lambda (i_33) + (begin + 'loop + (if (= i_33 len_3) + (let-values () #t) + (if (char=? + (string-ref v_38 i_33) + '#\.) + (let-values () + (if (not + (let-values (((or-part_42) + (= + len_3 + (add1 + i_33)))) + (if or-part_42 + or-part_42 + (char=? + (string-ref + v_38 + (add1 i_33)) + '#\/)))) + (if (not + (if (char=? + (string-ref + v_38 + (add1 i_33)) + '#\.) + (let-values (((or-part_30) + (= + len_3 + (+ + i_33 + 2)))) + (if or-part_30 + or-part_30 + (char=? + (string-ref + v_38 + (+ i_33 2)) + '#\/))) + #f)) + (loop_40 + ((letrec-values (((loop_52) + (lambda (i_34) + (begin + 'loop + (if (char=? + '#\. + (string-ref + v_38 + i_34)) + (loop_52 + (add1 + i_34)) + i_34))))) + loop_52) + i_33)) + #f) + #f)) + (let-values () + (loop_40 (add1 i_33))))))))) + loop_40) + 0))) + #f))))))) + loop_51) + (sub1 len_3) + #f + (not file-end-ok?_0) + #f) + #f)) + #f) + #f) + #f))))))))))) + (define-values + (planet-user/pkg-string?) + (lambda (v_39) + (begin + (if (string? v_39) + (let-values (((len_4) (string-length v_39))) + (if (positive? len_4) + (let-values (((vec_12 len_5) + (let-values (((vec_13) v_39)) + (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_10) (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_43) + (plain-char? c_10))) + (if or-part_43 + or-part_43 + (let-values (((or-part_44) + (char=? '#\. c_10))) + (if or-part_44 + or-part_44 + (if (char=? '#\% c_10) + (if (< i_35 (- len_4 2)) + (hex-sequence? v_39 (add1 i_35)) + #f) + #f))))))))) + (values result_9))))) + (if (if (not ((lambda x_11 (not result_8)) c_10)) + (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_11) + (begin + (let-values (((or-part_45) (char<=? '#\a c_11 '#\z))) + (if or-part_45 + or-part_45 + (let-values (((or-part_46) (char<=? '#\A c_11 '#\Z))) + (if or-part_46 + or-part_46 + (let-values (((or-part_47) (char<=? '#\0 c_11 '#\9))) + (if or-part_47 + or-part_47 + (let-values (((or-part_48) (char=? '#\- c_11))) + (if or-part_48 + or-part_48 + (let-values (((or-part_49) (char=? '#\_ c_11))) + (if or-part_49 or-part_49 (char=? '#\+ c_11)))))))))))))) + (define-values + (hex-sequence?) + (lambda (s_39 i_36) + (begin + (let-values (((c1_16) (string-ref s_39 i_36))) + (let-values (((c2_0) (string-ref s_39 (add1 i_36)))) + (if (hex-char? c1_16) + (if (hex-char? c2_0) + (let-values (((c_12) (integer->char (+ (* (hex-char->integer c1_16) 16) (hex-char->integer c2_0))))) + (not (plain-char? c_12))) + #f) + #f)))))) + (define-values + (hex-char?) + (lambda (c_13) + (begin (let-values (((or-part_50) (char<=? '#\a c_13 '#\f))) (if or-part_50 or-part_50 (char<=? '#\0 c_13 '#\9)))))) + (define-values + (hex-char->integer) + (lambda (c_14) + (begin + (if (char<=? '#\a c_14 '#\f) + (let-values () (- (char->integer c_14) (+ 10 (char->integer '#\a)))) + (if (char<=? '#\A c_14 '#\F) + (let-values () (- (char->integer c_14) (+ 10 (char->integer '#\A)))) + (let-values () (- (char->integer c_14) (char->integer '#\0)))))))) + (define-values + (check-planet-part) + (lambda (v_40 len_6) + (begin + (let-values (((start-package-version-pos_1 end-package-version-pos_1 colon1-pos_0 colon2-pos_0) + ((letrec-values (((loop_53) + (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_51) end-package-version-pos_2)) + (if or-part_51 or-part_51 j_2)) + colon1-pos_1 + colon2-pos_1)) + (let-values () + (let-values (((tmp_7) (string-ref v_40 j_2))) + (if (equal? tmp_7 '#\/) + (let-values () + (loop_53 + (add1 j_2) + (let-values (((or-part_52) start-package-version-pos_2)) + (if or-part_52 or-part_52 (add1 j_2))) + (if start-package-version-pos_2 + (let-values (((or-part_53) end-package-version-pos_2)) + (if or-part_53 or-part_53 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_53 + (add1 j_2) + start-package-version-pos_2 + end-package-version-pos_2 + colon1-pos_1 + j_2)) + (let-values () + (loop_53 + (add1 j_2) + start-package-version-pos_2 + end-package-version-pos_2 + j_2 + #f))))) + (let-values () + (loop_53 + (add1 j_2) + start-package-version-pos_2 + end-package-version-pos_2 + colon1-pos_1 + colon2-pos_1))))))))))) + loop_53) + 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_54) (not colon2-pos_0))) + (if or-part_54 or-part_54 (< (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_55) colon2-pos_0)) + (if or-part_55 or-part_55 end-package-version-pos_1)))) + (if (if (integer-sequence? v_40 (add1 colon1-pos_0) colon1-end_0) + (let-values (((or-part_56) (not colon2-pos_0))) + (if or-part_56 + or-part_56 + (let-values (((tmp_8) (string-ref v_40 (add1 colon2-pos_0)))) + (if (equal? tmp_8 '#\=) + (let-values () (integer-sequence? v_40 (+ 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_40 (+ colon2-pos_0 2))) + #f) + (let-values () + (integer-sequence? v_40 (+ 3 colon2-pos_0) end-package-version-pos_1)) + (let-values () + (integer-sequence? v_40 (+ 2 colon2-pos_0) end-package-version-pos_1)))) + (let-values () + (integer-range-sequence? v_40 (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_40 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_11) + (let-values () + (let-values (((result_0) + (let-values () + (let-values () + (char<=? '#\0 (string-ref s_40 i_37) '#\9))))) + (values result_0))))) + (if (if (not ((lambda x_13 (not result_11)) i_37)) (not #f) #f) + (for-loop_16 result_11 (+ pos_5 inc_0)) + result_11))) + result_10))))) + for-loop_16) + #t + start_11))) + #f)))) + (define-values + (integer-range-sequence?) + (lambda (s_41 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_15) + (string-ref s_41 i_38))) + (let-values (((or-part_57) + (char=? c_15 '#\-))) + (if or-part_57 + or-part_57 + (char<=? '#\0 c_15 '#\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_41 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_2) + (begin + (let-values (((b_10) (weak-intern-table-box tt_0))) + (let-values (((t_1) (unbox b_10))) + (let-values (((code_0) (equal-hash-code v_2))) + (let-values (((vals_0) (hash-ref (table-ht t_1) code_0 null))) + (let-values (((or-part_58) + (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_11) (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_11))) + (if (equal? bv_0 v_2) + bv_0 + #f)))))) + (values result_21))))) + (if (if (not ((lambda x_14 result_20) b_11)) (not #f) #f) + (for-loop_19 result_20 rest_8) + result_20))) + result_19))))) + for-loop_19) + #f + lst_23))))) + (if or-part_58 + or-part_58 + (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_2) (hash-ref ht_23 code_0 null))) + (add1 (table-count pruned-t_0)) + (table-prune-at pruned-t_0)))) + (let-values (((or-part_35) (if (box-cas! b_10 t_1 new-t_0) v_2 #f))) + (if or-part_35 or-part_35 (weak-intern! tt_0 v_2))))))))))))))) + (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_10 vals_1) (hash-iterate-key+value ht_24 i_40))) + (let-values (((table_9) + (let-values (((id*_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_12) + (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_12) + (let-values (((fold-var_10) + fold-var_9)) + (let-values (((fold-var_11) + (let-values () + (cons + (let-values () + b_12) + 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 (((new-vals_0) + id*_0)) + (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_10 + 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_6 i_41) + (begin + 'for-loop + (if i_41 + (let-values (((k_11 vals_2) (hash-iterate-key+value ht_25 i_41))) + (let-values (((result_22) + (let-values (((result_23) result_6)) + (let-values (((result_24) + (let-values () + (+ + result_23 + (let-values () (length vals_2)))))) + (values result_24))))) + (if (not #f) + (for-loop_23 result_22 (hash-iterate-next ht_25 i_41)) + result_22))) + result_6))))) + 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_9 port_0 mode_3) + (begin + (if mode_3 (let-values () (write-string "#" port_0)) (void))))) + (cons + prop:equal+hash + (list + (lambda (a_12 b_13 eql?_2) + (eql?_2 (1/resolved-module-path-name a_12) (1/resolved-module-path-name b_13))) + (lambda (a_13 hash-code_0) (hash-code_0 (1/resolved-module-path-name a_13))) + (lambda (a_14 hash-code_1) (hash-code_1 (1/resolved-module-path-name a_14)))))) + (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_5) + (begin + (if (path? p_5) + (let-values () (string-append "\"" (path->string p_5) "\"")) + (if (symbol? p_5) + (let-values () (format-symbol p_5)) + (let-values () (format-submod (format-resolved-module-path-name (car p_5)) (cdr p_5)))))))) + (define-values + (format-symbol) + (lambda (p_6) (begin (format "'~s~a" p_6 (if (symbol-interned? p_6) "" (format "[~a]" (eq-hash-code p_6))))))) + (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_10) + (begin (let-values (((name_8) (1/resolved-module-path-name r_10))) (if (pair? name_8) (car name_8) name_8))))) + (define-values (resolved-module-paths) (make-weak-intern-table)) + (define-values + (1/make-resolved-module-path) + (lambda (p_7) + (begin + 'make-resolved-module-path + (begin + (if (let-values (((or-part_36) (symbol? p_7))) + (if or-part_36 + or-part_36 + (let-values (((or-part_37) (if (path? p_7) (complete-path? p_7) #f))) + (if or-part_37 + or-part_37 + (if (pair? p_7) + (if (pair? (cdr p_7)) + (if (list? p_7) + (if (let-values (((or-part_38) (symbol? (car p_7)))) + (if or-part_38 or-part_38 (if (path? (car p_7)) (complete-path? (car p_7)) #f))) + (let-values (((lst_21) (cdr p_7))) + (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_42) (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_42))))) + (values result_6))))) + (if (if (not ((lambda x_15 (not result_5)) s_42)) + (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_7))) + (weak-intern! resolved-module-paths (resolved-module-path1.1 p_7)))))) + (define-values + (resolved-module-path->module-path) + (lambda (r_11) + (begin + (let-values (((name_9) (1/resolved-module-path-name r_11))) + (let-values (((root-name_0) (if (pair? name_9) (car name_9) name_9))) + (let-values (((root-mod-path_0) (if (path? root-name_0) root-name_0 (list 'quote root-name_0)))) + (if (pair? name_9) (list* 'submod root-mod-path_0 (cdr name_9)) 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_12 port_1 mode_4) + (begin + (write-string "#" port_1)))) + (cons + prop:equal+hash + (list + (lambda (a_15 b_14 eql?_3) + (if (eql?_3 (module-path-index-path a_15) (module-path-index-path b_14)) + (eql?_3 (module-path-index-base a_15) (module-path-index-base b_14)) + #f)) + (lambda (a_16 hash-code_2) + (+ (hash-code_2 (module-path-index-path a_16)) (hash-code_2 (module-path-index-base a_16)))) + (lambda (a_17 hash-code_3) + (+ + (hash-code_3 (module-path-index-path a_17)) + (hash-code_3 (module-path-index-base a_17))))))) + (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_6) (begin (1/module-path-index-join path_6 base_6))) + ((name_10) (make-self-module-path-index (1/make-resolved-module-path name_10))) + (() top-level-module-path-index))) + (define-values + (1/module-path-index-resolve) + (let-values (((module-path-index-resolve_0) + (lambda (mpi5_0 load?3_0 stx4_0) + (begin + 'module-path-index-resolve + (let-values (((mpi_0) mpi5_0)) + (let-values (((load?_0) load?3_0)) + (let-values (((stx_0) stx4_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_59) (module-path-index-resolved mpi_0))) + (if or-part_59 + or-part_59 + (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) + stx_0 + 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 #f))) + ((mpi_2 load?_1 stx4_1) (module-path-index-resolve_0 mpi_2 load?_1 stx4_1)) + ((mpi_3 load?3_1) (module-path-index-resolve_0 mpi_3 load?3_1 #f))))) + (define-values + (module-path-index-fresh) + (lambda (mpi_4) + (begin + (let-values (((path_7 base_7) (1/module-path-index-split mpi_4))) (1/module-path-index-join path_7 base_7))))) + (define-values + (1/module-path-index-join) + (let-values (((module-path-index-join_0) + (lambda (mod-path7_0 base8_0 submod6_0) + (begin + 'module-path-index-join + (let-values (((mod-path_0) mod-path7_0)) + (let-values (((base_8) base8_0)) + (let-values (((submod_0) submod6_0)) + (let-values () + (let-values () + (let-values () + (begin + (if ((lambda (x_16) + (let-values (((or-part_60) (not x_16))) + (if or-part_60 or-part_60 (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_61) (not base_8))) + (if or-part_61 + or-part_61 + (let-values (((or-part_62) (1/resolved-module-path? base_8))) + (if or-part_62 or-part_62 (1/module-path-index? base_8))))) + (void) + (let-values () + (raise-argument-error + 'module-path-index-join + "(or/c #f resolved-module-path? module-path-index?)" + base_8))) + (if (let-values (((or-part_63) (not submod_0))) + (if or-part_63 + or-part_63 + (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_8 #f) + (let-values () + (raise-arguments-error + 'module-path-index-join + "cannot combine #f path with non-#f base" + "given base" + base_8)) + (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_56) + (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_56 (cadr mod-path_1))) + (let-values () base_8))))))))) + loop_56) + mod-path_0))) + (module-path-index2.1 mod-path_0 keep-base_0 #f empty-shift-cache))))))))))))))) + (case-lambda + ((mod-path_2 base_9) (begin 'module-path-index-join (module-path-index-join_0 mod-path_2 base_9 #f))) + ((mod-path_3 base_10 submod6_1) (module-path-index-join_0 mod-path_3 base_10 submod6_1))))) + (define-values + (module-path-index-resolve/maybe) + (lambda (base_11 load?_2) + (begin (if (1/module-path-index? base_11) (1/module-path-index-resolve base_11 load?_2) base_11)))) + (define-values + (1/module-path-index-split) + (lambda (mpi_5) + (begin + 'module-path-index-split + (let-values () + (let-values () + (begin + (if (1/module-path-index? mpi_5) + (void) + (let-values () (raise-argument-error 'module-path-index-split "module-path-index?" mpi_5))) + (values (module-path-index-path mpi_5) (module-path-index-base mpi_5)))))))) + (define-values + (1/module-path-index-submodule) + (lambda (mpi_6) + (begin + 'module-path-index-submodule + (let-values () + (let-values () + (begin + (if (1/module-path-index? mpi_6) + (void) + (let-values () (raise-argument-error 'module-path-index-submodule "module-path-index?" mpi_6))) + (if (not (module-path-index-path mpi_6)) + (let-values (((r_14) (module-path-index-resolved mpi_6))) + (if r_14 (let-values (((p_8) (1/resolved-module-path-name r_14))) (if (pair? p_8) (cdr p_8) #f)) #f)) + #f))))))) + (define-values + (make-self-module-path-index) + (case-lambda + ((name_11) (begin (module-path-index2.1 #f #f name_11 empty-shift-cache))) + ((name_12 enclosing_0) + (make-self-module-path-index + (let-values (((name20_0) name_12) ((temp21_1) (if enclosing_0 (1/module-path-index-resolve enclosing_0) #f))) + (build-module-name.1 unsafe-undefined name20_0 temp21_1)))))) + (define-values (cell.1$9) (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$9 (make-weak-hash))))) + (define-values + (make-generic-self-module-path-index) + (lambda (self_0) + (begin + (let-values (((r_15) (resolved-module-path-to-generic-resolved-module-path (module-path-index-resolved self_0)))) + (begin + (start-atomic) + (begin0 + (let-values (((or-part_64) + (let-values (((e_9) (hash-ref (unsafe-place-local-ref cell.1$9) r_15 #f))) + (if e_9 (ephemeron-value e_9) #f)))) + (if or-part_64 + or-part_64 + (let-values (((mpi_7) (module-path-index2.1 #f #f r_15 empty-shift-cache))) + (begin (hash-set! (unsafe-place-local-ref cell.1$9) r_15 (make-ephemeron r_15 mpi_7)) mpi_7)))) + (end-atomic))))))) + (define-values + (resolved-module-path-to-generic-resolved-module-path) + (lambda (r_16) + (begin + (let-values (((name_13) (1/resolved-module-path-name r_16))) + (1/make-resolved-module-path + (if (symbol? name_13) generic-module-name (cons generic-module-name (cdr name_13)))))))) + (define-values + (imitate-generic-module-path-index!) + (lambda (mpi_8) + (begin + (let-values (((r_17) (module-path-index-resolved mpi_8))) + (if r_17 + (let-values () + (set-module-path-index-resolved! mpi_8 (resolved-module-path-to-generic-resolved-module-path r_17))) + (void)))))) + (define-values + (module-path-index-shift) + (lambda (mpi_9 from-mpi_0 to-mpi_0) + (begin + (if (eq? mpi_9 from-mpi_0) + (let-values () to-mpi_0) + (let-values () + (let-values (((base_12) (module-path-index-base mpi_9))) + (if (not base_12) + (let-values () mpi_9) + (let-values () + (let-values (((shifted-base_0) (module-path-index-shift base_12 from-mpi_0 to-mpi_0))) + (if (eq? shifted-base_0 base_12) + (let-values () mpi_9) + (let-values (((c1_17) (shift-cache-ref (module-path-index-shift-cache shifted-base_0) mpi_9))) + (if c1_17 + c1_17 + (let-values () + (let-values (((shifted-mpi_0) + (module-path-index2.1 + (module-path-index-path mpi_9) + 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_10) + (begin + (let-values (((lst_14) cache_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_14))) + ((letrec-values (((for-loop_26) + (lambda (result_25 lst_31) + (begin + 'for-loop + (if (pair? lst_31) + (let-values (((wb_0) (unsafe-car lst_31)) ((rest_12) (unsafe-cdr lst_31))) + (let-values (((result_26) + (let-values () + (let-values (((result_27) + (let-values () + (let-values () + (let-values (((v_42) (weak-box-value wb_0))) + (if v_42 + (if (equal? + (module-path-index-path v_42) + (module-path-index-path mpi_10)) + v_42 + #f) + #f)))))) + (values result_27))))) + (if (if (not ((lambda x_17 result_26) wb_0)) (not #f) #f) + (for-loop_26 result_26 rest_12) + result_26))) + result_25))))) + for-loop_26) + #f + lst_14)))))) + (define-values + (shift-cache-set!) + (lambda (base_13 v_43) + (begin + (let-values (((new-cache_0) + (cons + (make-weak-box v_43) + ((letrec-values (((loop_57) + (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_57 n_19 (cdr l_30))) + (let-values () + (let-values (((r_18) (loop_57 (fx- n_19 1) (cdr l_30)))) + (if (eq? r_18 (cdr l_30)) l_30 (cons (car l_30) r_18))))))))))) + loop_57) + 32 + (module-path-index-shift-cache base_13))))) + (set-module-path-index-shift-cache! base_13 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_11) (begin (eq? top-level-module-path-index mpi_11)))) + (define-values (non-self-module-path-index?) (lambda (mpi_12) (begin (if (module-path-index-path mpi_12) #t #f)))) + (define-values + (inside-module-context?) + (lambda (mpi_13 inside-mpi_0) + (begin + (let-values (((or-part_65) (eq? mpi_13 inside-mpi_0))) + (if or-part_65 + or-part_65 + (if (1/module-path-index? mpi_13) + (if (1/module-path-index? inside-mpi_0) + (if (module-path-index-resolved mpi_13) + (eq? (module-path-index-resolved mpi_13) (module-path-index-resolved inside-mpi_0)) + #f) + #f) + #f)))))) + (define-values + (core-module-name-resolver) + (case-lambda + ((name_14 from-namespace_0) (begin (void))) + ((p_9 enclosing_1 source-stx-stx_0 load?_3) + (begin + (if (1/module-path? p_9) + (void) + (let-values () (raise-argument-error 'core-module-name-resolver "module-path?" p_9))) + (if (let-values (((or-part_66) (not enclosing_1))) + (if or-part_66 or-part_66 (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_9) (if (= (length p_9) 2) (if (eq? 'quote (car p_9)) (symbol? (cadr p_9)) #f) #f) #f) + (let-values () (1/make-resolved-module-path (cadr p_9))) + (if (if (list? p_9) (if (eq? 'submod (car p_9)) (equal? ".." (cadr p_9)) #f) #f) + (let-values () + (let-values (((lst_32) (cdr p_9))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_32))) + ((letrec-values (((for-loop_27) + (lambda (enclosing_2 lst_33) + (begin + 'for-loop + (if (pair? lst_33) + (let-values (((s_43) (unsafe-car lst_33)) ((rest_13) (unsafe-cdr lst_33))) + (let-values (((enclosing_3) + (let-values (((enclosing_4) enclosing_2)) + (let-values (((enclosing_5) + (let-values () + (let-values (((s22_0) s_43) + ((enclosing23_0) enclosing_4) + ((p24_0) p_9)) + (build-module-name.1 + p24_0 + s22_0 + enclosing23_0))))) + (values enclosing_5))))) + (if (not #f) (for-loop_27 enclosing_3 rest_13) enclosing_3))) + enclosing_2))))) + for-loop_27) + enclosing_1 + lst_32)))) + (if (if (list? p_9) (if (eq? 'submod (car p_9)) (equal? "." (cadr p_9)) #f) #f) + (let-values () + (let-values (((lst_34) (cddr p_9))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_34))) + ((letrec-values (((for-loop_28) + (lambda (enclosing_6 lst_35) + (begin + 'for-loop + (if (pair? lst_35) + (let-values (((s_44) (unsafe-car lst_35)) ((rest_14) (unsafe-cdr lst_35))) + (let-values (((enclosing_7) + (let-values (((enclosing_8) enclosing_6)) + (let-values (((enclosing_9) + (let-values () + (let-values (((s25_0) s_44) + ((enclosing26_0) enclosing_8) + ((p27_0) p_9)) + (build-module-name.1 + p27_0 + s25_0 + enclosing26_0))))) + (values enclosing_9))))) + (if (not #f) (for-loop_28 enclosing_7 rest_14) enclosing_7))) + enclosing_6))))) + for-loop_28) + enclosing_1 + lst_34)))) + (if (if (list? p_9) (eq? 'submod (car p_9)) #f) + (let-values () + (let-values (((base_14) ((1/current-module-name-resolver) (cadr p_9) enclosing_1 #f #f))) + (let-values (((lst_36) (cddr p_9))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_36))) + ((letrec-values (((for-loop_29) + (lambda (enclosing_10 lst_37) + (begin + 'for-loop + (if (pair? lst_37) + (let-values (((s_45) (unsafe-car lst_37)) ((rest_15) (unsafe-cdr lst_37))) + (let-values (((enclosing_11) + (let-values (((enclosing_12) enclosing_10)) + (let-values (((enclosing_13) + (let-values () + (let-values (((s28_0) s_45) + ((enclosing29_0) + enclosing_12) + ((p30_0) p_9)) + (build-module-name.1 + p30_0 + s28_0 + enclosing29_0))))) + (values enclosing_13))))) + (if (not #f) (for-loop_29 enclosing_11 rest_15) enclosing_11))) + enclosing_10))))) + for-loop_29) + base_14 + lst_36))))) + (let-values () (error 'core-module-name-resolver "not a supported module path: ~v" p_9)))))))))) + (define-values + (build-module-name.1) + (lambda (original9_0 name11_0 enclosing12_0) + (begin + 'build-module-name + (let-values (((name_15) name11_0)) + (let-values (((enclosing_14) enclosing12_0)) + (let-values (((orig-name_0) (if (eq? original9_0 unsafe-undefined) name_15 original9_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_15) + (if (symbol? enclosing-module-name_0) + (let-values () (list enclosing-module-name_0 name_15)) + (if (equal? name_15 "..") + (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_15))))))))))))))) + (define-values + (1/current-module-name-resolver) + (make-parameter + core-module-name-resolver + (lambda (v_44) + (begin + (if (if (procedure? v_44) (if (procedure-arity-includes? v_44 2) (procedure-arity-includes? v_44 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_44))) + v_44)) + 'current-module-name-resolver)) + (define-values + (1/current-module-declare-name) + (make-parameter + #f + (lambda (r_19) + (begin + (if (let-values (((or-part_67) (not r_19))) (if or-part_67 or-part_67 (1/resolved-module-path? r_19))) + (void) + (let-values () (raise-argument-error 'current-module-declare-name "(or/c #f resolved-module-path?)" r_19))) + r_19)) + 'current-module-declare-name)) + (define-values + (1/current-module-declare-source) + (make-parameter + #f + (lambda (s_46) + (begin + (if (let-values (((or-part_68) (not s_46))) + (if or-part_68 + or-part_68 + (let-values (((or-part_69) (symbol? s_46))) + (if or-part_69 or-part_69 (if (path? s_46) (complete-path? s_46) #f))))) + (void) + (let-values () + (raise-argument-error 'current-module-declare-source "(or/c #f symbol? (and/c path? complete-path?))" s_46))) + s_46)) + '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_45) + (begin + (if (promise? v_45) + (let-values () + (let-values (((s_47) (promise-status v_45))) + (if (not s_47) + (let-values () + (let-values (((result_28) ((promise-val v_45)))) + (begin (set-promise-val! v_45 result_28) (set-promise-status! v_45 #t) result_28))) + (let-values () (promise-val v_45))))) + (let-values () v_45))))) + (define-values + (phase?) + (lambda (v_28) (begin (let-values (((or-part_1) (not v_28))) (if or-part_1 or-part_1 (exact-integer? v_28)))))) + (define-values (interned-symbol?) (lambda (v_29) (begin (if (symbol? v_29) (symbol-interned? v_29) #f)))) + (define-values + (space?) + (lambda (v_0) (begin (let-values (((or-part_3) (not v_0))) (if or-part_3 or-part_3 (interned-symbol? v_0)))))) + (define-values + (phase+space?) + (lambda (v_46) + (begin + (let-values (((or-part_70) (phase? v_46))) + (if or-part_70 or-part_70 (if (pair? v_46) (if (interned-symbol? (cdr v_46)) (phase? (car v_46)) #f) #f)))))) + (define-values + (phase+space-shift?) + (lambda (v_47) + (begin + (let-values (((or-part_0) (phase? v_47))) + (if or-part_0 + or-part_0 + (if (pair? v_47) + (if (let-values (((or-part_71) (not (cdr v_47)))) (if or-part_71 or-part_71 (interned-symbol? (cdr v_47)))) + (phase? (car v_47)) + #f) + #f)))))) + (define-values + (phase+space-phase) + (lambda (p+s_0) + (begin + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (if (phase+space? p+s_0) (void) (raise-argument-error 'phase+space-phase "phase+space?" p+s_0))) + (if (pair? p+s_0) (car p+s_0) p+s_0))))) + (define-values + (phase+space-space) + (lambda (p+s_1) + (begin + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (if (phase+space? p+s_1) (void) (raise-argument-error 'phase+space-space "phase+space?" p+s_1))) + (if (pair? p+s_1) (cdr p+s_1) #f))))) + (define-values + (phase+space+$1) + (lambda (p+s_2 s_48) + (begin + 'phase+space+ + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (begin + (if (phase+space? p+s_2) (void) (raise-argument-error 'phase+space+ "phase+space?" p+s_2)) + (if (phase+space-shift? s_48) (void) (raise-argument-error 'phase+space+ "phase+space-shift?" s_48)))) + (let-values (((p1_0) (if (pair? p+s_2) (car p+s_2) p+s_2)) + ((p2_0) (if (pair? s_48) (car s_48) s_48)) + ((sp1_0) (if (pair? p+s_2) (cdr p+s_2) #f))) + (let-values (((p_10) (if p1_0 (if p2_0 (+ p1_0 p2_0) #f) #f)) ((sp_0) (if (pair? s_48) (cdr s_48) sp1_0))) + (if sp_0 (cons p_10 sp_0) p_10))))))) + (define-values (phase+) (lambda (a_18 b_15) (begin (if a_18 (if b_15 (+ a_18 b_15) #f) #f)))) + (define-values (phase-) (lambda (a_2 b_16) (begin (if a_2 (if b_16 (- a_2 b_16) #f) #f)))) + (define-values + (phaseimmutable-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_51) (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_51 + i_46 + (let-values () + (loop_58 + #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_51))))))) + (if (box? s_9) + (let-values () (f_20 #f (box-immutable (loop_58 #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_58 + #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_52) + (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_58 + #f + v_52 + 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_53) + (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_58 + #f + v_53 + 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_54) + (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_58 + #f + v_54 + 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_58) + tail?_0 + s_7 + seen_0)))) + (define-values + (datum-has-elements?) + (lambda (d_0) + (begin + (let-values (((or-part_78) (pair? d_0))) + (if or-part_78 + or-part_78 + (let-values (((or-part_79) (vector? d_0))) + (if or-part_79 + or-part_79 + (let-values (((or-part_80) (box? d_0))) + (if or-part_80 + or-part_80 + (let-values (((or-part_81) (immutable-prefab-struct-key d_0))) + (if or-part_81 + or-part_81 + (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_55) (begin (if (preserved-property-value? v_55) (preserved-property-value-content v_55) v_55)))) + (define-values + (check-value-to-preserve) + (lambda (v_56 syntax?_0) + (begin + (let-values (((check-preserve_0) + (lambda (tail?_2 v_57) + (begin + 'check-preserve + (begin + (if (let-values (((or-part_14) (null? v_57))) + (if or-part_14 + or-part_14 + (let-values (((or-part_82) (boolean? v_57))) + (if or-part_82 + or-part_82 + (let-values (((or-part_15) (symbol? v_57))) + (if or-part_15 + or-part_15 + (let-values (((or-part_72) (number? v_57))) + (if or-part_72 + or-part_72 + (let-values (((or-part_83) (char? v_57))) + (if or-part_83 + or-part_83 + (let-values (((or-part_58) (string? v_57))) + (if or-part_58 + or-part_58 + (let-values (((or-part_34) (bytes? v_57))) + (if or-part_34 + or-part_34 + (let-values (((or-part_84) (regexp? v_57))) + (if or-part_84 + or-part_84 + (let-values (((or-part_73) (syntax?_0 v_57))) + (if or-part_73 + or-part_73 + (let-values (((or-part_85) (pair? v_57))) + (if or-part_85 + or-part_85 + (let-values (((or-part_74) (vector? v_57))) + (if or-part_74 + or-part_74 + (let-values (((or-part_86) (box? v_57))) + (if or-part_86 + or-part_86 + (let-values (((or-part_87) (hash? v_57))) + (if or-part_87 + or-part_87 + (immutable-prefab-struct-key + v_57))))))))))))))))))))))))))) + (void) + (let-values () + (raise-arguments-error + 'write + "disallowed value in preserved syntax property" + "value" + v_57))) + v_57))))) + (let-values (((s_49) v_56) + ((f_21) check-preserve_0) + ((gf_0) check-preserve_0) + ((seen_2) disallow-cycles$1) + ((known-pairs_1) #f)) + ((letrec-values (((loop_59) + (lambda (tail?_3 s_50 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_50 + (lambda (tail?_4 s_51) (gf_0 tail?_4 s_51)) + seen_2 + known-pairs_1)) + (if (null? s_50) + (let-values () (f_21 tail?_3 s_50)) + (if (pair? s_50) + (let-values () + (f_21 + tail?_3 + (cons (loop_59 #f (car s_50) depth_0) (loop_59 1 (cdr s_50) depth_0)))) + (if (symbol? s_50) + (let-values () (f_21 #f s_50)) + (if (boolean? s_50) + (let-values () (f_21 #f s_50)) + (if (number? s_50) + (let-values () (f_21 #f s_50)) + (if (let-values (((or-part_88) (vector? s_50))) + (if or-part_88 + or-part_88 + (let-values (((or-part_89) (box? s_50))) + (if or-part_89 + or-part_89 + (let-values (((or-part_90) (prefab-struct-key s_50))) + (if or-part_90 or-part_90 (hash? s_50))))))) + (let-values () + (datum-map-slow + tail?_3 + s_50 + (lambda (tail?_5 s_52) (gf_0 tail?_5 s_52)) + seen_2 + known-pairs_1)) + (let-values () (gf_0 #f s_50)))))))))))))) + loop_59) + #f + s_49 + 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 + (taint?) + (lambda (v_28) (begin (let-values (((or-part_1) (not v_28))) (if or-part_1 or-part_1 (symbol? v_28)))))) + (define-values + (tainted-for-content) + (lambda (v_29) (begin (if (datum-has-elements? v_29) 'tainted/need-propagate 'tainted)))) + (define-values (taint-needs-propagate?) (lambda (t_3) (begin (eq? t_3 'tainted/need-propagate)))) + (define-values (taint-propagated) (lambda (t_4) (begin (if (eq? t_4 'tainted/need-propagate) 'tainted t_4)))) + (define-values + (struct:modified-content + modified-content1.1 + modified-content? + modified-content-content + modified-content-scope-propagations+taint) + (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+taint)))) + (define-values + (struct:syntax + syntax2.1 + syntax?$1 + syntax-content* + syntax-scopes + syntax-shifted-multi-scopes + syntax-mpi-shifts + 1/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:sealed #t) + (cons prop:authentic #t) + (cons + prop:reach-scopes + (lambda (s_53 bulk-shifts_0 reach_0) + (let-values (((content*_0) (syntax-content* s_53))) + (let-values ((() + (begin + (reach_0 + (if (modified-content? content*_0) + (let-values (((prop_0) + (modified-content-scope-propagations+taint content*_0))) + (if (propagation?$1 prop_0) + ((propagation-ref prop_0) s_53) + (modified-content-content content*_0))) + content*_0) + bulk-shifts_0) + (values)))) + (let-values (((shifts_0) + (if bulk-shifts_0 (append bulk-shifts_0 (syntax-mpi-shifts s_53)) #f))) + (begin + (reach_0 (syntax-scopes s_53) shifts_0) + (reach_0 (syntax-shifted-multi-scopes s_53) shifts_0) + (let-values (((ht_32) (syntax-props s_53))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_32))) + ((letrec-values (((for-loop_35) + (lambda (i_50) + (begin + 'for-loop + (if i_50 + (let-values (((k_17 v_54) + (unsafe-immutable-hash-iterate-key+value + ht_32 + i_50))) + (let-values ((() + (let-values () + (if (preserved-property-value? v_54) + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (reach_0 + (plain-property-value + v_54) + bulk-shifts_0)) + (values))))) + (values))) + (values))))) + (if (not #f) + (for-loop_35 + (unsafe-immutable-hash-iterate-next ht_32 i_50)) + (values)))) + (values)))))) + for-loop_35) + (unsafe-immutable-hash-iterate-first ht_32)))) + (void) + (reach_0 (1/syntax-srcloc s_53) bulk-shifts_0))))))) + (cons + prop:serialize + (lambda (s_54 ser-push!_1 state_10) + (let-values (((content*_1) (syntax-content* s_54))) + (let-values (((content_0) + (if (modified-content? content*_1) + (let-values (((prop_1) + (modified-content-scope-propagations+taint content*_1))) + (if (propagation?$1 prop_1) + ((propagation-ref prop_1) s_54) + (modified-content-content content*_1))) + content*_1))) + (let-values (((properties_0) + (intern-properties + (syntax-props s_54) + (lambda () + (let-values (((preserve-keys_0) + (serialize-state-preserve-prop-keys state_10))) + (let-values (((ht_33) (syntax-props s_54))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_33))) + ((letrec-values (((for-loop_36) + (lambda (table_27 i_51) + (begin + 'for-loop + (if i_51 + (let-values (((k_18 v_59) + (hash-iterate-key+value + ht_33 + i_51))) + (let-values (((table_28) + (let-values (((table_29) + table_27)) + (if (let-values (((or-part_91) + (preserved-property-value? + v_59))) + (if or-part_91 + or-part_91 + (hash-ref + preserve-keys_0 + k_18 + #f))) + (let-values (((table_30) + table_29)) + (let-values (((table_31) + (let-values () + (let-values (((key_18 + val_7) + (let-values () + (values + k_18 + (check-value-to-preserve + (plain-property-value + v_59) + syntax?$1))))) + (hash-set + table_30 + key_18 + val_7))))) + (values table_31))) + table_29)))) + (if (not #f) + (for-loop_36 + table_28 + (hash-iterate-next ht_33 i_51)) + table_28))) + table_27))))) + for-loop_36) + '#hasheq() + (hash-iterate-first ht_33)))))) + state_10))) + (let-values (((taint_0) (syntax-taintness s_54))) + (let-values (((context-triple_0) + (intern-context-triple + (intern-scopes (syntax-scopes s_54) state_10) + (intern-shifted-multi-scopes + (syntax-shifted-multi-scopes s_54) + state_10) + (intern-mpi-shifts (syntax-mpi-shifts s_54) state_10) + state_10))) + (let-values (((stx-state_0) (get-syntax-context state_10))) + (if (let-values (((or-part_92) properties_0)) (if or-part_92 or-part_92 taint_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 (1/syntax-srcloc s_54)) + (ser-push!_1 properties_0) + (ser-push!_1 taint_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_54 + 'unknown))) + (begin + (if (eq? sharing-mode_0 'share) + (let-values () + (begin + (ser-push!_1 'tag '#:datum->syntax) + (ser-push!_1 (syntax->datum$1 s_54)))) + (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 + (1/syntax-srcloc s_54)) + #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_54 + (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 (1/syntax-srcloc s_54)) + (if stx-state_0 + (let-values () + (if (if (eq? + context-triple_0 + (syntax-state-context-triple stx-state_0)) + (equal? (1/syntax-srcloc s_54) (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_55 port_2 mode_5) + (let-values ((() (begin (write-string "#string srcloc_0))) + (if srcloc-str_0 + (let-values () (fprintf port_2 ":~a" srcloc-str_0)) + (void)))) + (void)) + (values)))) + (let-values (((width_0) (print-syntax-width))) + (begin + (if (eqv? width_0 0) + (let-values () (void)) + (if (eqv? width_0 +inf.0) + (let-values () (fprintf port_2 " ~s" (syntax->datum$1 s_55))) + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + error-print-width + width_0) + (let-values () (fprintf port_2 " ~.s" (syntax->datum$1 s_55))))))) + (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-taint propagation-taint? propagation-taint-ref) + (make-struct-type-property 'propagation-taint)) + (define-values + (prop:propagation-set-taint propagation-set-taint? propagation-set-taint-ref) + (make-struct-type-property 'propagation-set-taint)) + (define-values + (syntax-content) + (lambda (s_56) + (begin + (let-values (((content*_2) (syntax-content* s_56))) + (if (modified-content? content*_2) (modified-content-content content*_2) content*_2))))) + (define-values + (syntax-taintness) + (lambda (s_57) + (begin + (let-values (((content*_3) (syntax-content* s_57))) + (if (modified-content? content*_3) + (let-values () + (let-values (((v_60) (modified-content-scope-propagations+taint content*_3))) + (if (taint? v_60) v_60 ((propagation-taint-ref v_60) v_60)))) + (let-values () #f)))))) + (define-values (syntax-content*-cas!) (lambda (stx_1 old_0 new_1) (begin (unsafe-struct*-cas! stx_1 0 old_0 new_1)))) + (define-values + (re-modify-content) + (lambda (s_58 d_1) + (begin + (let-values (((content*_4) (syntax-content* s_58))) + (if (modified-content? content*_4) + (modified-content1.1 d_1 (modified-content-scope-propagations+taint 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_59) (begin (if (syntax?$1 s_59) (symbol? (syntax-content s_59)) #f)))) + (define-values (syntax-identifier?) (lambda (s_60) (begin (symbol? (syntax-content s_60))))) + (define-values + (syntax->datum$1) + (lambda (s_61) + (begin + 'syntax->datum + (let-values (((s_62) s_61) + ((f_22) (lambda (tail?_6 x_21) (begin 'f x_21))) + ((d->s_0) (lambda (s_63 d_2) (begin 'd->s d_2))) + ((s-e_0) syntax-content) + ((seen_3) #f)) + ((letrec-values (((loop_60) + (lambda (s_64) + (begin + 'loop + (let-values (((s_65) s_64) + ((f_23) f_22) + ((gf_1) + (lambda (tail?_7 v_61) + (begin + 'gf + (if (syntax?$1 v_61) + (let-values () (d->s_0 v_61 (loop_60 (s-e_0 v_61)))) + (let-values () (f_22 tail?_7 v_61)))))) + ((seen_4) seen_3) + ((known-pairs_2) #f)) + ((letrec-values (((loop_61) + (lambda (tail?_8 s_66 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_66 + (lambda (tail?_9 s_67) (gf_1 tail?_9 s_67)) + seen_4 + known-pairs_2)) + (if (null? s_66) + (let-values () (f_23 tail?_8 s_66)) + (if (pair? s_66) + (let-values () + (f_23 + tail?_8 + (cons + (loop_61 #f (car s_66) depth_1) + (loop_61 1 (cdr s_66) depth_1)))) + (if (symbol? s_66) + (let-values () (f_23 #f s_66)) + (if (boolean? s_66) + (let-values () (f_23 #f s_66)) + (if (number? s_66) + (let-values () (f_23 #f s_66)) + (if (let-values (((or-part_93) (vector? s_66))) + (if or-part_93 + or-part_93 + (let-values (((or-part_94) (box? s_66))) + (if or-part_94 + or-part_94 + (let-values (((or-part_95) + (prefab-struct-key s_66))) + (if or-part_95 + or-part_95 + (hash? s_66))))))) + (let-values () + (datum-map-slow + tail?_8 + s_66 + (lambda (tail?_10 s_68) (gf_1 tail?_10 s_68)) + seen_4 + known-pairs_2)) + (let-values () (gf_1 #f s_66)))))))))))))) + loop_61) + #f + s_65 + 0)))))) + loop_60) + s_62))))) + (define-values (cell.1$8) (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-taintness stx-c_0) #f) + (modified-content1.1 content_1 (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 (1/syntax-srcloc stx-l_0) #f) + props_0 + (if insp_0 + (if stx-c_0 + (let-values (((a_22) insp_0) ((b_20) (syntax-inspector stx-c_0))) + (if (eq? a_22 b_20) + (let-values () a_22) + (if (not a_22) + (let-values () #f) + (if (not b_20) + (let-values () #f) + (if (inspector-superior? a_22 b_20) + (let-values () b_20) + (if (inspector-superior? b_20 a_22) (let-values () a_22) (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_69) s6_0)) + (let-values (((stx-l_1) stx-l3_0)) + (let-values (((stx-p_0) stx-p4_0)) + (let-values () + (if (syntax?$1 s_69) + (let-values () s_69) + (let-values () + (let-values (((insp_1) + (if (syntax?$1 s_69) '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_70) s_69) + ((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$8) + x_22 + #t)) + (void)) + x_22)) + (let-values () (wrap_0 x_22)))))) + ((s->_0) (lambda (s_44) (begin 's-> s_44))) + ((seen_5) disallow-cycles) + ((known-pairs_3) (unsafe-place-local-ref cell.1$8))) + (let-values (((s_71) s_70) + ((f_25) f_24) + ((gf_2) + (lambda (tail?_12 v_62) + (begin + 'gf + (if (syntax?$1 v_62) + (let-values () (s->_0 v_62)) + (let-values () (f_24 tail?_12 v_62)))))) + ((seen_6) seen_5) + ((known-pairs_4) known-pairs_3)) + ((letrec-values (((loop_62) + (lambda (tail?_13 s_72 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_72 + (lambda (tail?_14 s_45) + (gf_2 tail?_14 s_45)) + seen_6 + known-pairs_4)) + (if (null? s_72) + (let-values () (f_25 tail?_13 s_72)) + (if (pair? s_72) + (let-values () + (f_25 + tail?_13 + (cons + (loop_62 + #f + (car s_72) + depth_2) + (loop_62 + 1 + (cdr s_72) + depth_2)))) + (if (symbol? s_72) + (let-values () (f_25 #f s_72)) + (if (boolean? s_72) + (let-values () (f_25 #f s_72)) + (if (number? s_72) + (let-values () + (f_25 #f s_72)) + (if (let-values (((or-part_96) + (vector? + s_72))) + (if or-part_96 + or-part_96 + (let-values (((or-part_97) + (box? + s_72))) + (if or-part_97 + or-part_97 + (let-values (((or-part_98) + (prefab-struct-key + s_72))) + (if or-part_98 + or-part_98 + (hash? + s_72))))))) + (let-values () + (datum-map-slow + tail?_13 + s_72 + (lambda (tail?_15 s_73) + (gf_2 tail?_15 s_73)) + seen_6 + known-pairs_4)) + (let-values () + (gf_2 + #f + s_72)))))))))))))) + loop_62) + #f + s_71 + 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) + (1/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_74) (begin 'datum->syntax (datum->syntax_0 stx-c_2 s_74 #f #f))) + ((stx-c_3 s_75 stx-l_2 stx-p4_1) (datum->syntax_0 stx-c_3 s_75 stx-l_2 stx-p4_1)) + ((stx-c_4 s_76 stx-l3_1) (datum->syntax_0 stx-c_4 s_76 stx-l3_1 #f))))) + (define-values + (disallow-cycles) + (hasheq + 'cycle-fail + (lambda (s_77) (raise-arguments-error 'datum->syntax "cannot create syntax from cyclic datum" "datum" s_77)))) + (define-values (syntax-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$8 (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_63) + (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_63 (cdr content_5))) + (let-values () #t))))))) + loop_63) + (cdr content_4))) + (let-values () #t))))) + (define-values + (deserialize-syntax) + (lambda (content_6 context-triple_1 srcloc_1 props_1 taint_1 inspector_0) + (begin + (syntax2.1 + (if taint_1 (modified-content1.1 content_6 taint_1) 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_34) props_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_34))) + ((letrec-values (((for-loop_37) + (lambda (table_32 i_52) + (begin + 'for-loop + (if i_52 + (let-values (((k_19 v_63) (unsafe-immutable-hash-iterate-key+value ht_34 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_63))))) + (hash-set table_34 key_19 val_8))))) + (values table_35))))) + (if (not #f) + (for-loop_37 table_33 (unsafe-immutable-hash-iterate-next ht_34 i_52)) + table_33))) + table_32))))) + for-loop_37) + '#hasheq() + (unsafe-immutable-hash-iterate-first ht_34)))) + empty-props) + inspector_0)))) + (define-values + (deserialize-datum->syntax) + (lambda (content_7 context-triple_2 srcloc_2 inspector_1) + (begin + (let-values (((s_78) (deserialize-syntax #f context-triple_2 srcloc_2 #f #f inspector_1))) + (datum->syntax$1 s_78 content_7 s_78 s_78))))) + (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_21) (binding-free=id b_21)))) + (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_22) (begin (if (full-binding? b_22) (full-binding-frame-id b_22) #f)))) + (define-values (binding-free=id) (lambda (b_23) (begin (if (full-binding? b_23) (full-binding-free=id b_23) #f)))) + (define-values (cell.1$7) (unsafe-make-place-local (make-weak-hash))) + (define-values (phase+space-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$7 (make-weak-hash))))) + (define-values + (intern) + (lambda (new-key_0) + (begin + (let-values ((() (begin (start-atomic) (values)))) + (let-values (((old-key_0) (hash-ref-key (unsafe-place-local-ref cell.1$7) new-key_0 #f))) + (begin + (if old-key_0 (void) (let-values () (hash-set! (unsafe-place-local-ref cell.1$7) new-key_0 #t))) + (end-atomic) + (let-values (((or-part_73) old-key_0)) (if or-part_73 or-part_73 new-key_0)))))))) + (define-values (space+) (lambda (s_14 s-level_0) (begin (if (eq? s-level_0 '#:none) s_14 s-level_0)))) + (define-values + (intern-phase+space) + (case-lambda + ((phase_0 space_0) + (begin (if (not space_0) (let-values () phase_0) (let-values () (intern (cons phase_0 space_0)))))) + ((phase+space_0) (intern phase+space_0)))) + (define-values + (intern-phase+space-shift) + (case-lambda + ((phase-level_0 space-level_0) + (begin + (if (eq? space-level_0 '#:none) + (let-values () phase-level_0) + (let-values () (intern (cons phase-level_0 space-level_0)))))) + ((phase+space-shift_0) (intern phase+space-shift_0)))) + (define-values (phase+space-shift-phase-level) (lambda (level_0) (begin (if (pair? level_0) (car level_0) level_0)))) + (define-values (phase+space+) (lambda (p+s_3 level_1) (begin (intern-phase+space (phase+space+$1 p+s_3 level_1))))) + (define-values (phase+space?-string) "phase+space?") + (define-values (phase+space-shift?-string) "phase+space-shift?") + (define-values + (phase+space_1) + (lambda (sub-s_0) + (begin + 's-> + (if (syntax-taintness sub-s_0) + (let-values () sub-s_0) + (let-values () + (let-values (((stx_2) sub-s_0)) + (let-values (((t_5) (tainted-for-content (syntax-content sub-s_0)))) + (let-values (((content*_5) (syntax-content* stx_2))) + (let-values (((content_8) + (if (modified-content? content*_5) + (modified-content-content content*_5) + content*_5))) + (let-values (((p_13) + (if (modified-content? content*_5) + (modified-content-scope-propagations+taint content*_5) + #f))) + (let-values (((the-struct_3) stx_2)) + (if (syntax?$1 the-struct_3) + (let-values (((content*1_0) + (let-values (((new-p_0) + (if (taint? p_13) + t_5 + ((propagation-set-taint-ref p_13) p_13 t_5)))) + (if new-p_0 + (modified-content1.1 content_8 new-p_0) + content_8)))) + (syntax2.1 + content*1_0 + (syntax-scopes the-struct_3) + (syntax-shifted-multi-scopes the-struct_3) + (syntax-mpi-shifts the-struct_3) + (1/syntax-srcloc the-struct_3) + (syntax-props the-struct_3) + (syntax-inspector the-struct_3))) + (raise-argument-error 'struct-copy "syntax?" the-struct_3))))))))))))) + ((seen_7) #f) + ((known-pairs_5) #f)) + (let-values (((s_49) s_3) + ((f_21) f_26) + ((gf_0) + (lambda (tail?_17 v_66) + (begin + 'gf + (if (syntax?$1 v_66) (let-values () (s->_1 v_66)) (let-values () (f_26 tail?_17 v_66)))))) + ((seen_2) seen_7) + ((known-pairs_1) known-pairs_5)) + ((letrec-values (((loop_64) + (lambda (tail?_18 s_81 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_81 + (lambda (tail?_19 s_82) (gf_0 tail?_19 s_82)) + seen_2 + known-pairs_1)) + (if (null? s_81) + (let-values () (f_21 tail?_18 s_81)) + (if (pair? s_81) + (let-values () + (f_21 + tail?_18 + (cons (loop_64 #f (car s_81) depth_3) (loop_64 1 (cdr s_81) depth_3)))) + (if (symbol? s_81) + (let-values () (f_21 #f s_81)) + (if (boolean? s_81) + (let-values () (f_21 #f s_81)) + (if (number? s_81) + (let-values () (f_21 #f s_81)) + (if (let-values (((or-part_90) (vector? s_81))) + (if or-part_90 + or-part_90 + (let-values (((or-part_99) (box? s_81))) + (if or-part_99 + or-part_99 + (let-values (((or-part_103) (prefab-struct-key s_81))) + (if or-part_103 or-part_103 (hash? s_81))))))) + (let-values () + (datum-map-slow + tail?_18 + s_81 + (lambda (tail?_20 s_83) (gf_0 tail?_20 s_83)) + seen_2 + known-pairs_1)) + (let-values () (gf_0 #f s_81)))))))))))))) + loop_64) + #f + s_49 + 0)))))) + (define-values (syntax-tainted?$1) (lambda (s_84) (begin 'syntax-tainted? (if (syntax-taintness s_84) #t #f)))) + (define-values (syntax-clean?) (lambda (s_85) (begin (not (syntax-taintness s_85))))) + (define-values + (syntax-taint$1) + (lambda (s_86) + (begin + 'syntax-taint + (if (syntax-taintness s_86) + s_86 + (let-values (((stx_3) s_86)) + (let-values (((t_6) (tainted-for-content (syntax-content s_86)))) + (let-values (((content*_6) (syntax-content* stx_3))) + (let-values (((content_9) + (if (modified-content? content*_6) (modified-content-content content*_6) content*_6))) + (let-values (((p_14) + (if (modified-content? content*_6) + (modified-content-scope-propagations+taint content*_6) + #f))) + (let-values (((the-struct_4) stx_3)) + (if (syntax?$1 the-struct_4) + (let-values (((content*2_0) + (let-values (((new-p_1) + (if (taint? p_14) t_6 ((propagation-set-taint-ref p_14) p_14 t_6)))) + (if new-p_1 (modified-content1.1 content_9 new-p_1) content_9)))) + (syntax2.1 + content*2_0 + (syntax-scopes the-struct_4) + (syntax-shifted-multi-scopes the-struct_4) + (syntax-mpi-shifts the-struct_4) + (1/syntax-srcloc the-struct_4) + (syntax-props the-struct_4) + (syntax-inspector the-struct_4))) + (raise-argument-error 'struct-copy "syntax?" the-struct_4)))))))))))) + (define-values + (syntax-property$1) + (let-values () + (let-values () + (case-lambda + ((s_87 key_25) + (begin + 'syntax-property + (let-values ((() + (begin + (if (syntax?$1 s_87) + (void) + (let-values () (raise-argument-error 'syntax-property "syntax?" s_87))) + (values)))) + (let-values (((v_0) (hash-ref (syntax-props s_87) key_25 #f))) + (let-values (((plain-v_0) (plain-property-value v_0))) + (if (syntax-taintness s_87) (taint-content plain-v_0) plain-v_0)))))) + ((s_12 key_26 val_14) + (let-values ((() + (begin + (if (syntax?$1 s_12) + (void) + (let-values () (raise-argument-error 'syntax-property "syntax?" s_12))) + (values)))) + (let-values (((pval_0) (if (eq? key_26 'paren-shape) (preserved-property-value1.1 val_14) val_14))) + (let-values (((the-struct_5) s_12)) + (if (syntax?$1 the-struct_5) + (let-values (((props2_0) (hash-set (syntax-props s_12) key_26 pval_0))) + (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) + (1/syntax-srcloc the-struct_5) + props2_0 + (syntax-inspector the-struct_5))) + (raise-argument-error 'struct-copy "syntax?" the-struct_5)))))) + ((s_88 key_27 val_15 preserved?_0) + (let-values ((() + (begin + (if (syntax?$1 s_88) + (void) + (let-values () (raise-argument-error 'syntax-property "syntax?" s_88))) + (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_6) s_88)) + (if (syntax?$1 the-struct_6) + (let-values (((props3_0) (hash-set (syntax-props s_88) key_27 pval_1))) + (syntax2.1 + (syntax-content* the-struct_6) + (syntax-scopes the-struct_6) + (syntax-shifted-multi-scopes the-struct_6) + (syntax-mpi-shifts the-struct_6) + (1/syntax-srcloc the-struct_6) + props3_0 + (syntax-inspector the-struct_6))) + (raise-argument-error 'struct-copy "syntax?" the-struct_6))))))))))) + (define-values + (1/syntax-property-preserved?) + (lambda (s_4 key_28) + (begin + 'syntax-property-preserved? + (let-values () + (let-values () + (begin + (if (syntax?$1 s_4) (void) (let-values () (raise-argument-error 'syntax-property-preserved? "syntax?" s_4))) + (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_4) key_28 #f)))))))) + (define-values + (1/syntax-property-symbol-keys) + (lambda (s_5) + (begin + 'syntax-property-symbol-keys + (let-values () + (let-values () + (begin + (if (syntax?$1 s_5) (void) (let-values () (raise-argument-error 'syntax-property-symbol-keys "syntax" s_5))) + (reverse$1 + (let-values (((ht_49) (syntax-props s_5))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_49))) + ((letrec-values (((for-loop_54) + (lambda (fold-var_27 i_66) + (begin + 'for-loop + (if i_66 + (let-values (((k_20 v_67) + (unsafe-immutable-hash-iterate-key+value ht_49 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_54 fold-var_28 (unsafe-immutable-hash-iterate-next ht_49 i_66)) + fold-var_28))) + fold-var_27))))) + for-loop_54) + null + (unsafe-immutable-hash-iterate-first ht_49))))))))))) + (define-values + (1/syntax-property-remove) + (lambda (s_50 key_29) + (begin + 'syntax-property-remove + (let-values () + (let-values () + (begin + (if (syntax?$1 s_50) (void) (let-values () (raise-argument-error 'syntax-property-remove "syntax?" s_50))) + (if (hash-ref (syntax-props s_50) key_29 #f) + (let-values (((the-struct_7) s_50)) + (if (syntax?$1 the-struct_7) + (let-values (((props7_0) (hash-remove (syntax-props s_50) key_29))) + (syntax2.1 + (syntax-content* the-struct_7) + (syntax-scopes the-struct_7) + (syntax-shifted-multi-scopes the-struct_7) + (syntax-mpi-shifts the-struct_7) + (1/syntax-srcloc the-struct_7) + props7_0 + (syntax-inspector the-struct_7))) + (raise-argument-error 'struct-copy "syntax?" the-struct_7))) + s_50))))))) + (define-values (syntax-has-property?) (lambda (from-s_0 key_30) (begin (hash-ref (syntax-props from-s_0) key_30 #f)))) + (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_44) (fallback-search-list smss_4))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_44))) + ((letrec-values (((for-loop_55) + (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_35) + (let-values () + (cons + (let-values () (f_28 smss_5)) + fold-var_34)))) + (values fold-var_35))))) + (if (not #f) (for-loop_55 fold-var_33 rest_19) fold-var_33))) + fold-var_32))))) + for-loop_55) + null + lst_44))))) + (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_16) (weak-box-value (unbox* (unsafe-place-local-ref cell.1$6))))) + (begin + (if c_16 (let-values () (hash-remove! c_16 sym_12)) (void)) + (set-box*! (unsafe-place-local-ref cell.2$3) #f))))) + (() + (let-values (((c_11) (weak-box-value (unbox* (unsafe-place-local-ref cell.1$6))))) + (begin (if c_11 (let-values () (hash-clear! c_11)) (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_5 scs_3 smss_7) + (begin + (let-values (((c_13) (weak-box-value (unbox* (unsafe-place-local-ref cell.1$6))))) + (if c_13 + (let-values (((v_68) (hash-ref c_13 sym_13 #f))) + (if v_68 + (if (eqv? phase_5 (entry-phase v_68)) + (if (set=? scs_3 (entry-scs v_68)) (if (set=? smss_7 (entry-smss v_68)) (entry-binding v_68) #f) #f) + #f) + #f)) + #f))))) + (define-values + (resolve-cache-set!) + (lambda (sym_14 phase_6 scs_4 smss_8 b_40) + (begin + (let-values (((wb_1) (unbox* (unsafe-place-local-ref cell.1$6)))) + (let-values (((c_17) (weak-box-value wb_1))) + (if (not c_17) + (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_6 scs_4 smss_8 b_40))) + (let-values () (hash-set! c_17 sym_14 (entry1.1 scs_4 smss_8 phase_6 b_40))))))))) + (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_89 phase_7) + (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_56) + (lambda (result_32 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_33) + (let-values () + (let-values (((result_10) + (let-values () + (let-values () + (if e_12 + (if (eq? s_89 (shifted-entry-s e_12)) + (if (eqv? + phase_7 + (shifted-entry-phase e_12)) + (shifted-entry-binding e_12) + #f) + #f) + #f))))) + (values result_10))))) + (if (if (not ((lambda x_25 result_33) e_12)) (not #f) #f) + (for-loop_56 result_33 (unsafe-fx+ 1 pos_9)) + result_33))) + result_32))))) + for-loop_56) + #f + 0))))))) + (define-values + (resolve+shift-cache-set!) + (lambda (s_90 phase_8 b_41) + (begin + (let-values (((vec_22) (shifted-cache-vector))) + (let-values (((p_15) (unsafe-place-local-ref cell.3$1))) + (begin + (vector*-set! vec_22 p_15 (shifted-entry2.1 s_90 phase_8 b_41)) + (unsafe-place-local-set! cell.3$1 (fxand (fx+ 1 p_15) (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_41) + (begin + (let-values (((vec_23) + (let-values (((or-part_104) (weak-box-value (unsafe-place-local-ref cell.4$1)))) + (if or-part_104 + or-part_104 + (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_105) + (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_57) + (lambda (result_34 pos_10) + (begin + 'for-loop + (if (unsafe-fx< pos_10 len_10) + (let-values (((s2_5) (unsafe-vector-ref vec_25 pos_10))) + (let-values (((result_14) + (let-values () + (let-values (((result_35) + (let-values () + (let-values () + (if s2_5 + (if (set=? s_41 s2_5) s2_5 #f) + #f))))) + (values result_35))))) + (if (if (not ((lambda x_1 result_14) s2_5)) (not #f) #f) + (for-loop_57 result_14 (unsafe-fx+ 1 pos_10)) + result_14))) + result_34))))) + for-loop_57) + #f + 0))))) + (if or-part_105 + or-part_105 + (begin + (vector*-set! vec_23 (unsafe-place-local-ref cell.5$1) s_41) + (unsafe-place-local-set! + cell.5$1 + (fxand (fx+ 1 (unsafe-place-local-ref cell.5$1)) (fx- NUM-CACHE-SLOTS 1))) + s_41))))))) + (define-values + (cache-or-reuse-hash) + (lambda (s_91) + (begin + (let-values (((vec_27) + (let-values (((or-part_106) (weak-box-value (unsafe-place-local-ref cell.6$1)))) + (if or-part_106 + or-part_106 + (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_107) + (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_58) + (lambda (result_18 pos_11) + (begin + 'for-loop + (if (unsafe-fx< pos_11 len_11) + (let-values (((s2_6) (unsafe-vector-ref vec_29 pos_11))) + (let-values (((result_36) + (let-values () + (let-values (((result_37) + (let-values () + (let-values () + (if s2_6 + (if (equal? s_91 s2_6) s2_6 #f) + #f))))) + (values result_37))))) + (if (if (not ((lambda x_26 result_36) s2_6)) (not #f) #f) + (for-loop_58 result_36 (unsafe-fx+ 1 pos_11)) + result_36))) + result_18))))) + for-loop_58) + #f + 0))))) + (if or-part_107 + or-part_107 + (begin + (vector*-set! vec_27 (unsafe-place-local-ref cell.7) s_91) + (unsafe-place-local-set! cell.7 (fxand (fx+ 1 (unsafe-place-local-ref cell.7)) (fx- NUM-CACHE-SLOTS 1))) + s_91))))))) + (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_92 get-reachable-scopes_2 extra-shifts_3 reach_6 register-trigger_2) + (binding-table-register-reachable + (scope-binding-table s_92) + get-reachable-scopes_2 + extra-shifts_3 + reach_6 + register-trigger_2))) + (cons prop:reach-scopes (lambda (s_42 extra-shifts_4 reach_7) (void))) + (cons + prop:serialize-fill! + (lambda (s_93 ser-push!_7 state_17) + (if (binding-table-empty? (scope-binding-table s_93)) + (let-values () (ser-push!_7 'tag #f)) + (let-values () + (begin + (ser-push!_7 'tag '#:scope-fill!) + (ser-push!_7 (binding-table-prune-to-reachable (scope-binding-table s_93) state_17))))))) + (cons + prop:serialize + (lambda (s_94 ser-push!_8 state_18) + (begin + (if (set-member? (serialize-state-reachable-scopes state_18) s_94) + (void) + (let-values () (error "internal error: found supposedly unreachable scope"))) + (if (eq? s_94 top-level-common-scope) + (let-values () (ser-push!_8 'tag '#:scope)) + (let-values () + (begin (ser-push!_8 'tag '#:scope+kind) (ser-push!_8 (scope-kind s_94)))))))) + (cons + prop:custom-write + (lambda (sc_3 port_3 mode_6) + (begin + (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_95 bt_5) (begin (set-scope-binding-table! s_95 bt_5)))) + (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_19 ser-push!_9 state_19) + (begin + (if (set-member? (serialize-state-reachable-scopes state_19) s_19) + (void) + (let-values () (error "internal error: found supposedly unreachable scope"))) + (ser-push!_9 'tag '#:interned-scope) + (ser-push!_9 (interned-scope-key s_19))))) + (cons + prop:custom-write + (lambda (sc_4 port_4 mode_7) + (begin + (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:sealed #t) + (cons prop:authentic #t) + (cons + prop:scope-with-bindings + (lambda (ms_0 get-reachable-scopes_3 bulk-shifts_4 reach_8 register-trigger_3) + (begin + (let-values (((ht_50) (unbox (multi-scope-scopes ms_0)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-values ht_50))) + ((letrec-values (((for-loop_59) + (lambda (i_67) + (begin + 'for-loop + (if i_67 + (let-values (((sc_5) (hash-iterate-value ht_50 i_67))) + (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 + bulk-shifts_4)))) + (values))))) + (values))))) + (if (not #f) + (for-loop_59 (hash-iterate-next ht_50 i_67)) + (values)))) + (values)))))) + for-loop_59) + (hash-iterate-first ht_50)))) + (void)))) + (cons prop:reach-scopes (lambda (s_96 extra-shifts_5 reach_9) (void))) + (cons + prop:serialize + (lambda (ms_1 ser-push!_10 state_20) + (let-values ((() (begin (ser-push!_10 'tag '#:multi-scope) (values)))) + (let-values ((() (begin (ser-push!_10 (multi-scope-name ms_1)) (values)))) + (let-values (((multi-scope-tables_0) (serialize-state-multi-scope-tables state_20))) + (ser-push!_10 + (let-values (((or-part_108) + (hash-ref multi-scope-tables_0 (multi-scope-scopes ms_1) #f))) + (if or-part_108 + or-part_108 + (let-values (((ht_51) + (let-values (((ht_31) (unbox (multi-scope-scopes ms_1)))) + (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 (((phase_9 sc_6) + (hash-iterate-key+value + ht_31 + i_50))) + (let-values (((table_24) + (let-values (((table_25) + table_23)) + (if (set-member? + (serialize-state-reachable-scopes + state_20) + sc_6) + (let-values (((table_26) + table_25)) + (let-values (((table_65) + (let-values () + (let-values (((key_31 + val_16) + (let-values () + (values + phase_9 + sc_6)))) + (hash-set + table_26 + key_31 + val_16))))) + (values + table_65))) + table_25)))) + (if (not #f) + (for-loop_34 + table_24 + (hash-iterate-next ht_31 i_50)) + table_24))) + table_23))))) + for-loop_34) + '#hasheqv() + (hash-iterate-first ht_31)))))) + (begin + (hash-set! multi-scope-tables_0 (multi-scope-scopes ms_1) ht_51) + ht_51))))))))))) + (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_16 scopes_8) + (begin (multi-scope3.1 (new-deserialize-scope-id!) name_16 (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_32 bulk-shifts_5 reach_10) + (reach_10 (representative-scope-owner s_32) bulk-shifts_5))) + (cons + prop:serialize-fill! + (lambda (s_97 ser-push!_11 state_21) + (begin + (ser-push!_11 'tag '#:representative-scope-fill!) + (ser-push!_11 (binding-table-prune-to-reachable (scope-binding-table s_97) state_21)) + (ser-push!_11 (representative-scope-owner s_97))))) + (cons + prop:serialize + (lambda (s_98 ser-push!_12 state_22) + (begin + (ser-push!_12 'tag '#:representative-scope) + (ser-push!_12 (scope-kind s_98)) + (ser-push!_12 (representative-scope-phase s_98))))) + (cons + prop:custom-write + (lambda (sc_7 port_5 mode_8) + (begin + (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_10) + (begin (let-values (((v_27) (representative-scope4.1 (new-deserialize-scope-id!) kind_1 #f #f phase_10))) v_27)))) + (define-values + (deserialize-representative-scope-fill!) + (lambda (s_99 bt_6 owner_0) + (begin (begin (deserialize-scope-fill! s_99 bt_6) (set-representative-scope-owner! s_99 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:_15 make-_15 ?_15 -ref_15 -set!_15) + (let-values () + (let-values () + (make-struct-type + 'shifted-multi-scope + #f + 2 + 0 + #f + (list + (cons prop:sealed #t) + (cons prop:authentic #t) + (cons + prop:reach-scopes + (lambda (sms_3 bulk-shifts_6 reach_11) + (reach_11 (shifted-multi-scope-multi-scope sms_3) bulk-shifts_6))) + (cons + prop:serialize + (lambda (sms_4 ser-push!_13 state_23) + (begin + (ser-push!_13 'tag '#:shifted-multi-scope) + (ser-push!_13 (shifted-multi-scope-phase sms_4)) + (ser-push!_13 (shifted-multi-scope-multi-scope sms_4))))) + (cons + prop:custom-write + (lambda (sms_5 port_6 mode_9) + (begin + (write-string "#" port_6))))) + (current-inspector) + #f + '(0 1) + #f + 'shifted-multi-scope))))) + (values + struct:_15 + make-_15 + ?_15 + (make-struct-field-accessor -ref_15 0 'phase) + (make-struct-field-accessor -ref_15 1 'multi-scope)))) + (define-values + (deserialize-shifted-multi-scope) + (lambda (phase_11 multi-scope_0) (begin (intern-shifted-multi-scope phase_11 multi-scope_0)))) + (define-values + (intern-shifted-multi-scope) + (lambda (phase_12 multi-scope_1) + (begin + (letrec-values (((transaction-loop_0) + (lambda (boxed-table_0 key_32 make_0) + (begin + 'transaction-loop + (let-values (((or-part_109) (hash-ref (unbox boxed-table_0) phase_12 #f))) + (if or-part_109 + or-part_109 + (let-values (((val_17) (make_0))) + (let-values (((current_0) (unbox boxed-table_0))) + (let-values (((next_3) (hash-set current_0 key_32 val_17))) + (if (box-cas! boxed-table_0 current_0 next_3) + val_17 + (transaction-loop_0 boxed-table_0 key_32 make_0))))))))))) + (if (phase? phase_12) + (let-values () + (let-values (((or-part_52) (hash-ref (unbox (multi-scope-shifted multi-scope_1)) phase_12 #f))) + (if or-part_52 + or-part_52 + (transaction-loop_0 + (multi-scope-shifted multi-scope_1) + phase_12 + (lambda () (shifted-multi-scope5.1 phase_12 multi-scope_1)))))) + (let-values () + (let-values (((or-part_53) (hash-ref (unbox (multi-scope-label-shifted multi-scope_1)) phase_12 #f))) + (if or-part_53 + or-part_53 + (transaction-loop_0 + (multi-scope-label-shifted multi-scope_1) + phase_12 + (lambda () (shifted-multi-scope5.1 phase_12 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:_21 make-_21 ?_21 -ref_21 -set!_21) + (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:_21 make-_21 ?_21 (make-struct-field-accessor -ref_21 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-ephemeron-hasheq))) + (define-values + (interned-scope-symbols) + (lambda () (begin (call-as-atomic (lambda () (hash-keys (unsafe-place-local-ref cell.2$2))))))) + (define-values (scope-place-init!) (lambda () (begin (unsafe-place-local-set! cell.2$2 (make-ephemeron-hasheq))))) + (define-values + (make-interned-scope) + (lambda (sym_15) + (begin + (let-values (((make_1) + (lambda () + (begin 'make (interned-scope2.1 (- (new-scope-id!)) 'interned empty-binding-table sym_15))))) + (call-as-atomic + (lambda () + (let-values (((or-part_110) (hash-ref! (unsafe-place-local-ref cell.2$2) sym_15 #f))) + (if or-part_110 + or-part_110 + (let-values (((new_2) (make_1))) + (begin (hash-set! (unsafe-place-local-ref cell.2$2) sym_15 new_2) new_2)))))))))) + (define-values + (new-multi-scope) + (let-values (((new-multi-scope_0) + (lambda (name7_0) + (begin + 'new-multi-scope + (let-values (((name_17) name7_0)) + (let-values () + (intern-shifted-multi-scope + 0 + (multi-scope3.1 (new-scope-id!) name_17 (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_13) + (begin + (let-values (((scopes_9) (unbox (multi-scope-scopes ms_2)))) + (let-values (((or-part_111) (hash-ref scopes_9 phase_13 #f))) + (if or-part_111 + or-part_111 + (let-values (((s_100) + (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_13))) + (if (box-cas! (multi-scope-scopes ms_2) scopes_9 (hash-set scopes_9 phase_13 s_100)) + s_100 + (multi-scope-to-scope-at-phase ms_2 phase_13))))))))) + (define-values (scope>?) (lambda (sc1_0 sc2_0) (begin (> (scope-id sc1_0) (scope-id sc2_0))))) + (define-values (scope_2) + (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+taint_0) + (propagation-merge + sub-content_0 + prop_2 + (if (modified-content? sub-content*_0) + (modified-content-scope-propagations+taint + 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_8) sub-s_1)) + (if (syntax?$1 the-struct_8) + (let-values (((scopes41_0) + (propagation-apply + prop_2 + (syntax-scopes sub-s_1) + s_101)) + ((shifted-multi-scopes42_0) + (propagation-apply-shifted + prop_2 + (syntax-shifted-multi-scopes sub-s_1) + s_101)) + ((mpi-shifts43_0) + (propagation-apply-mpi-shifts + prop_2 + (syntax-mpi-shifts sub-s_1) + s_101)) + ((inspector44_0) + (propagation-apply-inspector + prop_2 + (syntax-inspector sub-s_1))) + ((content*45_0) + (if scope-propagations+taint_0 + (modified-content1.1 + sub-content_0 + scope-propagations+taint_0) + sub-content_0))) + (syntax2.1 + content*45_0 + scopes41_0 + shifted-multi-scopes42_0 + mpi-shifts43_0 + (1/syntax-srcloc the-struct_8) + (syntax-props the-struct_8) + inspector44_0)) + (raise-argument-error + 'struct-copy + "syntax?" + the-struct_8))))))))) + ((seen_8) #f) + ((known-pairs_6) #f)) + (let-values (((s_80) s_102) + ((f_30) f_29) + ((gf_3) + (lambda (tail?_22 v_69) + (begin + 'gf + (if (syntax?$1 v_69) + (let-values () (s->_2 v_69)) + (let-values () (f_29 tail?_22 v_69)))))) + ((seen_9) seen_8) + ((known-pairs_7) known-pairs_6)) + ((letrec-values (((loop_65) + (lambda (tail?_23 s_103 prev-depth_4) + (begin + 'loop + (let-values (((depth_4) (fx+ 1 prev-depth_4))) + (if (if seen_9 (fx> depth_4 32) #f) + (let-values () + (datum-map-slow + tail?_23 + s_103 + (lambda (tail?_24 s_104) (gf_3 tail?_24 s_104)) + seen_9 + known-pairs_7)) + (if (null? s_103) + (let-values () (f_30 tail?_23 s_103)) + (if (pair? s_103) + (let-values () + (f_30 + tail?_23 + (cons + (loop_65 #f (car s_103) depth_4) + (loop_65 1 (cdr s_103) depth_4)))) + (if (symbol? s_103) + (let-values () (f_30 #f s_103)) + (if (boolean? s_103) + (let-values () (f_30 #f s_103)) + (if (number? s_103) + (let-values () (f_30 #f s_103)) + (if (let-values (((or-part_113) + (vector? s_103))) + (if or-part_113 + or-part_113 + (let-values (((or-part_114) + (box? s_103))) + (if or-part_114 + or-part_114 + (let-values (((or-part_115) + (prefab-struct-key + s_103))) + (if or-part_115 + or-part_115 + (hash? s_103))))))) + (let-values () + (datum-map-slow + tail?_23 + s_103 + (lambda (tail?_25 s_76) + (gf_3 tail?_25 s_76)) + seen_9 + known-pairs_7)) + (let-values () + (gf_3 #f s_103)))))))))))))) + loop_65) + #f + s_80 + 0)))) + (let-values () + (let-values (((s_105) content_10) + ((f_31) (lambda (tail?_26 x_28) (begin 'f x_28))) + ((s->_3) + (lambda (sub-s_2) + (begin + 's-> + (let-values (((stx_4) sub-s_2)) + (let-values (((t_7) + (tainted-for-content (syntax-content sub-s_2)))) + (let-values (((content*_8) (syntax-content* stx_4))) + (let-values (((content_6) + (if (modified-content? content*_8) + (modified-content-content content*_8) + content*_8))) + (let-values (((p_16) + (if (modified-content? content*_8) + (modified-content-scope-propagations+taint + content*_8) + #f))) + (let-values (((the-struct_9) stx_4)) + (if (syntax?$1 the-struct_9) + (let-values (((content*46_0) + (let-values (((new-p_2) + (if (taint? p_16) + t_7 + ((propagation-set-taint-ref + p_16) + p_16 + t_7)))) + (if new-p_2 + (modified-content1.1 + content_6 + new-p_2) + content_6)))) + (syntax2.1 + content*46_0 + (syntax-scopes the-struct_9) + (syntax-shifted-multi-scopes the-struct_9) + (syntax-mpi-shifts the-struct_9) + (1/syntax-srcloc the-struct_9) + (syntax-props the-struct_9) + (syntax-inspector the-struct_9))) + (raise-argument-error + 'struct-copy + "syntax?" + the-struct_9))))))))))) + ((seen_10) #f) + ((known-pairs_8) #f)) + (let-values (((s_106) s_105) + ((f_32) f_31) + ((gf_4) + (lambda (tail?_27 v_63) + (begin + 'gf + (if (syntax?$1 v_63) + (let-values () (s->_3 v_63)) + (let-values () (f_31 tail?_27 v_63)))))) + ((seen_11) seen_10) + ((known-pairs_9) known-pairs_8)) + ((letrec-values (((loop_66) + (lambda (tail?_28 s_107 prev-depth_5) + (begin + 'loop + (let-values (((depth_5) (fx+ 1 prev-depth_5))) + (if (if seen_11 (fx> depth_5 32) #f) + (let-values () + (datum-map-slow + tail?_28 + s_107 + (lambda (tail?_29 s_108) (gf_4 tail?_29 s_108)) + seen_11 + known-pairs_9)) + (if (null? s_107) + (let-values () (f_32 tail?_28 s_107)) + (if (pair? s_107) + (let-values () + (f_32 + tail?_28 + (cons + (loop_66 #f (car s_107) depth_5) + (loop_66 1 (cdr s_107) depth_5)))) + (if (symbol? s_107) + (let-values () (f_32 #f s_107)) + (if (boolean? s_107) + (let-values () (f_32 #f s_107)) + (if (number? s_107) + (let-values () (f_32 #f s_107)) + (if (let-values (((or-part_116) + (vector? s_107))) + (if or-part_116 + or-part_116 + (let-values (((or-part_117) + (box? s_107))) + (if or-part_117 + or-part_117 + (let-values (((or-part_118) + (prefab-struct-key + s_107))) + (if or-part_118 + or-part_118 + (hash? s_107))))))) + (let-values () + (datum-map-slow + tail?_28 + s_107 + (lambda (tail?_30 s_109) + (gf_4 tail?_30 s_109)) + seen_11 + known-pairs_9)) + (let-values () + (gf_4 #f s_107)))))))))))))) + loop_66) + #f + s_106 + 0))))))) + (let-values (((new-taint_0) + (taint-propagated (if (propagation? prop_2) (propagation-taint prop_2) prop_2)))) + (let-values (((new-content*_0) + (if new-taint_0 (modified-content1.1 new-content_0 new-taint_0) new-content_0))) + (if (syntax-content*-cas! s_101 content*_7 new-content*_0) + new-content*_0 + (syntax-propagated-content* s_101))))))) + (let-values () content*_7))))))))) + (define-values + (syntax-e$1) + (lambda (s_110) + (begin + 'syntax-e + (let-values (((e_13) (syntax-content* s_110))) + (if (symbol? e_13) + (let-values () e_13) + (let-values () + (let-values (((content*_9) (syntax-propagated-content* s_110))) + (if (modified-content? content*_9) (modified-content-content content*_9) content*_9)))))))) + (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_111 sc_9) + (begin + (let-values (((s_112) s_111) ((sc_10) (generalize-scope sc_9)) ((op_0) set-add) ((prop-op_0) propagation-add)) + (let-values (((content*_10) (syntax-content* s_112))) + (let-values (((content_11) + (if (modified-content? content*_10) (modified-content-content content*_10) content*_10))) + (if (shifted-multi-scope? sc_10) + (let-values (((the-struct_10) s_112)) + (if (syntax?$1 the-struct_10) + (let-values (((shifted-multi-scopes47_0) + (fallback-update-first + (syntax-shifted-multi-scopes s_112) + (lambda (smss_9) (op_0 (fallback-first smss_9) sc_10)))) + ((content*48_0) + (if (datum-has-elements? content_11) + (let-values (((prop_3) + (prop-op_0 + (if (modified-content? content*_10) + (modified-content-scope-propagations+taint content*_10) + #f) + sc_10 + (syntax-scopes s_112) + (syntax-shifted-multi-scopes s_112) + (syntax-mpi-shifts s_112)))) + (if prop_3 (modified-content1.1 content_11 prop_3) content_11)) + content*_10))) + (syntax2.1 + content*48_0 + (syntax-scopes the-struct_10) + shifted-multi-scopes47_0 + (syntax-mpi-shifts the-struct_10) + (1/syntax-srcloc the-struct_10) + (syntax-props the-struct_10) + (syntax-inspector the-struct_10))) + (raise-argument-error 'struct-copy "syntax?" the-struct_10))) + (let-values (((the-struct_11) s_112)) + (if (syntax?$1 the-struct_11) + (let-values (((scopes49_1) (op_0 (syntax-scopes s_112) sc_10)) + ((content*50_0) + (if (datum-has-elements? content_11) + (let-values (((prop_4) + (prop-op_0 + (if (modified-content? content*_10) + (modified-content-scope-propagations+taint content*_10) + #f) + sc_10 + (syntax-scopes s_112) + (syntax-shifted-multi-scopes s_112) + (syntax-mpi-shifts s_112)))) + (if prop_4 (modified-content1.1 content_11 prop_4) content_11)) + content*_10))) + (syntax2.1 + content*50_0 + scopes49_1 + (syntax-shifted-multi-scopes the-struct_11) + (syntax-mpi-shifts the-struct_11) + (1/syntax-srcloc the-struct_11) + (syntax-props the-struct_11) + (syntax-inspector the-struct_11))) + (raise-argument-error 'struct-copy "syntax?" the-struct_11)))))))))) + (define-values + (add-scopes) + (lambda (s_113 scs_5) + (begin + (let-values (((lst_45) scs_5)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_45))) + ((letrec-values (((for-loop_60) + (lambda (s_114 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_115) + (let-values (((s_116) s_114)) + (let-values (((s_117) (let-values () (add-scope s_116 sc_11)))) + (values s_117))))) + (if (not #f) (for-loop_60 s_115 rest_20) s_115))) + s_114))))) + for-loop_60) + s_113 + lst_45)))))) + (define-values + (remove-scope) + (lambda (s_118 sc_12) + (begin + (let-values (((s_119) s_118) + ((sc_13) (generalize-scope sc_12)) + ((op_1) set-remove) + ((prop-op_1) propagation-remove)) + (let-values (((content*_11) (syntax-content* s_119))) + (let-values (((content_12) + (if (modified-content? content*_11) (modified-content-content content*_11) content*_11))) + (if (shifted-multi-scope? sc_13) + (let-values (((the-struct_12) s_119)) + (if (syntax?$1 the-struct_12) + (let-values (((shifted-multi-scopes51_0) + (fallback-update-first + (syntax-shifted-multi-scopes s_119) + (lambda (smss_10) (op_1 (fallback-first smss_10) sc_13)))) + ((content*52_0) + (if (datum-has-elements? content_12) + (let-values (((prop_5) + (prop-op_1 + (if (modified-content? content*_11) + (modified-content-scope-propagations+taint content*_11) + #f) + sc_13 + (syntax-scopes s_119) + (syntax-shifted-multi-scopes s_119) + (syntax-mpi-shifts s_119)))) + (if prop_5 (modified-content1.1 content_12 prop_5) content_12)) + content*_11))) + (syntax2.1 + content*52_0 + (syntax-scopes the-struct_12) + shifted-multi-scopes51_0 + (syntax-mpi-shifts the-struct_12) + (1/syntax-srcloc the-struct_12) + (syntax-props the-struct_12) + (syntax-inspector the-struct_12))) + (raise-argument-error 'struct-copy "syntax?" the-struct_12))) + (let-values (((the-struct_13) s_119)) + (if (syntax?$1 the-struct_13) + (let-values (((scopes53_0) (op_1 (syntax-scopes s_119) sc_13)) + ((content*54_0) + (if (datum-has-elements? content_12) + (let-values (((prop_6) + (prop-op_1 + (if (modified-content? content*_11) + (modified-content-scope-propagations+taint content*_11) + #f) + sc_13 + (syntax-scopes s_119) + (syntax-shifted-multi-scopes s_119) + (syntax-mpi-shifts s_119)))) + (if prop_6 (modified-content1.1 content_12 prop_6) content_12)) + content*_11))) + (syntax2.1 + content*54_0 + scopes53_0 + (syntax-shifted-multi-scopes the-struct_13) + (syntax-mpi-shifts the-struct_13) + (1/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 + (remove-scopes) + (lambda (s_120 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_61) + (lambda (s_121 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_122) + (let-values (((s_123) s_121)) + (let-values (((s_124) (let-values () (remove-scope s_123 sc_14)))) + (values s_124))))) + (if (not #f) (for-loop_61 s_122 rest_21) s_122))) + s_121))))) + for-loop_61) + s_120 + lst_47)))))) + (define-values + (set-flip) + (lambda (s_125 e_14) (begin (if (set-member? s_125 e_14) (set-remove s_125 e_14) (set-add s_125 e_14))))) + (define-values + (flip-scope) + (lambda (s_126 sc_15) + (begin + (let-values (((s_127) s_126) ((sc_16) (generalize-scope sc_15)) ((op_2) set-flip) ((prop-op_2) propagation-flip)) + (let-values (((content*_12) (syntax-content* s_127))) + (let-values (((content_13) + (if (modified-content? content*_12) (modified-content-content content*_12) content*_12))) + (if (shifted-multi-scope? sc_16) + (let-values (((the-struct_14) s_127)) + (if (syntax?$1 the-struct_14) + (let-values (((shifted-multi-scopes55_0) + (fallback-update-first + (syntax-shifted-multi-scopes s_127) + (lambda (smss_11) (op_2 (fallback-first smss_11) sc_16)))) + ((content*56_0) + (if (datum-has-elements? content_13) + (let-values (((prop_7) + (prop-op_2 + (if (modified-content? content*_12) + (modified-content-scope-propagations+taint content*_12) + #f) + sc_16 + (syntax-scopes s_127) + (syntax-shifted-multi-scopes s_127) + (syntax-mpi-shifts s_127)))) + (if prop_7 (modified-content1.1 content_13 prop_7) content_13)) + content*_12))) + (syntax2.1 + content*56_0 + (syntax-scopes the-struct_14) + shifted-multi-scopes55_0 + (syntax-mpi-shifts the-struct_14) + (1/syntax-srcloc the-struct_14) + (syntax-props the-struct_14) + (syntax-inspector the-struct_14))) + (raise-argument-error 'struct-copy "syntax?" the-struct_14))) + (let-values (((the-struct_15) s_127)) + (if (syntax?$1 the-struct_15) + (let-values (((scopes57_0) (op_2 (syntax-scopes s_127) sc_16)) + ((content*58_0) + (if (datum-has-elements? content_13) + (let-values (((prop_8) + (prop-op_2 + (if (modified-content? content*_12) + (modified-content-scope-propagations+taint content*_12) + #f) + sc_16 + (syntax-scopes s_127) + (syntax-shifted-multi-scopes s_127) + (syntax-mpi-shifts s_127)))) + (if prop_8 (modified-content1.1 content_13 prop_8) content_13)) + content*_12))) + (syntax2.1 + content*58_0 + scopes57_0 + (syntax-shifted-multi-scopes the-struct_15) + (syntax-mpi-shifts the-struct_15) + (1/syntax-srcloc the-struct_15) + (syntax-props the-struct_15) + (syntax-inspector the-struct_15))) + (raise-argument-error 'struct-copy "syntax?" the-struct_15)))))))))) + (define-values + (flip-scopes) + (lambda (s_128 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_62) + (lambda (s_129 lst_50) + (begin + 'for-loop + (if (pair? lst_50) + (let-values (((sc_17) (unsafe-car lst_50)) ((rest_22) (unsafe-cdr lst_50))) + (let-values (((s_130) + (let-values (((s_131) s_129)) + (let-values (((s_132) (let-values () (flip-scope s_131 sc_17)))) + (values s_132))))) + (if (not #f) (for-loop_62 s_130 rest_22) s_130))) + s_129))))) + for-loop_62) + s_128 + lst_49)))))) + (define-values + (push-scope) + (lambda (s_133 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_20) + (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_20) + r_20)))))))) + (let-values (((s_134) s_133) + ((f_33) (lambda (tail?_31 x_29) (begin 'f x_29))) + ((d->s_1) + (lambda (s_135 d_4) + (begin + 'd->s + (let-values (((the-struct_16) s_135)) + (if (syntax?$1 the-struct_16) + (let-values (((content*60_0) (re-modify-content s_135 d_4)) + ((shifted-multi-scopes61_0) + (push_0 (syntax-shifted-multi-scopes s_135)))) + (syntax2.1 + content*60_0 + (syntax-scopes the-struct_16) + shifted-multi-scopes61_0 + (syntax-mpi-shifts the-struct_16) + (1/syntax-srcloc the-struct_16) + (syntax-props the-struct_16) + (syntax-inspector the-struct_16))) + (raise-argument-error 'struct-copy "syntax?" the-struct_16)))))) + ((s-e_1) syntax-e$1) + ((seen_12) #f)) + ((letrec-values (((loop_67) + (lambda (s_136) + (begin + 'loop + (let-values (((s_137) s_136) + ((f_34) f_33) + ((gf_5) + (lambda (tail?_32 v_70) + (begin + 'gf + (if (syntax?$1 v_70) + (let-values () (d->s_1 v_70 (loop_67 (s-e_1 v_70)))) + (let-values () (f_33 tail?_32 v_70)))))) + ((seen_13) seen_12) + ((known-pairs_10) #f)) + ((letrec-values (((loop_17) + (lambda (tail?_33 s_138 prev-depth_6) + (begin + 'loop + (let-values (((depth_6) (fx+ 1 prev-depth_6))) + (if (if seen_13 (fx> depth_6 32) #f) + (let-values () + (datum-map-slow + tail?_33 + s_138 + (lambda (tail?_34 s_139) (gf_5 tail?_34 s_139)) + seen_13 + known-pairs_10)) + (if (null? s_138) + (let-values () (f_34 tail?_33 s_138)) + (if (pair? s_138) + (let-values () + (f_34 + tail?_33 + (cons + (loop_17 #f (car s_138) depth_6) + (loop_17 1 (cdr s_138) depth_6)))) + (if (symbol? s_138) + (let-values () (f_34 #f s_138)) + (if (boolean? s_138) + (let-values () (f_34 #f s_138)) + (if (number? s_138) + (let-values () (f_34 #f s_138)) + (if (let-values (((or-part_119) + (vector? s_138))) + (if or-part_119 + or-part_119 + (let-values (((or-part_120) + (box? s_138))) + (if or-part_120 + or-part_120 + (let-values (((or-part_121) + (prefab-struct-key + s_138))) + (if or-part_121 + or-part_121 + (hash? s_138))))))) + (let-values () + (datum-map-slow + tail?_33 + s_138 + (lambda (tail?_35 s_140) + (gf_5 tail?_35 s_140)) + seen_13 + known-pairs_10)) + (let-values () (gf_5 #f s_138)))))))))))))) + loop_17) + #f + s_137 + 0)))))) + loop_67) + s_134)))))))) + (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-taint) + (let-values (((struct:_22 make-_22 ?_22 -ref_22 -set!_22) + (let-values () + (let-values () + (make-struct-type + 'propagation + #f + 7 + 0 + #f + (list + (cons prop:sealed #t) + (cons prop:authentic #t) + (cons prop:propagation-set-taint (lambda (p_17 v_71) (propagation-set-taint p_17 v_71))) + (cons prop:propagation-taint (lambda (p_18) (propagation-taint p_18))) + (cons prop:propagation syntax-e$1)) + (current-inspector) + #f + '(0 1 2 3 4 5 6) + #f + 'propagation))))) + (values + struct:_22 + make-_22 + ?_22 + (make-struct-field-accessor -ref_22 0 'prev-scs) + (make-struct-field-accessor -ref_22 1 'prev-smss) + (make-struct-field-accessor -ref_22 2 'scope-ops) + (make-struct-field-accessor -ref_22 3 'prev-mss) + (make-struct-field-accessor -ref_22 4 'add-mpi-shifts) + (make-struct-field-accessor -ref_22 5 'inspector) + (make-struct-field-accessor -ref_22 6 'taint)))) + (define-values + (propagation-add) + (lambda (prop_9 sc_18 prev-scs_0 prev-smss_0 prev-mss_0) + (begin + (if (propagation? prop_9) + (let-values (((the-struct_17) prop_9)) + (if (propagation? the-struct_17) + (let-values (((scope-ops63_0) (hash-set (propagation-scope-ops prop_9) sc_18 'add))) + (propagation12.1 + (propagation-prev-scs the-struct_17) + (propagation-prev-smss the-struct_17) + scope-ops63_0 + (propagation-prev-mss the-struct_17) + (propagation-add-mpi-shifts the-struct_17) + (propagation-inspector the-struct_17) + (propagation-taint the-struct_17))) + (raise-argument-error 'struct-copy "propagation?" the-struct_17))) + (propagation12.1 prev-scs_0 prev-smss_0 (hasheq sc_18 'add) prev-mss_0 #f #f prop_9))))) + (define-values + (propagation-remove) + (lambda (prop_10 sc_19 prev-scs_1 prev-smss_1 prev-mss_1) + (begin + (if (propagation? prop_10) + (let-values (((the-struct_18) prop_10)) + (if (propagation? the-struct_18) + (let-values (((scope-ops64_0) (hash-set (propagation-scope-ops prop_10) sc_19 'remove))) + (propagation12.1 + (propagation-prev-scs the-struct_18) + (propagation-prev-smss the-struct_18) + scope-ops64_0 + (propagation-prev-mss the-struct_18) + (propagation-add-mpi-shifts the-struct_18) + (propagation-inspector the-struct_18) + (propagation-taint the-struct_18))) + (raise-argument-error 'struct-copy "propagation?" the-struct_18))) + (propagation12.1 prev-scs_1 prev-smss_1 (hasheq sc_19 'remove) prev-mss_1 #f #f prop_10))))) + (define-values + (propagation-flip) + (lambda (prop_11 sc_20 prev-scs_2 prev-smss_2 prev-mss_2) + (begin + (if (propagation? prop_11) + (let-values (((ops_0) (propagation-scope-ops prop_11))) + (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_11)) (not (propagation-add-mpi-shifts prop_11)) #f) + #f) + #f) + (let-values () (propagation-taint prop_11)) + (let-values () + (let-values (((the-struct_19) prop_11)) + (if (propagation? the-struct_19) + (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_19) + (propagation-prev-smss the-struct_19) + scope-ops65_0 + (propagation-prev-mss the-struct_19) + (propagation-add-mpi-shifts the-struct_19) + (propagation-inspector the-struct_19) + (propagation-taint the-struct_19))) + (raise-argument-error 'struct-copy "propagation?" the-struct_19))))))) + (propagation12.1 prev-scs_2 prev-smss_2 (hasheq sc_20 'flip) prev-mss_2 #f #f prop_11))))) + (define-values + (propagation-mpi-shift) + (lambda (prop_12 add_0 inspector_2 prev-scs_3 prev-smss_3 prev-mss_3) + (begin + (if (propagation? prop_12) + (let-values (((the-struct_20) prop_12)) + (if (propagation? the-struct_20) + (let-values (((add-mpi-shifts66_0) + (let-values (((base-add_0) (propagation-add-mpi-shifts prop_12))) + (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_122) add_0)) (if or-part_122 or-part_122 base-add_0))))) + ((inspector67_0) + (let-values (((or-part_123) (propagation-inspector prop_12))) + (if or-part_123 or-part_123 inspector_2)))) + (propagation12.1 + (propagation-prev-scs the-struct_20) + (propagation-prev-smss the-struct_20) + (propagation-scope-ops the-struct_20) + (propagation-prev-mss the-struct_20) + add-mpi-shifts66_0 + inspector67_0 + (propagation-taint the-struct_20))) + (raise-argument-error 'struct-copy "propagation?" the-struct_20))) + (propagation12.1 prev-scs_3 prev-smss_3 '#hasheq() prev-mss_3 add_0 inspector_2 prop_12))))) + (define-values + (propagation-apply) + (lambda (prop_13 scs_8 parent-s_0) + (begin + (if (eq? (propagation-prev-scs prop_13) scs_8) + (let-values () (syntax-scopes parent-s_0)) + (let-values () + (let-values (((new-scs_0) + (let-values (((ht_52) (propagation-scope-ops prop_13))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_52))) + ((letrec-values (((for-loop_63) + (lambda (scs_9 i_68) + (begin + 'for-loop + (if i_68 + (let-values (((sc_21 op_3) + (unsafe-immutable-hash-iterate-key+value ht_52 i_68))) + (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_63 + scs_10 + (unsafe-immutable-hash-iterate-next ht_52 i_68)) + scs_10))) + scs_9))))) + for-loop_63) + scs_8 + (unsafe-immutable-hash-iterate-first ht_52)))))) + (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_14 smss_13 parent-s_1) + (begin + (if (eq? (propagation-prev-smss prop_14) smss_13) + (let-values () (syntax-shifted-multi-scopes parent-s_1)) + (let-values () + (let-values (((new-smss_0) + (let-values (((ht_53) (propagation-scope-ops prop_14))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_53))) + ((letrec-values (((for-loop_64) + (lambda (smss_14 i_69) + (begin + 'for-loop + (if i_69 + (let-values (((sms_7 op_4) + (unsafe-immutable-hash-iterate-key+value ht_53 i_69))) + (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_64 + smss_15 + (unsafe-immutable-hash-iterate-next ht_53 i_69)) + smss_15))) + smss_14))))) + for-loop_64) + smss_13 + (unsafe-immutable-hash-iterate-first ht_53)))))) + (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_15 mss_1 parent-s_2) + (begin + (if (eq? (propagation-prev-mss prop_15) mss_1) + (let-values () (syntax-mpi-shifts parent-s_2)) + (let-values () (let-values (((add_1) (propagation-add-mpi-shifts prop_15))) (if add_1 (add_1 mss_1) mss_1))))))) + (define-values + (propagation-apply-inspector) + (lambda (prop_16 i_70) + (begin (let-values (((or-part_124) i_70)) (if or-part_124 or-part_124 (propagation-inspector prop_16)))))) + (define-values + (propagation-set-taint) + (lambda (prop_17 t_8) + (begin + (if (propagation? prop_17) + (let-values (((the-struct_21) prop_17)) + (if (propagation? the-struct_21) + (let-values (((taint68_0) t_8)) + (propagation12.1 + (propagation-prev-scs the-struct_21) + (propagation-prev-smss the-struct_21) + (propagation-scope-ops the-struct_21) + (propagation-prev-mss the-struct_21) + (propagation-add-mpi-shifts the-struct_21) + (propagation-inspector the-struct_21) + taint68_0)) + (raise-argument-error 'struct-copy "propagation?" the-struct_21))) + t_8)))) + (define-values + (propagation-merge) + (lambda (content_14 prop_18 base-prop_0 prev-scs_4 prev-smss_4 prev-mss_4) + (begin + (if (not (datum-has-elements? content_14)) + (let-values () (if (propagation-taint prop_18) 'tainted base-prop_0)) + (if (not (propagation? base-prop_0)) + (let-values () + (if (if (eq? (propagation-prev-scs prop_18) prev-scs_4) + (if (eq? (propagation-prev-smss prop_18) prev-smss_4) + (if (eq? (propagation-prev-mss prop_18) prev-mss_4) + (eq? (propagation-taint prop_18) base-prop_0) + #f) + #f) + #f) + (let-values () prop_18) + (let-values () + (propagation12.1 + prev-scs_4 + prev-smss_4 + (propagation-scope-ops prop_18) + prev-mss_4 + (propagation-add-mpi-shifts prop_18) + (propagation-inspector prop_18) + (if (propagation-taint prop_18) 'tainted/need-propagate base-prop_0))))) + (let-values () + (let-values (((new-ops_0) + (let-values (((ht_54) (propagation-scope-ops prop_18))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_54))) + ((letrec-values (((for-loop_65) + (lambda (ops_1 i_71) + (begin + 'for-loop + (if i_71 + (let-values (((sc_22 op_5) + (unsafe-immutable-hash-iterate-key+value + ht_54 + i_71))) + (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_65 + ops_2 + (unsafe-immutable-hash-iterate-next ht_54 i_71)) + ops_2))) + ops_1))))) + for-loop_65) + (propagation-scope-ops base-prop_0) + (unsafe-immutable-hash-iterate-first ht_54)))))) + (let-values (((add_2) (propagation-add-mpi-shifts prop_18))) + (let-values (((base-add_1) (propagation-add-mpi-shifts base-prop_0))) + (let-values (((new-taint_1) + (if (let-values (((or-part_125) (propagation-taint prop_18))) + (if or-part_125 or-part_125 (propagation-taint base-prop_0))) + 'tainted/need-propagate + (propagation-taint 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_18)) (not (propagation-inspector base-prop_0)) #f) + #f) + #f) + #f) + new-taint_1 + (let-values (((the-struct_22) base-prop_0)) + (if (propagation? the-struct_22) + (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_126) add_2)) (if or-part_126 or-part_126 base-add_1)))) + ((inspector71_0) + (let-values (((or-part_127) (propagation-inspector base-prop_0))) + (if or-part_127 or-part_127 (propagation-inspector prop_18)))) + ((taint72_0) new-taint_1)) + (propagation12.1 + (propagation-prev-scs the-struct_22) + (propagation-prev-smss the-struct_22) + scope-ops69_0 + (propagation-prev-mss the-struct_22) + add-mpi-shifts70_0 + inspector71_0 + taint72_0)) + (raise-argument-error 'struct-copy "propagation?" the-struct_22)))))))))))))) + (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_141 phase_14) + (begin + 'syntax-shift-phase-level + (if (eqv? phase_14 0) + s_141 + (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_21) + (let-values () + (fallback-map + smss_20 + (lambda (smss_21) + (let-values (((ht_55) smss_21)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_55))) + ((letrec-values (((for-loop_66) + (lambda (table_66 i_72) + (begin + 'for-loop + (if i_72 + (let-values (((sms_9) + (unsafe-immutable-hash-iterate-key + ht_55 + i_72))) + (let-values (((table_67) + (let-values (((id*_2) + (shift-multi-scope + sms_9 + phase_14))) + (begin + #t + ((letrec-values (((for-loop_67) + (lambda (table_68) + (begin + 'for-loop + (let-values (((new-sms_0) + id*_2)) + (let-values (((table_69) + (let-values (((table_70) + table_68)) + (if new-sms_0 + (let-values (((table_71) + table_70)) + (let-values (((table_72) + (let-values () + (let-values (((key_33 + val_18) + (let-values () + (values + (let-values () + new-sms_0) + #t)))) + (hash-set + table_71 + key_33 + val_18))))) + (values + table_72))) + table_70)))) + table_69)))))) + for-loop_67) + table_66))))) + (if (not #f) + (for-loop_66 + table_67 + (unsafe-immutable-hash-iterate-next + ht_55 + i_72)) + table_67))) + table_66))))) + for-loop_66) + '#hasheq() + (unsafe-immutable-hash-iterate-first ht_55))))))))) + (begin (set! smss73_0 smss_20) (set! prev-result_1 r_21) r_21)))))))) + (let-values (((s_142) s_141) + ((f_35) (lambda (tail?_36 d_5) (begin 'f d_5))) + ((d->s_2) + (lambda (s_143 d_6) + (begin + 'd->s + (let-values (((the-struct_23) s_143)) + (if (syntax?$1 the-struct_23) + (let-values (((content*74_0) (re-modify-content s_143 d_6)) + ((shifted-multi-scopes75_0) + (shift-all_0 (syntax-shifted-multi-scopes s_143)))) + (syntax2.1 + content*74_0 + (syntax-scopes the-struct_23) + shifted-multi-scopes75_0 + (syntax-mpi-shifts the-struct_23) + (1/syntax-srcloc the-struct_23) + (syntax-props the-struct_23) + (syntax-inspector the-struct_23))) + (raise-argument-error 'struct-copy "syntax?" the-struct_23)))))) + ((s-e_2) syntax-e$1) + ((seen_14) #f)) + ((letrec-values (((loop_68) + (lambda (s_144) + (begin + 'loop + (let-values (((s_145) s_144) + ((f_36) f_35) + ((gf_6) + (lambda (tail?_37 v_72) + (begin + 'gf + (if (syntax?$1 v_72) + (let-values () (d->s_2 v_72 (loop_68 (s-e_2 v_72)))) + (let-values () (f_35 tail?_37 v_72)))))) + ((seen_15) seen_14) + ((known-pairs_11) #f)) + ((letrec-values (((loop_69) + (lambda (tail?_38 s_146 prev-depth_7) + (begin + 'loop + (let-values (((depth_7) (fx+ 1 prev-depth_7))) + (if (if seen_15 (fx> depth_7 32) #f) + (let-values () + (datum-map-slow + tail?_38 + s_146 + (lambda (tail?_39 s_147) (gf_6 tail?_39 s_147)) + seen_15 + known-pairs_11)) + (if (null? s_146) + (let-values () (f_36 tail?_38 s_146)) + (if (pair? s_146) + (let-values () + (f_36 + tail?_38 + (cons + (loop_69 #f (car s_146) depth_7) + (loop_69 1 (cdr s_146) depth_7)))) + (if (symbol? s_146) + (let-values () (f_36 #f s_146)) + (if (boolean? s_146) + (let-values () (f_36 #f s_146)) + (if (number? s_146) + (let-values () (f_36 #f s_146)) + (if (let-values (((or-part_128) + (vector? s_146))) + (if or-part_128 + or-part_128 + (let-values (((or-part_129) + (box? s_146))) + (if or-part_129 + or-part_129 + (let-values (((or-part_130) + (prefab-struct-key + s_146))) + (if or-part_130 + or-part_130 + (hash? s_146))))))) + (let-values () + (datum-map-slow + tail?_38 + s_146 + (lambda (tail?_40 s_148) + (gf_6 tail?_40 s_148)) + seen_15 + known-pairs_11)) + (let-values () + (gf_6 #f s_146)))))))))))))) + loop_69) + #f + s_145 + 0)))))) + loop_68) + s_142)))))))))) + (define-values + (syntax-swap-scopes) + (lambda (s_149 src-scopes_0 dest-scopes_0) + (begin + (if (equal? src-scopes_0 dest-scopes_0) + s_149 + (let-values (((src-smss_0 src-scs_0) + (set-partition + (let-values (((ht_56) src-scopes_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_56))) + ((letrec-values (((for-loop_68) + (lambda (table_73 i_73) + (begin + 'for-loop + (if i_73 + (let-values (((sc_23) + (unsafe-immutable-hash-iterate-key ht_56 i_73))) + (let-values (((table_74) + (let-values (((table_75) table_73)) + (let-values (((table_76) + (let-values () + (let-values (((key_34 val_19) + (let-values () + (values + (let-values () + (generalize-scope + sc_23)) + #t)))) + (hash-set + table_75 + key_34 + val_19))))) + (values table_76))))) + (if (not #f) + (for-loop_68 + table_74 + (unsafe-immutable-hash-iterate-next ht_56 i_73)) + table_74))) + table_73))))) + for-loop_68) + '#hasheq() + (unsafe-immutable-hash-iterate-first ht_56)))) + shifted-multi-scope? + (seteq) + (seteq))) + ((dest-smss_0 dest-scs_0) + (set-partition + (let-values (((ht_57) dest-scopes_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_57))) + ((letrec-values (((for-loop_69) + (lambda (table_77 i_74) + (begin + 'for-loop + (if i_74 + (let-values (((sc_24) + (unsafe-immutable-hash-iterate-key ht_57 i_74))) + (let-values (((table_78) + (let-values (((table_79) table_77)) + (let-values (((table_80) + (let-values () + (let-values (((key_35 val_20) + (let-values () + (values + (let-values () + (generalize-scope + sc_24)) + #t)))) + (hash-set + table_79 + key_35 + val_20))))) + (values table_80))))) + (if (not #f) + (for-loop_69 + table_78 + (unsafe-immutable-hash-iterate-next ht_57 i_74)) + table_78))) + table_77))))) + for-loop_69) + '#hasheq() + (unsafe-immutable-hash-iterate-first ht_57)))) + 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_22) + (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_22) r_22)))))))) + (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_23) + (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_23) r_23)))))))) + (let-values (((s_150) s_149) + ((f_37) (lambda (tail?_41 d_7) (begin 'f d_7))) + ((d->s_3) + (lambda (s_151 d_8) + (begin + 'd->s + (let-values (((the-struct_24) s_151)) + (if (syntax?$1 the-struct_24) + (let-values (((content*78_0) (re-modify-content s_151 d_8)) + ((scopes79_0) (swap-scs_0 (syntax-scopes s_151))) + ((shifted-multi-scopes80_0) + (swap-smss_0 (syntax-shifted-multi-scopes s_151)))) + (syntax2.1 + content*78_0 + scopes79_0 + shifted-multi-scopes80_0 + (syntax-mpi-shifts the-struct_24) + (1/syntax-srcloc the-struct_24) + (syntax-props the-struct_24) + (syntax-inspector the-struct_24))) + (raise-argument-error 'struct-copy "syntax?" the-struct_24)))))) + ((s-e_3) syntax-e$1) + ((seen_16) #f)) + ((letrec-values (((loop_70) + (lambda (s_152) + (begin + 'loop + (let-values (((s_153) s_152) + ((f_38) f_37) + ((gf_7) + (lambda (tail?_42 v_73) + (begin + 'gf + (if (syntax?$1 v_73) + (let-values () (d->s_3 v_73 (loop_70 (s-e_3 v_73)))) + (let-values () (f_37 tail?_42 v_73)))))) + ((seen_17) seen_16) + ((known-pairs_12) #f)) + ((letrec-values (((loop_71) + (lambda (tail?_43 s_154 prev-depth_8) + (begin + 'loop + (let-values (((depth_8) (fx+ 1 prev-depth_8))) + (if (if seen_17 (fx> depth_8 32) #f) + (let-values () + (datum-map-slow + tail?_43 + s_154 + (lambda (tail?_44 s_155) + (gf_7 tail?_44 s_155)) + seen_17 + known-pairs_12)) + (if (null? s_154) + (let-values () (f_38 tail?_43 s_154)) + (if (pair? s_154) + (let-values () + (f_38 + tail?_43 + (cons + (loop_71 #f (car s_154) depth_8) + (loop_71 1 (cdr s_154) depth_8)))) + (if (symbol? s_154) + (let-values () (f_38 #f s_154)) + (if (boolean? s_154) + (let-values () (f_38 #f s_154)) + (if (number? s_154) + (let-values () (f_38 #f s_154)) + (if (let-values (((or-part_131) + (vector? s_154))) + (if or-part_131 + or-part_131 + (let-values (((or-part_132) + (box? s_154))) + (if or-part_132 + or-part_132 + (let-values (((or-part_133) + (prefab-struct-key + s_154))) + (if or-part_133 + or-part_133 + (hash? s_154))))))) + (let-values () + (datum-map-slow + tail?_43 + s_154 + (lambda (tail?_45 s_156) + (gf_7 tail?_45 s_156)) + seen_17 + known-pairs_12)) + (let-values () + (gf_7 #f s_154)))))))))))))) + loop_71) + #f + s_153 + 0)))))) + loop_70) + s_150))))))))))))) + (define-values + (syntax-scope-set) + (lambda (s_157 phase_15) + (begin (scope-set-at-fallback s_157 (fallback-first (syntax-shifted-multi-scopes s_157)) phase_15)))) + (define-values + (scope-set-at-fallback) + (lambda (s_158 smss_24 phase_16) + (begin + (let-values (((ht_58) smss_24)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_58))) + ((letrec-values (((for-loop_70) + (lambda (scopes_10 i_75) + (begin + 'for-loop + (if i_75 + (let-values (((sms_10) (unsafe-immutable-hash-iterate-key ht_58 i_75))) + (let-values (((scopes_11) + (let-values (((scopes_12) scopes_10)) + (if (let-values (((or-part_134) (label-phase? phase_16))) + (if or-part_134 + or-part_134 + (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_16)))))))) + (values scopes_14))) + scopes_12)))) + (if (not #f) + (for-loop_70 scopes_11 (unsafe-immutable-hash-iterate-next ht_58 i_75)) + scopes_11))) + scopes_10))))) + for-loop_70) + (syntax-scopes s_158) + (unsafe-immutable-hash-iterate-first ht_58))))))) + (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_59) scopes_15)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_59))) + ((letrec-values (((for-loop_71) + (lambda (max-sc_0 i_76) + (begin + 'for-loop + (if i_76 + (let-values (((sc_25) (unsafe-immutable-hash-iterate-key ht_59 i_76))) + (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_71 max-sc_1 (unsafe-immutable-hash-iterate-next ht_59 i_76)) + max-sc_1))) + max-sc_0))))) + for-loop_71) + (set-first scopes_15) + (unsafe-immutable-hash-iterate-first ht_59)))))))) + (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_7) + (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_7) (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_8) + (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_8) (clear-resolve-cache!))))))))))) + (define-values + (syntax-any-macro-scopes?) + (lambda (s_159) + (begin + (let-values (((ht_60) (syntax-scopes s_159))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_60))) + ((letrec-values (((for-loop_72) + (lambda (result_38 i_77) + (begin + 'for-loop + (if i_77 + (let-values (((sc_26) (unsafe-immutable-hash-iterate-key ht_60 i_77))) + (let-values (((result_39) + (let-values () + (let-values (((result_40) + (let-values () + (let-values () (eq? (scope-kind sc_26) 'macro))))) + (values result_40))))) + (if (if (not ((lambda x_30 result_39) sc_26)) (not #f) #f) + (for-loop_72 result_39 (unsafe-immutable-hash-iterate-next ht_60 i_77)) + result_39))) + result_38))))) + for-loop_72) + #f + (unsafe-immutable-hash-iterate-first ht_60))))))) + (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_160) s32_0)) + (let-values (((phase_17) 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_6) extra-shifts27_0)) + (let-values () + (let-values (((sym_17) (syntax-content s_160))) + ((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_17 + (syntax-scopes s_160) + (fallback-first smss_25)) + #f) + #f))) + (if c1_21 + ((lambda (b_42) + (if (eq? b_42 '#:none) + (let-values () + (if (fallback? smss_25) + (fallback-loop_0 (fallback-rest smss_25)) + #f)) + (let-values () b_42))) + c1_21) + (let-values () + (let-values (((scopes_18) + (scope-set-at-fallback + s_160 + (fallback-first smss_25) + phase_17))) + (let-values (((best-scopes_0 best-binding_0) + (let-values (((ht_61) scopes_18)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-immutable-hash-keys ht_61))) + ((letrec-values (((for-loop_73) + (lambda (best-scopes_1 + best-binding_1 + i_78) + (begin + 'for-loop + (if i_78 + (let-values (((sc_27) + (unsafe-immutable-hash-iterate-key + ht_61 + i_78))) + (let-values (((best-scopes_2 + best-binding_2) + (let-values (((ht_62 + bulk-bindings_2) + (let-values (((table_81) + (scope-binding-table + sc_27))) + (if (hash? + table_81) + (values + (hash-ref + table_81 + sym_17 + '#hash()) + null) + (values + (hash-ref + (table-with-bulk-bindings-syms + table_81) + sym_17 + '#hash()) + (table-with-bulk-bindings-bulk-bindings + table_81))))) + ((s_161) + s_160) + ((extra-shifts_7) + extra-shifts_6)) + (begin + #t + ((letrec-values (((for-loop_74) + (lambda (best-scopes_3 + best-binding_3 + i_79) + (begin + 'for-loop + (if (not + (null? + i_79)) + (let-values (((b-scopes_0) + (if (pair? + i_79) + (let-values () + (bulk-binding-at-scopes + (car + i_79))) + (let-values () + (hash-iterate-key + ht_62 + i_79)))) + ((binding_4) + (if (pair? + i_79) + (let-values () + (let-values (((bulk_3) + (bulk-binding-at-bulk + (car + i_79)))) + (let-values (((b-info_0) + (if (symbol-interned? + sym_17) + (hash-ref + (bulk-binding-symbols + bulk_3 + s_161 + extra-shifts_7) + 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_62 + i_79))))) + (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_51) + best-scopes_6)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_51))) + ((letrec-values (((for-loop_75) + (lambda (result_41 + lst_52) + (begin + 'for-loop + (if (pair? + lst_52) + (let-values (((amb-scopes_0) + (unsafe-car + lst_52)) + ((rest_23) + (unsafe-cdr + lst_52))) + (let-values (((result_42) + (let-values () + (let-values (((result_43) + (let-values () + (let-values () + (subset? + amb-scopes_0 + b-scopes_0))))) + (values + result_43))))) + (if (if (not + ((lambda x_31 + (not + result_42)) + amb-scopes_0)) + (not + #f) + #f) + (for-loop_75 + result_42 + rest_23) + result_42))) + result_41))))) + for-loop_75) + #t + lst_51))) + (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_74 + best-scopes_4 + best-binding_4 + (if (pair? + i_79) + (let-values () + (cdr + i_79)) + (let-values () + (let-values (((or-part_135) + (hash-iterate-next + ht_62 + i_79))) + (if or-part_135 + or-part_135 + bulk-bindings_2))))) + (values + best-scopes_4 + best-binding_4)))) + (values + best-scopes_3 + best-binding_3)))))) + for-loop_74) + best-scopes_1 + best-binding_1 + (let-values (((or-part_136) + (hash-iterate-first + ht_62))) + (if or-part_136 + or-part_136 + bulk-bindings_2))))))) + (if (not #f) + (for-loop_73 + best-scopes_2 + best-binding_2 + (unsafe-immutable-hash-iterate-next + ht_61 + i_78)) + (values + best-scopes_2 + best-binding_2)))) + (values + best-scopes_1 + best-binding_1)))))) + for-loop_73) + #f + #f + (unsafe-immutable-hash-iterate-first ht_61)))))) + (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_17 + (syntax-scopes s_160) + (fallback-first smss_25) + best-binding_0) + (if (let-values (((or-part_137) (not exactly?_0))) + (if or-part_137 + or-part_137 + (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_17 + (syntax-scopes s_160) + (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_160))))))))))))) + (define-values + (bound-identifier=?$1) + (lambda (a_23 b_43 phase_18) + (begin + 'bound-identifier=? + (if (eq? (syntax-e$1 a_23) (syntax-e$1 b_43)) + (equal? (syntax-scope-set a_23 phase_18) (syntax-scope-set b_43 phase_18)) + #f)))) + (define-values + (local-binding?) + (lambda (b_44) + (begin (let-values (((or-part_1) (full-local-binding? b_44))) (if or-part_1 or-part_1 (symbol? b_44)))))) + (define-values + (struct:full-local-binding full-local-binding1.1 full-local-binding? full-local-binding-key) + (let-values (((struct:_23 make-_23 ?_23 -ref_23 -set!_23) + (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_23 ser-push!_14 state_24) + (begin + (ser-push!_14 'tag '#:local-binding) + (ser-push!_14 (full-local-binding-key b_23)) + (ser-push!_14 (full-binding-free=id b_23)))))) + (current-inspector) + #f + '(0) + #f + 'full-local-binding))))) + (values struct:_23 make-_23 ?_23 (make-struct-field-accessor -ref_23 0 'key)))) + (define-values + (deserialize-full-local-binding) + (lambda (key_36 free=id_3) (begin (full-local-binding1.1 #f free=id_3 key_36)))) + (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_45) b14_0)) + (let-values (((key_38) (if (eq? key8_0 unsafe-undefined) (local-binding-key b_45) key8_0))) + (let-values (((frame-id_3) (if (eq? frame-id9_0 unsafe-undefined) (binding-frame-id b_45) frame-id9_0))) + (let-values (((free=id_5) (if (eq? free=id10_0 unsafe-undefined) (binding-free=id b_45) 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_46) (begin (if (full-local-binding? b_46) (full-local-binding-key b_46) b_46)))) + (define-values + (1/prop:rename-transformer 1/rename-transformer? rename-transformer-value) + (make-struct-type-property + 'rename-transformer + (lambda (v_28 info_0) + (let-values ((() + (begin + (if (let-values (((or-part_12) (exact-nonnegative-integer? v_28))) + (if or-part_12 + or-part_12 + (let-values (((or-part_3) (identifier? v_28))) + (if or-part_3 or-part_3 (if (procedure? v_28) (procedure-arity-includes? v_28 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_28))) + (values)))) + (let-values ((() + (begin + (if (exact-nonnegative-integer? v_28) + (let-values () + (begin + (if (<= v_28 (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_28 + "initialized-field count" + (list-ref info_0 1)))) + (if (member v_28 (list-ref info_0 5)) + (void) + (let-values () + (raise-arguments-error + 'guard-for-prop:rename-transformer + "field index not declared immutable" + "field index" + v_28))))) + (void)) + (values)))) + (let-values (((ref_0) (list-ref info_0 3))) + (if (identifier? v_28) + (let-values () (lambda (t_9) v_28)) + (if (integer? v_28) + (let-values () + (lambda (t_10) + (let-values (((val_14) (ref_0 t_10 v_28))) + (if (identifier? val_14) val_14 (datum->syntax$1 #f '?))))) + (let-values () + (lambda (t_11) + (let-values (((id_0) (call-with-continuation-barrier (lambda () (v_28 t_11))))) + (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:_24 make-_24 ?_24 -ref_24 -set!_24) + (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:_24 make-_24 ?_24 (make-struct-field-accessor -ref_24 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_12) (begin 'rename-transformer-target ((rename-transformer-value t_12) t_12)))) + (define-values + (free-identifier=?$1) + (lambda (a_18 b_15 a-phase_0 b-phase_0) + (begin + 'free-identifier=? + (let-values (((ab_0) + (toplevel-as-symbol + (let-values (((a39_0) a_18) ((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_15) ((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_82) (symbol? ab_0))) (if or-part_82 or-part_82 (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_47) + (begin + (if (if (module-binding? b_47) (top-level-module-path-index? (module-binding-module b_47)) #f) + (module-binding-sym b_47) + b_47)))) + (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+space-shift ab_2) + (module-binding-nominal-require-phase+space-shift 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_19) + (begin + 'identifier-binding-symbol + (let-values (((b_48) + (let-values (((id45_0) id_2) ((phase46_0) phase_19) ((temp47_0) #t)) + (resolve+shift.1 #f #f null unsafe-undefined temp47_0 id45_0 phase46_0)))) + (if (symbol? b_48) + (let-values () b_48) + (if (module-binding? b_48) + (let-values () (module-binding-sym b_48)) + (if (local-binding? b_48) (let-values () (local-binding-key b_48)) (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_20) phase3_0)) + (let-values (((top-level-symbol?_0) top-level-symbol?1_0)) + (let-values () + (let-values (((b_49) + (let-values (((id48_0) id_3) ((phase49_0) phase_20)) + (resolve+shift.1 #f #f null unsafe-undefined #f id48_0 phase49_0)))) + (if (module-binding? b_49) + (let-values () + (if (top-level-module-path-index? (module-binding-module b_49)) + (if top-level-symbol?_0 (list (module-binding-nominal-sym b_49)) #f) + (list + (module-binding-module b_49) + (module-binding-sym b_49) + (module-binding-nominal-module b_49) + (module-binding-nominal-sym b_49) + (module-binding-phase b_49) + (module-binding-nominal-require-phase+space-shift b_49) + (module-binding-nominal-phase+space b_49)))) + (if (local-binding? b_49) (let-values () 'lexical) (let-values () #f)))))))))))) + (case-lambda + ((id_4 phase_21) (begin 'identifier-binding (identifier-binding_0 id_4 phase_21 #f))) + ((id_5 phase_22 top-level-symbol?1_1) (identifier-binding_0 id_5 phase_22 top-level-symbol?1_1))))) + (define-values + (maybe-install-free=id!) + (lambda (val_21 id_6 phase_23) + (begin + (if (1/rename-transformer? val_21) + (let-values () + (let-values (((free=id_5) (1/rename-transformer-target val_21))) + (if (syntax-property$1 free=id_5 'not-free-identifier=?) + (void) + (let-values () + (let-values (((b_50) + (let-values (((id53_0) id_6) ((phase54_0) phase_23) ((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_23)) + ((temp51_0) (syntax-e$1 id_6)) + ((temp52_0) (binding-set-free=id b_50 free=id_5))) + (add-binding-in-scopes!.1 #f temp50_0 temp51_0 temp52_0))))))) + (void))))) + (define-values + (binding-set-free=id) + (lambda (b_51 free=id_6) + (begin + (if (module-binding? b_51) + (let-values () + (let-values (((b57_0) b_51) ((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_51) + (let-values () + (let-values (((b59_1) b_51) ((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_51))))))) + (define-values + (struct:non-source-shift non-source-shift4.1 non-source-shift? non-source-shift-from non-source-shift-to) + (let-values (((struct:_25 make-_25 ?_25 -ref_25 -set!_25) + (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:_25 + make-_25 + ?_25 + (make-struct-field-accessor -ref_25 0 'from) + (make-struct-field-accessor -ref_25 1 'to)))) + (define-values (shift-from) (lambda (s_162) (begin (if (pair? s_162) (car s_162) (non-source-shift-from s_162))))) + (define-values (shift-to) (lambda (s_163) (begin (if (pair? s_163) (cdr s_163) (non-source-shift-to s_163))))) + (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_36) 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_36 inspector_3) s_36)) + (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*_13) (syntax-content* s_36))) + (let-values (((content_15) + (if (modified-content? content*_13) + (modified-content-content content*_13) + content*_13))) + (let-values (((the-struct_25) s_36)) + (if (syntax?$1 the-struct_25) + (let-values (((mpi-shifts62_0) (shift-cons shift_0 (syntax-mpi-shifts s_36))) + ((inspector63_0) + (let-values (((or-part_138) (syntax-inspector s_36))) + (if or-part_138 or-part_138 inspector_3))) + ((content*64_0) + (if (datum-has-elements? content_15) + (modified-content1.1 + content_15 + (propagation-mpi-shift + (if (modified-content? content*_13) + (modified-content-scope-propagations+taint content*_13) + #f) + (lambda (s_22) (shift-cons shift_0 s_22)) + inspector_3 + (syntax-scopes s_36) + (syntax-shifted-multi-scopes s_36) + (syntax-mpi-shifts s_36))) + content*_13))) + (syntax2.1 + content*64_0 + (syntax-scopes the-struct_25) + (syntax-shifted-multi-scopes the-struct_25) + mpi-shifts62_0 + (1/syntax-srcloc the-struct_25) + (syntax-props the-struct_25) + inspector63_0)) + (raise-argument-error 'struct-copy "syntax?" the-struct_25))))))))))))))))) + (define-values + (shift-cons) + (lambda (shift_1 shifts_1) + (begin + (if (if (pair? shifts_1) (eq? (shift-from shift_1) (shift-from (car shifts_1))) #f) + (let-values () shifts_1) + (let-values () (cons shift_1 shifts_1)))))) + (define-values + (resolve+shift.1) + (lambda (ambiguous-value12_0 exactly?13_0 extra-shifts16_0 immediate?14_0 unbound-sym?15_0 s22_1 phase23_0) + (begin + 'resolve+shift + (let-values (((s_30) s22_1)) + (let-values (((phase_24) 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_8) extra-shifts16_0)) + (let-values () + (let-values (((can-cache?_0) + (if (not exactly?_1) (if (not immediate?_0) (null? extra-shifts_8) #f) #f))) + (let-values (((c1_22) (if can-cache?_0 (resolve+shift-cache-get s_30 phase_24) #f))) + (if c1_22 + ((lambda (b_52) (if (eq? b_52 '#:none) (if unbound-sym?_0 (syntax-content s_30) #f) b_52)) + c1_22) + (let-values () + (let-values (((immediate-b_0) + (let-values (((s65_0) s_30) + ((phase66_0) phase_24) + ((ambiguous-value67_0) ambiguous-value_1) + ((exactly?68_0) exactly?_1) + ((extra-shifts69_0) extra-shifts_8)) + (resolve.1 + ambiguous-value67_0 + exactly?68_0 + extra-shifts69_0 + #f + s65_0 + phase66_0)))) + (let-values (((b_53) + (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_24) + ((temp72_0) + (append extra-shifts_8 (syntax-mpi-shifts s_30))) + ((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_53) + (let-values () + (let-values (((mpi-shifts_2) (syntax-mpi-shifts s_30))) + (if (null? mpi-shifts_2) + (let-values () b_53) + (let-values () + (let-values (((mod_0) (module-binding-module b_53))) + (let-values (((shifted-mod_0) (apply-syntax-shifts mod_0 mpi-shifts_2))) + (let-values (((nominal-mod_0) (module-binding-nominal-module b_53))) + (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_53)) + (null? + (module-binding-extra-nominal-bindings + b_53)) + #f) + #f) + #f) + b_53 + (let-values (((b76_0) b_53) + ((shifted-mod77_0) shifted-mod_0) + ((shifted-nominal-mod78_0) + shifted-nominal-mod_0) + ((temp79_0) + (if (binding-free=id b_53) + (let-values (((temp81_1) + (binding-free=id + b_53)) + ((s82_0) s_30)) + (syntax-transfer-shifts.1 + #f + temp81_1 + s82_0 + #f)) + #f)) + ((temp80_0) + (reverse$1 + (let-values (((lst_53) + (module-binding-extra-nominal-bindings + b_53))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_53))) + ((letrec-values (((for-loop_76) + (lambda (fold-var_36 + lst_54) + (begin + 'for-loop + (if (pair? + lst_54) + (let-values (((b_54) + (unsafe-car + lst_54)) + ((rest_24) + (unsafe-cdr + lst_54))) + (let-values (((fold-var_37) + (let-values (((fold-var_38) + fold-var_36)) + (let-values (((fold-var_39) + (let-values () + (cons + (let-values () + (apply-syntax-shifts-to-binding + b_54 + mpi-shifts_2)) + fold-var_38)))) + (values + fold-var_39))))) + (if (not + #f) + (for-loop_76 + fold-var_37 + rest_24) + fold-var_37))) + fold-var_36))))) + for-loop_76) + null + lst_53)))))) + (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_30 phase_24 result-b_0)) + (void)) + result-b_0)))))))))) + (if (like-ambiguous-binding? b_53) + (let-values () (if unbound-sym?_0 (syntax-content s_30) ambiguous-value_1)) + (let-values () + (begin + (if can-cache?_0 + (let-values () + (resolve+shift-cache-set! + s_30 + phase_24 + (let-values (((or-part_139) b_53)) + (if or-part_139 or-part_139 '#:none)))) + (void)) + (let-values (((or-part_52) b_53)) + (if or-part_52 + or-part_52 + (if unbound-sym?_0 (syntax-content s_30) #f)))))))))))))))))))))))) + (define-values + (apply-syntax-shifts) + (lambda (mpi_14 shifts_2) + (begin + (if (null? shifts_2) + (let-values () mpi_14) + (let-values () + (let-values (((shifted-mpi_1) (apply-syntax-shifts mpi_14 (cdr shifts_2)))) + (let-values (((shift_2) (car shifts_2))) + (module-path-index-shift shifted-mpi_1 (shift-from shift_2) (shift-to shift_2))))))))) + (define-values + (apply-syntax-shifts-to-binding) + (lambda (b_55 shifts_3) + (begin + (if (null? shifts_3) + (let-values () b_55) + (let-values () + (let-values (((shifted-b_0) (apply-syntax-shifts-to-binding b_55 (cdr shifts_3)))) + (let-values (((shift_3) (car shifts_3))) + (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_56 from-mpi_2 to-mpi_2) + (begin + (if (module-binding? b_56) + (let-values () + (let-values (((b83_0) b_56) + ((temp84_0) (module-path-index-shift (module-binding-module b_56) from-mpi_2 to-mpi_2)) + ((temp85_0) (module-path-index-shift (module-binding-nominal-module b_56) from-mpi_2 to-mpi_2)) + ((temp86_0) + (reverse$1 + (let-values (((lst_55) (module-binding-extra-nominal-bindings b_56))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_55))) + ((letrec-values (((for-loop_77) + (lambda (fold-var_40 lst_56) + (begin + 'for-loop + (if (pair? lst_56) + (let-values (((b_57) (unsafe-car lst_56)) + ((rest_25) (unsafe-cdr lst_56))) + (let-values (((fold-var_41) + (let-values (((fold-var_42) fold-var_40)) + (let-values (((fold-var_43) + (let-values () + (cons + (let-values () + (binding-module-path-index-shift + b_57 + from-mpi_2 + to-mpi_2)) + fold-var_42)))) + (values fold-var_43))))) + (if (not #f) (for-loop_77 fold-var_41 rest_25) fold-var_41))) + fold-var_40))))) + for-loop_77) + null + lst_55)))))) + (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_56))))) + (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_1) 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_1)) + ((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_4) shifts35_0)) + (let-values (((inspector_5) inspector33_0)) + (let-values (((non-source?_2) non-source?31_0)) + (let-values () + (if (if (null? shifts_4) inspector_5 #f) + (let-values () (syntax-set-inspector to-s_1 inspector_5)) + (let-values () + (let-values (((lst_57) (reverse$1 shifts_4)) ((start_15) 0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_57))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_15))) + ((letrec-values (((for-loop_78) + (lambda (s_164 lst_58 pos_12) + (begin + 'for-loop + (if (if (pair? lst_58) #t #f) + (let-values (((shift_4) (unsafe-car lst_58)) + ((rest_26) (unsafe-cdr lst_58)) + ((i_80) pos_12)) + (let-values (((s_165) + (let-values (((s_166) s_164)) + (let-values (((s_167) + (let-values () + (let-values (((s91_0) s_166) + ((temp92_0) + (shift-from shift_4)) + ((temp93_0) + (shift-to shift_4)) + ((temp94_0) + (if (zero? i_80) + 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_167))))) + (if (not #f) (for-loop_78 s_165 rest_26 (+ pos_12 1)) s_165))) + s_164))))) + for-loop_78) + to-s_1 + lst_57 + start_15))))))))))))) + (define-values + (syntax-set-inspector) + (lambda (s_168 insp_2) + (begin + (let-values (((content*_14) (syntax-content* s_168))) + (let-values (((content_16) + (if (modified-content? content*_14) (modified-content-content content*_14) content*_14))) + (let-values (((the-struct_26) s_168)) + (if (syntax?$1 the-struct_26) + (let-values (((inspector96_0) + (let-values (((or-part_140) (syntax-inspector s_168))) (if or-part_140 or-part_140 insp_2))) + ((content*97_0) + (if (datum-has-elements? content_16) + (modified-content1.1 + content_16 + (propagation-mpi-shift + (if (modified-content? content*_14) + (modified-content-scope-propagations+taint content*_14) + #f) + #f + insp_2 + (syntax-scopes s_168) + (syntax-shifted-multi-scopes s_168) + (syntax-mpi-shifts s_168))) + content*_14))) + (syntax2.1 + content*97_0 + (syntax-scopes the-struct_26) + (syntax-shifted-multi-scopes the-struct_26) + (syntax-mpi-shifts the-struct_26) + (1/syntax-srcloc the-struct_26) + (syntax-props the-struct_26) + inspector96_0)) + (raise-argument-error 'struct-copy "syntax?" the-struct_26)))))))) + (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_169) s38_0)) + (let-values (((source?_0) source?37_0)) + (let-values () + (begin + (if (syntax?$1 s_169) + (void) + (let-values () (raise-argument-error 'syntax-track-origin "syntax?" s_169))) + (let-values (((lst_59) (reverse$1 (syntax-mpi-shifts s_169)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_59))) + ((letrec-values (((for-loop_79) + (lambda (result_44 lst_60) + (begin + 'for-loop + (if (pair? lst_60) + (let-values (((shift_5) (unsafe-car lst_60)) + ((rest_27) (unsafe-cdr lst_60))) + (let-values (((result_45) + (let-values (((result_46) result_44)) + (if (non-source-shift? shift_5) + result_46 + (let-values () + (let-values (((result_47) + (let-values () + (let-values () + (let-values (((from-mpi_3) + (car + shift_5))) + (let-values (((path_8 + base_15) + (1/module-path-index-split + from-mpi_3))) + (if (not path_8) + (if (module-path-index-resolved + from-mpi_3) + (let-values (((mpi_15) + (apply-syntax-shifts + from-mpi_3 + (syntax-mpi-shifts + s_169)))) + (if source?_0 + (1/resolved-module-path-name + (1/module-path-index-resolve + mpi_15 + #f)) + mpi_15)) + #f) + #f))))))) + (values result_47))))))) + (if (if (not ((lambda x_32 result_45) shift_5)) (not #f) #f) + (for-loop_79 result_45 rest_27) + result_45))) + result_44))))) + for-loop_79) + #f + lst_59))))))))))) + (case-lambda + ((s_170) (begin 'syntax-source-module (syntax-source-module_0 s_170 #f))) + ((s_171 source?37_1) (syntax-source-module_0 s_171 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_27) (datum->syntax$1 #f (syntax-e$1 id_7) id_7 id_7))) + (if (syntax?$1 the-struct_27) + (let-values (((mpi-shifts98_0) (syntax-mpi-shifts id_7))) + (syntax2.1 + (syntax-content* the-struct_27) + (syntax-scopes the-struct_27) + (syntax-shifted-multi-scopes the-struct_27) + mpi-shifts98_0 + (1/syntax-srcloc the-struct_27) + (syntax-props the-struct_27) + (syntax-inspector the-struct_27))) + (raise-argument-error 'struct-copy "syntax?" the-struct_27))))))) + (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_19 ser-push!_4 state_13) + (begin + (ser-push!_4 'tag '#:provided) + (ser-push!_4 (provided-binding p_19)) + (ser-push!_4 (provided-protected? p_19)) + (ser-push!_4 (provided-syntax? p_19)))))) + #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_47) (begin (if (provided? v_47) (provided-binding v_47) v_47)))) + (define-values (provided-as-protected?) (lambda (v_74) (begin (if (provided? v_74) (provided-protected? v_74) #f)))) + (define-values (provided-as-transformer?) (lambda (v_1) (begin (if (provided? v_1) (provided-syntax? v_1) #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+space-shift4_0 provide-phase+space3_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_16) mpi2_0)) + (let-values (((provide-phase+space_0) provide-phase+space3_0)) + (let-values (((phase+space-shift_1) phase+space-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_16)) + ((mpi17_0) mpi_16) + ((provide-phase+space18_0) provide-phase+space_0) + ((sym19_2) sym_18) + ((phase+space-shift20_0) phase+space-shift_1) + ((temp21_2) #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_2 + unsafe-undefined + temp16_1 + mpi17_0 + provide-phase+space18_0 + phase+space-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+space + bulk-binding-phase+space-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_58 ser-push!_7 state_17) + (begin + (if (if (serialize-state-keep-provides? state_17) + ((serialize-state-keep-provides? state_17) b_58) + #f) + (let-values () + (begin + (ser-push!_7 'tag '#:bulk-binding+provides) + (ser-push!_7 (bulk-binding-provides b_58)) + (ser-push!_7 (bulk-binding-self b_58)))) + (let-values () (ser-push!_7 'tag '#:bulk-binding))) + (ser-push!_7 (bulk-binding-prefix b_58)) + (ser-push!_7 (bulk-binding-excepts b_58)) + (ser-push!_7 (bulk-binding-mpi b_58)) + (ser-push!_7 (bulk-binding-provide-phase+space b_58)) + (ser-push!_7 (bulk-binding-phase+space-shift b_58)) + (ser-push!_7 'tag '#:bulk-binding-registry)))) + (cons + prop:bulk-binding + (bulk-binding-class3.1 + (lambda (b_59 mpi-shifts_3) + (let-values (((or-part_141) (bulk-binding-provides b_59))) + (if or-part_141 + or-part_141 + (let-values (((mod-name_1) (bulk-binding-module-name b_59 mpi-shifts_3))) + (let-values ((() + (begin + (if (bulk-binding-bulk-binding-registry b_59) + (void) + (let-values () + (error + "namespace mismatch: no bulk-binding registry available:" + mod-name_1))) + (values)))) + (let-values (((table_82) + (bulk-binding-registry-table + (bulk-binding-bulk-binding-registry b_59)))) + (let-values (((bulk-provide_0) (hash-ref table_82 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_59 (bulk-provide-self bulk-provide_0)) + (values)))) + (let-values (((provides_0) + (hash-ref + (bulk-provide-provides bulk-provide_0) + (bulk-binding-provide-phase+space b_59) + '#hasheq()))) + (let-values (((excepts_0) (bulk-binding-excepts b_59))) + (let-values (((prefix_0) (bulk-binding-prefix b_59))) + (let-values (((adjusted-provides_0) + (if (let-values (((or-part_142) prefix_0)) + (if or-part_142 + or-part_142 + (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_59 adjusted-provides_0) + adjusted-provides_0)))))))))))))) + (lambda (b_60 binding_7 sym_4) + (let-values (((binding25_0) binding_7) + ((temp26_1) + (if (bulk-binding-prefix b_60) + (string->symbol + (substring + (symbol->string sym_4) + (string-length (symbol->string (bulk-binding-prefix b_60))))) + sym_4)) + ((temp27_0) (bulk-binding-self b_60)) + ((temp28_1) (bulk-binding-mpi b_60)) + ((temp29_0) (bulk-binding-provide-phase+space b_60)) + ((temp30_0) (bulk-binding-phase+space-shift b_60))) + (provide-binding-to-require-binding.1 + temp28_1 + temp30_0 + temp29_0 + temp27_0 + binding25_0 + temp26_1))) + (lambda (b_61 mpi-shifts_4) (bulk-binding-module-name b_61 mpi-shifts_4))))) + (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+space) + (make-struct-field-accessor -ref_26 6 'phase+space-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_17 provide-phase+space_1 phase-level_1 bulk-binding-registry_0) + (begin + (bulk-binding12.1 + #f + prefix_1 + excepts_1 + #f + mpi_17 + (intern-phase+space provide-phase+space_1) + phase-level_1 + bulk-binding-registry_0)))) + (define-values + (deserialize-bulk-binding+provides) + (lambda (provides_1 self_2 prefix_2 excepts_2 mpi_18 provide-phase+space_2 phase-level_2 bulk-binding-registry_1) + (begin + (bulk-binding12.1 + provides_1 + prefix_2 + excepts_2 + self_2 + mpi_18 + (intern-phase+space provide-phase+space_2) + phase-level_2 + bulk-binding-registry_1)))) + (define-values + (bulk-provides-add-prefix-remove-exceptions) + (lambda (provides_2 prefix_3 excepts_3) + (begin + (let-values (((ht_63) provides_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_63))) + ((letrec-values (((for-loop_80) + (lambda (table_22 i_81) + (begin + 'for-loop + (if i_81 + (let-values (((sym_19 val_22) (hash-iterate-key+value ht_63 i_81))) + (let-values (((table_83) + (let-values (((table_23) table_22)) + (if (hash-ref excepts_3 sym_19 #f) + table_23 + (let-values (((table_84) table_23)) + (if (symbol-interned? sym_19) + (let-values (((table_85) table_84)) + (let-values (((table_86) + (let-values () + (let-values (((key_39 val_23) + (let-values () + (values + (if prefix_3 + (string->symbol + (format + "~a~a" + prefix_3 + sym_19)) + sym_19) + val_22)))) + (hash-set table_85 key_39 val_23))))) + (values table_86))) + table_84)))))) + (if (not #f) (for-loop_80 table_83 (hash-iterate-next ht_63 i_81)) table_83))) + table_22))))) + for-loop_80) + '#hash() + (hash-iterate-first ht_63))))))) + (define-values + (bulk-binding-module-name) + (lambda (b_62 mpi-shifts_5) + (begin (1/module-path-index-resolve (apply-syntax-shifts (bulk-binding-mpi b_62) mpi-shifts_5))))) + (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_2 mod-name_2 self_3 provides_3) + (begin + (hash-set! + (bulk-binding-registry-table bulk-binding-registry_2) + mod-name_2 + (bulk-provide13.1 self_3 provides_3))))) + (define-values + (registered-bulk-provide?) + (lambda (bulk-binding-registry_3 mod-name_3) + (begin (if (hash-ref (bulk-binding-registry-table bulk-binding-registry_3) 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_67) (begin (root-expand-context/outer-post-expansion v_67)))) + (define-values + (root-expand-context-use-site-scopes) + (lambda (v_33) (begin (root-expand-context/outer-use-site-scopes v_33)))) + (define-values (root-expand-context-frame-id) (lambda (v_75) (begin (root-expand-context/outer-frame-id v_75)))) + (define-values + (root-expand-context-self-mpi) + (lambda (v_34) (begin (root-expand-context/inner-self-mpi (root-expand-context/outer-inner v_34))))) + (define-values + (root-expand-context-module-scopes) + (lambda (v_66) (begin (root-expand-context/inner-module-scopes (root-expand-context/outer-inner v_66))))) + (define-values + (root-expand-context-top-level-bind-scope) + (lambda (v_76) (begin (root-expand-context/inner-top-level-bind-scope (root-expand-context/outer-inner v_76))))) + (define-values + (root-expand-context-all-scopes-stx) + (lambda (v_77) (begin (root-expand-context/inner-all-scopes-stx (root-expand-context/outer-inner v_77))))) + (define-values + (root-expand-context-defined-syms) + (lambda (v_78) (begin (root-expand-context/inner-defined-syms (root-expand-context/outer-inner v_78))))) + (define-values + (root-expand-context-counter) + (lambda (v_79) (begin (root-expand-context/inner-counter (root-expand-context/outer-inner v_79))))) + (define-values + (root-expand-context-lift-key) + (lambda (v_80) (begin (root-expand-context/inner-lift-key (root-expand-context/outer-inner v_80))))) + (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_143) all-scopes-stx_1)) + (if or-part_143 or-part_143 (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_36) + (begin + (if (not pe_0) + (let-values () s_36) + (if (shifted-multi-scope? pe_0) + (let-values () (push-scope s_36 pe_0)) + (if (pair? pe_0) + (let-values () + (let-values (((temp16_2) (push-scope s_36 (car pe_0))) ((temp17_0) (cdr pe_0))) + (syntax-add-shifts.1 #f temp16_2 temp17_0 #f))) + (let-values () (pe_0 s_36)))))))) + (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_64) (root-expand-context-defined-syms ctx_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_64))) + ((letrec-values (((for-loop_25) + (lambda (table_87 i_82) + (begin + 'for-loop + (if i_82 + (let-values (((phase_25 ht_29) (hash-iterate-key+value ht_64 i_82))) + (let-values (((table_88) + (let-values (((table_15) table_87)) + (let-values (((table_89) + (let-values () + (let-values (((key_40 val_24) + (let-values () + (values phase_25 ht_29)))) + (hash-set table_15 key_40 val_24))))) + (values table_89))))) + (if (not #f) (for-loop_25 table_88 (hash-iterate-next ht_64 i_82)) table_88))) + table_87))))) + for-loop_25) + '#hasheqv() + (hash-iterate-first ht_64)))) + (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_2) + (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_2 + (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_81) + (begin + (let-values (((ht_65) v_81)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_65))) + ((letrec-values (((for-loop_9) + (lambda (result_48 i_83) + (begin + 'for-loop + (if i_83 + (let-values (((phase_26 ht-s_0) (hash-iterate-key+value ht_65 i_83))) + (let-values (((result_49) + (let-values () + (let-values (((result_50) + (let-values () + (let-values () + (if (phase? phase_26) + (if (hash? (syntax-e$1 ht-s_0)) + (let-values (((ht_66) (syntax-e$1 ht-s_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_66))) + ((letrec-values (((for-loop_81) + (lambda (result_51 i_84) + (begin + 'for-loop + (if i_84 + (let-values (((sym_20 + id_8) + (hash-iterate-key+value + ht_66 + i_84))) + (let-values (((result_52) + (let-values () + (let-values (((result_53) + (let-values () + (let-values () + (if (symbol? + sym_20) + (identifier? + id_8) + #f))))) + (values + result_53))))) + (if (if (not + ((lambda x_33 + (not + result_52)) + sym_20 + id_8)) + (not #f) + #f) + (for-loop_81 + result_52 + (hash-iterate-next + ht_66 + i_84)) + result_52))) + result_51))))) + for-loop_81) + #t + (hash-iterate-first ht_66)))) + #f) + #f))))) + (values result_50))))) + (if (if (not ((lambda x_34 (not result_49)) phase_26 ht-s_0)) (not #f) #f) + (for-loop_9 result_49 (hash-iterate-next ht_65 i_83)) + result_49))) + result_48))))) + for-loop_9) + #t + (hash-iterate-first ht_65))))))) + (define-values + (extract-scope-list) + (lambda (stx_5) (begin (map2 generalize-scope (set->list (syntax-scope-set stx_5 0)))))) + (define-values + (syntax-with-one-scope?) + (lambda (stx_6) (begin (if (syntax?$1 stx_6) (= 1 (set-count (syntax-scope-set stx_6 0))) #f)))) + (define-values + (extract-scope) + (lambda (stx_7) (begin (let-values (((s_172) (syntax-scope-set stx_7 0))) (generalize-scope (set-first s_172)))))) + (define-values (extract-shifts) (lambda (stx_8) (begin (syntax-mpi-shifts stx_8)))) + (define-values + (unpack-defined-syms) + (lambda (v_82) + (begin + (hash-copy + (let-values (((ht_18) (syntax-e$1 v_82))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_18))) + ((letrec-values (((for-loop_4) + (lambda (table_90 i_23) + (begin + 'for-loop + (if i_23 + (let-values (((phase_27 ht-s_1) (hash-iterate-key+value ht_18 i_23))) + (let-values (((table_91) + (let-values (((table_92) table_90)) + (let-values (((table_93) + (let-values () + (let-values (((key_41 val_25) + (let-values () + (values + phase_27 + (hash-copy + (let-values (((ht_67) + (syntax-e$1 + ht-s_1))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash ht_67))) + ((letrec-values (((for-loop_82) + (lambda (table_31 + i_85) + (begin + 'for-loop + (if i_85 + (let-values (((sym_21 + id_9) + (hash-iterate-key+value + ht_67 + i_85))) + (let-values (((table_94) + (let-values (((table_95) + table_31)) + (let-values (((table_96) + (let-values () + (let-values (((key_42 + val_26) + (let-values () + (values + sym_21 + id_9)))) + (hash-set + table_95 + key_42 + val_26))))) + (values + table_96))))) + (if (not + #f) + (for-loop_82 + table_94 + (hash-iterate-next + ht_67 + i_85)) + table_94))) + table_31))))) + for-loop_82) + '#hash() + (hash-iterate-first + ht_67))))))))) + (hash-set table_92 key_41 val_25))))) + (values table_93))))) + (if (not #f) (for-loop_4 table_91 (hash-iterate-next ht_18 i_23)) table_91))) + table_90))))) + for-loop_4) + '#hasheqv() + (hash-iterate-first ht_18)))))))) + (define-values + (1/primitive-table) + (hash-ref + (let-values (((or-part_71) (primitive-table '#%bootstrap-linklet))) + (if or-part_71 or-part_71 (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_14) (primitive-table '#%bootstrap-linklet))) + (if or-part_14 or-part_14 (primitive-table '#%linklet))) + 'compiled-position->primitive + #f)) + (define-values + (1/primitive-in-category?) + (hash-ref + (let-values (((or-part_82) (primitive-table '#%bootstrap-linklet))) + (if or-part_82 or-part_82 (primitive-table '#%linklet))) + 'primitive-in-category? + #f)) + (define-values + (1/primitive-lookup) + (hash-ref + (let-values (((or-part_15) (primitive-table '#%bootstrap-linklet))) + (if or-part_15 or-part_15 (primitive-table '#%linklet))) + 'primitive-lookup + #f)) + (define-values + (linklet?$1) + (hash-ref + (let-values (((or-part_72) (primitive-table '#%bootstrap-linklet))) + (if or-part_72 or-part_72 (primitive-table '#%linklet))) + 'linklet? + #f)) + (define-values + (1/compile-linklet) + (hash-ref + (let-values (((or-part_83) (primitive-table '#%bootstrap-linklet))) + (if or-part_83 or-part_83 (primitive-table '#%linklet))) + 'compile-linklet + #f)) + (define-values + (recompile-linklet$1) + (hash-ref + (let-values (((or-part_58) (primitive-table '#%bootstrap-linklet))) + (if or-part_58 or-part_58 (primitive-table '#%linklet))) + 'recompile-linklet + #f)) + (define-values + (eval-linklet$1) + (hash-ref + (let-values (((or-part_34) (primitive-table '#%bootstrap-linklet))) + (if or-part_34 or-part_34 (primitive-table '#%linklet))) + 'eval-linklet + #f)) + (define-values + (instantiate-linklet$1) + (hash-ref + (let-values (((or-part_84) (primitive-table '#%bootstrap-linklet))) + (if or-part_84 or-part_84 (primitive-table '#%linklet))) + 'instantiate-linklet + #f)) + (define-values + (linklet-import-variables$1) + (hash-ref + (let-values (((or-part_73) (primitive-table '#%bootstrap-linklet))) + (if or-part_73 or-part_73 (primitive-table '#%linklet))) + 'linklet-import-variables + #f)) + (define-values + (linklet-export-variables$1) + (hash-ref + (let-values (((or-part_85) (primitive-table '#%bootstrap-linklet))) + (if or-part_85 or-part_85 (primitive-table '#%linklet))) + 'linklet-export-variables + #f)) + (define-values + (1/instance?) + (hash-ref + (let-values (((or-part_74) (primitive-table '#%bootstrap-linklet))) + (if or-part_74 or-part_74 (primitive-table '#%linklet))) + 'instance? + #f)) + (define-values + (1/make-instance) + (hash-ref + (let-values (((or-part_86) (primitive-table '#%bootstrap-linklet))) + (if or-part_86 or-part_86 (primitive-table '#%linklet))) + 'make-instance + #f)) + (define-values + (1/instance-name) + (hash-ref + (let-values (((or-part_87) (primitive-table '#%bootstrap-linklet))) + (if or-part_87 or-part_87 (primitive-table '#%linklet))) + 'instance-name + #f)) + (define-values + (1/instance-data) + (hash-ref + (let-values (((or-part_144) (primitive-table '#%bootstrap-linklet))) + (if or-part_144 or-part_144 (primitive-table '#%linklet))) + 'instance-data + #f)) + (define-values + (1/instance-variable-names) + (hash-ref + (let-values (((or-part_145) (primitive-table '#%bootstrap-linklet))) + (if or-part_145 or-part_145 (primitive-table '#%linklet))) + 'instance-variable-names + #f)) + (define-values + (1/instance-variable-value) + (hash-ref + (let-values (((or-part_4) (primitive-table '#%bootstrap-linklet))) + (if or-part_4 or-part_4 (primitive-table '#%linklet))) + 'instance-variable-value + #f)) + (define-values + (1/instance-set-variable-value!) + (hash-ref + (let-values (((or-part_5) (primitive-table '#%bootstrap-linklet))) + (if or-part_5 or-part_5 (primitive-table '#%linklet))) + 'instance-set-variable-value! + #f)) + (define-values + (1/instance-unset-variable!) + (hash-ref + (let-values (((or-part_6) (primitive-table '#%bootstrap-linklet))) + (if or-part_6 or-part_6 (primitive-table '#%linklet))) + 'instance-unset-variable! + #f)) + (define-values + (1/instance-describe-variable!) + (hash-ref + (let-values (((or-part_7) (primitive-table '#%bootstrap-linklet))) + (if or-part_7 or-part_7 (primitive-table '#%linklet))) + 'instance-describe-variable! + #f)) + (define-values + (1/linklet-virtual-machine-bytes) + (hash-ref + (let-values (((or-part_146) (primitive-table '#%bootstrap-linklet))) + (if or-part_146 or-part_146 (primitive-table '#%linklet))) + 'linklet-virtual-machine-bytes + #f)) + (define-values + (1/write-linklet-bundle-hash) + (hash-ref + (let-values (((or-part_35) (primitive-table '#%bootstrap-linklet))) + (if or-part_35 or-part_35 (primitive-table '#%linklet))) + 'write-linklet-bundle-hash + #f)) + (define-values + (1/read-linklet-bundle-hash) + (hash-ref + (let-values (((or-part_147) (primitive-table '#%bootstrap-linklet))) + (if or-part_147 or-part_147 (primitive-table '#%linklet))) + 'read-linklet-bundle-hash + #f)) + (define-values + (1/variable-reference?) + (hash-ref + (let-values (((or-part_75) (primitive-table '#%bootstrap-linklet))) + (if or-part_75 or-part_75 (primitive-table '#%linklet))) + 'variable-reference? + #f)) + (define-values + (1/variable-reference->instance) + (hash-ref + (let-values (((or-part_148) (primitive-table '#%bootstrap-linklet))) + (if or-part_148 or-part_148 (primitive-table '#%linklet))) + 'variable-reference->instance + #f)) + (define-values + (1/variable-reference-constant?) + (hash-ref + (let-values (((or-part_149) (primitive-table '#%bootstrap-linklet))) + (if or-part_149 or-part_149 (primitive-table '#%linklet))) + 'variable-reference-constant? + #f)) + (define-values + (1/variable-reference-from-unsafe?) + (hash-ref + (let-values (((or-part_88) (primitive-table '#%bootstrap-linklet))) + (if or-part_88 or-part_88 (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_24 proc_2) + (begin + (let-values (((lock-box_0) (module-registry-lock-box r_24))) + ((letrec-values (((loop_72) + (lambda () + (begin + 'loop + (let-values (((v_74) (unbox lock-box_0))) + (if (let-values (((or-part_71) (not v_74))) + (if or-part_71 + or-part_71 + (sync/timeout + 0 + (car v_74) + (let-values (((or-part_13) (weak-box-value (cdr v_74)))) + (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_74 lock_0) + (let-values () + (call-with-values + proc_2 + (lambda results_0 (lambda () (apply values results_0))))) + (let-values () (lambda () (loop_72))))) + (lambda () (semaphore-post sema_0))))))) + (if (eq? (current-thread) (weak-box-value (cdr v_74))) + (let-values () (proc_2)) + (let-values () + (begin + (sync + (car v_74) + (let-values (((or-part_72) (weak-box-value (cdr v_74)))) + (if or-part_72 or-part_72 never-evt))) + (loop_72)))))))))) + loop_72)))))) + (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 "#name ns_0))) + (void)) + (values)))) + (let-values (((0-phase_0) (namespace-0-phase ns_0))) + (let-values (((phase-level_3) (phase- (namespace-phase ns_0) 0-phase_0))) + (begin + (if (zero-phase? phase-level_3) + (void) + (let-values () (fprintf port_7 ":~s" phase-level_3))) + (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_28) (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_28 + phase_28 + (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_4) (namespace-root-namespace share-from-ns_0))) + (if or-part_4 or-part_4 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_28 ns_1)) + (void)) + ns_1)))))))))) + (define-values + (1/current-namespace) + (make-parameter + (make-namespace) + (lambda (v_83) + (begin + (if (1/namespace? v_83) (void) (let-values () (raise-argument-error 'current-namespace "namespace?" v_83))) + v_83)) + '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_19) (root-expand-context-self-mpi (namespace-get-root-expand-ctx ns_5)))) + (if (if mpi_19 (top-level-module-path-index? mpi_19) #f) #f mpi_19))))) + (define-values + (namespace->module) + (lambda (ns_6 name_18) + (begin + (let-values (((or-part_150) (small-hash-ref (namespace-submodule-declarations ns_6) name_18 #f))) + (if or-part_150 + or-part_150 + (hash-ref (module-registry-declarations (namespace-module-registry$1 ns_6)) name_18 #f)))))) + (define-values + (namespace->namespace-at-phase) + (lambda (ns_7 phase_29) + (begin + (let-values (((or-part_77) (small-hash-ref (namespace-phase-to-namespace ns_7) phase_29 #f))) + (if or-part_77 + or-part_77 + (let-values (((p-ns_0) + (let-values (((the-struct_28) ns_7)) + (if (1/namespace? the-struct_28) + (let-values (((phase17_0) phase_29) + ((root-namespace18_0) + (let-values (((or-part_9) (namespace-root-namespace ns_7))) + (if or-part_9 or-part_9 ns_7)))) + (namespace1.1 + (namespace-mpi the-struct_28) + (namespace-source-name the-struct_28) + (namespace-root-expand-ctx the-struct_28) + phase17_0 + (namespace-0-phase the-struct_28) + (namespace-phase-to-namespace the-struct_28) + (namespace-phase-level-to-definitions the-struct_28) + (namespace-module-registry$1 the-struct_28) + (namespace-bulk-binding-registry the-struct_28) + (namespace-submodule-declarations the-struct_28) + root-namespace18_0 + (namespace-declaration-inspector the-struct_28) + (namespace-inspector the-struct_28) + (namespace-available-module-instances the-struct_28) + (namespace-module-instances the-struct_28))) + (raise-argument-error 'struct-copy "namespace?" the-struct_28))))) + (begin (small-hash-set! (namespace-phase-to-namespace ns_7) phase_29 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_163) + (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_25) (1/resolved-module-path-name (1/module-path-index-resolve (namespace-mpi ns_8))))) + (if (pair? r_25) (string-append "(submod " s_163 " " (substring (format "~s" (cdr r_25)) 1)) s_163))))))) + (define-values + (namespace->definitions) + (lambda (ns_9 phase-level_4) + (begin + (let-values (((d_9) (small-hash-ref (namespace-phase-level-to-definitions ns_9) phase-level_4 #f))) + (let-values (((or-part_151) d_9)) + (if or-part_151 + or-part_151 + (let-values () + (let-values (((p-ns_1) + (namespace->namespace-at-phase ns_9 (phase+ (namespace-0-phase ns_9) phase-level_4)))) + (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_4 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_5) phase-level11_0)) + (let-values (((name_19) name12_0)) + (let-values (((val_27) val13_0)) + (let-values (((as-constant?_0) as-constant?9_0)) + (let-values () + (let-values (((d_11) (namespace->definitions ns_10 phase-level_5))) + (1/instance-set-variable-value! + (definitions-variables d_11) + name_19 + val_27 + (if as-constant?_0 'constant #f))))))))))))) + (case-lambda + ((ns_11 phase-level_6 name_20 val_28) (begin (namespace-set-variable!_0 ns_11 phase-level_6 name_20 val_28 #f))) + ((ns_12 phase-level_1 name_21 val_29 as-constant?9_1) + (namespace-set-variable!_0 ns_12 phase-level_1 name_21 val_29 as-constant?9_1))))) + (define-values + (namespace-set-consistent!) + (lambda (ns_13 phase-level_7 name_22 val_30) + (begin + (let-values (((d_12) (namespace->definitions ns_13 phase-level_7))) + (1/instance-set-variable-value! (definitions-variables d_12) name_22 val_30 'consistent))))) + (define-values + (namespace-unset-variable!) + (lambda (ns_14 phase-level_8 name_23) + (begin + (let-values (((d_13) (namespace->definitions ns_14 phase-level_8))) + (1/instance-unset-variable! (definitions-variables d_13) name_23))))) + (define-values + (namespace-set-transformer!) + (lambda (ns_15 phase-level_9 name_24 val_31) + (begin + (let-values (((d_14) (namespace->definitions ns_15 (add1 phase-level_9)))) + (hash-set! (definitions-transformers d_14) name_24 val_31))))) + (define-values + (namespace-unset-transformer!) + (lambda (ns_16 phase-level_10 name_25) + (begin + (let-values (((d_15) (namespace->definitions ns_16 (add1 phase-level_10)))) + (hash-remove! (definitions-transformers d_15) name_25))))) + (define-values + (namespace-get-variable) + (lambda (ns_17 phase-level_11 name_26 fail-k_0) + (begin + (let-values (((d_16) (namespace->definitions ns_17 phase-level_11))) + (1/instance-variable-value (definitions-variables d_16) name_26 fail-k_0))))) + (define-values + (namespace-get-transformer) + (lambda (ns_18 phase-level_12 name_27 fail-k_1) + (begin + (let-values (((d_17) (namespace->definitions ns_18 (add1 phase-level_12)))) + (hash-ref (definitions-transformers d_17) name_27 fail-k_1))))) + (define-values + (namespace->instance) + (lambda (ns_19 phase-shift_0) (begin (definitions-variables (namespace->definitions ns_19 phase-shift_0))))) + (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_73) + (lambda (s_1) + (begin + 'loop + (if (pair? s_1) + (let-values () (cons (car s_1) (loop_73 (cdr s_1)))) + (if (syntax?$1 s_1) + (let-values () (loop_73 (syntax-e$1 s_1))) + (let-values () s_1))))))) + loop_73) + 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_30) (syntax-e$1 old-stx_0))) + (if (pair? v_30) (car v_30) #f))) + id1_0))) + (let-values () + (let-values (((old-props_0) (hash-remove (syntax-props old-stx_0) original-property-sym))) + (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_29) new-stx_0)) + (if (syntax?$1 the-struct_29) + (let-values (((props4_0) (hash-set old-props_0 'origin origin_0))) + (syntax2.1 + (syntax-content* the-struct_29) + (syntax-scopes the-struct_29) + (syntax-shifted-multi-scopes the-struct_29) + (syntax-mpi-shifts the-struct_29) + (1/syntax-srcloc the-struct_29) + props4_0 + (syntax-inspector the-struct_29))) + (raise-argument-error 'struct-copy "syntax?" the-struct_29)))))) + (let-values () + (let-values (((the-struct_30) new-stx_0)) + (if (syntax?$1 the-struct_30) + (let-values (((props5_0) old-props_0)) + (syntax2.1 + (syntax-content* the-struct_30) + (syntax-scopes the-struct_30) + (syntax-shifted-multi-scopes the-struct_30) + (syntax-mpi-shifts the-struct_30) + (1/syntax-srcloc the-struct_30) + props5_0 + (syntax-inspector the-struct_30))) + (raise-argument-error 'struct-copy "syntax?" the-struct_30)))))) + (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_68) old-props-with-origin_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_68))) + ((letrec-values (((for-loop_83) + (lambda (new-props_1 i_86) + (begin + 'for-loop + (if i_86 + (let-values (((k_21 v_84) + (unsafe-immutable-hash-iterate-key+value + ht_68 + i_86))) + (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_84 + (cons/preserve + new-v_0 + v_84))))))) + (values + new-props_4))))) + (if (not #f) + (for-loop_83 + new-props_2 + (unsafe-immutable-hash-iterate-next + ht_68 + i_86)) + new-props_2))) + new-props_1))))) + for-loop_83) + new-props_0 + (unsafe-immutable-hash-iterate-first ht_68))))) + (let-values () + (let-values (((ht_69) new-props_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash ht_69))) + ((letrec-values (((for-loop_84) + (lambda (old-props_1 i_87) + (begin + 'for-loop + (if i_87 + (let-values (((k_22 v_76) + (unsafe-immutable-hash-iterate-key+value + ht_69 + i_87))) + (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_76 + (cons/preserve + v_76 + old-v_0))))))) + (values + old-props_4))))) + (if (not #f) + (for-loop_84 + old-props_2 + (unsafe-immutable-hash-iterate-next + ht_69 + i_87)) + old-props_2))) + old-props_1))))) + for-loop_84) + old-props-with-origin_0 + (unsafe-immutable-hash-iterate-first ht_69)))))))) + (let-values (((the-struct_31) new-stx_0)) + (if (syntax?$1 the-struct_31) + (let-values (((props6_0) updated-props_0)) + (syntax2.1 + (syntax-content* the-struct_31) + (syntax-scopes the-struct_31) + (syntax-shifted-multi-scopes the-struct_31) + (syntax-mpi-shifts the-struct_31) + (1/syntax-srcloc the-struct_31) + props6_0 + (syntax-inspector the-struct_31))) + (raise-argument-error + 'struct-copy + "syntax?" + the-struct_31))))))))))))))))))) + (case-lambda + ((new-stx_1 old-stx_1) (begin 'syntax-track-origin (syntax-track-origin_0 new-stx_1 old-stx_1 unsafe-undefined))) + ((new-stx_2 old-stx_2 id1_1) (syntax-track-origin_0 new-stx_2 old-stx_2 id1_1))))) + (define-values + (cons/preserve) + (lambda (a_24 b_50) + (begin + (if (let-values (((or-part_152) (preserved-property-value? a_24))) + (if or-part_152 or-part_152 (preserved-property-value? b_50))) + (preserved-property-value1.1 (cons (plain-property-value a_24) (plain-property-value b_50))) + (cons a_24 b_50))))) + (define-values + (syntax-track-origin*) + (lambda (old-stxes_0 new-stx_3) + (begin + (let-values (((lst_61) old-stxes_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_61))) + ((letrec-values (((for-loop_85) + (lambda (new-stx_4 lst_62) + (begin + 'for-loop + (if (pair? lst_62) + (let-values (((old-stx_3) (unsafe-car lst_62)) ((rest_28) (unsafe-cdr lst_62))) + (let-values (((new-stx_5) + (let-values (((new-stx_6) new-stx_4)) + (let-values (((new-stx_7) + (let-values () + (syntax-track-origin$1 new-stx_6 old-stx_3)))) + (values new-stx_7))))) + (if (not #f) (for-loop_85 new-stx_5 rest_28) new-stx_5))) + new-stx_4))))) + for-loop_85) + new-stx_3 + lst_61)))))) + (define-values + (struct:syntax-binding-set syntax-binding-set1.1 1/syntax-binding-set? syntax-binding-set-binds) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'syntax-binding-set + #f + 1 + 0 + #f + null + (current-inspector) + #f + '(0) + #f + 'syntax-binding-set))))) + (values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'binds)))) + (define-values + (struct:bind bind2.1 bind? bind-sym bind-phase bind-binding) + (let-values (((struct:_3 make-_3 ?_3 -ref_3 -set!_3) + (let-values () + (let-values () (make-struct-type 'bind #f 3 0 #f null (current-inspector) #f '(0 1 2) #f 'bind))))) + (values + struct:_3 + make-_3 + ?_3 + (make-struct-field-accessor -ref_3 0 'sym) + (make-struct-field-accessor -ref_3 1 'phase) + (make-struct-field-accessor -ref_3 2 'binding)))) + (define-values + (syntax-binding-set-extend$1) + (lambda (bs_2 + as-sym_0 + as-phase_0 + mpi_20 + sym_22 + phase_30 + nominal-mpi_0 + nominal-phase+space_3 + nominal-sym_3 + nominal-require-phase+space-shift_3 + inspector_6) + (begin + 'syntax-binding-set-extend + (let-values (((the-struct_3) bs_2)) + (if (1/syntax-binding-set? the-struct_3) + (let-values (((binds5_0) + (cons + (bind2.1 + as-sym_0 + as-phase_0 + (let-values (((mpi6_0) mpi_20) + ((phase7_0) phase_30) + ((sym8_0) sym_22) + ((inspector9_0) inspector_6) + ((nominal-mpi10_0) nominal-mpi_0) + ((nominal-phase+space11_0) nominal-phase+space_3) + ((nominal-sym12_0) nominal-sym_3) + ((nominal-require-phase+space-shift13_0) nominal-require-phase+space-shift_3)) + (make-module-binding.1 + inspector9_0 + null + #f + #f + nominal-mpi10_0 + nominal-phase+space11_0 + nominal-require-phase+space-shift13_0 + nominal-sym12_0 + mpi6_0 + phase7_0 + sym8_0))) + (syntax-binding-set-binds bs_2)))) + (syntax-binding-set1.1 binds5_0)) + (raise-argument-error 'struct-copy "syntax-binding-set?" the-struct_3)))))) + (define-values + (syntax-binding-set->syntax$1) + (lambda (bs_3 datum_0) + (begin + 'syntax-binding-set->syntax + (let-values (((s_173) (add-scope (datum->syntax$1 #f datum_0) (new-multi-scope 'binding-set)))) + (begin + (let-values (((lst_63) (syntax-binding-set-binds bs_3))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_63))) + ((letrec-values (((for-loop_20) + (lambda (lst_64) + (begin + 'for-loop + (if (pair? lst_64) + (let-values (((bind_0) (unsafe-car lst_64)) ((rest_29) (unsafe-cdr lst_64))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((temp14_1) + (syntax-scope-set + s_173 + (bind-phase bind_0))) + ((temp15_1) (bind-sym bind_0)) + ((temp16_3) + (bind-binding bind_0))) + (add-binding-in-scopes!.1 + #f + temp14_1 + temp15_1 + temp16_3))) + (values))))) + (values))))) + (if (not #f) (for-loop_20 rest_29) (values)))) + (values)))))) + for-loop_20) + lst_63))) + (void) + s_173))))) + (define-values + (1/struct:exn:fail:syntax make-exn:fail:syntax$1 1/exn:fail:syntax? 1/exn:fail:syntax-exprs) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'exn:fail:syntax + struct:exn:fail + 1 + 0 + #f + (list + (cons + prop:exn:srclocs + (lambda (e_15) (filter values (map2 1/syntax-srcloc (1/exn:fail:syntax-exprs e_15)))))) + #f + #f + '(0) + (lambda (str_0 cm_0 exprs_0 info_1) + (begin + (if (if (list? exprs_0) (andmap2 syntax?$1 exprs_0) #f) + (void) + (let-values () (raise-argument-error 'exn:fail:syntax "(listof syntax?)" exprs_0))) + (values str_0 cm_0 exprs_0))) + 'exn:fail:syntax))))) + (values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'exprs)))) + (define-values + (1/struct:exn:fail:syntax:unbound make-exn:fail:syntax:unbound$1 1/exn:fail:syntax:unbound?) + (let-values (((struct:_30 make-_30 ?_30 -ref_30 -set!_30) + (let-values () + (let-values () + (make-struct-type + 'exn:fail:syntax:unbound + 1/struct:exn:fail:syntax + 0 + 0 + #f + null + #f + #f + '() + #f + 'exn:fail:syntax:unbound))))) + (values struct:_30 make-_30 ?_30))) + (define-values + (raise-syntax-error$1) + (let-values (((raise-syntax-error_0) + (lambda (given-name5_0 message6_0 expr1_0 sub-expr2_0 extra-sources3_0 message-suffix4_0) + (begin + 'raise-syntax-error + (let-values (((given-name_0) given-name5_0)) + (let-values (((message_0) message6_0)) + (let-values (((expr_0) expr1_0)) + (let-values (((sub-expr_0) sub-expr2_0)) + (let-values (((extra-sources_0) extra-sources3_0)) + (let-values (((message-suffix_0) message-suffix4_0)) + (let-values () + (let-values () + (let-values () + (do-raise-syntax-error + 'raise-syntax-error + make-exn:fail:syntax$1 + given-name_0 + message_0 + expr_0 + sub-expr_0 + extra-sources_0 + message-suffix_0)))))))))))))) + (case-lambda + ((given-name_1 message_1) (begin 'raise-syntax-error (raise-syntax-error_0 given-name_1 message_1 #f #f null ""))) + ((given-name_2 message_2 expr_1 sub-expr_1 extra-sources_1 message-suffix4_1) + (raise-syntax-error_0 given-name_2 message_2 expr_1 sub-expr_1 extra-sources_1 message-suffix4_1)) + ((given-name_3 message_3 expr_2 sub-expr_2 extra-sources3_1) + (raise-syntax-error_0 given-name_3 message_3 expr_2 sub-expr_2 extra-sources3_1 "")) + ((given-name_4 message_4 expr_3 sub-expr2_1) + (raise-syntax-error_0 given-name_4 message_4 expr_3 sub-expr2_1 null "")) + ((given-name_5 message_5 expr1_1) (raise-syntax-error_0 given-name_5 message_5 expr1_1 #f null ""))))) + (define-values + (raise-unbound-syntax-error) + (let-values (((raise-unbound-syntax-error_0) + (lambda (given-name11_0 message12_0 expr7_0 sub-expr8_0 extra-sources9_0 message-suffix10_0) + (begin + 'raise-unbound-syntax-error + (let-values (((given-name_6) given-name11_0)) + (let-values (((message_6) message12_0)) + (let-values (((expr_4) expr7_0)) + (let-values (((sub-expr_3) sub-expr8_0)) + (let-values (((extra-sources_2) extra-sources9_0)) + (let-values (((message-suffix_1) message-suffix10_0)) + (let-values () + (let-values () + (let-values () + (do-raise-syntax-error + 'raise-unbound-syntax-error + make-exn:fail:syntax:unbound$1 + given-name_6 + message_6 + expr_4 + sub-expr_3 + extra-sources_2 + message-suffix_1)))))))))))))) + (case-lambda + ((given-name_7 message_7) (begin (raise-unbound-syntax-error_0 given-name_7 message_7 #f #f null ""))) + ((given-name_8 message_8 expr_5 sub-expr_4 extra-sources_3 message-suffix10_1) + (raise-unbound-syntax-error_0 given-name_8 message_8 expr_5 sub-expr_4 extra-sources_3 message-suffix10_1)) + ((given-name_9 message_9 expr_6 sub-expr_5 extra-sources9_1) + (raise-unbound-syntax-error_0 given-name_9 message_9 expr_6 sub-expr_5 extra-sources9_1 "")) + ((given-name_10 message_10 expr_7 sub-expr8_1) + (raise-unbound-syntax-error_0 given-name_10 message_10 expr_7 sub-expr8_1 null "")) + ((given-name_11 message_11 expr7_1) (raise-unbound-syntax-error_0 given-name_11 message_11 expr7_1 #f null ""))))) + (define-values + (do-raise-syntax-error) + (lambda (who_8 exn:fail:syntax_0 given-name_12 message_12 expr_8 sub-expr_6 extra-sources_4 message-suffix_2) + (begin + (let-values ((() + (begin + (if ((lambda (x_35) + (let-values (((or-part_153) (not x_35))) (if or-part_153 or-part_153 (symbol? x_35)))) + given-name_12) + (void) + (let-values () (raise-argument-error who_8 "(or/c symbol? #f)" given-name_12))) + (values)))) + (let-values ((() + (begin + (if (string? message_12) + (void) + (let-values () (raise-argument-error who_8 "string?" message_12))) + (values)))) + (let-values ((() + (begin + (if (if (list? extra-sources_4) (andmap2 syntax?$1 extra-sources_4) #f) + (void) + (let-values () (raise-argument-error who_8 "(listof syntax?)" extra-sources_4))) + (values)))) + (let-values ((() + (begin + (if (string? message-suffix_2) + (void) + (let-values () (raise-argument-error who_8 "string?" message-suffix_2))) + (values)))) + (let-values (((name_28) + (format + "~a" + (let-values (((or-part_154) given-name_12)) + (if or-part_154 + or-part_154 + (let-values (((or-part_155) (extract-form-name expr_8))) + (if or-part_155 or-part_155 '?))))))) + (let-values (((unbound-message_0) + (let-values (((ids_0) (current-previously-unbound))) + (let-values (((or-part_156) + (if (pair? ids_0) + (format + "\n after encountering unbound identifier~a (which is possibly the real problem):~a" + (if (null? (cdr ids_0)) "" "s") + (apply + string-append + (reverse$1 + (let-values (((lst_16) ids_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_16))) + ((letrec-values (((for-loop_86) + (lambda (fold-var_44 lst_65) + (begin + 'for-loop + (if (pair? lst_65) + (let-values (((id_11) + (unsafe-car lst_65)) + ((rest_30) + (unsafe-cdr lst_65))) + (let-values (((fold-var_45) + (let-values (((fold-var_46) + fold-var_44)) + (let-values (((fold-var_47) + (let-values () + (cons + (let-values () + (format + "\n ~s" + (syntax-e$1 + id_11))) + fold-var_46)))) + (values + fold-var_47))))) + (if (not #f) + (for-loop_86 fold-var_45 rest_30) + fold-var_45))) + fold-var_44))))) + for-loop_86) + null + lst_16)))))) + #f))) + (if or-part_156 or-part_156 ""))))) + (let-values (((at-message_0) + (let-values (((or-part_59) + (if sub-expr_6 + (if (error-print-source-location) + (string-append "\n at:" (syntax->string sub-expr_6)) + #f) + #f))) + (if or-part_59 or-part_59 "")))) + (let-values (((in-message_0) + (let-values (((or-part_157) + (if expr_8 + (if (error-print-source-location) + (string-append "\n in:" (syntax->string expr_8)) + #f) + #f))) + (if or-part_157 or-part_157 "")))) + (let-values (((src-loc-str_0) + (let-values (((or-part_158) + (if (error-print-source-location) + (let-values (((or-part_159) (extract-source-location sub-expr_6))) + (if or-part_159 or-part_159 (extract-source-location expr_8))) + #f))) + (if or-part_158 or-part_158 "")))) + (raise + (exn:fail:syntax_0 + (string-append + src-loc-str_0 + name_28 + ": " + message_12 + unbound-message_0 + at-message_0 + in-message_0 + message-suffix_2) + (current-continuation-marks) + (map2 + syntax-taint$1 + (if (let-values (((or-part_160) sub-expr_6)) (if or-part_160 or-part_160 expr_8)) + (let-values (((with-handlers-predicate17_0) exn:fail:contract?) + ((with-handlers-handler18_0) + (lambda (exn_1) (begin 'with-handlers-handler18 extra-sources_4)))) + (let-values (((bpz_3) (continuation-mark-set-first #f break-enabled-key))) + (call-handled-body + bpz_3 + (lambda (e_16) + (select-handler/no-breaks + e_16 + bpz_3 + (list (cons with-handlers-predicate17_0 with-handlers-handler18_0)))) + (lambda () + (cons + (datum->syntax$1 + #f + (let-values (((or-part_161) sub-expr_6)) (if or-part_161 or-part_161 expr_8))) + extra-sources_4))))) + extra-sources_4)))))))))))))))) + (define-values + (extract-form-name) + (lambda (s_172) + (begin + (if (syntax?$1 s_172) + (let-values () + (let-values (((e_17) (syntax-e$1 s_172))) + (if (symbol? e_17) + (let-values () e_17) + (if (if (pair? e_17) (identifier? (car e_17)) #f) + (let-values () (syntax-e$1 (car e_17))) + (let-values () #f))))) + (let-values () #f))))) + (define-values + (extract-source-location) + (lambda (s_174) + (begin + (if (syntax?$1 s_174) + (if (1/syntax-srcloc s_174) + (let-values (((str_1) (srcloc->string (1/syntax-srcloc s_174)))) (if str_1 (string-append str_1 ": ") #f)) + #f) + #f)))) + (define-values + (->datum) + (lambda (expr_9) + (begin + (let-values (((with-handlers-predicate19_0) exn:fail:contract?) + ((with-handlers-handler20_0) (lambda (exn_2) (begin 'with-handlers-handler20 expr_9)))) + (let-values (((bpz_4) (continuation-mark-set-first #f break-enabled-key))) + (call-handled-body + bpz_4 + (lambda (e_18) + (select-handler/no-breaks e_18 bpz_4 (list (cons with-handlers-predicate19_0 with-handlers-handler20_0)))) + (lambda () (syntax->datum$1 (datum->syntax$1 #f expr_9))))))))) + (define-values (current-previously-unbound) (lambda () (begin #f))) + (define-values (set-current-previously-unbound!) (lambda (proc_3) (begin (set! current-previously-unbound proc_3)))) + (define-values + (syntax->string) + (lambda (v_59) + (begin + (let-values (((str_2) ((error-syntax->string-handler) v_59 (error-print-width)))) + (if (regexp-match? '#rx"\n" str_2) + (string-append "\n " (regexp-replace* '#rx"\n" str_2 "\n ")) + (string-append " " str_2)))))) + (define-values + (install-error-syntax->string-handler!) + (lambda () + (begin + (error-syntax->string-handler + (let-values (((default-error-syntax->string-handler_0) + (lambda (v_85 len_12) + (begin + 'default-error-syntax->string-handler + (begin + (if (let-values (((or-part_162) (not len_12))) + (if or-part_162 or-part_162 (exact-nonnegative-integer? len_12))) + (void) + (let-values () + (raise-argument-error + 'default-error-value->string-handler + "(or/c exact-nonnegative-integer? #f)" + len_12))) + (if len_12 + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + error-print-width + (max 3 len_12)) + (let-values () (format "~.s" (->datum v_85)))) + (format "~s" (->datum v_85)))))))) + default-error-syntax->string-handler_0))))) + (define-values + (struct:module-use module-use1.1 module-use? module-use-module module-use-phase) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'module-use + #f + 2 + 0 + #f + (list + (cons + prop:equal+hash + (list + (lambda (a_20 b_22 eql?_4) + (let-values (((a-mod_0) (module-use-module a_20))) + (let-values (((b-mod_0) (module-use-module b_22))) + (if (eql?_4 a-mod_0 b-mod_0) + (if (eql?_4 (module-use-phase a_20) (module-use-phase b_22)) + (let-values (((a-path_0 a-base_0) (1/module-path-index-split a-mod_0)) + ((b-path_0 b-base_0) (1/module-path-index-split b-mod_0))) + (let-values (((or-part_15) a-path_0)) + (if or-part_15 + or-part_15 + (let-values (((or-part_72) b-path_0)) + (if or-part_72 + or-part_72 + (eq? + (module-path-index-resolved a-mod_0) + (module-path-index-resolved b-mod_0))))))) + #f) + #f)))) + (lambda (a_25 hash-code_4) + (+ (hash-code_4 (module-use-module a_25)) (hash-code_4 (module-use-phase a_25)))) + (lambda (a_26 hash-code_5) + (+ (hash-code_5 (module-use-module a_26)) (hash-code_5 (module-use-phase a_26))))))) + (current-inspector) + #f + '(0 1) + #f + 'module-use))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'module) + (make-struct-field-accessor -ref_2 1 'phase)))) + (define-values + (struct:module + module1.1 + module? + module-source-name + module-self + module-requires + module-provides + module-access + module-language-info + module-min-phase-level + module-max-phase-level + module-phase-level-linklet-info-callback + module-force-bulk-binding + module-prepare-instance + module-instantiate-phase + module-primitive? + module-is-predefined? + module-cross-phase-persistent? + module-no-protected? + module-inspector + module-submodule-names + module-supermodule-name + module-get-all-variables + set-module-access!) + (let-values (((struct:_31 make-_31 ?_31 -ref_31 -set!_31) + (let-values () + (let-values () + (make-struct-type + 'module + #f + 20 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19) + #f + 'module))))) + (values + struct:_31 + make-_31 + ?_31 + (make-struct-field-accessor -ref_31 0 'source-name) + (make-struct-field-accessor -ref_31 1 'self) + (make-struct-field-accessor -ref_31 2 'requires) + (make-struct-field-accessor -ref_31 3 'provides) + (make-struct-field-accessor -ref_31 4 'access) + (make-struct-field-accessor -ref_31 5 'language-info) + (make-struct-field-accessor -ref_31 6 'min-phase-level) + (make-struct-field-accessor -ref_31 7 'max-phase-level) + (make-struct-field-accessor -ref_31 8 'phase-level-linklet-info-callback) + (make-struct-field-accessor -ref_31 9 'force-bulk-binding) + (make-struct-field-accessor -ref_31 10 'prepare-instance) + (make-struct-field-accessor -ref_31 11 'instantiate-phase) + (make-struct-field-accessor -ref_31 12 'primitive?) + (make-struct-field-accessor -ref_31 13 'is-predefined?) + (make-struct-field-accessor -ref_31 14 'cross-phase-persistent?) + (make-struct-field-accessor -ref_31 15 'no-protected?) + (make-struct-field-accessor -ref_31 16 'inspector) + (make-struct-field-accessor -ref_31 17 'submodule-names) + (make-struct-field-accessor -ref_31 18 'supermodule-name) + (make-struct-field-accessor -ref_31 19 'get-all-variables) + (make-struct-field-mutator -set!_31 4 'access)))) + (define-values + (struct:module-linklet-info + module-linklet-info2.1 + module-linklet-info? + module-linklet-info-linklet-or-instance + module-linklet-info-module-uses + module-linklet-info-self + module-linklet-info-inspector + module-linklet-info-extra-inspector + module-linklet-info-extra-inspectorsss) + (let-values (((struct:_32 make-_32 ?_32 -ref_32 -set!_32) + (let-values () + (let-values () + (make-struct-type + 'module-linklet-info + #f + 6 + 0 + #f + (list (cons prop:authentic #t)) + #f + #f + '(0 1 2 3 4 5) + #f + 'module-linklet-info))))) + (values + struct:_32 + make-_32 + ?_32 + (make-struct-field-accessor -ref_32 0 'linklet-or-instance) + (make-struct-field-accessor -ref_32 1 'module-uses) + (make-struct-field-accessor -ref_32 2 'self) + (make-struct-field-accessor -ref_32 3 'inspector) + (make-struct-field-accessor -ref_32 4 'extra-inspector) + (make-struct-field-accessor -ref_32 5 'extra-inspectorsss)))) + (define-values + (make-module.1) + (lambda (cross-phase-persistent?16_0 + force-bulk-binding-callback10_0 + get-all-variables20_0 + instantiate-phase-callback9_0 + language-info13_0 + max-phase-level8_0 + min-phase-level7_0 + no-protected?17_0 + phase-level-linklet-info-callback12_0 + predefined?15_0 + prepare-instance-callback11_0 + primitive?14_0 + provides6_0 + requires5_0 + self4_0 + source-name3_0 + submodule-names18_0 + supermodule-name19_0) + (begin + 'make-module + (let-values (((source-name_0) source-name3_0)) + (let-values (((self_4) self4_0)) + (let-values (((requires_0) requires5_0)) + (let-values (((provides_4) provides6_0)) + (let-values (((min-phase-level_0) min-phase-level7_0)) + (let-values (((max-phase-level_0) max-phase-level8_0)) + (let-values (((instantiate-phase_0) instantiate-phase-callback9_0)) + (let-values (((force-bulk-binding_0) force-bulk-binding-callback10_0)) + (let-values (((prepare-instance_0) prepare-instance-callback11_0)) + (let-values (((phase-level-linklet-info-callback_0) + (if (eq? phase-level-linklet-info-callback12_0 unsafe-undefined) + (lambda (phase-level_13 ns_20 insp_3) + (begin 'phase-level-linklet-info-callback #f)) + phase-level-linklet-info-callback12_0))) + (let-values (((language-info_0) language-info13_0)) + (let-values (((primitive?_0) primitive?14_0)) + (let-values (((predefined?_0) predefined?15_0)) + (let-values (((cross-phase-persistent?_0) + (if (eq? cross-phase-persistent?16_0 unsafe-undefined) + primitive?_0 + cross-phase-persistent?16_0))) + (let-values (((no-protected?_0) no-protected?17_0)) + (let-values (((submodule-names_0) submodule-names18_0)) + (let-values (((supermodule-name_0) supermodule-name19_0)) + (let-values (((get-all-variables_0) + (if (eq? get-all-variables20_0 unsafe-undefined) + (lambda () (begin 'get-all-variables null)) + get-all-variables20_0))) + (let-values () + (module1.1 + source-name_0 + self_4 + (fresh-requires requires_0) + provides_4 + #f + language-info_0 + min-phase-level_0 + max-phase-level_0 + phase-level-linklet-info-callback_0 + force-bulk-binding_0 + prepare-instance_0 + instantiate-phase_0 + primitive?_0 + predefined?_0 + cross-phase-persistent?_0 + no-protected?_0 + (current-code-inspector) + submodule-names_0 + supermodule-name_0 + get-all-variables_0))))))))))))))))))))))) + (define-values + (struct:module-instance + module-instance40.1 + module-instance? + module-instance-namespace + module-instance-module + module-instance-shifted-requires + module-instance-phase-level-to-state + module-instance-made-available? + module-instance-attached? + module-instance-data-box + set-module-instance-shifted-requires! + set-module-instance-made-available?! + set-module-instance-attached?!) + (let-values (((struct:_33 make-_33 ?_33 -ref_33 -set!_33) + (let-values () + (let-values () + (make-struct-type + 'module-instance + #f + 7 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 3 6) + #f + 'module-instance))))) + (values + struct:_33 + make-_33 + ?_33 + (make-struct-field-accessor -ref_33 0 'namespace) + (make-struct-field-accessor -ref_33 1 'module) + (make-struct-field-accessor -ref_33 2 'shifted-requires) + (make-struct-field-accessor -ref_33 3 'phase-level-to-state) + (make-struct-field-accessor -ref_33 4 'made-available?) + (make-struct-field-accessor -ref_33 5 'attached?) + (make-struct-field-accessor -ref_33 6 'data-box) + (make-struct-field-mutator -set!_33 2 'shifted-requires) + (make-struct-field-mutator -set!_33 4 'made-available?) + (make-struct-field-mutator -set!_33 5 'attached?)))) + (define-values + (make-module-instance) + (lambda (m-ns_0 m_1) (begin (module-instance40.1 m-ns_0 m_1 #f (make-small-hasheqv) #f #f (box #f))))) + (define-values + (make-module-namespace.1) + (lambda (for-submodule?43_0 mpi41_0 root-expand-context42_0 ns47_0) + (begin + 'make-module-namespace + (let-values (((ns_21) ns47_0)) + (let-values (((name-mpi_0) mpi41_0)) + (let-values (((root-expand-ctx_1) root-expand-context42_0)) + (let-values (((for-submodule?_0) for-submodule?43_0)) + (let-values () + (let-values (((phase_11) 0)) + (let-values (((name_29) (1/module-path-index-resolve name-mpi_0))) + (let-values (((m-ns_1) + (let-values (((the-struct_32) + (let-values (((ns142_0) ns_21) + ((root-expand-ctx143_0) root-expand-ctx_1) + ((temp144_0) #f)) + (new-namespace.1 temp144_0 root-expand-ctx143_0 ns142_0)))) + (if (1/namespace? the-struct_32) + (let-values (((mpi134_0) name-mpi_0) + ((source-name135_0) (resolved-module-path-root-name name_29)) + ((phase136_0) phase_11) + ((0-phase137_0) phase_11) + ((submodule-declarations138_0) + (if for-submodule?_0 + (namespace-submodule-declarations ns_21) + (make-small-hasheq))) + ((available-module-instances139_0) (make-hasheqv)) + ((module-instances140_0) (make-hasheqv)) + ((declaration-inspector141_0) (current-code-inspector))) + (namespace1.1 + mpi134_0 + source-name135_0 + (namespace-root-expand-ctx the-struct_32) + phase136_0 + 0-phase137_0 + (namespace-phase-to-namespace the-struct_32) + (namespace-phase-level-to-definitions the-struct_32) + (namespace-module-registry$1 the-struct_32) + (namespace-bulk-binding-registry the-struct_32) + submodule-declarations138_0 + (namespace-root-namespace the-struct_32) + declaration-inspector141_0 + (namespace-inspector the-struct_32) + available-module-instances139_0 + module-instances140_0)) + (raise-argument-error 'struct-copy "namespace?" the-struct_32))))) + (let-values ((() + (begin + (small-hash-set! (namespace-phase-to-namespace m-ns_1) phase_11 m-ns_1) + (values)))) + (let-values (((at-phase_0) (make-hasheq))) + (begin + (hash-set! (namespace-module-instances m-ns_1) phase_11 at-phase_0) + (hash-set! at-phase_0 name_29 (make-module-instance m-ns_1 #f)) + m-ns_1)))))))))))))) + (define-values + (declare-module!.1) + (lambda (with-submodules?49_0 ns51_0 m52_0 mod-name53_0) + (begin + 'declare-module! + (let-values (((ns_22) ns51_0)) + (let-values (((m_2) m52_0)) + (let-values (((mod-name_4) mod-name53_0)) + (let-values (((with-submodules?_0) with-submodules?49_0)) + (let-values () + (let-values (((prior-m_0) + (if with-submodules?_0 + (hash-ref + (module-registry-declarations (namespace-module-registry$1 ns_22)) + mod-name_4 + #f) + #f))) + (let-values (((prior-mi_0) + (if prior-m_0 + (if (not (eq? m_2 prior-m_0)) + (let-values (((ns145_0) ns_22) + ((mod-name146_0) mod-name_4) + ((temp147_0) (namespace-phase ns_22))) + (namespace->module-instance.1 #f #f void ns145_0 mod-name146_0 temp147_0)) + #f) + #f))) + (begin + (if (if prior-m_0 (not (eq? m_2 prior-m_0)) #f) + (let-values () (check-redeclaration-ok prior-m_0 prior-mi_0 mod-name_4)) + (void)) + (if with-submodules?_0 + (hash-set! (module-registry-declarations (namespace-module-registry$1 ns_22)) mod-name_4 m_2) + (small-hash-set! (namespace-submodule-declarations ns_22) mod-name_4 m_2)) + (if with-submodules?_0 + (let-values () + (begin + (register-bulk-provide! + (namespace-bulk-binding-registry ns_22) + mod-name_4 + (module-self m_2) + (module-provides m_2)) + ((1/current-module-name-resolver) mod-name_4 #f))) + (void)) + (if prior-mi_0 + (let-values () + (let-values (((m-ns_2) (module-instance-namespace prior-mi_0))) + (let-values (((states_0) (module-instance-phase-level-to-state prior-mi_0))) + (let-values (((phase_31) (namespace-phase ns_22))) + (let-values (((visit?_0) (eq? 'started (small-hash-ref states_0 (add1 phase_31) #f)))) + (let-values (((run?_0) (eq? 'started (small-hash-ref states_0 phase_31 #f)))) + (let-values (((at-phase_1) (hash-ref (namespace-module-instances ns_22) phase_31))) + (begin + (hash-set! at-phase_1 mod-name_4 (make-module-instance m-ns_2 m_2)) + (set-module-instance-shifted-requires! prior-mi_0 #f) + (if visit?_0 + (let-values () + (let-values (((ns148_0) ns_22) + ((temp149_0) (namespace-mpi m-ns_2)) + ((phase150_0) phase_31)) + (namespace-module-visit!.1 + unsafe-undefined + ns148_0 + temp149_0 + phase150_0))) + (void)) + (if run?_0 + (let-values () + (let-values (((ns151_0) ns_22) + ((temp152_0) (namespace-mpi m-ns_2)) + ((phase153_0) phase_31)) + (namespace-module-instantiate!.1 + #f + #t + unsafe-undefined + '#hasheq() + null + #f + ns151_0 + temp152_0 + phase153_0))) + (void)))))))))) + (void))))))))))))) + (define-values + (check-redeclaration-ok) + (lambda (prior-m_1 prior-mi_1 mod-name_5) + (begin + (begin + (if (module-cross-phase-persistent? prior-m_1) + (let-values () + (raise-arguments-error + 'module + "cannot redeclare cross-phase persistent module" + "module name" + (module-name->error-string mod-name_5))) + (void)) + (if (if prior-mi_1 + (let-values (((or-part_163) (module-instance-attached? prior-mi_1))) + (if or-part_163 + or-part_163 + (not + (inspector-superior? + (current-code-inspector) + (namespace-inspector (module-instance-namespace prior-mi_1)))))) + #f) + (let-values () + (raise-arguments-error + 'module + "current code inspector cannot redeclare module" + "module name" + (module-name->error-string mod-name_5))) + (void)))))) + (define-values + (raise-unknown-module-error) + (lambda (who_9 mod-name_6) + (begin (raise-arguments-error who_9 "unknown module" "module name" (module-name->error-string mod-name_6))))) + (define-values + (namespace->module-linklet-info) + (lambda (ns_23 name_30 phase-level_14) + (begin + (let-values (((m_3) (namespace->module ns_23 name_30))) + (if m_3 ((module-phase-level-linklet-info-callback m_3) phase-level_14 ns_23 (module-inspector m_3)) #f))))) + (define-values + (module-name->error-string) + (lambda (mod-name_7) (begin (unquoted-printing-string (format "~a" mod-name_7))))) + (define-values + (namespace->module-instance.1) + (lambda (check-available-at-phase-level56_0 + complain-on-failure?55_0 + unavailable-callback57_0 + ns61_0 + name62_0 + 0-phase63_0) + (begin + 'namespace->module-instance + (let-values (((ns_24) ns61_0)) + (let-values (((name_31) name62_0)) + (let-values (((0-phase_1) 0-phase63_0)) + (let-values (((complain-on-failure?_0) complain-on-failure?55_0)) + (let-values (((check-available-at-phase-level_0) check-available-at-phase-level56_0)) + (let-values (((unavailable-callback_0) unavailable-callback57_0)) + (let-values () + (let-values (((mi_0) + (let-values (((or-part_164) + (hash-ref + (hash-ref (namespace-module-instances ns_24) 0-phase_1 '#hasheq()) + name_31 + #f))) + (if or-part_164 + or-part_164 + (let-values (((or-part_165) + (let-values (((c-ns_0) + (let-values (((or-part_166) + (namespace-root-namespace ns_24))) + (if or-part_166 or-part_166 ns_24)))) + (hash-ref (namespace-module-instances c-ns_0) name_31 #f)))) + (if or-part_165 + or-part_165 + (if complain-on-failure?_0 + (error + 'require + (string-append + "namespace mismatch;\n" + " reference to a module that is not instantiated\n" + " module: ~a\n" + " phase: ~a") + name_31 + 0-phase_1) + #f))))))) + (if (if mi_0 check-available-at-phase-level_0 #f) + (check-availablilty mi_0 check-available-at-phase-level_0 unavailable-callback_0) + mi_0)))))))))))) + (define-values + (namespace-install-module-namespace!) + (lambda (ns_25 name_32 0-phase_2 m_4 existing-m-ns_0) + (begin + (let-values (((m-ns_3) + (let-values (((the-struct_33) ns_25)) + (if (1/namespace? the-struct_33) + (let-values (((mpi154_0) (namespace-mpi existing-m-ns_0)) + ((source-name155_0) (namespace-source-name existing-m-ns_0)) + ((root-expand-ctx156_0) (box (unbox (namespace-root-expand-ctx existing-m-ns_0)))) + ((phase157_0) (namespace-phase existing-m-ns_0)) + ((0-phase158_0) (namespace-0-phase existing-m-ns_0)) + ((phase-to-namespace159_0) (make-small-hasheqv)) + ((phase-level-to-definitions160_0) + (if (module-cross-phase-persistent? m_4) + (namespace-phase-level-to-definitions existing-m-ns_0) + (make-small-hasheqv))) + ((declaration-inspector161_0) (module-inspector m_4)) + ((inspector162_0) (namespace-inspector existing-m-ns_0))) + (namespace1.1 + mpi154_0 + source-name155_0 + root-expand-ctx156_0 + phase157_0 + 0-phase158_0 + phase-to-namespace159_0 + phase-level-to-definitions160_0 + (namespace-module-registry$1 the-struct_33) + (namespace-bulk-binding-registry the-struct_33) + (namespace-submodule-declarations the-struct_33) + (namespace-root-namespace the-struct_33) + declaration-inspector161_0 + inspector162_0 + (namespace-available-module-instances the-struct_33) + (namespace-module-instances the-struct_33))) + (raise-argument-error 'struct-copy "namespace?" the-struct_33))))) + (let-values (((mi_1) (make-module-instance m-ns_3 m_4))) + (begin + (set-module-instance-attached?! mi_1 #t) + (if (module-cross-phase-persistent? m_4) + (let-values () + (begin + (small-hash-set! (namespace-phase-to-namespace m-ns_3) 0 m-ns_3) + (small-hash-set! + (namespace-phase-level-to-definitions m-ns_3) + 0 + (namespace->definitions existing-m-ns_0 0)) + (small-hash-set! (namespace-phase-to-namespace m-ns_3) 1 (namespace->namespace-at-phase m-ns_3 1)) + (small-hash-set! + (namespace-phase-level-to-definitions m-ns_3) + 1 + (namespace->definitions existing-m-ns_0 1)) + (hash-set! + (namespace-module-instances + (let-values (((or-part_167) (namespace-root-namespace ns_25))) (if or-part_167 or-part_167 ns_25))) + name_32 + mi_1) + (small-hash-set! (module-instance-phase-level-to-state mi_1) 0 'started))) + (let-values () + (let-values ((() + (begin + (small-hash-set! (namespace-phase-to-namespace m-ns_3) 0-phase_2 m-ns_3) + (values)))) + (let-values ((() + (begin + (small-hash-set! + (namespace-phase-level-to-definitions m-ns_3) + 0 + (namespace->definitions existing-m-ns_0 0)) + (values)))) + (let-values ((() + (begin + (small-hash-set! (module-instance-phase-level-to-state mi_1) 0 'started) + (values)))) + (let-values (((at-phase_2) + (let-values (((or-part_168) + (hash-ref (namespace-module-instances ns_25) 0-phase_2 #f))) + (if or-part_168 + or-part_168 + (let-values (((at-phase_3) (make-hasheq))) + (begin + (hash-set! (namespace-module-instances ns_25) 0-phase_2 at-phase_3) + at-phase_3)))))) + (hash-set! at-phase_2 name_32 mi_1))))))))))))) + (define-values + (namespace-create-module-instance!) + (lambda (ns_26 name_33 0-phase_3 m_5 mpi_21) + (begin + (let-values (((m-ns_4) + (let-values (((the-struct_34) ns_26)) + (if (1/namespace? the-struct_34) + (let-values (((mpi163_0) mpi_21) + ((source-name164_0) + (let-values (((or-part_140) (module-source-name m_5))) + (if or-part_140 + or-part_140 + (resolved-module-path-root-name (1/module-path-index-resolve mpi_21))))) + ((root-expand-ctx165_0) (box #f)) + ((phase166_0) 0-phase_3) + ((0-phase167_0) 0-phase_3) + ((phase-to-namespace168_0) (make-small-hasheqv)) + ((phase-level-to-definitions169_0) (make-small-hasheqv)) + ((declaration-inspector170_0) (module-inspector m_5)) + ((inspector171_0) (make-inspector (module-inspector m_5)))) + (namespace1.1 + mpi163_0 + source-name164_0 + root-expand-ctx165_0 + phase166_0 + 0-phase167_0 + phase-to-namespace168_0 + phase-level-to-definitions169_0 + (namespace-module-registry$1 the-struct_34) + (namespace-bulk-binding-registry the-struct_34) + (namespace-submodule-declarations the-struct_34) + (namespace-root-namespace the-struct_34) + declaration-inspector170_0 + inspector171_0 + (namespace-available-module-instances the-struct_34) + (namespace-module-instances the-struct_34))) + (raise-argument-error 'struct-copy "namespace?" the-struct_34))))) + (let-values ((() (begin (small-hash-set! (namespace-phase-to-namespace m-ns_4) 0-phase_3 m-ns_4) (values)))) + (let-values (((mi_2) (make-module-instance m-ns_4 m_5))) + (begin + (if (module-cross-phase-persistent? m_5) + (hash-set! (namespace-module-instances ns_26) name_33 mi_2) + (let-values (((at-phase_4) + (let-values (((or-part_169) (hash-ref (namespace-module-instances ns_26) 0-phase_3 #f))) + (if or-part_169 + or-part_169 + (let-values (((at-phase_5) (make-hasheq))) + (begin + (hash-set! (namespace-module-instances ns_26) 0-phase_3 at-phase_5) + at-phase_5)))))) + (hash-set! at-phase_4 name_33 mi_2))) + mi_2))))))) + (define-values + (check-availablilty) + (lambda (mi_3 check-available-at-phase-level_1 unavailable-callback_1) + (begin + (let-values (((m_6) (module-instance-module mi_3))) + (if (if m_6 + (if (<= (module-min-phase-level m_6) (add1 check-available-at-phase-level_1) (module-max-phase-level m_6)) + (not + (small-hash-ref + (module-instance-phase-level-to-state mi_3) + (add1 check-available-at-phase-level_1) + #f)) + #f) + #f) + (unavailable-callback_1 mi_3) + mi_3))))) + (define-values + (namespace->module-namespace.1) + (lambda (check-available-at-phase-level66_0 + complain-on-failure?65_0 + unavailable-callback67_0 + ns71_0 + name72_0 + 0-phase73_0) + (begin + 'namespace->module-namespace + (let-values (((ns_27) ns71_0)) + (let-values (((name_34) name72_0)) + (let-values (((0-phase_4) 0-phase73_0)) + (let-values (((complain-on-failure?_1) complain-on-failure?65_0)) + (let-values (((check-available-at-phase-level_2) check-available-at-phase-level66_0)) + (let-values (((unavailable-callback_2) unavailable-callback67_0)) + (let-values () + (let-values (((mi_4) + (let-values (((ns172_0) ns_27) + ((name173_0) name_34) + ((0-phase174_0) 0-phase_4) + ((complain-on-failure?175_0) complain-on-failure?_1) + ((check-available-at-phase-level176_0) check-available-at-phase-level_2) + ((unavailable-callback177_0) unavailable-callback_2)) + (namespace->module-instance.1 + check-available-at-phase-level176_0 + complain-on-failure?175_0 + unavailable-callback177_0 + ns172_0 + name173_0 + 0-phase174_0)))) + (if mi_4 (module-instance-namespace mi_4) #f)))))))))))) + (define-values + (namespace-record-module-instance-attached!) + (lambda (ns_28 mod-name_8 phase_32) + (begin + (let-values (((mi_5) + (let-values (((ns178_0) ns_28) ((mod-name179_0) mod-name_8) ((phase180_0) phase_32)) + (namespace->module-instance.1 #f #f void ns178_0 mod-name179_0 phase180_0)))) + (set-module-instance-attached?! mi_5 #t))))) + (define-values + (module-force-bulk-binding!) + (lambda (m_7 ns_29) (begin ((module-force-bulk-binding m_7) (namespace-bulk-binding-registry ns_29))))) + (define-values + (namespace-module-instantiate!.1) + (lambda (minimum-inspector80_0 + otherwise-available?77_0 + run-phase75_0 + seen78_0 + seen-list79_0 + skip-run?76_0 + ns87_0 + mpi88_0 + instance-phase89_0) + (begin + 'namespace-module-instantiate! + (let-values (((ns_30) ns87_0)) + (let-values (((mpi_22) mpi88_0)) + (let-values (((instance-phase_0) instance-phase89_0)) + (let-values (((run-phase_0) + (if (eq? run-phase75_0 unsafe-undefined) (namespace-phase ns_30) run-phase75_0))) + (let-values (((skip-run?_0) skip-run?76_0)) + (let-values (((otherwise-available?_0) otherwise-available?77_0)) + (let-values (((seen_18) seen78_0)) + (let-values (((seen-list_0) seen-list79_0)) + (let-values (((minimum-inspector_0) minimum-inspector80_0)) + (let-values () + (let-values ((() + (begin + (if (1/module-path-index? mpi_22) + (void) + (let-values () (error "not a module path index:" mpi_22))) + (values)))) + (let-values (((name_35) (1/module-path-index-resolve mpi_22 #t))) + (let-values (((m_8) (namespace->module ns_30 name_35))) + (let-values ((() + (begin + (if m_8 + (void) + (let-values () (raise-unknown-module-error 'instantiate name_35))) + (values)))) + (let-values (((instantiate!_0) + (lambda (instance-phase_1 run-phase_1 ns_31) + (begin + 'instantiate! + (let-values (((mi_6) + (let-values (((or-part_170) + (let-values (((ns189_0) ns_31) + ((name190_0) name_35) + ((instance-phase191_0) + instance-phase_1)) + (namespace->module-instance.1 + #f + #f + void + ns189_0 + name190_0 + instance-phase191_0)))) + (if or-part_170 + or-part_170 + (namespace-create-module-instance! + ns_31 + name_35 + instance-phase_1 + m_8 + mpi_22))))) + (let-values (((mi181_0) mi_6) + ((ns182_0) ns_31) + ((run-phase183_0) run-phase_1) + ((skip-run?184_0) skip-run?_0) + ((otherwise-available?185_0) otherwise-available?_0) + ((seen186_0) seen_18) + ((seen-list187_0) seen-list_0) + ((minimum-inspector188_0) minimum-inspector_0)) + (run-module-instance!.1 + minimum-inspector188_0 + otherwise-available?185_0 + run-phase183_0 + seen186_0 + seen-list187_0 + skip-run?184_0 + mi181_0 + ns182_0))))))) + (if (module-cross-phase-persistent? m_8) + (let-values () + (instantiate!_0 + 0 + 0 + (let-values (((or-part_171) (namespace-root-namespace ns_30))) + (if or-part_171 or-part_171 ns_30)))) + (let-values () + (instantiate!_0 instance-phase_0 run-phase_0 ns_30))))))))))))))))))))) + (define-values + (namespace-module-visit!.1) + (lambda (visit-phase91_0 ns93_0 mpi94_0 instance-phase95_0) + (begin + 'namespace-module-visit! + (let-values (((ns_32) ns93_0)) + (let-values (((mpi_23) mpi94_0)) + (let-values (((instance-phase_2) instance-phase95_0)) + (let-values (((visit-phase_0) + (if (eq? visit-phase91_0 unsafe-undefined) (namespace-phase ns_32) visit-phase91_0))) + (let-values () + (let-values (((ns192_0) ns_32) + ((mpi193_0) mpi_23) + ((instance-phase194_0) instance-phase_2) + ((temp195_0) (add1 visit-phase_0))) + (namespace-module-instantiate!.1 + #f + #t + temp195_0 + '#hasheq() + null + #f + ns192_0 + mpi193_0 + instance-phase194_0)))))))))) + (define-values + (namespace-module-make-available!.1) + (lambda (visit-phase97_0 ns99_0 mpi100_0 instance-phase101_0) + (begin + 'namespace-module-make-available! + (let-values (((ns_33) ns99_0)) + (let-values (((mpi_24) mpi100_0)) + (let-values (((instance-phase_3) instance-phase101_0)) + (let-values (((visit-phase_1) + (if (eq? visit-phase97_0 unsafe-undefined) (namespace-phase ns_33) visit-phase97_0))) + (let-values () + (let-values (((ns196_0) ns_33) + ((mpi197_0) mpi_24) + ((instance-phase198_0) instance-phase_3) + ((temp199_0) (add1 visit-phase_1)) + ((temp200_0) #t)) + (namespace-module-instantiate!.1 + #f + #t + temp199_0 + '#hasheq() + null + temp200_0 + ns196_0 + mpi197_0 + instance-phase198_0)))))))))) + (define-values + (run-module-instance!.1) + (lambda (minimum-inspector108_0 + otherwise-available?105_0 + run-phase103_0 + seen106_0 + seen-list107_0 + skip-run?104_0 + mi115_0 + ns116_0) + (begin + 'run-module-instance! + (let-values (((mi_7) mi115_0)) + (let-values (((ns_34) ns116_0)) + (let-values (((run-phase_2) run-phase103_0)) + (let-values (((skip-run?_1) skip-run?104_0)) + (let-values (((otherwise-available?_1) otherwise-available?105_0)) + (let-values (((seen_19) seen106_0)) + (let-values (((seen-list_1) seen-list107_0)) + (let-values (((minimum-inspector_1) minimum-inspector108_0)) + (let-values () + (begin + (if log-performance? (let-values () (start-performance-region 'eval 'requires)) (void)) + (begin0 + (let-values () + (let-values (((m-ns_5) (module-instance-namespace mi_7))) + (let-values (((instance-phase_4) (namespace-0-phase m-ns_5))) + (let-values (((run-phase-level_0) (phase- run-phase_2 instance-phase_4))) + (let-values (((inspector_7) (module-inspector (module-instance-module mi_7)))) + (begin + (if minimum-inspector_1 + (let-values () + (if (let-values (((or-part_172) (eq? inspector_7 minimum-inspector_1))) + (if or-part_172 + or-part_172 + (inspector-superior? inspector_7 minimum-inspector_1))) + (void) + (let-values () + (error + 'require + "cannot import module with weaker code inspector\n module: ~a" + (1/module-path-index-resolve + (namespace-mpi (module-instance-namespace mi_7))))))) + (void)) + (if (if (let-values (((or-part_173) skip-run?_1)) + (if or-part_173 + or-part_173 + (eq? + 'started + (small-hash-ref + (module-instance-phase-level-to-state mi_7) + run-phase-level_0 + #f)))) + (let-values (((or-part_174) (not otherwise-available?_1))) + (if or-part_174 or-part_174 (module-instance-made-available? mi_7))) + #f) + (void) + (let-values () + (let-values (((m_9) (module-instance-module mi_7))) + (let-values ((() + (begin + (if m_9 + (void) + (let-values () + (error + 'require + "import cycle detected; trying to run module being expanded"))) + (values)))) + (let-values (((mpi_25) (namespace-mpi m-ns_5))) + (let-values (((phase-shift_1) instance-phase_4)) + (let-values (((bulk-binding-registry_4) + (namespace-bulk-binding-registry m-ns_5))) + (begin + (if (hash-ref seen_19 mi_7 #f) + (let-values () + (error + 'require + (apply + string-append + "import cycle detected during module instantiation\n" + " dependency chain:" + (module-instances->indented-module-names + mi_7 + seen-list_1)))) + (void)) + (if (module-instance-shifted-requires mi_7) + (void) + (let-values () + (set-module-instance-shifted-requires! + mi_7 + (reverse$1 + (let-values (((lst_66) (module-requires m_9))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_66))) + ((letrec-values (((for-loop_87) + (lambda (fold-var_48 lst_67) + (begin + 'for-loop + (if (pair? lst_67) + (let-values (((phase+mpis_0) + (unsafe-car + lst_67)) + ((rest_31) + (unsafe-cdr + lst_67))) + (let-values (((fold-var_49) + (let-values (((fold-var_50) + fold-var_48)) + (let-values (((fold-var_51) + (let-values () + (cons + (let-values () + (cons + (car + phase+mpis_0) + (reverse$1 + (let-values (((lst_68) + (cdr + phase+mpis_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_68))) + ((letrec-values (((for-loop_88) + (lambda (fold-var_52 + lst_69) + (begin + 'for-loop + (if (pair? + lst_69) + (let-values (((req-mpi_0) + (unsafe-car + lst_69)) + ((rest_32) + (unsafe-cdr + lst_69))) + (let-values (((fold-var_53) + (let-values (((fold-var_54) + fold-var_52)) + (let-values (((fold-var_55) + (let-values () + (cons + (let-values () + (module-path-index-shift + req-mpi_0 + (module-self + m_9) + mpi_25)) + fold-var_54)))) + (values + fold-var_55))))) + (if (not + #f) + (for-loop_88 + fold-var_53 + rest_32) + fold-var_53))) + fold-var_52))))) + for-loop_88) + null + lst_68)))))) + fold-var_50)))) + (values + fold-var_51))))) + (if (not #f) + (for-loop_87 + fold-var_49 + rest_31) + fold-var_49))) + fold-var_48))))) + for-loop_87) + null + lst_66))))))) + (let-values (((lst_70) (module-instance-shifted-requires mi_7))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_70))) + ((letrec-values (((for-loop_89) + (lambda (lst_71) + (begin + 'for-loop + (if (pair? lst_71) + (let-values (((phase+mpis_1) + (unsafe-car lst_71)) + ((rest_33) + (unsafe-cdr lst_71))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((req-phase_0) + (car + phase+mpis_1))) + (begin + (let-values (((lst_72) + (cdr + phase+mpis_1))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_72))) + ((letrec-values (((for-loop_90) + (lambda (lst_73) + (begin + 'for-loop + (if (pair? + lst_73) + (let-values (((req-mpi_1) + (unsafe-car + lst_73)) + ((rest_34) + (unsafe-cdr + lst_73))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((ns201_0) + ns_34) + ((req-mpi202_0) + req-mpi_1) + ((temp203_0) + (phase+ + instance-phase_4 + req-phase_0)) + ((run-phase204_0) + run-phase_2) + ((skip-run?205_0) + skip-run?_1) + ((otherwise-available?206_0) + otherwise-available?_1) + ((temp207_0) + (hash-set + seen_19 + mi_7 + #t)) + ((temp208_0) + (cons + mi_7 + seen-list_1)) + ((inspector209_0) + inspector_7)) + (namespace-module-instantiate!.1 + inspector209_0 + otherwise-available?206_0 + run-phase204_0 + temp207_0 + temp208_0 + skip-run?205_0 + ns201_0 + req-mpi202_0 + temp203_0))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_90 + rest_34) + (values)))) + (values)))))) + for-loop_90) + lst_72))) + (void)))) + (values))))) + (values))))) + (if (not #f) + (for-loop_89 rest_33) + (values)))) + (values)))))) + for-loop_89) + lst_70))) + (void) + (if (label-phase? instance-phase_4) + (void) + (let-values () + (begin + (let-values (((start_16) (module-max-phase-level m_9)) + ((end_9) (sub1 (module-min-phase-level m_9))) + ((inc_3) -1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-range start_16 end_9 inc_3))) + ((letrec-values (((for-loop_91) + (lambda (pos_13) + (begin + 'for-loop + (if (> pos_13 end_9) + (let-values (((phase-level_15) + pos_13)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((phase_33) + (phase+ + phase-level_15 + phase-shift_1))) + (if (if (not + skip-run?_1) + (eqv? + phase_33 + run-phase_2) + #f) + (let-values () + (if (eq? + 'started + (small-hash-ref + (module-instance-phase-level-to-state + mi_7) + phase-level_15 + #f)) + (void) + (let-values () + (let-values ((() + (begin + (small-hash-set! + (module-instance-phase-level-to-state + mi_7) + phase-level_15 + 'started) + (values)))) + (let-values ((() + (begin + (void + (namespace->definitions + m-ns_5 + phase-level_15)) + (values)))) + (let-values (((p-ns_2) + (namespace->namespace-at-phase + m-ns_5 + phase_33))) + (let-values (((insp_4) + (module-inspector + m_9))) + (let-values (((data-box_0) + (module-instance-data-box + mi_7))) + (let-values (((prep_0) + (module-prepare-instance + m_9))) + (let-values (((go_0) + (module-instantiate-phase + m_9))) + (begin + (prep_0 + data-box_0 + p-ns_2 + phase-shift_1 + mpi_25 + bulk-binding-registry_4 + insp_4) + (go_0 + data-box_0 + p-ns_2 + phase-shift_1 + phase-level_15 + mpi_25 + bulk-binding-registry_4 + insp_4)))))))))))) + (if (if otherwise-available?_1 + (if (not + (negative? + run-phase_2)) + (not + (small-hash-ref + (module-instance-phase-level-to-state + mi_7) + phase-level_15 + #f)) + #f) + #f) + (let-values () + (begin + (hash-update! + (namespace-available-module-instances + ns_34) + phase_33 + (lambda (l_34) + (cons + mi_7 + l_34)) + null) + (small-hash-set! + (module-instance-phase-level-to-state + mi_7) + phase-level_15 + 'available))) + (void))))) + (values))))) + (values))))) + (if (not #f) + (for-loop_91 + (+ pos_13 inc_3)) + (values)))) + (values)))))) + for-loop_91) + start_16))) + (void)))) + (if otherwise-available?_1 + (let-values () (set-module-instance-made-available?! mi_7 #t)) + (void)) + (if skip-run?_1 + (void) + (let-values () + (small-hash-set! + (module-instance-phase-level-to-state mi_7) + run-phase-level_0 + 'started))))))))))))))))) + (if log-performance? (let-values () (end-performance-region)) (void)))))))))))))))) + (define-values + (namespace-visit-available-modules!) + (let-values (((namespace-visit-available-modules!_0) + (lambda (ns119_0 run-phase118_0) + (begin + 'namespace-visit-available-modules! + (let-values (((ns_35) ns119_0)) + (let-values (((run-phase_3) + (if (eq? run-phase118_0 unsafe-undefined) (namespace-phase ns_35) run-phase118_0))) + (let-values () (namespace-run-available-modules! ns_35 (add1 run-phase_3))))))))) + (case-lambda + ((ns_36) (begin (namespace-visit-available-modules!_0 ns_36 unsafe-undefined))) + ((ns_37 run-phase118_1) (namespace-visit-available-modules!_0 ns_37 run-phase118_1))))) + (define-values + (namespace-run-available-modules!) + (let-values (((namespace-run-available-modules!_0) + (lambda (ns121_0 run-phase120_0) + (begin + 'namespace-run-available-modules! + (let-values (((ns_38) ns121_0)) + (let-values (((run-phase_4) + (if (eq? run-phase120_0 unsafe-undefined) (namespace-phase ns_38) run-phase120_0))) + (let-values () + (registry-call-with-lock + (namespace-module-registry$1 ns_38) + (lambda () + ((letrec-values (((loop_74) + (lambda () + (begin + 'loop + (let-values (((mis_0) + (hash-ref + (namespace-available-module-instances ns_38) + run-phase_4 + null))) + (if (null? mis_0) + (void) + (let-values () + (begin + (hash-set! + (namespace-available-module-instances ns_38) + run-phase_4 + null) + (let-values (((lst_74) (reverse$1 mis_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_74))) + ((letrec-values (((for-loop_92) + (lambda (lst_75) + (begin + 'for-loop + (if (pair? lst_75) + (let-values (((mi_8) + (unsafe-car + lst_75)) + ((rest_35) + (unsafe-cdr + lst_75))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((mi210_0) + mi_8) + ((ns211_0) + ns_38) + ((run-phase212_0) + run-phase_4) + ((temp213_0) + #f) + ((temp214_0) + #f)) + (run-module-instance!.1 + #f + temp214_0 + run-phase212_0 + '#hasheq() + null + temp213_0 + mi210_0 + ns211_0))) + (values))))) + (values))))) + (if (not #f) + (for-loop_92 rest_35) + (values)))) + (values)))))) + for-loop_92) + lst_74))) + (void) + (loop_74))))))))) + loop_74))))))))))) + (case-lambda + ((ns_39) (begin (namespace-run-available-modules!_0 ns_39 unsafe-undefined))) + ((ns_40 run-phase120_1) (namespace-run-available-modules!_0 ns_40 run-phase120_1))))) + (define-values + (namespace-primitive-module-visit!) + (lambda (ns_41 name_36) + (begin + (let-values (((mi_9) (hash-ref (namespace-module-instances ns_41) (1/make-resolved-module-path name_36)))) + (let-values (((mi215_0) mi_9) ((ns216_0) ns_41) ((temp217_0) 1) ((temp218_0) #f) ((temp219_0) #t)) + (run-module-instance!.1 #f temp219_0 temp217_0 '#hasheq() null temp218_0 mi215_0 ns216_0)))))) + (define-values + (namespace-module-use->module+linklet-instances.1) + (lambda (phase-shift124_0 shift-from122_0 shift-to123_0 ns128_0 mu129_0) + (begin + 'namespace-module-use->module+linklet-instances + (let-values (((ns_42) ns128_0)) + (let-values (((mu_0) mu129_0)) + (let-values (((shift-from_0) shift-from122_0)) + (let-values (((shift-to_0) shift-to123_0)) + (let-values (((phase-shift_2) phase-shift124_0)) + (let-values () + (let-values (((mod_1) (module-use-module mu_0))) + (let-values (((mi_10) + (let-values (((ns220_0) ns_42) + ((temp221_0) + (1/module-path-index-resolve + (if shift-from_0 + (module-path-index-shift mod_1 shift-from_0 shift-to_0) + mod_1))) + ((phase-shift222_0) phase-shift_2) + ((temp223_0) #t)) + (namespace->module-instance.1 + #f + temp223_0 + void + ns220_0 + temp221_0 + phase-shift222_0)))) + (let-values (((m-ns_6) (module-instance-namespace mi_10))) + (let-values (((d_18) + (small-hash-ref + (namespace-phase-level-to-definitions m-ns_6) + (module-use-phase mu_0) + #f))) + (if d_18 + (values mi_10 (definitions-variables d_18)) + (error + 'eval + (string-append + "namespace mismatch: phase level not found;\n" + " module: ~a\n" + " phase level: ~a\n" + " found phase levels: ~a") + mod_1 + (module-use-phase mu_0) + (small-hash-keys (namespace-phase-level-to-definitions m-ns_6))))))))))))))))) + (define-values + (fresh-requires) + (lambda (requires_1) + (begin + (reverse$1 + (let-values (((lst_76) requires_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_76))) + ((letrec-values (((for-loop_93) + (lambda (fold-var_56 lst_77) + (begin + 'for-loop + (if (pair? lst_77) + (let-values (((phase+mpis_2) (unsafe-car lst_77)) ((rest_36) (unsafe-cdr lst_77))) + (let-values (((fold-var_57) + (let-values (((fold-var_58) fold-var_56)) + (let-values (((fold-var_59) + (let-values () + (cons + (let-values () + (cons + (car phase+mpis_2) + (reverse$1 + (let-values (((lst_78) (cdr phase+mpis_2))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_78))) + ((letrec-values (((for-loop_94) + (lambda (fold-var_60 + lst_79) + (begin + 'for-loop + (if (pair? lst_79) + (let-values (((req-mpi_2) + (unsafe-car + lst_79)) + ((rest_37) + (unsafe-cdr + lst_79))) + (let-values (((fold-var_61) + (let-values (((fold-var_62) + fold-var_60)) + (let-values (((fold-var_63) + (let-values () + (cons + (let-values () + (module-path-index-fresh + req-mpi_2)) + fold-var_62)))) + (values + fold-var_63))))) + (if (not #f) + (for-loop_94 + fold-var_61 + rest_37) + fold-var_61))) + fold-var_60))))) + for-loop_94) + null + lst_78)))))) + fold-var_58)))) + (values fold-var_59))))) + (if (not #f) (for-loop_93 fold-var_57 rest_36) fold-var_57))) + fold-var_56))))) + for-loop_93) + null + lst_76))))))) + (define-values + (module-compute-access!) + (lambda (m_10) + (begin + (let-values (((access_0) + (let-values (((ht_70) (module-provides m_10))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_70))) + ((letrec-values (((for-loop_95) + (lambda (table_97 i_88) + (begin + 'for-loop + (if i_88 + (let-values (((phase_34 at-phase_6) + (hash-iterate-key+value ht_70 i_88))) + (let-values (((table_98) + (let-values (((table_99) table_97)) + (let-values (((table_100) + (let-values () + (let-values (((key_43 val_32) + (let-values () + (values + phase_34 + (let-values (((ht_71) + at-phase_6)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_71))) + ((letrec-values (((for-loop_96) + (lambda (table_101 + i_89) + (begin + 'for-loop + (if i_89 + (let-values (((sym_23 + binding/p_1) + (hash-iterate-key+value + ht_71 + i_89))) + (let-values (((table_102) + (let-values (((table_81) + table_101)) + (let-values (((table_103) + (let-values () + (let-values (((key_44 + val_33) + (let-values () + (values + (module-binding-sym + (provided-as-binding + binding/p_1)) + (if (provided-as-protected? + binding/p_1) + 'protected + 'provided))))) + (hash-set + table_81 + key_44 + val_33))))) + (values + table_103))))) + (if (not + #f) + (for-loop_96 + table_102 + (hash-iterate-next + ht_71 + i_89)) + table_102))) + table_101))))) + for-loop_96) + '#hash() + (hash-iterate-first + ht_71)))))))) + (hash-set + table_99 + key_43 + val_32))))) + (values table_100))))) + (if (not #f) + (for-loop_95 table_98 (hash-iterate-next ht_70 i_88)) + table_98))) + table_97))))) + for-loop_95) + '#hasheqv() + (hash-iterate-first ht_70)))))) + (begin (set-module-access! m_10 access_0) access_0))))) + (define-values + (module-instances->indented-module-names) + (lambda (mi_11 seen-list_2) + (begin + (let-values (((mi->name_0) + (lambda (mi_12) + (begin + 'mi->name + (format + "\n ~a" + (1/module-path-index-resolve (namespace-mpi (module-instance-namespace mi_12)))))))) + (cons + (mi->name_0 mi_11) + ((letrec-values (((loop_75) + (lambda (seen-list_3) + (begin + 'loop + (if (null? seen-list_3) + (let-values () '()) + (if (eq? mi_11 (car seen-list_3)) + (let-values () (list (mi->name_0 mi_11))) + (let-values () + (cons (mi->name_0 (car seen-list_3)) (loop_75 (cdr seen-list_3)))))))))) + loop_75) + seen-list_2)))))) + (define-values + (binding->module-instance) + (lambda (b_44 ns_43 phase_35 id_12) + (begin + (let-values (((at-phase_7) (phase- phase_35 (module-binding-phase b_44)))) + (let-values (((mi_13) + (let-values (((ns1_0) ns_43) + ((temp2_0) (1/module-path-index-resolve (module-binding-module b_44))) + ((at-phase3_0) at-phase_7) + ((temp4_0) (module-binding-phase b_44)) + ((temp5_1) (lambda (mi_14) 'unavailable))) + (namespace->module-instance.1 temp4_0 #f temp5_1 ns1_0 temp2_0 at-phase3_0)))) + (begin + (if (eq? mi_13 'unavailable) + (let-values () + (raise-syntax-error$1 + #f + (format + (string-append + "module mismatch;\n" + " attempted to use a module that is not available\n" + " possible cause:\n" + " using (dynamic-require .... #f)\n" + " but need (dynamic-require .... 0)\n" + " module: ~s\n" + " phase: ~s") + (module-binding-module b_44) + (phase+ at-phase_7 (module-binding-phase b_44))) + id_12)) + (void)) + (if mi_13 + (void) + (let-values () + (raise-syntax-error$1 + #f + (format + (string-append + "namespace mismatch;\n" + " cannot locate module instance\n" + " module: ~a\n" + " use phase: ~a\n" + " definition phase: ~a") + (1/module-path-index-resolve (module-binding-module b_44)) + phase_35 + (module-binding-phase b_44)) + id_12))) + mi_13)))))) + (define-values + (check-access) + (lambda (b_44 mi_15 id_13 in-s_0 what_0) + (begin + (let-values (((m_11) (module-instance-module mi_15))) + (if (if m_11 (not (module-no-protected? m_11)) #f) + (let-values () + (let-values (((access_1) + (let-values (((or-part_32) (module-access m_11))) + (if or-part_32 or-part_32 (module-compute-access! m_11))))) + (let-values (((a_21) + (hash-ref + (hash-ref access_1 (module-binding-phase b_44) '#hasheq()) + (module-binding-sym b_44) + 'unexported))) + (if (let-values (((or-part_33) (eq? a_21 'unexported))) + (if or-part_33 or-part_33 (eq? a_21 'protected))) + (let-values () + (begin + (if (let-values (((or-part_0) + (inspector-superior? + (let-values (((or-part_71) (syntax-inspector id_13))) + (if or-part_71 or-part_71 (current-code-inspector))) + (namespace-inspector (module-instance-namespace mi_15))))) + (if or-part_0 + or-part_0 + (if (module-binding-extra-inspector b_44) + (inspector-superior? + (module-binding-extra-inspector b_44) + (namespace-inspector (module-instance-namespace mi_15))) + #f))) + (void) + (let-values () + (let-values (((complain-id_0) + (let-values (((c-id_0) + (let-values (((or-part_82) in-s_0)) + (if or-part_82 or-part_82 (module-binding-sym b_44))))) + (if (not + (eq? + (if (syntax?$1 c-id_0) (syntax-content c-id_0) c-id_0) + (syntax-content id_13))) + c-id_0 + #f)))) + (raise-syntax-error$1 + #f + (format + "access disallowed by code inspector to ~a ~a\n from module: ~a" + a_21 + what_0 + (1/module-path-index-resolve (namespace-mpi (module-instance-namespace mi_15)))) + complain-id_0 + id_13 + null)))) + #t)) + (let-values () #f))))) + (let-values () #f)))))) + (define-values + (resolve+shift/extra-inspector) + (lambda (id_14 phase_36 ns_44) + (begin + ((letrec-values (((loop_76) + (lambda (id_15 in-s_1) + (begin + 'loop + (let-values (((b_63) + (let-values (((id1_2) id_15) ((phase2_0) phase_36) ((temp3_0) #t)) + (resolve+shift.1 #f #f null temp3_0 #f id1_2 phase2_0)))) + (let-values (((c1_23) (binding-free=id b_63))) + (if c1_23 + ((lambda (next-id_0) + (let-values ((() + (begin + (if (if (module-binding? b_63) + (not + (top-level-module-path-index? (module-binding-module b_63))) + #f) + (let-values () + (let-values (((mi_16) + (binding->module-instance + b_63 + ns_44 + phase_36 + id_15))) + (check-access b_63 mi_16 id_15 in-s_1 "provided binding"))) + (void)) + (values)))) + (let-values (((next-b_0) + (loop_76 + next-id_0 + (let-values (((or-part_6) in-s_1)) + (if or-part_6 or-part_6 id_15))))) + (if (not next-b_0) + (let-values () b_63) + (if (if (module-binding? next-b_0) + (if (not (module-binding-extra-inspector next-b_0)) + (syntax-inspector id_15) + #f) + #f) + (let-values () + (let-values (((next-b4_0) next-b_0) ((temp5_2) (syntax-inspector id_15))) + (module-binding-update.1 + temp5_2 + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + next-b4_0))) + (let-values () next-b_0)))))) + c1_23) + (let-values () b_63)))))))) + loop_76) + id_14 + #f)))) + (define-values + (1/prop:set!-transformer 1/set!-transformer? set!-transformer-value) + (make-struct-type-property + 'set!-transformer + (lambda (v_28 info_0) + (let-values ((() + (begin + (if (let-values (((or-part_12) + (if (procedure? v_28) + (let-values (((or-part_3) (procedure-arity-includes? v_28 1))) + (if or-part_3 or-part_3 (procedure-arity-includes? v_28 2))) + #f))) + (if or-part_12 or-part_12 (exact-nonnegative-integer? v_28))) + (void) + (let-values () + (raise-argument-error + 'guard-for-prop:set!-transformer + (string-append + "(or/c (procedure-arity-includes? proc 1)\n" + " (procedure-arity-includes? proc 2)\n" + " exact-nonnegative-integer?)") + v_28))) + (values)))) + (let-values ((() + (begin + (if (exact-nonnegative-integer? v_28) + (let-values () + (begin + (if (<= v_28 (list-ref info_0 1)) + (void) + (let-values () + (raise-arguments-error + 'guard-for-prop:set!-transformer + "field index >= initialized-field count for structure type" + "field index" + v_28 + "initialized-field count" + (list-ref info_0 1)))) + (if (member v_28 (list-ref info_0 5)) + (void) + (let-values () + (raise-arguments-error + 'guard-for-prop:set!-transformer + "field index not declared immutable" + "field index" + v_28))))) + (void)) + (values)))) + (let-values (((ref_0) (list-ref info_0 3))) + (if (integer? v_28) + (let-values () + (lambda (t_9) + (let-values (((p_19) (ref_0 t_9 v_28))) + (if (if (procedure? p_19) (procedure-arity-includes? p_19 1) #f) + p_19 + (lambda (s_175) (error "bad syntax:" s_175)))))) + (let-values () (lambda (t_11) v_28))))))))) + (define-values + (1/make-set!-transformer) + (let-values () + (let-values (((struct:set!-transformer_0 set!-transformer1_0 set!-transformer?_0 set!-transformer-proc_0) + (let-values (((struct:_34 make-_34 ?_34 -ref_34 -set!_34) + (let-values () + (let-values () + (make-struct-type + 'set!-transformer + #f + 1 + 0 + #f + (list (cons 1/prop:set!-transformer 0)) + (current-inspector) + #f + '(0) + #f + 'set!-transformer))))) + (values struct:_34 make-_34 ?_34 (make-struct-field-accessor -ref_34 0 'proc))))) + (lambda (proc_4) + (begin + 'make-set!-transformer + (begin + (if (if (procedure? proc_4) (procedure-arity-includes? proc_4 1) #f) + (void) + (let-values () (raise-argument-error 'make-set!-transformer "(procedure-arity-includes/c 1)" proc_4))) + (set!-transformer1_0 proc_4))))))) + (define-values + (1/set!-transformer-procedure) + (lambda (t_13) + (begin + 'set!-transformer-procedure + (let-values (((v_86) ((set!-transformer-value t_13) t_13))) + (if (procedure-arity-includes? v_86 1) v_86 (lambda (s_176) (v_86 t_13 s_176))))))) + (define-values (empty-env) '#hasheq()) + (define-values (env-extend) (lambda (env_0 key_36 val_34) (begin (hash-set env_0 key_36 val_34)))) + (define-values (lookup) (lambda (env_1 key_45 default_6) (begin (hash-ref env_1 key_45 default_6)))) + (define-values (variable) (gensym 'variable)) + (define-values + (variable?) + (lambda (t_14) + (begin (let-values (((or-part_83) (eq? t_14 variable))) (if or-part_83 or-part_83 (local-variable? t_14)))))) + (define-values + (struct:local-variable local-variable1.1 local-variable? local-variable-id) + (let-values (((struct:_35 make-_35 ?_35 -ref_35 -set!_35) + (let-values () + (let-values () + (make-struct-type + 'local-variable + #f + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'local-variable))))) + (values struct:_35 make-_35 ?_35 (make-struct-field-accessor -ref_35 0 'id)))) + (define-values + (substitute-variable.1) + (lambda (no-stops?2_0 id4_0 t5_0) + (begin + 'substitute-variable + (let-values (((id_16) id4_0)) + (let-values (((t_2) t5_0)) + (let-values (((no-stops?_0) no-stops?2_0)) + (let-values () + (if (if no-stops?_0 (local-variable? t_2) #f) + (let-values (((bind-id_0) (local-variable-id t_2))) + (let-values (((pruned-id_0) (datum->syntax$1 bind-id_0 (syntax-e$1 bind-id_0) id_16 id_16))) + (if (syntax-any-macro-scopes? id_16) + (1/syntax-property-remove pruned-id_0 original-property-sym) + pruned-id_0))) + id_16)))))))) + (define-values (missing) (gensym 'missing)) + (define-values + (transformer?) + (lambda (t_15) + (begin + (let-values (((or-part_175) (procedure? t_15))) + (if or-part_175 + or-part_175 + (let-values (((or-part_176) (1/set!-transformer? t_15))) + (if or-part_176 or-part_176 (1/rename-transformer? t_15)))))))) + (define-values + (transformer->procedure) + (lambda (t_16) + (begin + (if (1/set!-transformer? t_16) + (let-values () (1/set!-transformer-procedure t_16)) + (if (1/rename-transformer? t_16) (let-values () (lambda (s_177) s_177)) (let-values () t_16)))))) + (define-values + (struct:core-form core-form7.1 core-form? core-form-expander core-form-name) + (let-values (((struct:_0 make-_0 ?_0 -ref_0 -set!_0) + (let-values () + (let-values () + (make-struct-type + 'core-form + #f + 2 + 0 + #f + (list (cons prop:authentic #t)) + #f + #f + '(0 1) + #f + 'core-form))))) + (values + struct:_0 + make-_0 + ?_0 + (make-struct-field-accessor -ref_0 0 'expander) + (make-struct-field-accessor -ref_0 1 'name)))) + (define-values + (add-binding!.1) + (lambda (in8_0 just-for-nominal?9_0 id12_0 binding13_0 phase14_0) + (begin + 'add-binding! + (let-values (((id_17) id12_0)) + (let-values (((binding_8) binding13_0)) + (let-values (((phase_37) phase14_0)) + (let-values (((in-s_2) in8_0)) + (let-values (((just-for-nominal?_2) just-for-nominal?9_0)) + (let-values () + (begin + (check-id-taint id_17 in-s_2) + (let-values (((temp47_1) (syntax-scope-set id_17 phase_37)) + ((temp48_0) (syntax-e$1 id_17)) + ((binding49_0) binding_8) + ((just-for-nominal?50_0) just-for-nominal?_2)) + (add-binding-in-scopes!.1 just-for-nominal?50_0 temp47_1 temp48_0 binding49_0)))))))))))) + (define-values + (add-bulk-binding!.1) + (lambda (in16_0 shadow-except17_0 s20_0 binding21_0 phase22_1) + (begin + 'add-bulk-binding! + (let-values (((s_178) s20_0)) + (let-values (((binding_9) binding21_0)) + (let-values (((phase_38) phase22_1)) + (let-values (((in-s_3) in16_0)) + (let-values (((shadow-except_2) shadow-except17_0)) + (let-values () + (begin + (if (syntax-tainted?$1 s_178) + (let-values () (raise-syntax-error$1 #f "cannot bind from tainted syntax" in-s_3 s_178)) + (void)) + (let-values (((temp51_1) (syntax-scope-set s_178 phase_38)) + ((binding52_0) binding_9) + ((shadow-except53_0) shadow-except_2)) + (add-bulk-binding-in-scopes!.1 shadow-except53_0 temp51_1 binding52_0)))))))))))) + (define-values + (add-local-binding!.1) + (lambda (frame-id25_0 in26_0 local-sym24_0 id30_0 phase31_0 counter32_0) + (begin + 'add-local-binding! + (let-values (((id_18) id30_0)) + (let-values (((phase_39) phase31_0)) + (let-values (((counter_1) counter32_0)) + (let-values (((local-sym_0) local-sym24_0)) + (let-values (((frame-id_5) frame-id25_0)) + (let-values (((in-s_4) in26_0)) + (let-values () + (let-values ((() (begin (check-id-taint id_18 in-s_4) (values)))) + (let-values (((c_13) (add1 (unbox counter_1)))) + (let-values ((() (begin (set-box! counter_1 c_13) (values)))) + (let-values (((sym_24) (syntax-content id_18))) + (let-values (((key_46) + (string->uninterned-symbol + (string-append-immutable + (symbol->immutable-string + (let-values (((or-part_177) local-sym_0)) + (if or-part_177 or-part_177 sym_24))) + "_" + (number->string c_13))))) + (begin + (let-values (((temp54_0) (syntax-scope-set id_18 phase_39)) + ((sym55_0) sym_24) + ((temp56_1) + (let-values (((key57_0) key_46) ((frame-id58_0) frame-id_5)) + (make-local-binding.1 frame-id58_0 #f key57_0)))) + (add-binding-in-scopes!.1 #f temp54_0 sym55_0 temp56_1)) + key_46)))))))))))))))) + (define-values + (check-id-taint) + (lambda (id_19 in-s_5) + (begin + (if (syntax-tainted?$1 id_19) + (let-values () (raise-syntax-error$1 #f "cannot bind tainted identifier" in-s_5 id_19)) + (void))))) + (define-values + (binding-lookup.1) + (lambda (in34_0 out-of-context-as-variable?35_0 b38_0 env39_0 lift-envs40_0 ns41_0 phase42_0 id43_0) + (begin + 'binding-lookup + (let-values (((b_64) b38_0)) + (let-values (((env_2) env39_0)) + (let-values (((lift-envs_0) lift-envs40_0)) + (let-values (((ns_22) ns41_0)) + (let-values (((phase_40) phase42_0)) + (let-values (((id_20) id43_0)) + (let-values (((in-s_6) in34_0)) + (let-values (((out-of-context-as-variable?_0) out-of-context-as-variable?35_0)) + (let-values () + (if (module-binding? b_64) + (let-values () + (let-values (((top-level?_0) (top-level-module-path-index? (module-binding-module b_64)))) + (let-values (((mi_17) + (if (not top-level?_0) + (binding->module-instance b_64 ns_22 phase_40 id_20) + #f))) + (let-values (((m_12) (if mi_17 (module-instance-module mi_17) #f))) + (let-values (((primitive?_1) (if m_12 (module-primitive? m_12) #f))) + (let-values (((m-ns_2) + (if top-level?_0 + ns_22 + (if mi_17 (module-instance-namespace mi_17) #f)))) + (let-values ((() (begin (check-taint id_20) (values)))) + (let-values (((t_17) + (namespace-get-transformer + m-ns_2 + (module-binding-phase b_64) + (module-binding-sym b_64) + variable))) + (let-values (((protected?_1) + (if mi_17 + (check-access + b_64 + mi_17 + id_20 + in-s_6 + (if (variable? t_17) "variable" "transformer")) + #f))) + (let-values (((insp_5) + (if mi_17 + (if (module-instance-module mi_17) + (module-inspector (module-instance-module mi_17)) + #f) + #f))) + (values t_17 primitive?_1 insp_5 protected?_1))))))))))) + (if (local-binding? b_64) + (let-values () + (let-values (((t_18) (lookup env_2 (local-binding-key b_64) missing))) + (if (eq? t_18 missing) + (let-values () + (values + (let-values (((or-part_107) + (let-values (((lst_80) lift-envs_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_80))) + ((letrec-values (((for-loop_97) + (lambda (result_16 lst_81) + (begin + 'for-loop + (if (pair? lst_81) + (let-values (((lift-env_0) + (unsafe-car lst_81)) + ((rest_38) + (unsafe-cdr lst_81))) + (let-values (((result_54) + (let-values () + (let-values (((result_55) + (let-values () + (let-values () + (lookup + (unbox + lift-env_0) + (local-binding-key + b_64) + #f))))) + (values + result_55))))) + (if (if (not + ((lambda x_36 result_54) + lift-env_0)) + (not #f) + #f) + (for-loop_97 result_54 rest_38) + result_54))) + result_16))))) + for-loop_97) + #f + lst_80))))) + (if or-part_107 + or-part_107 + (if out-of-context-as-variable?_0 + variable + (error "identifier used out of context:" id_20)))) + #f + #f + #f)) + (let-values () (begin (check-taint id_20) (values t_18 #f #f #f)))))) + (let-values () (error "internal error: unknown binding for lookup:" b_64)))))))))))))))) + (define-values + (check-taint) + (lambda (id_21) + (begin + (if (syntax-tainted?$1 id_21) + (let-values () (raise-syntax-error$1 #f "cannot use identifier tainted by macro transformation" id_21)) + (void))))) + (define-values + (existing-binding-key) + (lambda (id_22 phase_41) + (begin + (let-values (((b_65) + (let-values (((id59_0) id_22) ((phase60_0) phase_41) ((temp61_0) #t)) + (resolve+shift.1 #f #f null temp61_0 #f id59_0 phase60_0)))) + (begin + (if (local-binding? b_65) + (void) + (let-values () + (raise-syntax-error$1 #f "expected an existing local binding for an already-expanded identifier" id_22))) + (local-binding-key b_65)))))) + (define-values (cons-ish) (lambda (a_27 b_66) (begin (if (null? b_66) a_27 (cons a_27 b_66))))) + (define-values + (free-id-set) + (lambda (phase_42 ids_1) + (begin + (let-values (((lst_82) ids_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_82))) + ((letrec-values (((for-loop_98) + (lambda (ht_72 lst_83) + (begin + 'for-loop + (if (pair? lst_83) + (let-values (((id_10) (unsafe-car lst_83)) ((rest_39) (unsafe-cdr lst_83))) + (let-values (((ht_73) + (let-values (((ht_74) ht_72)) + (let-values (((ht_75) + (let-values () + (let-values (((sym_25) + (identifier-binding-symbol$1 + id_10 + phase_42))) + (hash-set + ht_74 + sym_25 + (cons-ish + id_10 + (hash-ref ht_74 sym_25 null))))))) + (values ht_75))))) + (if (not #f) (for-loop_98 ht_73 rest_39) ht_73))) + ht_72))))) + for-loop_98) + '#hasheq() + lst_82)))))) + (define-values (empty-free-id-set) (free-id-set 0 null)) + (define-values (free-id-set-empty?) (lambda (fs_0) (begin (eq? fs_0 empty-free-id-set)))) + (define-values + (free-id-set-member?) + (lambda (fs_1 phase_43 given-id_0) + (begin + (if (free-id-set-empty? fs_1) + #f + (let-values (((lst_44) (hash-ref fs_1 (identifier-binding-symbol$1 given-id_0 phase_43) null))) + (begin + (void) + ((letrec-values (((for-loop_55) + (lambda (result_3 lst_23) + (begin + 'for-loop + (if (not (null? lst_23)) + (let-values (((id_2) (if (pair? lst_23) (car lst_23) lst_23)) + ((rest_19) (if (pair? lst_23) (cdr lst_23) null))) + (let-values (((result_56) + (let-values () + (let-values (((result_57) + (let-values () + (let-values () + (free-identifier=?$1 + id_2 + given-id_0 + phase_43 + phase_43))))) + (values result_57))))) + (if (if (not ((lambda x_37 result_56) id_2)) (not #f) #f) + (for-loop_55 result_56 rest_19) + result_56))) + result_3))))) + for-loop_55) + #f + lst_44))))))) + (define-values + (free-id-set-empty-or-just-module*?) + (lambda (fs_2) (begin (let-values (((c_18) (hash-count fs_2))) (<= c_18 1))))) + (define-values + (struct:expand-context/outer + expand-context/outer1.1 + expand-context/outer? + expand-context/outer-context + expand-context/outer-env + expand-context/outer-scopes + expand-context/outer-def-ctx-scopes + expand-context/outer-binding-layer + expand-context/outer-reference-records + expand-context/outer-only-immediate? + expand-context/outer-need-eventually-defined + expand-context/outer-current-introduction-scopes + expand-context/outer-current-use-scopes + expand-context/outer-name) + (let-values (((struct:_36 make-_36 ?_36 -ref_36 -set!_36) + (let-values () + (let-values () + (make-struct-type + 'expand-context + struct:root-expand-context/outer + 11 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6 7 8 9 10) + #f + 'expand-context/outer))))) + (values + struct:_36 + make-_36 + ?_36 + (make-struct-field-accessor -ref_36 0 'context) + (make-struct-field-accessor -ref_36 1 'env) + (make-struct-field-accessor -ref_36 2 'scopes) + (make-struct-field-accessor -ref_36 3 'def-ctx-scopes) + (make-struct-field-accessor -ref_36 4 'binding-layer) + (make-struct-field-accessor -ref_36 5 'reference-records) + (make-struct-field-accessor -ref_36 6 'only-immediate?) + (make-struct-field-accessor -ref_36 7 'need-eventually-defined) + (make-struct-field-accessor -ref_36 8 'current-introduction-scopes) + (make-struct-field-accessor -ref_36 9 'current-use-scopes) + (make-struct-field-accessor -ref_36 10 'name)))) + (define-values + (struct:expand-context/inner + expand-context/inner2.1 + expand-context/inner? + expand-context/inner-to-parsed? + expand-context/inner-phase + expand-context/inner-namespace + expand-context/inner-just-once? + expand-context/inner-module-begin-k + expand-context/inner-allow-unbound? + expand-context/inner-in-local-expand? + expand-context/inner-keep-#%expression? + expand-context/inner-stops + expand-context/inner-declared-submodule-names + expand-context/inner-lifts + expand-context/inner-lift-envs + expand-context/inner-module-lifts + expand-context/inner-require-lifts + expand-context/inner-to-module-lifts + expand-context/inner-requires+provides + expand-context/inner-observer + expand-context/inner-for-serializable? + expand-context/inner-to-correlated-linklet? + expand-context/inner-normalize-locals? + expand-context/inner-parsing-expanded? + expand-context/inner-skip-visit-available?) + (let-values (((struct:_37 make-_37 ?_37 -ref_37 -set!_37) + (let-values () + (let-values () + (make-struct-type + 'expand-context/inner + struct:root-expand-context/inner + 22 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21) + #f + 'expand-context/inner))))) + (values + struct:_37 + make-_37 + ?_37 + (make-struct-field-accessor -ref_37 0 'to-parsed?) + (make-struct-field-accessor -ref_37 1 'phase) + (make-struct-field-accessor -ref_37 2 'namespace) + (make-struct-field-accessor -ref_37 3 'just-once?) + (make-struct-field-accessor -ref_37 4 'module-begin-k) + (make-struct-field-accessor -ref_37 5 'allow-unbound?) + (make-struct-field-accessor -ref_37 6 'in-local-expand?) + (make-struct-field-accessor -ref_37 7 'keep-#%expression?) + (make-struct-field-accessor -ref_37 8 'stops) + (make-struct-field-accessor -ref_37 9 'declared-submodule-names) + (make-struct-field-accessor -ref_37 10 'lifts) + (make-struct-field-accessor -ref_37 11 'lift-envs) + (make-struct-field-accessor -ref_37 12 'module-lifts) + (make-struct-field-accessor -ref_37 13 'require-lifts) + (make-struct-field-accessor -ref_37 14 'to-module-lifts) + (make-struct-field-accessor -ref_37 15 'requires+provides) + (make-struct-field-accessor -ref_37 16 'observer) + (make-struct-field-accessor -ref_37 17 'for-serializable?) + (make-struct-field-accessor -ref_37 18 'to-correlated-linklet?) + (make-struct-field-accessor -ref_37 19 'normalize-locals?) + (make-struct-field-accessor -ref_37 20 'parsing-expanded?) + (make-struct-field-accessor -ref_37 21 'skip-visit-available?)))) + (define-values + (expand-context/make) + (lambda (self-mpi_2 + module-scopes_2 + post-expansion_1 + top-level-bind-scope_1 + all-scopes-stx_2 + use-site-scopes_1 + defined-syms_1 + frame-id_6 + counter_2 + lift-key_1 + to-parsed?_0 + context_0 + phase_44 + namespace_0 + env_3 + scopes_19 + def-ctx-scopes_0 + binding-layer_0 + reference-records_0 + only-immediate?_0 + just-once?_0 + module-begin-k_0 + need-eventually-defined_0 + allow-unbound?_0 + in-local-expand?_0 + keep-#%expression?_0 + stops_0 + current-introduction-scopes_0 + current-use-scopes_0 + declared-submodule-names_0 + lifts_0 + lift-envs_1 + module-lifts_0 + require-lifts_0 + to-module-lifts_0 + requires+provides_0 + name_37 + observer_0 + for-serializable?_0 + to-correlated-linklet?_0 + normalize-locals?_0 + parsing-expanded?_0 + skip-visit-available?_0) + (begin + (expand-context/outer1.1 + (expand-context/inner2.1 + self-mpi_2 + module-scopes_2 + top-level-bind-scope_1 + all-scopes-stx_2 + defined-syms_1 + counter_2 + lift-key_1 + to-parsed?_0 + phase_44 + namespace_0 + just-once?_0 + module-begin-k_0 + allow-unbound?_0 + in-local-expand?_0 + keep-#%expression?_0 + stops_0 + declared-submodule-names_0 + lifts_0 + lift-envs_1 + module-lifts_0 + require-lifts_0 + to-module-lifts_0 + requires+provides_0 + observer_0 + for-serializable?_0 + to-correlated-linklet?_0 + normalize-locals?_0 + parsing-expanded?_0 + skip-visit-available?_0) + post-expansion_1 + use-site-scopes_1 + frame-id_6 + context_0 + env_3 + scopes_19 + def-ctx-scopes_0 + binding-layer_0 + reference-records_0 + only-immediate?_0 + need-eventually-defined_0 + current-introduction-scopes_0 + current-use-scopes_0 + name_37)))) + (define-values (expand-context-context) (lambda (v_87) (begin (expand-context/outer-context v_87)))) + (define-values (expand-context-env) (lambda (v_88) (begin (expand-context/outer-env v_88)))) + (define-values (expand-context-scopes) (lambda (v_89) (begin (expand-context/outer-scopes v_89)))) + (define-values (expand-context-def-ctx-scopes) (lambda (v_90) (begin (expand-context/outer-def-ctx-scopes v_90)))) + (define-values (expand-context-binding-layer) (lambda (v_91) (begin (expand-context/outer-binding-layer v_91)))) + (define-values + (expand-context-reference-records) + (lambda (v_92) (begin (expand-context/outer-reference-records v_92)))) + (define-values (expand-context-only-immediate?) (lambda (v_38) (begin (expand-context/outer-only-immediate? v_38)))) + (define-values + (expand-context-need-eventually-defined) + (lambda (v_93) (begin (expand-context/outer-need-eventually-defined v_93)))) + (define-values + (expand-context-current-introduction-scopes) + (lambda (v_94) (begin (expand-context/outer-current-introduction-scopes v_94)))) + (define-values + (expand-context-current-use-scopes) + (lambda (v_95) (begin (expand-context/outer-current-use-scopes v_95)))) + (define-values (expand-context-name) (lambda (v_96) (begin (expand-context/outer-name v_96)))) + (define-values + (expand-context-to-parsed?) + (lambda (v_97) (begin (expand-context/inner-to-parsed? (root-expand-context/outer-inner v_97))))) + (define-values + (expand-context-phase) + (lambda (v_98) (begin (expand-context/inner-phase (root-expand-context/outer-inner v_98))))) + (define-values + (expand-context-namespace) + (lambda (v_41) (begin (expand-context/inner-namespace (root-expand-context/outer-inner v_41))))) + (define-values + (expand-context-just-once?) + (lambda (v_99) (begin (expand-context/inner-just-once? (root-expand-context/outer-inner v_99))))) + (define-values + (expand-context-module-begin-k) + (lambda (v_100) (begin (expand-context/inner-module-begin-k (root-expand-context/outer-inner v_100))))) + (define-values + (expand-context-allow-unbound?) + (lambda (v_101) (begin (expand-context/inner-allow-unbound? (root-expand-context/outer-inner v_101))))) + (define-values + (expand-context-in-local-expand?) + (lambda (v_102) (begin (expand-context/inner-in-local-expand? (root-expand-context/outer-inner v_102))))) + (define-values + (expand-context-keep-#%expression?) + (lambda (v_103) (begin (expand-context/inner-keep-#%expression? (root-expand-context/outer-inner v_103))))) + (define-values + (expand-context-stops) + (lambda (v_104) (begin (expand-context/inner-stops (root-expand-context/outer-inner v_104))))) + (define-values + (expand-context-declared-submodule-names) + (lambda (v_105) (begin (expand-context/inner-declared-submodule-names (root-expand-context/outer-inner v_105))))) + (define-values + (expand-context-lifts) + (lambda (v_106) (begin (expand-context/inner-lifts (root-expand-context/outer-inner v_106))))) + (define-values + (expand-context-lift-envs) + (lambda (v_107) (begin (expand-context/inner-lift-envs (root-expand-context/outer-inner v_107))))) + (define-values + (expand-context-module-lifts) + (lambda (v_108) (begin (expand-context/inner-module-lifts (root-expand-context/outer-inner v_108))))) + (define-values + (expand-context-require-lifts) + (lambda (v_52) (begin (expand-context/inner-require-lifts (root-expand-context/outer-inner v_52))))) + (define-values + (expand-context-to-module-lifts) + (lambda (v_109) (begin (expand-context/inner-to-module-lifts (root-expand-context/outer-inner v_109))))) + (define-values + (expand-context-requires+provides) + (lambda (v_110) (begin (expand-context/inner-requires+provides (root-expand-context/outer-inner v_110))))) + (define-values + (expand-context-observer) + (lambda (v_111) (begin (expand-context/inner-observer (root-expand-context/outer-inner v_111))))) + (define-values + (expand-context-for-serializable?) + (lambda (v_81) (begin (expand-context/inner-for-serializable? (root-expand-context/outer-inner v_81))))) + (define-values + (expand-context-to-correlated-linklet?) + (lambda (v_112) (begin (expand-context/inner-to-correlated-linklet? (root-expand-context/outer-inner v_112))))) + (define-values + (expand-context-normalize-locals?) + (lambda (v_113) (begin (expand-context/inner-normalize-locals? (root-expand-context/outer-inner v_113))))) + (define-values + (expand-context-parsing-expanded?) + (lambda (v_114) (begin (expand-context/inner-parsing-expanded? (root-expand-context/outer-inner v_114))))) + (define-values + (expand-context-skip-visit-available?) + (lambda (v_115) (begin (expand-context/inner-skip-visit-available? (root-expand-context/outer-inner v_115))))) + (define-values + (make-expand-context.1) + (lambda (for-serializable?4_0 observer6_0 skip-visit-available?7_0 to-correlated-linklet?5_0 to-parsed?3_0 ns13_0) + (begin + 'make-expand-context + (let-values (((ns_45) ns13_0)) + (let-values (((to-parsed?_1) to-parsed?3_0)) + (let-values (((for-serializable?_1) for-serializable?4_0)) + (let-values (((to-correlated-linklet?_1) to-correlated-linklet?5_0)) + (let-values (((observer_1) observer6_0)) + (let-values (((skip-visit-available?_1) skip-visit-available?7_0)) + (let-values () + (let-values (((root-ctx_1) (namespace-get-root-expand-ctx ns_45))) + (expand-context/make + (root-expand-context-self-mpi root-ctx_1) + (root-expand-context-module-scopes root-ctx_1) + (root-expand-context-post-expansion root-ctx_1) + (root-expand-context-top-level-bind-scope root-ctx_1) + (root-expand-context-all-scopes-stx root-ctx_1) + (root-expand-context-use-site-scopes root-ctx_1) + (root-expand-context-defined-syms root-ctx_1) + (root-expand-context-frame-id root-ctx_1) + (root-expand-context-counter root-ctx_1) + (root-expand-context-lift-key root-ctx_1) + to-parsed?_1 + 'top-level + (namespace-phase ns_45) + ns_45 + empty-env + null + #f + (root-expand-context-frame-id root-ctx_1) + null + #f + #f + #f + #f + #t + #f + #f + empty-free-id-set + null + null + '#hasheq() + #f + '() + #f + #f + #f + #f + #f + observer_1 + for-serializable?_1 + to-correlated-linklet?_1 + to-correlated-linklet?_1 + #f + skip-visit-available?_1)))))))))))) + (define-values + (copy-root-expand-context) + (lambda (ctx_1 root-ctx_2) + (begin + (let-values (((v_60) ctx_1)) + (let-values (((the-struct_35) v_60)) + (if (expand-context/outer? the-struct_35) + (let-values (((post-expansion25_0) (root-expand-context-post-expansion root-ctx_2)) + ((use-site-scopes26_0) (root-expand-context-use-site-scopes root-ctx_2)) + ((frame-id27_0) (root-expand-context-frame-id root-ctx_2)) + ((binding-layer28_0) (root-expand-context-frame-id root-ctx_2)) + ((inner29_0) + (let-values (((the-struct_36) (root-expand-context/outer-inner v_60))) + (if (expand-context/inner? the-struct_36) + (let-values (((self-mpi30_0) (root-expand-context-self-mpi root-ctx_2)) + ((module-scopes31_0) (root-expand-context-module-scopes root-ctx_2)) + ((top-level-bind-scope32_0) + (root-expand-context-top-level-bind-scope root-ctx_2)) + ((all-scopes-stx33_0) (root-expand-context-all-scopes-stx root-ctx_2)) + ((defined-syms34_0) (root-expand-context-defined-syms root-ctx_2)) + ((counter35_0) (root-expand-context-counter root-ctx_2)) + ((lift-key36_0) (root-expand-context-lift-key root-ctx_2))) + (expand-context/inner2.1 + self-mpi30_0 + module-scopes31_0 + top-level-bind-scope32_0 + all-scopes-stx33_0 + defined-syms34_0 + counter35_0 + lift-key36_0 + (expand-context/inner-to-parsed? the-struct_36) + (expand-context/inner-phase the-struct_36) + (expand-context/inner-namespace the-struct_36) + (expand-context/inner-just-once? the-struct_36) + (expand-context/inner-module-begin-k the-struct_36) + (expand-context/inner-allow-unbound? the-struct_36) + (expand-context/inner-in-local-expand? the-struct_36) + (expand-context/inner-keep-#%expression? the-struct_36) + (expand-context/inner-stops the-struct_36) + (expand-context/inner-declared-submodule-names the-struct_36) + (expand-context/inner-lifts the-struct_36) + (expand-context/inner-lift-envs the-struct_36) + (expand-context/inner-module-lifts the-struct_36) + (expand-context/inner-require-lifts the-struct_36) + (expand-context/inner-to-module-lifts the-struct_36) + (expand-context/inner-requires+provides the-struct_36) + (expand-context/inner-observer the-struct_36) + (expand-context/inner-for-serializable? the-struct_36) + (expand-context/inner-to-correlated-linklet? the-struct_36) + (expand-context/inner-normalize-locals? the-struct_36) + (expand-context/inner-parsing-expanded? the-struct_36) + (expand-context/inner-skip-visit-available? the-struct_36))) + (raise-argument-error 'struct-copy "expand-context/inner?" the-struct_36))))) + (expand-context/outer1.1 + inner29_0 + post-expansion25_0 + use-site-scopes26_0 + frame-id27_0 + (expand-context/outer-context the-struct_35) + (expand-context/outer-env the-struct_35) + (expand-context/outer-scopes the-struct_35) + (expand-context/outer-def-ctx-scopes the-struct_35) + binding-layer28_0 + (expand-context/outer-reference-records the-struct_35) + (expand-context/outer-only-immediate? the-struct_35) + (expand-context/outer-need-eventually-defined the-struct_35) + (expand-context/outer-current-introduction-scopes the-struct_35) + (expand-context/outer-current-use-scopes the-struct_35) + (expand-context/outer-name the-struct_35))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_35))))))) + (define-values (default-val.1$1) #f) + (define-values + (current-expand-context) + (lambda () (begin (continuation-mark-set-first #f current-expand-context default-val.1$1 root-tag)))) + (define-values + (get-current-expand-context.1) + (lambda (fail-ok?15_0 who17_0) + (begin + 'get-current-expand-context + (let-values (((who_10) who17_0)) + (let-values (((fail-ok?_0) fail-ok?15_0)) + (let-values () + (let-values (((or-part_51) (force (current-expand-context)))) + (if or-part_51 + or-part_51 + (if fail-ok?_0 #f (raise-arguments-error who_10 "not currently expanding")))))))))) + (define-values + (current-expand-observe) + (make-parameter + #f + (lambda (v_116) + (begin + (if (let-values (((or-part_94) (not v_116))) + (if or-part_94 or-part_94 (if (procedure? v_116) (procedure-arity-includes? v_116 2) #f))) + (void) + (let-values () + (raise-argument-error 'current-expand-observe "(or/c (procedure-arity-includes/c 2) #f)" v_116))) + v_116)) + 'current-expand-observe)) + (define-values + (as-expression-context) + (lambda (ctx_2) + (begin + (if (if (eq? 'expression (expand-context-context ctx_2)) (not (expand-context-name ctx_2)) #f) + (let-values () ctx_2) + (let-values () + (let-values (((v_117) ctx_2)) + (let-values (((the-struct_37) v_117)) + (if (expand-context/outer? the-struct_37) + (let-values (((context37_0) 'expression) + ((name38_0) #f) + ((post-expansion39_0) #f) + ((inner40_0) (root-expand-context/outer-inner v_117))) + (expand-context/outer1.1 + inner40_0 + post-expansion39_0 + (root-expand-context/outer-use-site-scopes the-struct_37) + (root-expand-context/outer-frame-id the-struct_37) + context37_0 + (expand-context/outer-env the-struct_37) + (expand-context/outer-scopes the-struct_37) + (expand-context/outer-def-ctx-scopes the-struct_37) + (expand-context/outer-binding-layer the-struct_37) + (expand-context/outer-reference-records the-struct_37) + (expand-context/outer-only-immediate? the-struct_37) + (expand-context/outer-need-eventually-defined the-struct_37) + (expand-context/outer-current-introduction-scopes the-struct_37) + (expand-context/outer-current-use-scopes the-struct_37) + name38_0)) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_37))))))))) + (define-values + (as-begin-expression-context) + (lambda (ctx_3) + (begin + (if (not (expand-context-name ctx_3)) + (let-values () ctx_3) + (let-values () + (let-values (((v_118) ctx_3)) + (let-values (((the-struct_38) v_118)) + (if (expand-context/outer? the-struct_38) + (let-values (((name41_0) #f) ((inner42_0) (root-expand-context/outer-inner v_118))) + (expand-context/outer1.1 + inner42_0 + (root-expand-context/outer-post-expansion the-struct_38) + (root-expand-context/outer-use-site-scopes the-struct_38) + (root-expand-context/outer-frame-id the-struct_38) + (expand-context/outer-context the-struct_38) + (expand-context/outer-env the-struct_38) + (expand-context/outer-scopes the-struct_38) + (expand-context/outer-def-ctx-scopes the-struct_38) + (expand-context/outer-binding-layer the-struct_38) + (expand-context/outer-reference-records the-struct_38) + (expand-context/outer-only-immediate? the-struct_38) + (expand-context/outer-need-eventually-defined the-struct_38) + (expand-context/outer-current-introduction-scopes the-struct_38) + (expand-context/outer-current-use-scopes the-struct_38) + name41_0)) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_38))))))))) + (define-values + (as-tail-context.1) + (lambda (wrt19_0 ctx21_0) + (begin + 'as-tail-context + (let-values (((ctx_4) ctx21_0)) + (let-values (((wrt-ctx_0) wrt19_0)) + (let-values () + (if (expand-context-name wrt-ctx_0) + (let-values () + (let-values (((v_119) ctx_4)) + (let-values (((the-struct_39) v_119)) + (if (expand-context/outer? the-struct_39) + (let-values (((name43_0) (expand-context-name wrt-ctx_0)) + ((inner44_0) (root-expand-context/outer-inner v_119))) + (expand-context/outer1.1 + inner44_0 + (root-expand-context/outer-post-expansion the-struct_39) + (root-expand-context/outer-use-site-scopes the-struct_39) + (root-expand-context/outer-frame-id the-struct_39) + (expand-context/outer-context the-struct_39) + (expand-context/outer-env the-struct_39) + (expand-context/outer-scopes the-struct_39) + (expand-context/outer-def-ctx-scopes the-struct_39) + (expand-context/outer-binding-layer the-struct_39) + (expand-context/outer-reference-records the-struct_39) + (expand-context/outer-only-immediate? the-struct_39) + (expand-context/outer-need-eventually-defined the-struct_39) + (expand-context/outer-current-introduction-scopes the-struct_39) + (expand-context/outer-current-use-scopes the-struct_39) + name43_0)) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_39))))) + (let-values () ctx_4)))))))) + (define-values + (as-named-context) + (lambda (ctx_5 ids_2) + (begin + (if (if (pair? ids_2) (null? (cdr ids_2)) #f) + (let-values () + (let-values (((v_120) ctx_5)) + (let-values (((the-struct_40) v_120)) + (if (expand-context/outer? the-struct_40) + (let-values (((name45_0) (car ids_2)) ((inner46_0) (root-expand-context/outer-inner v_120))) + (expand-context/outer1.1 + inner46_0 + (root-expand-context/outer-post-expansion the-struct_40) + (root-expand-context/outer-use-site-scopes the-struct_40) + (root-expand-context/outer-frame-id the-struct_40) + (expand-context/outer-context the-struct_40) + (expand-context/outer-env the-struct_40) + (expand-context/outer-scopes the-struct_40) + (expand-context/outer-def-ctx-scopes the-struct_40) + (expand-context/outer-binding-layer the-struct_40) + (expand-context/outer-reference-records the-struct_40) + (expand-context/outer-only-immediate? the-struct_40) + (expand-context/outer-need-eventually-defined the-struct_40) + (expand-context/outer-current-introduction-scopes the-struct_40) + (expand-context/outer-current-use-scopes the-struct_40) + name45_0)) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_40))))) + (let-values () ctx_5))))) + (define-values + (as-to-parsed-context) + (lambda (ctx_6) + (begin + (let-values (((v_121) ctx_6)) + (let-values (((the-struct_41) v_121)) + (if (expand-context/outer? the-struct_41) + (let-values (((inner47_0) + (let-values (((the-struct_42) (root-expand-context/outer-inner v_121))) + (if (expand-context/inner? the-struct_42) + (let-values (((to-parsed?48_0) #t) ((observer49_0) #f) ((parsing-expanded?50_0) #t)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi the-struct_42) + (root-expand-context/inner-module-scopes the-struct_42) + (root-expand-context/inner-top-level-bind-scope the-struct_42) + (root-expand-context/inner-all-scopes-stx the-struct_42) + (root-expand-context/inner-defined-syms the-struct_42) + (root-expand-context/inner-counter the-struct_42) + (root-expand-context/inner-lift-key the-struct_42) + to-parsed?48_0 + (expand-context/inner-phase the-struct_42) + (expand-context/inner-namespace the-struct_42) + (expand-context/inner-just-once? the-struct_42) + (expand-context/inner-module-begin-k the-struct_42) + (expand-context/inner-allow-unbound? the-struct_42) + (expand-context/inner-in-local-expand? the-struct_42) + (expand-context/inner-keep-#%expression? the-struct_42) + (expand-context/inner-stops the-struct_42) + (expand-context/inner-declared-submodule-names the-struct_42) + (expand-context/inner-lifts the-struct_42) + (expand-context/inner-lift-envs the-struct_42) + (expand-context/inner-module-lifts the-struct_42) + (expand-context/inner-require-lifts the-struct_42) + (expand-context/inner-to-module-lifts the-struct_42) + (expand-context/inner-requires+provides the-struct_42) + observer49_0 + (expand-context/inner-for-serializable? the-struct_42) + (expand-context/inner-to-correlated-linklet? the-struct_42) + (expand-context/inner-normalize-locals? the-struct_42) + parsing-expanded?50_0 + (expand-context/inner-skip-visit-available? the-struct_42))) + (raise-argument-error 'struct-copy "expand-context/inner?" the-struct_42))))) + (expand-context/outer1.1 + inner47_0 + (root-expand-context/outer-post-expansion the-struct_41) + (root-expand-context/outer-use-site-scopes the-struct_41) + (root-expand-context/outer-frame-id the-struct_41) + (expand-context/outer-context the-struct_41) + (expand-context/outer-env the-struct_41) + (expand-context/outer-scopes the-struct_41) + (expand-context/outer-def-ctx-scopes the-struct_41) + (expand-context/outer-binding-layer the-struct_41) + (expand-context/outer-reference-records the-struct_41) + (expand-context/outer-only-immediate? the-struct_41) + (expand-context/outer-need-eventually-defined the-struct_41) + (expand-context/outer-current-introduction-scopes the-struct_41) + (expand-context/outer-current-use-scopes the-struct_41) + (expand-context/outer-name the-struct_41))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_41))))))) + (call-with-values + (lambda () + (set-current-previously-unbound! + (lambda () + (let-values (((ctx_7) (force (current-expand-context)))) + (let-values (((phase-to-ids_0) (if ctx_7 (expand-context-need-eventually-defined ctx_7) #f))) + (if phase-to-ids_0 (hash-ref phase-to-ids_0 (expand-context-phase ctx_7) null) #f)))))) + print-values) + (define-values + (to-syntax-list.1) + (lambda (s_109) + (begin + 'to-syntax-list + (if (list? s_109) + (let-values () s_109) + (if (pair? s_109) + (let-values () (let-values (((r_26) (to-syntax-list.1 (cdr s_109)))) (if r_26 (cons (car s_109) r_26) #f))) + (if (syntax?$1 s_109) (let-values () (to-syntax-list.1 (syntax-e$1 s_109))) (let-values () #f))))))) + (define-values + (syntax-debug-info$1) + (lambda (s_0 phase_45 all-bindings?_0) + (begin + 'syntax-debug-info + (let-values (((hts_0) + (reverse$1 + (let-values (((lst_83) (fallback->list (syntax-shifted-multi-scopes s_0)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_83))) + ((letrec-values (((for-loop_99) + (lambda (fold-var_64 lst_84) + (begin + 'for-loop + (if (pair? lst_84) + (let-values (((smss_2) (unsafe-car lst_84)) + ((rest_40) (unsafe-cdr lst_84))) + (let-values (((fold-var_65) + (let-values (((fold-var_66) fold-var_64)) + (let-values (((fold-var_67) + (let-values () + (cons + (let-values () + (let-values (((init-ht_0) + (if (identifier? + s_0) + (hasheq + 'name + (syntax-e$1 s_0)) + '#hasheq()))) + (let-values (((s-scs_0) + (scope-set-at-fallback + s_0 + smss_2 + phase_45))) + (let-values (((context_1) + (scope-set->context + s-scs_0))) + (let-values (((context-ht_0) + (hash-set + init-ht_0 + 'context + context_1))) + (let-values (((sym_18) + (syntax-e$1 + s_0))) + (let-values (((classify-binding_0) + (lambda (b_48) + (begin + 'classify-binding + (if (local-binding? + b_48) + (let-values () + 'local) + (if (like-ambiguous-binding? + b_48) + (let-values () + 'ambiguous) + (let-values () + 'module))))))) + (let-values (((extract-binding_0) + (lambda (b_11) + (begin + 'extract-binding + (if (local-binding? + b_11) + (let-values () + (local-binding-key + b_11)) + (if (like-ambiguous-binding? + b_11) + (let-values () + #t) + (let-values () + (vector + (module-binding-sym + b_11) + (module-binding-module + b_11) + (module-binding-phase + b_11))))))))) + (let-values (((bindings_0) + (append + (if (identifier? + s_0) + (let-values () + (let-values (((bindings_1 + covered-scopess_0) + (let-values (((ht_76) + s-scs_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-immutable-hash-keys + ht_76))) + ((letrec-values (((for-loop_100) + (lambda (bindings_2 + covered-scope-sets_0 + i_90) + (begin + 'for-loop + (if i_90 + (let-values (((sc_28) + (unsafe-immutable-hash-iterate-key + ht_76 + i_90))) + (let-values (((bindings_3 + covered-scope-sets_1) + (let-values (((ht_28 + bulk-bindings_3) + (let-values (((table_104) + (scope-binding-table + sc_28))) + (if (hash? + table_104) + (values + (hash-ref + table_104 + sym_18 + '#hash()) + null) + (values + (hash-ref + (table-with-bulk-bindings-syms + table_104) + sym_18 + '#hash()) + (table-with-bulk-bindings-bulk-bindings + table_104))))) + ((s_173) + s_0) + ((extra-shifts_9) + null)) + (begin + #t + ((letrec-values (((for-loop_101) + (lambda (bindings_4 + covered-scope-sets_2 + i_91) + (begin + 'for-loop + (if (not + (null? + i_91)) + (let-values (((scs_15) + (if (pair? + i_91) + (let-values () + (bulk-binding-at-scopes + (car + i_91))) + (let-values () + (hash-iterate-key + ht_28 + i_91)))) + ((b_67) + (if (pair? + i_91) + (let-values () + (let-values (((bulk_4) + (bulk-binding-at-bulk + (car + i_91)))) + (let-values (((b-info_1) + (if (symbol-interned? + sym_18) + (hash-ref + (bulk-binding-symbols + bulk_4 + s_173 + extra-shifts_9) + sym_18 + #f) + #f))) + (if b-info_1 + ((bulk-binding-create + bulk_4) + bulk_4 + b-info_1 + sym_18) + #f)))) + (let-values () + (hash-iterate-value + ht_28 + i_91))))) + (let-values (((bindings_5 + covered-scope-sets_3) + (let-values (((bindings_6) + bindings_4) + ((covered-scope-sets_4) + covered-scope-sets_2)) + (if (if scs_15 + (if b_67 + (not + (set-member? + covered-scope-sets_4 + scs_15)) + #f) + #f) + (let-values (((bindings_7) + bindings_6) + ((covered-scope-sets_5) + covered-scope-sets_4)) + (let-values (((bindings_8 + covered-scope-sets_6) + (let-values () + (values + (cons + (hasheq + 'name + (syntax-e$1 + s_0) + 'context + (scope-set->context + scs_15) + 'match? + (subset? + scs_15 + s-scs_0) + (classify-binding_0 + b_67) + (extract-binding_0 + b_67)) + bindings_7) + (set-add + covered-scope-sets_5 + scs_15))))) + (values + bindings_8 + covered-scope-sets_6))) + (values + bindings_6 + covered-scope-sets_4))))) + (if (not + #f) + (for-loop_101 + bindings_5 + covered-scope-sets_3 + (if (pair? + i_91) + (let-values () + (cdr + i_91)) + (let-values () + (let-values (((or-part_36) + (hash-iterate-next + ht_28 + i_91))) + (if or-part_36 + or-part_36 + bulk-bindings_3))))) + (values + bindings_5 + covered-scope-sets_3)))) + (values + bindings_4 + covered-scope-sets_2)))))) + for-loop_101) + bindings_2 + covered-scope-sets_0 + (let-values (((or-part_37) + (hash-iterate-first + ht_28))) + (if or-part_37 + or-part_37 + bulk-bindings_3))))))) + (if (not + #f) + (for-loop_100 + bindings_3 + covered-scope-sets_1 + (unsafe-immutable-hash-iterate-next + ht_76 + i_90)) + (values + bindings_3 + covered-scope-sets_1)))) + (values + bindings_2 + covered-scope-sets_0)))))) + for-loop_100) + null + (set) + (unsafe-immutable-hash-iterate-first + ht_76)))))) + bindings_1)) + (let-values () + null)) + (if all-bindings?_0 + (let-values () + (reverse$1 + (let-values (((ht_77) + s-scs_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-immutable-hash-keys + ht_77))) + ((letrec-values (((for-loop_102) + (lambda (fold-var_68 + i_92) + (begin + 'for-loop + (if i_92 + (let-values (((sc_29) + (unsafe-immutable-hash-iterate-key + ht_77 + i_92))) + (let-values (((fold-var_69) + (let-values (((sym-ht_1) + (let-values (((table_105) + (scope-binding-table + sc_29))) + (if (hash? + table_105) + table_105 + (table-with-bulk-bindings-syms + table_105))))) + (begin + #t + ((letrec-values (((for-loop_23) + (lambda (fold-var_70 + state_17) + (begin + 'for-loop + (if (car + state_17) + (let-values (((o-sym_0) + (vector-ref + (car + state_17) + 1)) + ((scs_16) + (hash-iterate-key + (vector-ref + (car + state_17) + 2) + (cdr + state_17))) + ((b_36) + (hash-iterate-value + (vector-ref + (car + state_17) + 2) + (cdr + state_17)))) + (let-values (((fold-var_71) + (let-values (((fold-var_72) + fold-var_70)) + (if (eq? + o-sym_0 + sym_18) + fold-var_72 + (let-values (((fold-var_73) + fold-var_72)) + (let-values (((fold-var_74) + (let-values () + (cons + (let-values () + (hasheq + 'name + o-sym_0 + 'context + (scope-set->context + scs_16) + 'match? + #f + (classify-binding_0 + b_36) + (extract-binding_0 + b_36))) + fold-var_73)))) + (values + fold-var_74))))))) + (if (not + #f) + (for-loop_23 + fold-var_71 + (let-values (((ht_78) + (vector-ref + (car + state_17) + 2))) + (let-values (((i_93) + (hash-iterate-next + ht_78 + (cdr + state_17)))) + (if i_93 + (cons + (car + state_17) + i_93) + (next-state-in-full-binding-table + sym-ht_1 + (hash-iterate-next + sym-ht_1 + (vector-ref + (car + state_17) + 0))))))) + fold-var_71))) + fold-var_70))))) + for-loop_23) + fold-var_68 + ((letrec-values (((loop_77) + (lambda (sym-i_1) + (begin + 'loop + (if sym-i_1 + (next-state-in-full-binding-table + sym-ht_1 + sym-i_1) + '(#f + . + #f)))))) + loop_77) + (hash-iterate-first + sym-ht_1))))))) + (if (not + #f) + (for-loop_102 + fold-var_69 + (unsafe-immutable-hash-iterate-next + ht_77 + i_92)) + fold-var_69))) + fold-var_68))))) + for-loop_102) + null + (unsafe-immutable-hash-iterate-first + ht_77)))))) + (let-values () + null))))) + (if (null? + bindings_0) + context-ht_0 + (hash-set + context-ht_0 + 'bindings + bindings_0))))))))))) + fold-var_66)))) + (values fold-var_67))))) + (if (not #f) (for-loop_99 fold-var_65 rest_40) fold-var_65))) + fold-var_64))))) + for-loop_99) + null + lst_83)))))) + (let-values (((ht_72) (car hts_0))) (if (null? (cdr hts_0)) ht_72 (hash-set ht_72 'fallbacks (cdr hts_0)))))))) + (define-values + (scope-set->context) + (lambda (scs_17) + (begin + (let-values (((temp1_0) + (reverse$1 + (let-values (((ht_79) scs_17)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_79))) + ((letrec-values (((for-loop_103) + (lambda (fold-var_75 i_32) + (begin + 'for-loop + (if i_32 + (let-values (((sc_30) (unsafe-immutable-hash-iterate-key ht_79 i_32))) + (let-values (((fold-var_20) + (let-values (((fold-var_21) fold-var_75)) + (let-values (((fold-var_76) + (let-values () + (cons + (let-values () + (if (interned-scope? sc_30) + (let-values () + (vector + (scope-id sc_30) + (scope-kind sc_30) + (interned-scope-key sc_30))) + (if (representative-scope? + sc_30) + (let-values () + (vector + (scope-id sc_30) + (scope-kind sc_30) + (multi-scope-name + (representative-scope-owner + sc_30)))) + (let-values () + (vector + (scope-id sc_30) + (scope-kind sc_30)))))) + fold-var_21)))) + (values fold-var_76))))) + (if (not #f) + (for-loop_103 + fold-var_20 + (unsafe-immutable-hash-iterate-next ht_79 i_32)) + fold-var_20))) + fold-var_75))))) + for-loop_103) + null + (unsafe-immutable-hash-iterate-first ht_79)))))) + ((<2_0) <) + ((temp3_1) (lambda (v_105) (vector-ref v_105 0)))) + (sort.1 #f temp3_1 temp1_0 <2_0))))) + (define-values + (raise-ambiguous-error) + (lambda (id_23 ctx_8) + (begin + (raise-syntax-error$1 + #f + "identifier's binding is ambiguous" + id_23 + #f + null + (syntax-debug-info-string id_23 ctx_8))))) + (define-values + (syntax-debug-info-string) + (lambda (s_10 ctx_9) + (begin + (let-values (((info_2) (syntax-debug-info$1 s_10 (expand-context-phase ctx_9) #f))) + (if (not + (let-values (((or-part_31) (pair? (hash-ref info_2 'bindings null)))) + (if or-part_31 + or-part_31 + (let-values (((lst_85) (hash-ref info_2 'fallbacks null))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_85))) + ((letrec-values (((for-loop_104) + (lambda (result_58 lst_86) + (begin + 'for-loop + (if (pair? lst_86) + (let-values (((fb-info_0) (unsafe-car lst_86)) + ((rest_41) (unsafe-cdr lst_86))) + (let-values (((result_1) + (let-values () + (let-values (((result_59) + (let-values () + (let-values () + (pair? + (hash-ref + fb-info_0 + 'bindings + null)))))) + (values result_59))))) + (if (if (not ((lambda x_38 result_1) fb-info_0)) (not #f) #f) + (for-loop_104 result_1 rest_41) + result_1))) + result_58))))) + for-loop_104) + #f + lst_85)))))) + (let-values () "") + (let-values () + (let-values (((relevant-scope-sets_0) + ((letrec-values (((loop_76) + (lambda (info_3 layer_0) + (begin + 'loop + (apply + append + (cons + (hash-ref info_3 'context) + (reverse$1 + (let-values (((lst_87) (hash-ref info_3 'bindings null))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_87))) + ((letrec-values (((for-loop_105) + (lambda (fold-var_34 lst_88) + (begin + 'for-loop + (if (pair? lst_88) + (let-values (((b_68) (unsafe-car lst_88)) + ((rest_42) + (unsafe-cdr lst_88))) + (let-values (((fold-var_77) + (let-values (((fold-var_78) + fold-var_34)) + (let-values (((fold-var_28) + (let-values () + (cons + (let-values () + (hash-ref + b_68 + 'context)) + fold-var_78)))) + (values + fold-var_28))))) + (if (not #f) + (for-loop_105 fold-var_77 rest_42) + fold-var_77))) + fold-var_34))))) + for-loop_105) + null + lst_87))))) + (let-values (((fallbacks_0) (hash-ref info_3 'fallbacks null))) + (reverse$1 + (let-values (((lst_89) fallbacks_0) ((start_17) (add1 layer_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_89))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_17))) + ((letrec-values (((for-loop_106) + (lambda (fold-var_79 lst_90 pos_14) + (begin + 'for-loop + (if (if (pair? lst_90) #t #f) + (let-values (((fallback_0) + (unsafe-car lst_90)) + ((rest_43) + (unsafe-cdr lst_90)) + ((layer_1) pos_14)) + (let-values (((fold-var_80) + (let-values (((fold-var_81) + fold-var_79)) + (let-values (((fold-var_82) + (let-values () + (cons + (let-values () + (loop_76 + fallback_0 + layer_1)) + fold-var_81)))) + (values + fold-var_82))))) + (if (not #f) + (for-loop_106 + fold-var_80 + rest_43 + (+ pos_14 1)) + fold-var_80))) + fold-var_79))))) + for-loop_106) + null + lst_89 + start_17)))))))))) + loop_76) + info_2 + 0))) + (let-values (((common-scopes_0) + (if (null? relevant-scope-sets_0) + (set) + (let-values (((lst_27) relevant-scope-sets_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_27))) + ((letrec-values (((for-loop_24) + (lambda (s_84 lst_28) + (begin + 'for-loop + (if (pair? lst_28) + (let-values (((l_35) (unsafe-car lst_28)) + ((rest_10) (unsafe-cdr lst_28))) + (let-values (((s_179) + (let-values (((s_180) s_84)) + (let-values (((s_181) + (let-values () + (set-intersect + s_180 + (list->set l_35))))) + (values s_181))))) + (if (not #f) (for-loop_24 s_179 rest_10) s_179))) + s_84))))) + for-loop_24) + (list->set (car relevant-scope-sets_0)) + lst_27)))))) + (string-append + ((letrec-values (((loop_78) + (lambda (info_4 layer_2) + (begin + 'loop + (string-append + "\n context" + (layer->string layer_2) + "...:" + (describe-context (hash-ref info_4 'context) common-scopes_0) + (apply + string-append + (reverse$1 + (let-values (((lst_91) + (let-values (((temp1_1) (hash-ref info_4 'bindings null)) + ((temp2_1) + (lambda (a_28 b_69) + (if (hash-ref a_28 'match? #f) + (not (hash-ref b_69 'match? #f)) + #f)))) + (sort.1 #f #f temp1_1 temp2_1)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_91))) + ((letrec-values (((for-loop_107) + (lambda (fold-var_83 lst_92) + (begin + 'for-loop + (if (pair? lst_92) + (let-values (((b_70) (unsafe-car lst_92)) + ((rest_44) (unsafe-cdr lst_92))) + (let-values (((fold-var_84) + (let-values (((fold-var_70) + fold-var_83)) + (let-values (((fold-var_85) + (let-values () + (cons + (let-values () + (string-append + "\n " + (if (hash-ref + b_70 + 'match? + #f) + "matching" + "other") + " binding" + (layer->string + layer_2) + "...:" + "\n " + (if (hash-ref + b_70 + 'local + #f) + "local" + (format + "~a" + (hash-ref + b_70 + 'module + #f))) + (describe-context + (hash-ref + b_70 + 'context) + common-scopes_0))) + fold-var_70)))) + (values fold-var_85))))) + (if (not #f) + (for-loop_107 fold-var_84 rest_44) + fold-var_84))) + fold-var_83))))) + for-loop_107) + null + lst_91))))) + (let-values (((fallbacks_1) (hash-ref info_4 'fallbacks null))) + (apply + string-append + (reverse$1 + (let-values (((lst_93) fallbacks_1) ((start_18) (add1 layer_2))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_93))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_18))) + ((letrec-values (((for-loop_108) + (lambda (fold-var_72 lst_94 pos_15) + (begin + 'for-loop + (if (if (pair? lst_94) #t #f) + (let-values (((fallback_1) (unsafe-car lst_94)) + ((rest_0) (unsafe-cdr lst_94)) + ((layer_3) pos_15)) + (let-values (((fold-var_86) + (let-values (((fold-var_87) + fold-var_72)) + (let-values (((fold-var_88) + (let-values () + (cons + (let-values () + (loop_78 + fallback_1 + layer_3)) + fold-var_87)))) + (values fold-var_88))))) + (if (not #f) + (for-loop_108 + fold-var_86 + rest_0 + (+ pos_15 1)) + fold-var_86))) + fold-var_72))))) + for-loop_108) + null + lst_93 + start_18))))))))))) + loop_78) + info_2 + 0) + (if (set-empty? common-scopes_0) + "" + (string-append + "\n common scopes...:" + (describe-context + (reverse$1 + (let-values (((lst_9) (hash-ref info_2 'context))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_9))) + ((letrec-values (((for-loop_1) + (lambda (fold-var_89 lst_10) + (begin + 'for-loop + (if (pair? lst_10) + (let-values (((s_182) (unsafe-car lst_10)) + ((rest_1) (unsafe-cdr lst_10))) + (let-values (((fold-var_90) + (let-values (((fold-var_15) fold-var_89)) + (if (set-member? common-scopes_0 s_182) + (let-values (((fold-var_20) fold-var_15)) + (let-values (((fold-var_21) + (let-values () + (cons + (let-values () s_182) + fold-var_20)))) + (values fold-var_21))) + fold-var_15)))) + (if (not #f) (for-loop_1 fold-var_90 rest_1) fold-var_90))) + fold-var_89))))) + for-loop_1) + null + lst_9)))) + (set))))))))))))) + (define-values + (describe-context) + (lambda (scopes_20 common-scopes_1) + (begin + (let-values (((strs_0) + ((letrec-values (((loop_40) + (lambda (strs_1 scopes_21) + (begin + 'loop + (if (null? scopes_21) + (let-values () (reverse$1 strs_1)) + (let-values () + (let-values (((str_3) (format " ~a" (car scopes_21)))) + (if (if (pair? strs_1) + (< (+ (string-length str_3) (string-length (car strs_1))) 72) + #f) + (loop_40 + (cons (string-append (car strs_1) str_3) (cdr strs_1)) + (cdr scopes_21)) + (loop_40 (cons str_3 strs_1) (cdr scopes_21)))))))))) + loop_40) + null + (if (set-empty? common-scopes_1) + scopes_20 + (append + (reverse$1 + (let-values (((lst_95) scopes_20)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_95))) + ((letrec-values (((for-loop_109) + (lambda (fold-var_91 lst_96) + (begin + 'for-loop + (if (pair? lst_96) + (let-values (((s_183) (unsafe-car lst_96)) + ((rest_45) (unsafe-cdr lst_96))) + (let-values (((fold-var_92) + (let-values (((fold-var_93) fold-var_91)) + (if (not (set-member? common-scopes_1 s_183)) + (let-values (((fold-var_44) fold-var_93)) + (let-values (((fold-var_94) + (let-values () + (cons + (let-values () s_183) + fold-var_44)))) + (values fold-var_94))) + fold-var_93)))) + (if (not #f) (for-loop_109 fold-var_92 rest_45) fold-var_92))) + fold-var_91))))) + for-loop_109) + null + lst_95)))) + (list "[common scopes]")))))) + (if (null? strs_0) + (let-values () "\n [empty]") + (let-values () + (apply + string-append + (reverse$1 + (let-values (((lst_97) strs_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_97))) + ((letrec-values (((for-loop_80) + (lambda (fold-var_45 lst_98) + (begin + 'for-loop + (if (pair? lst_98) + (let-values (((str_4) (unsafe-car lst_98)) ((rest_46) (unsafe-cdr lst_98))) + (let-values (((fold-var_95) + (let-values (((fold-var_96) fold-var_45)) + (let-values (((fold-var_97) + (let-values () + (cons + (let-values () + (string-append "\n " str_4)) + fold-var_96)))) + (values fold-var_97))))) + (if (not #f) (for-loop_80 fold-var_95 rest_46) fold-var_95))) + fold-var_45))))) + for-loop_80) + null + lst_97))))))))))) + (define-values (layer->string) (lambda (layer_4) (begin (if (zero? layer_4) "" (format " at layer ~a" layer_4))))) + (define-values + (raise-syntax-implicit-error) + (lambda (s_0 sym_26 trigger-id_0 ctx_9) + (begin + (let-values (((phase_46) (expand-context-phase ctx_9))) + (let-values (((what_1) + (let-values (((tmp_14) sym_26)) + (if (equal? tmp_14 '#%app) + (let-values () "function application") + (if (equal? tmp_14 '#%datum) + (let-values () "literal data") + (if (equal? tmp_14 '#%top) + (let-values () + (if (expand-context-allow-unbound? ctx_9) + "reference to a top-level identifier" + "reference to an unbound identifier")) + (let-values () (void)))))))) + (let-values (((unbound?_0) + (if trigger-id_0 + (not + (let-values (((trigger-id1_0) trigger-id_0) ((phase2_1) phase_46)) + (resolve.1 #f #f null #f trigger-id1_0 phase2_1))) + #f))) + (let-values (((unbound-form_0) + (if unbound?_0 (if (not (eq? (syntax-e$1 s_0) (syntax-e$1 trigger-id_0))) s_0 #f) #f))) + (raise-syntax-error$1 + #f + (format + (if unbound?_0 + "unbound identifier;\n also, no ~a syntax transformer is bound~a" + (string-append what_1 " is not allowed;\n no ~a syntax transformer is bound~a")) + sym_26 + (let-values (((tmp_15) phase_46)) + (if (equal? tmp_15 0) + (let-values () "") + (if (equal? tmp_15 1) + (let-values () " in the transformer phase") + (let-values () (format " at phase ~a" phase_46)))))) + (if unbound?_0 (let-values (((or-part_13) unbound-form_0)) (if or-part_13 or-part_13 trigger-id_0)) #f) + (if unbound?_0 (if unbound-form_0 trigger-id_0 #f) s_0) + null + (if unbound?_0 (syntax-debug-info-string trigger-id_0 ctx_9) ""))))))))) + (define-values (make-check-no-duplicate-table) (lambda () (begin '#hasheq()))) + (define-values + (check-no-duplicate-ids.1) + (lambda (what1_0 ids4_0 phase5_0 s6_1 ht3_0) + (begin + 'check-no-duplicate-ids + (let-values (((ids_3) ids4_0)) + (let-values (((phase_47) phase5_0)) + (let-values (((s_175) s6_1)) + (let-values (((ht_73) (if (eq? ht3_0 unsafe-undefined) (make-check-no-duplicate-table) ht3_0))) + (let-values (((what_2) (if (eq? what1_0 unsafe-undefined) "binding name" what1_0))) + (let-values () + ((letrec-values (((loop_79) + (lambda (v_1 ht_80) + (begin + 'loop + (if (identifier? v_1) + (let-values () + (let-values (((l_32) (hash-ref ht_80 (syntax-e$1 v_1) null))) + (begin + (let-values (((lst_99) l_32)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_99))) + ((letrec-values (((for-loop_110) + (lambda (lst_44) + (begin + 'for-loop + (if (pair? lst_44) + (let-values (((id_24) (unsafe-car lst_44)) + ((rest_47) + (unsafe-cdr lst_44))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (bound-identifier=?$1 + id_24 + v_1 + phase_47) + (let-values () + (raise-syntax-error$1 + #f + (string-append + "duplicate " + what_2) + s_175 + v_1)) + (void))) + (values))))) + (values))))) + (if (not #f) + (for-loop_110 rest_47) + (values)))) + (values)))))) + for-loop_110) + lst_99))) + (void) + (hash-set ht_80 (syntax-e$1 v_1) (cons v_1 l_32))))) + (if (pair? v_1) + (let-values () (loop_79 (cdr v_1) (loop_79 (car v_1) ht_80))) + (let-values () ht_80))))))) + loop_79) + ids_3 + ht_73)))))))))) + (define-values + (remove-use-site-scopes) + (lambda (s_0 ctx_8) + (begin + (let-values (((use-sites_0) (root-expand-context-use-site-scopes ctx_8))) + (if (if use-sites_0 (pair? (unbox use-sites_0)) #f) + (if (syntax?$1 s_0) + (remove-scopes s_0 (unbox use-sites_0)) + (reverse$1 + (let-values (((lst_100) s_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_100))) + ((letrec-values (((for-loop_111) + (lambda (fold-var_98 lst_85) + (begin + 'for-loop + (if (pair? lst_85) + (let-values (((id_25) (unsafe-car lst_85)) ((rest_48) (unsafe-cdr lst_85))) + (let-values (((fold-var_99) + (let-values (((fold-var_100) fold-var_98)) + (let-values (((fold-var_65) + (let-values () + (cons + (let-values () + (remove-scopes id_25 (unbox use-sites_0))) + fold-var_100)))) + (values fold-var_65))))) + (if (not #f) (for-loop_111 fold-var_99 rest_48) fold-var_99))) + fold-var_98))))) + for-loop_111) + null + lst_100))))) + s_0))))) + (define-values + (struct:compile-context + compile-context1.1 + compile-context? + compile-context-namespace + compile-context-phase + compile-context-self + compile-context-module-self + compile-context-full-module-name + compile-context-lazy-syntax-literals? + compile-context-header) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'compile-context + #f + 7 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6) + #f + 'compile-context))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'namespace) + (make-struct-field-accessor -ref_2 1 'phase) + (make-struct-field-accessor -ref_2 2 'self) + (make-struct-field-accessor -ref_2 3 'module-self) + (make-struct-field-accessor -ref_2 4 'full-module-name) + (make-struct-field-accessor -ref_2 5 'lazy-syntax-literals?) + (make-struct-field-accessor -ref_2 6 'header)))) + (define-values + (make-compile-context.1) + (lambda (full-module-name6_0 lazy-syntax-literals?7_0 module-self5_0 namespace2_0 phase3_1 self4_1) + (begin + 'make-compile-context + (let-values (((namespace_1) (if (eq? namespace2_0 unsafe-undefined) (1/current-namespace) namespace2_0))) + (let-values (((phase_48) (if (eq? phase3_1 unsafe-undefined) (namespace-phase namespace_1) phase3_1))) + (let-values (((self_5) (if (eq? self4_1 unsafe-undefined) (namespace-self-mpi namespace_1) self4_1))) + (let-values (((module-self_0) module-self5_0)) + (let-values (((full-module-name_0) full-module-name6_0)) + (let-values (((lazy-syntax-literals?_0) + (if (eq? lazy-syntax-literals?7_0 unsafe-undefined) + (if module-self_0 #t #f) + lazy-syntax-literals?7_0))) + (let-values () + (begin + (if (if module-self_0 (not full-module-name_0) #f) + (let-values () (error "internal error: module-self provided without full name")) + (void)) + (compile-context1.1 + namespace_1 + phase_48 + self_5 + module-self_0 + full-module-name_0 + lazy-syntax-literals?_0 + #f)))))))))))) + (define-values (kernel) (primitive-table '#%kernel)) + (define-values (syntax?$3) (hash-ref kernel 'syntax?)) + (define-values (syntax-e$4) (hash-ref kernel 'syntax-e)) + (define-values (datum->syntax$4) (hash-ref kernel 'datum->syntax)) + (define-values (syntax->datum$4) (hash-ref kernel 'syntax->datum)) + (define-values (syntax-property$3) (hash-ref kernel 'syntax-property)) + (define-values (syntax-property-symbol-keys$3) (hash-ref kernel 'syntax-property-symbol-keys)) + (define-values (syntax-source$3) (hash-ref kernel 'syntax-source)) + (define-values (syntax-line$3) (hash-ref kernel 'syntax-line)) + (define-values (syntax-column$3) (hash-ref kernel 'syntax-column)) + (define-values (syntax-position$3) (hash-ref kernel 'syntax-position)) + (define-values (syntax-span$3) (hash-ref kernel 'syntax-span)) + (define-values (correlated?$1) (lambda (e_19) (begin 'correlated? (syntax?$3 e_19)))) + (define-values + (datum->correlated$1) + (let-values (((datum->correlated_0) + (lambda (d3_0 srcloc1_0 props2_1) + (begin + 'datum->correlated + (let-values (((d_19) d3_0)) + (let-values (((srcloc_3) srcloc1_0)) + (let-values (((props_2) props2_1)) + (let-values () (datum->syntax$4 #f d_19 srcloc_3 props_2))))))))) + (case-lambda + ((d_20) (begin 'datum->correlated (datum->correlated_0 d_20 #f #f))) + ((d_21 srcloc_4 props2_2) (datum->correlated_0 d_21 srcloc_4 props2_2)) + ((d_22 srcloc1_1) (datum->correlated_0 d_22 srcloc1_1 #f))))) + (define-values (correlated-e$1) (lambda (e_20) (begin 'correlated-e (syntax-e$4 e_20)))) + (define-values + (correlated-property$1) + (case-lambda + ((e_21 k_23) (begin 'correlated-property (syntax-property$3 e_21 k_23))) + ((e_22 k_22 v_76) (syntax-property$3 e_22 k_22 v_76)))) + (define-values + (correlated-property-symbol-keys$1) + (lambda (e_23) (begin 'correlated-property-symbol-keys (syntax-property-symbol-keys$3 e_23)))) + (define-values (correlated-source$1) (lambda (s_81) (begin 'correlated-source (syntax-source$3 s_81)))) + (define-values (correlated-line$1) (lambda (s_173) (begin 'correlated-line (syntax-line$3 s_173)))) + (define-values (correlated-column$1) (lambda (s_51) (begin 'correlated-column (syntax-column$3 s_51)))) + (define-values (correlated-position$1) (lambda (s_6) (begin 'correlated-position (syntax-position$3 s_6)))) + (define-values (correlated-span$1) (lambda (s_82) (begin 'correlated-span (syntax-span$3 s_82)))) + (define-values + (truncate-path) + (lambda (p_20) + (begin + (let-values (((base1_0 name1_0 dir?_3) (split-path p_20))) + (if (path-for-some-system? base1_0) + (let-values () + (let-values (((base2_0 name2_0 dir?_4) (split-path base1_0))) + (if (not base2_0) + (let-values () (path-for-some-system->string p_20)) + (if (symbol? name2_0) + (let-values () (string-append ".../" (path-elem->string name1_0))) + (let-values () + (string-append ".../" (path-for-some-system->string name2_0) "/" (path-elem->string name1_0))))))) + (if (eq? base1_0 'relative) + (let-values () (path-elem->string name1_0)) + (let-values () (path-for-some-system->string p_20)))))))) + (define-values + (path-elem->string) + (lambda (p_21) + (begin + (if (eq? p_21 'same) + (let-values () ".") + (if (eq? p_21 'up) (let-values () "..") (let-values () (path-for-some-system->string p_21))))))) + (define-values + (path-for-some-system->string) + (lambda (p_22) + (begin + (if (path? p_22) + (let-values () (path->string p_22)) + (let-values () (bytes->string/utf-8 (path->bytes p_22) '#\�)))))) + (define-values + (make-path->relative-path-elements.1) + (lambda (who1_0 wr-dir3_0) + (begin + 'make-path->relative-path-elements + (let-values (((wr-dir_0) (if (eq? wr-dir3_0 unsafe-undefined) (current-write-relative-directory) wr-dir3_0))) + (let-values (((who_11) who1_0)) + (let-values () + (begin + (if who_11 + (let-values () + (if (let-values (((or-part_83) (not wr-dir_0))) + (if or-part_83 + or-part_83 + (let-values (((or-part_58) (if (path-string? wr-dir_0) (complete-path? wr-dir_0) #f))) + (if or-part_58 + or-part_58 + (if (pair? wr-dir_0) + (if (path-string? (car wr-dir_0)) + (if (complete-path? (car wr-dir_0)) + (if (path-string? (cdr wr-dir_0)) (complete-path? (cdr wr-dir_0)) #f) + #f) + #f) + #f))))) + (void) + (let-values () + (raise-argument-error + who_11 + (string-append + "(or/c (and/c path-string? complete-path?)\n" + " (cons/c (and/c path-string? complete-path?)\n" + " (and/c path-string? complete-path?))\n" + " #f)") + wr-dir_0)))) + (void)) + (if (not wr-dir_0) + (let-values () (lambda (v_122) #f)) + (let-values () + (let-values (((exploded-base-dir_0) 'not-ready)) + (let-values (((exploded-wrt-rel-dir_0) 'not-ready)) + (lambda (v_86) + (begin + (if (if (eq? exploded-base-dir_0 'not-ready) (path? v_86) #f) + (let-values () + (let-values (((wrt-dir_0) (if wr-dir_0 (if (pair? wr-dir_0) (car wr-dir_0) wr-dir_0) #f))) + (let-values (((exploded-wrt-dir_0) (explode-path wrt-dir_0))) + (let-values (((base-dir_0) + (if wr-dir_0 (if (pair? wr-dir_0) (cdr wr-dir_0) wr-dir_0) #f))) + (begin + (set! exploded-base-dir_0 (if base-dir_0 (explode-path base-dir_0) #f)) + (set! exploded-wrt-rel-dir_0 + (if (eq? base-dir_0 wrt-dir_0) + (let-values () '()) + (let-values () + (let-values (((exploded-wrt-dir_1) (explode-path wrt-dir_0))) + (let-values (((base-len_0) (length exploded-base-dir_0))) + (begin + (if who_11 + (let-values () + (if (if (>= (length exploded-wrt-dir_1) base-len_0) + (let-values (((lst_101) exploded-wrt-dir_1) + ((lst_102) exploded-base-dir_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_101))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_102))) + ((letrec-values (((for-loop_112) + (lambda (result_60 lst_103 lst_104) + (begin + 'for-loop + (if (if (pair? lst_103) + (pair? lst_104) + #f) + (let-values (((a_13) + (unsafe-car + lst_103)) + ((rest_49) + (unsafe-cdr + lst_103)) + ((b_71) + (unsafe-car + lst_104)) + ((rest_50) + (unsafe-cdr + lst_104))) + (let-values (((result_61) + (let-values () + (let-values (((result_62) + (let-values () + (let-values () + (equal? + a_13 + b_71))))) + (values + result_62))))) + (if (if (not + ((lambda x_39 + (not result_61)) + a_13)) + (if (not + ((lambda x_40 + (not + result_61)) + b_71)) + (not #f) + #f) + #f) + (for-loop_112 + result_61 + rest_49 + rest_50) + result_61))) + result_60))))) + for-loop_112) + #t + lst_101 + lst_102))) + #f) + (void) + (let-values () + (raise-arguments-error + who_11 + "relative-directory pair's first path does not extend second path" + "first path" + wrt-dir_0 + "second path" + base-dir_0)))) + (void)) + (list-tail exploded-wrt-dir_1 base-len_0)))))))))))) + (void)) + (if exploded-base-dir_0 + (if (path? v_86) + (let-values (((exploded_0) (explode-path v_86))) + (if (let-values (((lst_105) exploded-base-dir_0) ((lst_25) exploded_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_105))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_25))) + ((letrec-values (((for-loop_21) + (lambda (result_63 lst_26 lst_106) + (begin + 'for-loop + (if (if (pair? lst_26) (pair? lst_106) #f) + (let-values (((base-p_0) (unsafe-car lst_26)) + ((rest_51) (unsafe-cdr lst_26)) + ((p_14) (unsafe-car lst_106)) + ((rest_52) (unsafe-cdr lst_106))) + (let-values (((result_64) + (let-values () + (let-values (((result_65) + (let-values () + (let-values () + (equal? + base-p_0 + p_14))))) + (values result_65))))) + (if (if (not + ((lambda x_41 (not result_64)) base-p_0)) + (if (not ((lambda x_42 (not result_64)) p_14)) + (not #f) + #f) + #f) + (for-loop_21 result_64 rest_51 rest_52) + result_64))) + result_63))))) + for-loop_21) + #t + lst_105 + lst_25))) + (if (>= (length exploded_0) (length exploded-base-dir_0)) + ((letrec-values (((loop_80) + (lambda (exploded-wrt-rel-dir_1 rel_0) + (begin + 'loop + (if (null? exploded-wrt-rel-dir_1) + (let-values () + (reverse$1 + (let-values (((lst_92) rel_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_92))) + ((letrec-values (((for-loop_113) + (lambda (fold-var_101 lst_107) + (begin + 'for-loop + (if (pair? lst_107) + (let-values (((p_23) + (unsafe-car + lst_107)) + ((rest_53) + (unsafe-cdr + lst_107))) + (let-values (((fold-var_102) + (let-values (((fold-var_103) + fold-var_101)) + (let-values (((fold-var_104) + (let-values () + (cons + (let-values () + (if (path? + p_23) + (path-element->bytes + p_23) + p_23)) + fold-var_103)))) + (values + fold-var_104))))) + (if (not #f) + (for-loop_113 + fold-var_102 + rest_53) + fold-var_102))) + fold-var_101))))) + for-loop_113) + null + lst_92))))) + (if (if (pair? rel_0) + (equal? (car rel_0) (car exploded-wrt-rel-dir_1)) + #f) + (let-values () + (loop_80 (cdr exploded-wrt-rel-dir_1) (cdr rel_0))) + (let-values () + (append + (reverse$1 + (let-values (((lst_7) exploded-wrt-rel-dir_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_7))) + ((letrec-values (((for-loop_0) + (lambda (fold-var_73 lst_8) + (begin + 'for-loop + (if (pair? lst_8) + (let-values (((p_24) + (unsafe-car + lst_8)) + ((rest_0) + (unsafe-cdr + lst_8))) + (let-values (((fold-var_105) + (let-values (((fold-var_86) + fold-var_73)) + (let-values (((fold-var_87) + (let-values () + (cons + (let-values () + 'up) + fold-var_86)))) + (values + fold-var_87))))) + (if (not #f) + (for-loop_0 + fold-var_105 + rest_0) + fold-var_105))) + fold-var_73))))) + for-loop_0) + null + lst_7)))) + (reverse$1 + (let-values (((lst_108) rel_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_108))) + ((letrec-values (((for-loop_114) + (lambda (fold-var_106 lst_109) + (begin + 'for-loop + (if (pair? lst_109) + (let-values (((p_25) + (unsafe-car + lst_109)) + ((rest_54) + (unsafe-cdr + lst_109))) + (let-values (((fold-var_75) + (let-values (((fold-var_90) + fold-var_106)) + (let-values (((fold-var_15) + (let-values () + (cons + (let-values () + (if (path? + p_25) + (path-element->bytes + p_25) + p_25)) + fold-var_90)))) + (values + fold-var_15))))) + (if (not #f) + (for-loop_114 + fold-var_75 + rest_54) + fold-var_75))) + fold-var_106))))) + for-loop_114) + null + lst_108)))))))))))) + loop_80) + exploded-wrt-rel-dir_0 + (list-tail exploded_0 (length exploded-base-dir_0))) + #f) + #f)) + #f) + #f)))))))))))))) + (define-values (1/write-byte) (lambda (byte_0 out_0) (begin 'write-byte (write-byte byte_0 out_0)))) + (define-values + (1/write-bytes) + (let-values (((write-bytes_0) + (lambda (bstr3_0 out4_0 start-pos1_0 end-pos2_0) + (begin + 'write-bytes + (let-values (((bstr_3) bstr3_0)) + (let-values (((out_1) out4_0)) + (let-values (((start-pos_0) start-pos1_0)) + (let-values (((end-pos_0) + (if (eq? end-pos2_0 unsafe-undefined) (bytes-length bstr_3) end-pos2_0))) + (let-values () (write-bytes bstr_3 out_1 start-pos_0 end-pos_0)))))))))) + (case-lambda + ((bstr_4 out_2) (begin 'write-bytes (write-bytes_0 bstr_4 out_2 0 unsafe-undefined))) + ((bstr_5 out_3 start-pos_1 end-pos2_1) (write-bytes_0 bstr_5 out_3 start-pos_1 end-pos2_1)) + ((bstr_6 out_4 start-pos1_1) (write-bytes_0 bstr_6 out_4 start-pos1_1 unsafe-undefined))))) + (define-values (fasl-graph-def-type) 1) + (define-values (fasl-graph-ref-type) 2) + (define-values (fasl-false-type) 3) + (define-values (fasl-true-type) 4) + (define-values (fasl-null-type) 5) + (define-values (fasl-void-type) 6) + (define-values (fasl-eof-type) 7) + (define-values (fasl-integer-type) 8) + (define-values (fasl-flonum-type) 9) + (define-values (fasl-single-flonum-type) 10) + (define-values (fasl-rational-type) 11) + (define-values (fasl-complex-type) 12) + (define-values (fasl-char-type) 13) + (define-values (fasl-symbol-type) 14) + (define-values (fasl-unreadable-symbol-type) 15) + (define-values (fasl-uninterned-symbol-type) 16) + (define-values (fasl-keyword-type) 17) + (define-values (fasl-string-type) 18) + (define-values (fasl-immutable-string-type) 19) + (define-values (fasl-bytes-type) 20) + (define-values (fasl-immutable-bytes-type) 21) + (define-values (fasl-path-type) 22) + (define-values (fasl-relative-path-type) 23) + (define-values (fasl-pregexp-type) 24) + (define-values (fasl-regexp-type) 25) + (define-values (fasl-byte-pregexp-type) 26) + (define-values (fasl-byte-regexp-type) 27) + (define-values (fasl-list-type) 28) + (define-values (fasl-list*-type) 29) + (define-values (fasl-pair-type) 30) + (define-values (fasl-vector-type) 31) + (define-values (fasl-immutable-vector-type) 32) + (define-values (fasl-box-type) 33) + (define-values (fasl-immutable-box-type) 34) + (define-values (fasl-prefab-type) 35) + (define-values (fasl-hash-type) 36) + (define-values (fasl-immutable-hash-type) 37) + (define-values (fasl-srcloc-type) 38) + (define-values (fasl-extflonum-type) 39) + (define-values (fasl-correlated-type) 40) + (define-values (fasl-undefined-type) 41) + (define-values (fasl-small-integer-start) 100) + (define-values (fasl-lowest-small-integer) -10) + (define-values (fasl-highest-small-integer) (- 255 (- fasl-small-integer-start fasl-lowest-small-integer) 1)) + (define-values (fasl-prefix) #"racket/fasl:") + (define-values (fasl-prefix-length) (bytes-length fasl-prefix)) + (define-values (fasl-hash-eq-variant) 0) + (define-values (fasl-hash-equal-variant) 1) + (define-values (fasl-hash-eqv-variant) 2) + (define-values + (s-exp->fasl.1) + (lambda (external-lift?7_0 handle-fail6_0 keep-mutable?5_0 skip-prefix?8_0 v14_0 orig-o13_0) + (begin + 's-exp->fasl + (let-values (((v_107) v14_0)) + (let-values (((orig-o_0) orig-o13_0)) + (let-values (((keep-mutable?_0) keep-mutable?5_0)) + (let-values (((handle-fail_0) handle-fail6_0)) + (let-values (((external-lift?_0) external-lift?7_0)) + (let-values (((skip-prefix?_0) skip-prefix?8_0)) + (let-values () + (let-values ((() + (begin + (if orig-o_0 + (let-values () + (if (output-port? orig-o_0) + (void) + (let-values () + (raise-argument-error 's-exp->fasl "(or/c output-port? #f)" orig-o_0)))) + (void)) + (values)))) + (let-values ((() + (begin + (if handle-fail_0 + (let-values () + (if (if (procedure? handle-fail_0) + (procedure-arity-includes? handle-fail_0 1) + #f) + (void) + (let-values () + (raise-argument-error + 's-exp->fasl + "(or/c (procedure-arity-includes/c 1) #f)" + handle-fail_0)))) + (void)) + (values)))) + (let-values ((() + (begin + (if external-lift?_0 + (let-values () + (if (if (procedure? external-lift?_0) + (procedure-arity-includes? external-lift?_0 1) + #f) + (void) + (let-values () + (raise-argument-error + 's-exp->fasl + "(or/c (procedure-arity-includes/c 1) #f)" + external-lift?_0)))) + (void)) + (values)))) + (let-values (((o_0) + (let-values (((or-part_178) orig-o_0)) + (if or-part_178 or-part_178 (open-output-bytes))))) + (let-values (((shared_0) (make-hasheq))) + (let-values (((external-lift_0) (if external-lift?_0 (make-hasheq) #f))) + (let-values (((shared-counter_0) 0)) + (let-values ((() + (begin + ((letrec-values (((loop_81) + (lambda (v_123) + (begin + 'loop + (if (if external-lift_0 + (hash-ref external-lift_0 v_123 #f) + #f) + (let-values () (void)) + (if (if external-lift?_0 + (external-lift?_0 v_123) + #f) + (let-values () + (begin + (hash-set! external-lift_0 v_123 #t) + (set! shared-counter_0 + (add1 shared-counter_0)) + (hash-set! + shared_0 + v_123 + (- shared-counter_0)))) + (if (let-values (((or-part_179) + (symbol? v_123))) + (if or-part_179 + or-part_179 + (let-values (((or-part_108) + (keyword? v_123))) + (if or-part_108 + or-part_108 + (let-values (((or-part_27) + (string? v_123))) + (if or-part_27 + or-part_27 + (let-values (((or-part_59) + (bytes? + v_123))) + (if or-part_59 + or-part_59 + (path? v_123))))))))) + (let-values () + (hash-update! shared_0 v_123 add1 0)) + (if (pair? v_123) + (let-values () + (begin + (loop_81 (car v_123)) + (loop_81 (cdr v_123)))) + (if (vector? v_123) + (let-values () + (begin + (let-values (((vec_32 len_13) + (let-values (((vec_33) + v_123)) + (begin + (check-vector + vec_33) + (values + vec_33 + (unsafe-vector-length + vec_33)))))) + (begin + #f + ((letrec-values (((for-loop_115) + (lambda (pos_16) + (begin + 'for-loop + (if (unsafe-fx< + pos_16 + len_13) + (let-values (((e_24) + (unsafe-vector-ref + vec_32 + pos_16))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_81 + e_24)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_115 + (unsafe-fx+ + 1 + pos_16)) + (values)))) + (values)))))) + for-loop_115) + 0))) + (void))) + (if (hash? v_123) + (let-values () + (hash-for-each + v_123 + (lambda (k_24 v_124) + (begin + (loop_81 k_24) + (loop_81 v_124))) + #t)) + (if (box? v_123) + (let-values () + (loop_81 (unbox v_123))) + (let-values (((c1_24) + (prefab-struct-key + v_123))) + (if c1_24 + ((lambda (k_25) + (begin + (loop_81 k_25) + (let-values (((v*_1 + start*_1 + stop*_2 + step*_1) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (unsafe-normalise-inputs + unsafe-vector-length + (struct->vector + v_123) + 1 + #f + 1) + (normalise-inputs + 'in-vector + "vector" + (lambda (x_43) + (vector? + x_43)) + (lambda (x_44) + (unsafe-vector-length + x_44)) + (struct->vector + v_123) + 1 + #f + 1)))) + (begin + #t + ((letrec-values (((for-loop_116) + (lambda (idx_1) + (begin + 'for-loop + (if (unsafe-fx< + idx_1 + stop*_2) + (let-values (((e_25) + (unsafe-vector-ref + v*_1 + idx_1))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_81 + e_25)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_116 + (unsafe-fx+ + idx_1 + 1)) + (values)))) + (values)))))) + for-loop_116) + start*_1))) + (void))) + c1_24) + (if (srcloc? v_123) + (let-values () + (loop_81 + (srcloc-source v_123))) + (if (correlated?$1 v_123) + (let-values () + (begin + (loop_81 + (correlated-e$1 + v_123)) + (loop_81 + (correlated-source$1 + v_123)) + (let-values (((lst_110) + (correlated-property-symbol-keys$1 + v_123))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_110))) + ((letrec-values (((for-loop_117) + (lambda (lst_111) + (begin + 'for-loop + (if (pair? + lst_111) + (let-values (((k_26) + (unsafe-car + lst_111)) + ((rest_55) + (unsafe-cdr + lst_111))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (loop_81 + k_26) + (loop_81 + (correlated-property$1 + v_123 + k_26)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_117 + rest_55) + (values)))) + (values)))))) + for-loop_117) + lst_110))) + (void))) + (let-values () + (void))))))))))))))))) + loop_81) + v_107) + (values)))) + (let-values (((treat-immutable?_0) + (lambda (v_85) + (begin + 'treat-immutable? + (let-values (((or-part_180) (not keep-mutable?_0))) + (if or-part_180 or-part_180 (immutable? v_85))))))) + (let-values (((path->relative-path-elements_0) + (let-values () + (make-path->relative-path-elements.1 #f unsafe-undefined)))) + (let-values ((() + (begin + (if skip-prefix?_0 + (void) + (let-values () (1/write-bytes fasl-prefix o_0))) + (values)))) + (let-values (((bstr_7) + (let-values (((o_1) (open-output-bytes))) + (begin + ((letrec-values (((loop_49) + (lambda (v_125) + (begin + 'loop + (if (not + (eq? + (hash-ref shared_0 v_125 1) + 1)) + (let-values () + (let-values (((c_19) + (hash-ref + shared_0 + v_125))) + (if (negative? c_19) + (let-values () + (begin + (1/write-byte + fasl-graph-ref-type + o_1) + (write-fasl-integer + (sub1 (- c_19)) + o_1))) + (let-values () + (let-values (((pos_17) + shared-counter_0)) + (begin + (set! shared-counter_0 + (add1 + shared-counter_0)) + (1/write-byte + fasl-graph-def-type + o_1) + (write-fasl-integer + pos_17 + o_1) + (hash-remove! + shared_0 + v_125) + (loop_49 v_125) + (hash-set! + shared_0 + v_125 + (- + (add1 pos_17))))))))) + (if (not v_125) + (let-values () + (1/write-byte + fasl-false-type + o_1)) + (if (eq? v_125 #t) + (let-values () + (1/write-byte + fasl-true-type + o_1)) + (if (null? v_125) + (let-values () + (1/write-byte + fasl-null-type + o_1)) + (if (void? v_125) + (let-values () + (1/write-byte + fasl-void-type + o_1)) + (if (eof-object? v_125) + (let-values () + (1/write-byte + fasl-eof-type + o_1)) + (if (exact-integer? v_125) + (let-values () + (if (<= + fasl-lowest-small-integer + v_125 + fasl-highest-small-integer) + (let-values () + (1/write-byte + (+ + fasl-small-integer-start + (- + v_125 + fasl-lowest-small-integer)) + o_1)) + (let-values () + (begin + (1/write-byte + fasl-integer-type + o_1) + (write-fasl-integer + v_125 + o_1))))) + (if (flonum? v_125) + (let-values () + (begin + (1/write-byte + fasl-flonum-type + o_1) + (1/write-bytes + (if (eqv? + v_125 + +nan.0) + #"\0\0\0\0\0\0\370\177" + (real->floating-point-bytes + v_125 + 8 + #f)) + o_1))) + (if (single-flonum? + v_125) + (let-values () + (begin + (1/write-byte + fasl-single-flonum-type + o_1) + (1/write-bytes + (if (eqv? + v_125 + (real->single-flonum + +nan.0)) + #"\0\0\300\177" + (real->floating-point-bytes + v_125 + 4 + #f)) + o_1))) + (if (extflonum? + v_125) + (let-values () + (let-values ((() + (begin + (1/write-byte + fasl-extflonum-type + o_1) + (values)))) + (let-values (((bstr_8) + (string->bytes/utf-8 + (format + "~a" + v_125)))) + (begin + (write-fasl-integer + (bytes-length + bstr_8) + o_1) + (1/write-bytes + bstr_8 + o_1))))) + (if (rational? + v_125) + (let-values () + (begin + (1/write-byte + fasl-rational-type + o_1) + (loop_49 + (numerator + v_125)) + (loop_49 + (denominator + v_125)))) + (if (complex? + v_125) + (let-values () + (begin + (1/write-byte + fasl-complex-type + o_1) + (loop_49 + (real-part + v_125)) + (loop_49 + (imag-part + v_125)))) + (if (char? + v_125) + (let-values () + (begin + (1/write-byte + fasl-char-type + o_1) + (write-fasl-integer + (char->integer + v_125) + o_1))) + (if (symbol? + v_125) + (let-values () + (let-values ((() + (begin + (if (symbol-interned? + v_125) + (let-values () + (1/write-byte + fasl-symbol-type + o_1)) + (if (symbol-unreadable? + v_125) + (let-values () + (1/write-byte + fasl-unreadable-symbol-type + o_1)) + (let-values () + (1/write-byte + fasl-uninterned-symbol-type + o_1)))) + (values)))) + (let-values (((bstr_9) + (string->bytes/utf-8 + (symbol->string + v_125)))) + (begin + (write-fasl-integer + (bytes-length + bstr_9) + o_1) + (1/write-bytes + bstr_9 + o_1))))) + (if (keyword? + v_125) + (let-values () + (let-values ((() + (begin + (1/write-byte + fasl-keyword-type + o_1) + (values)))) + (let-values (((bstr_10) + (string->bytes/utf-8 + (keyword->string + v_125)))) + (begin + (write-fasl-integer + (bytes-length + bstr_10) + o_1) + (1/write-bytes + bstr_10 + o_1))))) + (if (string? + v_125) + (let-values () + (begin + (write-fasl-integer + (if (treat-immutable?_0 + v_125) + fasl-immutable-string-type + fasl-string-type) + o_1) + (write-fasl-string + v_125 + o_1))) + (if (bytes? + v_125) + (let-values () + (begin + (write-fasl-integer + (if (treat-immutable?_0 + v_125) + fasl-immutable-bytes-type + fasl-bytes-type) + o_1) + (write-fasl-bytes + v_125 + o_1))) + (if (path-for-some-system? + v_125) + (let-values () + (let-values (((rel-elems_0) + (path->relative-path-elements_0 + v_125))) + (if rel-elems_0 + (let-values () + (begin + (1/write-byte + fasl-relative-path-type + o_1) + (loop_49 + rel-elems_0))) + (let-values () + (begin + (1/write-byte + fasl-path-type + o_1) + (write-fasl-bytes + (path->bytes + v_125) + o_1) + (loop_49 + (path-convention-type + v_125))))))) + (if (if (srcloc? + v_125) + (let-values (((src_0) + (srcloc-source + v_125))) + (let-values (((or-part_181) + (not + src_0))) + (if or-part_181 + or-part_181 + (let-values (((or-part_45) + (path-for-some-system? + src_0))) + (if or-part_45 + or-part_45 + (let-values (((or-part_46) + (string? + src_0))) + (if or-part_46 + or-part_46 + (let-values (((or-part_47) + (bytes? + src_0))) + (if or-part_47 + or-part_47 + (symbol? + src_0)))))))))) + #f) + (let-values () + (let-values (((src_1) + (srcloc-source + v_125))) + (let-values (((new-src_0) + (if (if (path? + src_1) + (not + (path->relative-path-elements_0 + src_1)) + #f) + (let-values () + (truncate-path + src_1)) + (let-values () + src_1)))) + (begin + (write-fasl-integer + fasl-srcloc-type + o_1) + (loop_49 + new-src_0) + (loop_49 + (srcloc-line + v_125)) + (loop_49 + (srcloc-column + v_125)) + (loop_49 + (srcloc-position + v_125)) + (loop_49 + (srcloc-span + v_125)))))) + (if (pair? + v_125) + (let-values () + (if (pair? + (cdr + v_125)) + (let-values () + (let-values (((n_22 + normal-list?_0) + ((letrec-values (((loop_82) + (lambda (v_126 + len_14) + (begin + 'loop + (if (null? + v_126) + (let-values () + (values + len_14 + #t)) + (if (pair? + v_126) + (let-values () + (loop_82 + (cdr + v_126) + (add1 + len_14))) + (let-values () + (values + len_14 + #f)))))))) + loop_82) + v_125 + 0))) + (begin + (1/write-byte + (if normal-list?_0 + fasl-list-type + fasl-list*-type) + o_1) + (write-fasl-integer + n_22 + o_1) + ((letrec-values (((ploop_0) + (lambda (v_68) + (begin + 'ploop + (if (pair? + v_68) + (let-values () + (begin + (loop_49 + (car + v_68)) + (ploop_0 + (cdr + v_68)))) + (let-values () + (if normal-list?_0 + (void) + (let-values () + (loop_49 + v_68))))))))) + ploop_0) + v_125)))) + (let-values () + (begin + (1/write-byte + fasl-pair-type + o_1) + (loop_49 + (car + v_125)) + (loop_49 + (cdr + v_125)))))) + (if (vector? + v_125) + (let-values () + (begin + (1/write-byte + (if (treat-immutable?_0 + v_125) + fasl-immutable-vector-type + fasl-vector-type) + o_1) + (write-fasl-integer + (vector-length + v_125) + o_1) + (let-values (((vec_34 + len_15) + (let-values (((vec_35) + v_125)) + (begin + (check-vector + vec_35) + (values + vec_35 + (unsafe-vector-length + vec_35)))))) + (begin + #f + ((letrec-values (((for-loop_118) + (lambda (pos_2) + (begin + 'for-loop + (if (unsafe-fx< + pos_2 + len_15) + (let-values (((e_26) + (unsafe-vector-ref + vec_34 + pos_2))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_49 + e_26)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_118 + (unsafe-fx+ + 1 + pos_2)) + (values)))) + (values)))))) + for-loop_118) + 0))) + (void))) + (if (box? + v_125) + (let-values () + (begin + (1/write-byte + (if (treat-immutable?_0 + v_125) + fasl-immutable-box-type + fasl-box-type) + o_1) + (loop_49 + (unbox + v_125)))) + (let-values (((c2_1) + (prefab-struct-key + v_125))) + (if c2_1 + ((lambda (k_27) + (let-values ((() + (begin + (1/write-byte + fasl-prefab-type + o_1) + (values)))) + (let-values ((() + (begin + (loop_49 + k_27) + (values)))) + (let-values (((vec_36) + (struct->vector + v_125))) + (begin + (write-fasl-integer + (sub1 + (vector-length + vec_36)) + o_1) + (let-values (((v*_2 + start*_2 + stop*_3 + step*_2) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (unsafe-normalise-inputs + unsafe-vector-length + vec_36 + 1 + #f + 1) + (normalise-inputs + 'in-vector + "vector" + (lambda (x_45) + (vector? + x_45)) + (lambda (x_46) + (unsafe-vector-length + x_46)) + vec_36 + 1 + #f + 1)))) + (begin + #t + ((letrec-values (((for-loop_119) + (lambda (idx_2) + (begin + 'for-loop + (if (unsafe-fx< + idx_2 + stop*_3) + (let-values (((e_27) + (unsafe-vector-ref + v*_2 + idx_2))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_49 + e_27)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_119 + (unsafe-fx+ + idx_2 + 1)) + (values)))) + (values)))))) + for-loop_119) + start*_2))) + (void)))))) + c2_1) + (if (hash? + v_125) + (let-values () + (begin + (1/write-byte + (if (treat-immutable?_0 + v_125) + fasl-immutable-hash-type + fasl-hash-type) + o_1) + (1/write-byte + (if (hash-eq? + v_125) + (let-values () + fasl-hash-eq-variant) + (if (hash-eqv? + v_125) + (let-values () + fasl-hash-eqv-variant) + (let-values () + fasl-hash-equal-variant))) + o_1) + (write-fasl-integer + (hash-count + v_125) + o_1) + (hash-for-each + v_125 + (lambda (k_28 + v_127) + (begin + (loop_49 + k_28) + (loop_49 + v_127))) + #t))) + (if (regexp? + v_125) + (let-values () + (begin + (1/write-byte + (if (pregexp? + v_125) + fasl-pregexp-type + fasl-regexp-type) + o_1) + (write-fasl-string + (object-name + v_125) + o_1))) + (if (byte-regexp? + v_125) + (let-values () + (begin + (1/write-byte + (if (byte-pregexp? + v_125) + fasl-byte-pregexp-type + fasl-byte-regexp-type) + o_1) + (write-fasl-bytes + (object-name + v_125) + o_1))) + (if (correlated?$1 + v_125) + (let-values () + (begin + (1/write-byte + fasl-correlated-type + o_1) + (loop_49 + (correlated-e$1 + v_125)) + (loop_49 + (srcloc + (correlated-source$1 + v_125) + (correlated-line$1 + v_125) + (correlated-column$1 + v_125) + (correlated-position$1 + v_125) + (correlated-span$1 + v_125))) + (loop_49 + (reverse$1 + (let-values (((lst_112) + (correlated-property-symbol-keys$1 + v_125))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_112))) + ((letrec-values (((for-loop_120) + (lambda (fold-var_107 + lst_113) + (begin + 'for-loop + (if (pair? + lst_113) + (let-values (((k_29) + (unsafe-car + lst_113)) + ((rest_56) + (unsafe-cdr + lst_113))) + (let-values (((fold-var_108) + (let-values (((fold-var_109) + fold-var_107)) + (let-values (((fold-var_110) + (let-values () + (cons + (let-values () + (cons + k_29 + (correlated-property$1 + v_125 + k_29))) + fold-var_109)))) + (values + fold-var_110))))) + (if (not + #f) + (for-loop_120 + fold-var_108 + rest_56) + fold-var_108))) + fold-var_107))))) + for-loop_120) + null + lst_112))))))) + (if (eq? + v_125 + unsafe-undefined) + (let-values () + (1/write-byte + fasl-undefined-type + o_1)) + (let-values () + (if handle-fail_0 + (loop_49 + (handle-fail_0 + v_125)) + (raise-arguments-error + 's-exp->fasl + "cannot write value" + "value" + v_125)))))))))))))))))))))))))))))))))))) + loop_49) + v_107) + (get-output-bytes o_1 #t))))) + (begin + (write-fasl-integer shared-counter_0 o_0) + (write-fasl-integer (bytes-length bstr_7) o_0) + (1/write-bytes bstr_7 o_0) + (if orig-o_0 (void) (get-output-bytes o_0))))))))))))))))))))))))) + (define-values + (fasl->s-exp.1) + (lambda (datum-intern?16_0 external-lifts17_0 skip-prefix?18_0 orig-i22_0) + (begin + 'fasl->s-exp + (let-values (((orig-i_0) orig-i22_0)) + (let-values (((intern?_0) datum-intern?16_0)) + (let-values (((external-lifts_0) (if (eq? external-lifts17_0 unsafe-undefined) '#() external-lifts17_0))) + (let-values (((skip-prefix?_1) skip-prefix?18_0)) + (let-values () + (let-values (((init-i_0) + (if (bytes? orig-i_0) + (let-values () (mcons orig-i_0 0)) + (if (input-port? orig-i_0) + (let-values () orig-i_0) + (let-values () + (raise-argument-error 'fasl->s-exp "(or/c bytes? input-port?)" orig-i_0)))))) + (let-values ((() + (begin + (if skip-prefix?_1 + (void) + (let-values () + (if (bytes=? (read-bytes/exactly* fasl-prefix-length init-i_0) fasl-prefix) + (void) + (let-values () (read-error "unrecognized prefix"))))) + (values)))) + (let-values (((shared-count_0) (read-fasl-integer* init-i_0))) + (let-values (((shared_1) (make-vector shared-count_0))) + (let-values ((() + (begin + (if (if (vector? external-lifts_0) + (<= (vector-length external-lifts_0) shared-count_0) + #f) + (void) + (let-values () + (error 'fasl->s-exp "external-lift vector does not match expected size"))) + (values)))) + (let-values ((() + (begin + (let-values (((vec_37 len_16) + (let-values (((vec_38) external-lifts_0)) + (begin + (check-vector vec_38) + (values vec_38 (unsafe-vector-length vec_38))))) + ((start_19) 0)) + (begin + #f + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_19))) + ((letrec-values (((for-loop_121) + (lambda (pos_18 pos_19) + (begin + 'for-loop + (if (if (unsafe-fx< pos_18 len_16) #t #f) + (let-values (((v_128) + (unsafe-vector-ref vec_37 pos_18)) + ((pos_20) pos_19)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (vector-set! + shared_1 + pos_20 + (vector-ref + external-lifts_0 + pos_20))) + (values))))) + (values))))) + (if (not #f) + (for-loop_121 + (unsafe-fx+ 1 pos_18) + (+ pos_19 1)) + (values)))) + (values)))))) + for-loop_121) + 0 + start_19))) + (values)))) + (let-values () + (let-values (((len_17) (read-fasl-integer* init-i_0))) + (let-values (((i_94) + (if (mpair? init-i_0) + init-i_0 + (let-values (((bstr_11) (read-bytes/exactly* len_17 init-i_0))) + (mcons bstr_11 0))))) + (let-values (((intern_0) + (lambda (v_129) + (begin 'intern (if intern?_0 (datum-intern-literal v_129) v_129))))) + ((letrec-values (((loop_83) + (lambda () + (begin + 'loop + (let-values (((type_0) (read-byte/no-eof i_94))) + (let-values (((tmp_16) type_0)) + (let-values (((index_0) + (if (fixnum? tmp_16) + (if (if (unsafe-fx>= tmp_16 1) + (unsafe-fx< tmp_16 42) + #f) + (let-values (((tbl_0) + '#(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 31 + 30 + 32 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 11 + 39 + 40))) + (unsafe-vector*-ref + tbl_0 + (unsafe-fx- tmp_16 1))) + 0) + 0))) + (if (unsafe-fx< index_0 20) + (if (unsafe-fx< index_0 9) + (if (unsafe-fx< index_0 4) + (if (unsafe-fx< index_0 1) + (let-values () + (if (>= type_0 fasl-small-integer-start) + (let-values () + (+ + (- type_0 fasl-small-integer-start) + fasl-lowest-small-integer)) + (let-values () + (read-error + "unrecognized fasl tag" + "tag" + type_0)))) + (if (unsafe-fx< index_0 2) + (let-values () + (let-values (((pos_21) + (read-fasl-integer i_94))) + (let-values (((v_130) (loop_83))) + (begin + (if (< pos_21 shared-count_0) + (void) + (let-values () + (read-error "bad graph index"))) + (vector-set! shared_1 pos_21 v_130) + v_130)))) + (if (unsafe-fx< index_0 3) + (let-values () + (let-values (((pos_22) + (read-fasl-integer i_94))) + (begin + (if (< pos_22 shared-count_0) + (void) + (let-values () + (read-error "bad graph index"))) + (vector-ref shared_1 pos_22)))) + (let-values () #f)))) + (if (unsafe-fx< index_0 6) + (if (unsafe-fx< index_0 5) + (let-values () #t) + (let-values () null)) + (if (unsafe-fx< index_0 7) + (let-values () (void)) + (if (unsafe-fx< index_0 8) + (let-values () eof) + (let-values () + (intern_0 (read-fasl-integer i_94))))))) + (if (unsafe-fx< index_0 14) + (if (unsafe-fx< index_0 11) + (if (unsafe-fx< index_0 10) + (let-values () + (floating-point-bytes->real + (read-bytes/exactly 8 i_94) + #f)) + (let-values () + (real->single-flonum + (floating-point-bytes->real + (read-bytes/exactly 4 i_94) + #f)))) + (if (unsafe-fx< index_0 12) + (let-values () + (let-values (((bstr_12) + (read-bytes/exactly + (read-fasl-integer i_94) + i_94))) + (1/string->number + (bytes->string/utf-8 bstr_12) + 10 + 'read))) + (if (unsafe-fx< index_0 13) + (let-values () + (intern_0 (/ (loop_83) (loop_83)))) + (let-values () + (intern_0 + (make-rectangular + (loop_83) + (loop_83))))))) + (if (unsafe-fx< index_0 16) + (if (unsafe-fx< index_0 15) + (let-values () + (intern_0 + (integer->char (read-fasl-integer i_94)))) + (let-values () + (string->symbol (read-fasl-string i_94)))) + (if (unsafe-fx< index_0 17) + (let-values () + (string->unreadable-symbol + (read-fasl-string i_94))) + (if (unsafe-fx< index_0 18) + (let-values () + (string->uninterned-symbol + (read-fasl-string i_94))) + (if (unsafe-fx< index_0 19) + (let-values () + (string->keyword + (read-fasl-string i_94))) + (let-values () + (read-fasl-string i_94)))))))) + (if (unsafe-fx< index_0 30) + (if (unsafe-fx< index_0 24) + (if (unsafe-fx< index_0 21) + (let-values () + (intern_0 + (string->immutable-string + (read-fasl-string i_94)))) + (if (unsafe-fx< index_0 22) + (let-values () (read-fasl-bytes i_94)) + (if (unsafe-fx< index_0 23) + (let-values () + (intern_0 + (bytes->immutable-bytes + (read-fasl-bytes i_94)))) + (let-values () + (bytes->path + (read-fasl-bytes i_94) + (loop_83)))))) + (if (unsafe-fx< index_0 26) + (if (unsafe-fx< index_0 25) + (let-values () + (let-values (((wrt-dir_1) + (let-values (((or-part_182) + (current-load-relative-directory))) + (if or-part_182 + or-part_182 + (current-directory))))) + (let-values (((rel-elems_1) + (reverse$1 + (let-values (((lst_114) + (loop_83))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_114))) + ((letrec-values (((for-loop_122) + (lambda (fold-var_111 + lst_115) + (begin + 'for-loop + (if (pair? + lst_115) + (let-values (((p_26) + (unsafe-car + lst_115)) + ((rest_57) + (unsafe-cdr + lst_115))) + (let-values (((fold-var_112) + (let-values (((fold-var_113) + fold-var_111)) + (let-values (((fold-var_114) + (let-values () + (cons + (let-values () + (if (bytes? + p_26) + (bytes->path-element + p_26) + p_26)) + fold-var_113)))) + (values + fold-var_114))))) + (if (not + #f) + (for-loop_122 + fold-var_112 + rest_57) + fold-var_112))) + fold-var_111))))) + for-loop_122) + null + lst_114)))))) + (if wrt-dir_1 + (let-values () + (apply + build-path + wrt-dir_1 + rel-elems_1)) + (if (null? rel-elems_1) + (let-values () (build-path 'same)) + (let-values () + (apply + build-path + rel-elems_1))))))) + (let-values () + (intern_0 + (pregexp (read-fasl-string i_94))))) + (if (unsafe-fx< index_0 27) + (let-values () + (intern_0 (regexp (read-fasl-string i_94)))) + (if (unsafe-fx< index_0 28) + (let-values () + (intern_0 + (byte-pregexp (read-fasl-bytes i_94)))) + (if (unsafe-fx< index_0 29) + (let-values () + (intern_0 + (byte-regexp (read-fasl-bytes i_94)))) + (let-values () + (let-values (((len_18) + (read-fasl-integer i_94))) + (reverse$1 + (let-values (((start_20) 0) + ((end_10) len_18) + ((inc_4) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_20 + end_10 + inc_4))) + ((letrec-values (((for-loop_123) + (lambda (fold-var_115 + pos_23) + (begin + 'for-loop + (if (< + pos_23 + end_10) + (let-values () + (let-values (((fold-var_116) + (let-values (((fold-var_117) + fold-var_115)) + (let-values (((fold-var_118) + (let-values () + (cons + (let-values () + (loop_83)) + fold-var_117)))) + (values + fold-var_118))))) + (if (not + #f) + (for-loop_123 + fold-var_116 + (+ + pos_23 + inc_4)) + fold-var_116))) + fold-var_115))))) + for-loop_123) + null + start_20))))))))))) + (if (unsafe-fx< index_0 35) + (if (unsafe-fx< index_0 32) + (if (unsafe-fx< index_0 31) + (let-values () (cons (loop_83) (loop_83))) + (let-values () + (let-values (((len_19) + (read-fasl-integer i_94))) + ((letrec-values (((ploop_1) + (lambda (len_20) + (begin + 'ploop + (if (zero? len_20) + (loop_83) + (cons + (loop_83) + (ploop_1 + (sub1 + len_20)))))))) + ploop_1) + len_19)))) + (if (unsafe-fx< index_0 33) + (let-values () + (let-values (((len_21) + (read-fasl-integer i_94))) + (let-values (((vec_39) + (let-values (((len_22) + len_21)) + (begin + (if (exact-nonnegative-integer? + len_22) + (void) + (let-values () + (raise-argument-error + 'for/vector + "exact-nonnegative-integer?" + len_22))) + (let-values (((v_131) + (make-vector + len_22 + 0))) + (begin + (if (zero? len_22) + (void) + (let-values () + (let-values (((start_21) + 0) + ((end_11) + len_21) + ((inc_5) + 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_21 + end_11 + inc_5))) + ((letrec-values (((for-loop_124) + (lambda (i_95 + pos_24) + (begin + 'for-loop + (if (< + pos_24 + end_11) + (let-values (((j_3) + pos_24)) + (let-values (((i_96) + (let-values (((i_97) + i_95)) + (let-values (((i_98) + (let-values () + (begin + (unsafe-vector*-set! + v_131 + i_97 + (let-values () + (loop_83))) + (unsafe-fx+ + 1 + i_97))))) + (values + i_98))))) + (if (if (not + ((lambda x_47 + (unsafe-fx= + i_96 + len_22)) + j_3)) + (not + #f) + #f) + (for-loop_124 + i_96 + (+ + pos_24 + inc_5)) + i_96))) + i_95))))) + for-loop_124) + 0 + start_21))))) + v_131)))))) + (if (eqv? + type_0 + fasl-immutable-vector-type) + (vector->immutable-vector vec_39) + vec_39)))) + (if (unsafe-fx< index_0 34) + (let-values () (box (loop_83))) + (let-values () (box-immutable (loop_83)))))) + (if (unsafe-fx< index_0 37) + (if (unsafe-fx< index_0 36) + (let-values () + (let-values (((key_47) (loop_83))) + (let-values (((len_23) + (read-fasl-integer i_94))) + (apply + make-prefab-struct + key_47 + (reverse$1 + (let-values (((start_22) 0) + ((end_12) len_23) + ((inc_6) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_22 + end_12 + inc_6))) + ((letrec-values (((for-loop_125) + (lambda (fold-var_119 + pos_25) + (begin + 'for-loop + (if (< + pos_25 + end_12) + (let-values () + (let-values (((fold-var_120) + (let-values (((fold-var_121) + fold-var_119)) + (let-values (((fold-var_122) + (let-values () + (cons + (let-values () + (loop_83)) + fold-var_121)))) + (values + fold-var_122))))) + (if (not + #f) + (for-loop_125 + fold-var_120 + (+ + pos_25 + inc_6)) + fold-var_120))) + fold-var_119))))) + for-loop_125) + null + start_22)))))))) + (let-values () + (let-values (((ht_81) + (let-values (((tmp_17) + (read-byte/no-eof + i_94))) + (if (equal? tmp_17 0) + (let-values () + (make-hasheq)) + (if (equal? tmp_17 2) + (let-values () + (make-hasheqv)) + (let-values () + (make-hash))))))) + (let-values (((len_24) + (read-fasl-integer i_94))) + (begin + (let-values (((start_23) 0) + ((end_13) len_24) + ((inc_7) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_23 + end_13 + inc_7))) + ((letrec-values (((for-loop_126) + (lambda (pos_26) + (begin + 'for-loop + (if (< + pos_26 + end_13) + (let-values () + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (hash-set! + ht_81 + (loop_83) + (loop_83))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_126 + (+ + pos_26 + inc_7)) + (values)))) + (values)))))) + for-loop_126) + start_23))) + (void) + ht_81))))) + (if (unsafe-fx< index_0 38) + (let-values () + (let-values (((ht_82) + (let-values (((tmp_18) + (read-byte/no-eof + i_94))) + (if (equal? tmp_18 0) + (let-values () '#hasheq()) + (if (equal? tmp_18 2) + (let-values () + '#hasheqv()) + (let-values () + '#hash())))))) + (let-values (((len_25) + (read-fasl-integer i_94))) + (let-values (((start_24) 0) + ((end_14) len_25) + ((inc_8) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_24 + end_14 + inc_8))) + ((letrec-values (((for-loop_127) + (lambda (ht_83 + pos_27) + (begin + 'for-loop + (if (< + pos_27 + end_14) + (let-values () + (let-values (((ht_84) + (let-values (((ht_45) + ht_83)) + (let-values (((ht_85) + (let-values () + (hash-set + ht_45 + (loop_83) + (loop_83))))) + (values + ht_85))))) + (if (not + #f) + (for-loop_127 + ht_84 + (+ + pos_27 + inc_8)) + ht_84))) + ht_83))))) + for-loop_127) + ht_82 + start_24)))))) + (if (unsafe-fx< index_0 39) + (let-values () + (srcloc + (loop_83) + (loop_83) + (loop_83) + (loop_83) + (loop_83))) + (if (unsafe-fx< index_0 40) + (let-values () + (let-values (((e_28) (loop_83))) + (let-values (((s_184) (loop_83))) + (let-values (((c_20) + (datum->correlated$1 + e_28 + (vector + (srcloc-source + s_184) + (srcloc-line s_184) + (srcloc-column + s_184) + (srcloc-position + s_184) + (srcloc-span + s_184))))) + (let-values (((lst_116) + (loop_83))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_116))) + ((letrec-values (((for-loop_128) + (lambda (c_21 + lst_43) + (begin + 'for-loop + (if (pair? + lst_43) + (let-values (((p_27) + (unsafe-car + lst_43)) + ((rest_18) + (unsafe-cdr + lst_43))) + (let-values (((c_22) + (let-values (((c_23) + c_21)) + (let-values (((c_24) + (let-values () + (correlated-property$1 + c_23 + (car + p_27) + (cdr + p_27))))) + (values + c_24))))) + (if (not + #f) + (for-loop_128 + c_22 + rest_18) + c_22))) + c_21))))) + for-loop_128) + c_20 + lst_116))))))) + (let-values () + unsafe-undefined))))))))))))))) + loop_83)))))))))))))))))))) + (define-values + (write-fasl-integer) + (lambda (i_65 o_2) + (begin + (if (<= -124 i_65 127) + (let-values () (if (negative? i_65) (1/write-byte (+ i_65 256) o_2) (1/write-byte i_65 o_2))) + (if (<= -32768 i_65 32767) + (let-values () (begin (1/write-byte 128 o_2) (1/write-bytes (integer->integer-bytes i_65 2 #t #f) o_2))) + (if (<= -2147483648 i_65 2147483647) + (let-values () (begin (1/write-byte 129 o_2) (1/write-bytes (integer->integer-bytes i_65 4 #t #f) o_2))) + (if (<= -9223372036854775808 i_65 9223372036854775807) + (let-values () (begin (1/write-byte 130 o_2) (1/write-bytes (integer->integer-bytes i_65 8 #t #f) o_2))) + (let-values () + (let-values ((() (begin (1/write-byte 131 o_2) (values)))) + (let-values (((s_131) (format "~x" i_65))) + (begin (write-fasl-integer (string-length s_131) o_2) (write-string s_131 o_2)))))))))))) + (define-values + (write-fasl-string) + (lambda (v_132 o_3) + (begin + (let-values (((bstr_13) (string->bytes/utf-8 v_132))) + (begin (write-fasl-integer (bytes-length bstr_13) o_3) (1/write-bytes bstr_13 o_3)))))) + (define-values + (write-fasl-bytes) + (lambda (v_133 o_4) (begin (begin (write-fasl-integer (bytes-length v_133) o_4) (1/write-bytes v_133 o_4))))) + (define-values + (read-error) + (lambda (s_185 . args_4) + (begin (apply raise-arguments-error 'fasl-read (string-append "error parsing fasl stream;\n" " " s_185) args_4)))) + (define-values + (read-byte/no-eof) + (lambda (i_99) + (begin + (let-values (((pos_28) (mcdr i_99))) + (begin + (if (fx< pos_28 (bytes-length (mcar i_99))) (void) (let-values () (read-error "truncated stream"))) + (set-mcdr! i_99 (fx+ pos_28 1)) + (bytes-ref (mcar i_99) pos_28)))))) + (define-values + (read-byte/no-eof*) + (lambda (i_100) + (begin + (if (mpair? i_100) + (let-values () (read-byte/no-eof i_100)) + (let-values () + (let-values (((b_72) (read-byte i_100))) + (begin (if (eof-object? b_72) (let-values () (read-error "truncated stream")) (void)) b_72))))))) + (define-values + (read-bytes/exactly) + (lambda (n_23 i_101) + (begin + (let-values (((pos_29) (mcdr i_101))) + (begin + (if (<= (+ pos_29 n_23) (bytes-length (mcar i_101))) (void) (let-values () (read-error "truncated stream"))) + (set-mcdr! i_101 (fx+ pos_29 n_23)) + (subbytes (mcar i_101) pos_29 (fx+ pos_29 n_23))))))) + (define-values + (read-bytes/exactly*) + (lambda (n_24 i_102) + (begin + (if (mpair? i_102) + (let-values () (read-bytes/exactly n_24 i_102)) + (let-values () + (let-values (((bstr_14) (read-bytes n_24 i_102))) + (begin + (if (if (bytes? bstr_14) (= n_24 (bytes-length bstr_14)) #f) + (void) + (let-values () (read-error "truncated stream"))) + bstr_14))))))) + (define-values + (read-fasl-integer read-fasl-integer*) + (let-values () + (let-values () + (values + (lambda (i_103) + (let-values (((b_73) (read-byte/no-eof i_103))) + (if (fx<= b_73 127) + (let-values () b_73) + (if (fx>= b_73 132) + (let-values () (fx- b_73 256)) + (if (eqv? b_73 128) + (let-values () + (let-values (((lo_0) (read-byte/no-eof i_103))) + (let-values (((hi_0) (read-byte/no-eof i_103))) + (if (fx> hi_0 127) (fxior (fxlshift (fx+ -256 hi_0) 8) lo_0) (fxior (fxlshift hi_0 8) lo_0))))) + (if (eqv? b_73 129) + (let-values () + (let-values (((a_29) (read-byte/no-eof i_103))) + (let-values (((b_74) (read-byte/no-eof i_103))) + (let-values (((c_25) (read-byte/no-eof i_103))) + (let-values (((d_23) (read-byte/no-eof i_103))) + (bitwise-ior + a_29 + (arithmetic-shift + (if (fx> d_23 127) + (fxior (fxlshift (fx+ -256 d_23) 16) (fxlshift c_25 8) b_74) + (fxior (fxlshift d_23 16) (fxlshift c_25 8) b_74)) + 8))))))) + (if (eqv? b_73 130) + (let-values () (integer-bytes->integer (read-bytes/exactly 8 i_103) #t #f)) + (if (eqv? b_73 131) + (let-values () + (let-values (((len_26) (read-fasl-integer i_103))) + (let-values (((str_5) (read-fasl-string i_103 len_26))) + (begin + (if (if (string? str_5) (= len_26 (string-length str_5)) #f) + (void) + (let-values () (read-error "truncated stream at number"))) + (1/string->number str_5 16))))) + (let-values () (read-error "internal error on integer mode")))))))))) + (lambda (i_104) + (let-values (((b_75) (read-byte/no-eof* i_104))) + (if (fx<= b_75 127) + (let-values () b_75) + (if (fx>= b_75 132) + (let-values () (fx- b_75 256)) + (if (eqv? b_75 128) + (let-values () + (let-values (((lo_1) (read-byte/no-eof* i_104))) + (let-values (((hi_1) (read-byte/no-eof* i_104))) + (if (fx> hi_1 127) (fxior (fxlshift (fx+ -256 hi_1) 8) lo_1) (fxior (fxlshift hi_1 8) lo_1))))) + (if (eqv? b_75 129) + (let-values () + (let-values (((a_30) (read-byte/no-eof* i_104))) + (let-values (((b_76) (read-byte/no-eof* i_104))) + (let-values (((c_26) (read-byte/no-eof* i_104))) + (let-values (((d_24) (read-byte/no-eof* i_104))) + (bitwise-ior + a_30 + (arithmetic-shift + (if (fx> d_24 127) + (fxior (fxlshift (fx+ -256 d_24) 16) (fxlshift c_26 8) b_76) + (fxior (fxlshift d_24 16) (fxlshift c_26 8) b_76)) + 8))))))) + (if (eqv? b_75 130) + (let-values () (integer-bytes->integer (read-bytes/exactly* 8 i_104) #t #f)) + (if (eqv? b_75 131) + (let-values () + (let-values (((len_27) (read-fasl-integer i_104))) + (let-values (((str_6) (read-fasl-string i_104 len_27))) + (begin + (if (if (string? str_6) (= len_27 (string-length str_6)) #f) + (void) + (let-values () (read-error "truncated stream at number"))) + (1/string->number str_6 16))))) + (let-values () (read-error "internal error on integer mode")))))))))))))) + (define-values + (read-fasl-string) + (let-values (((read-fasl-string_0) + (lambda (i25_0 len24_0) + (begin + 'read-fasl-string + (let-values (((i_105) i25_0)) + (let-values (((len_28) (if (eq? len24_0 unsafe-undefined) (read-fasl-integer i_105) len24_0))) + (let-values () + (let-values (((pos_30) (mcdr i_105))) + (let-values (((bstr_15) (mcar i_105))) + (if (<= (+ pos_30 len_28) (bytes-length bstr_15)) + (let-values () + (let-values ((() (begin (set-mcdr! i_105 (fx+ pos_30 len_28)) (values)))) + (let-values (((s_186) (make-string len_28))) + ((letrec-values (((loop_84) + (lambda (i_106) + (begin + 'loop + (if (fx= i_106 len_28) + (let-values () s_186) + (let-values () + (let-values (((c_27) + (bytes-ref bstr_15 (fx+ i_106 pos_30)))) + (if (fx<= c_27 128) + (let-values () + (begin + (string-set! s_186 i_106 (integer->char c_27)) + (loop_84 (fx+ i_106 1)))) + (let-values () + (bytes->string/utf-8 + bstr_15 + #f + pos_30 + (fx+ pos_30 len_28))))))))))) + loop_84) + 0)))) + (let-values () + (let-values (((bstr_16) (read-bytes/exactly len_28 i_105))) + (bytes->string/utf-8 bstr_16))))))))))))) + (case-lambda + ((i_11) (begin (read-fasl-string_0 i_11 unsafe-undefined))) + ((i_107 len24_1) (read-fasl-string_0 i_107 len24_1))))) + (define-values + (read-fasl-bytes) + (lambda (i_108) (begin (let-values (((len_29) (read-fasl-integer i_108))) (read-bytes/exactly len_29 i_108))))) + (define-values + (struct:mpi-intern-table mpi-intern-table1.1 mpi-intern-table? mpi-intern-table-normal mpi-intern-table-fast) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'mpi-intern-table + #f + 2 + 0 + #f + null + (current-inspector) + #f + '(0 1) + #f + 'mpi-intern-table))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'normal) + (make-struct-field-accessor -ref_2 1 'fast)))) + (define-values + (make-module-path-index-intern-table) + (lambda () (begin (mpi-intern-table1.1 (make-hash) (make-hasheq))))) + (define-values + (intern-module-path-index!) + (lambda (t_10 mpi_26) + (begin + (let-values (((or-part_32) (hash-ref (mpi-intern-table-fast t_10) mpi_26 #f))) + (if or-part_32 + or-part_32 + (let-values (((name_38 base_16) (1/module-path-index-split mpi_26))) + (if (not name_38) + (let-values () (begin (hash-set! (mpi-intern-table-fast t_10) mpi_26 mpi_26) mpi_26)) + (let-values () + (let-values (((interned-base_0) (if base_16 (intern-module-path-index! t_10 base_16) #f))) + (let-values (((at-name_0) + (let-values (((or-part_82) (hash-ref (mpi-intern-table-normal t_10) name_38 #f))) + (if or-part_82 + or-part_82 + (let-values (((at-name_1) (make-hasheq))) + (begin + (hash-set! (mpi-intern-table-normal t_10) name_38 at-name_1) + at-name_1)))))) + (let-values (((i-mpi_0) + (let-values (((or-part_72) (hash-ref at-name_0 interned-base_0 #f))) + (if or-part_72 + or-part_72 + (let-values (((mpi_27) + (if (eq? base_16 interned-base_0) + mpi_26 + (let-values (((the-struct_43) mpi_26)) + (if (1/module-path-index? the-struct_43) + (let-values (((base3_0) interned-base_0)) + (module-path-index2.1 + (module-path-index-path the-struct_43) + base3_0 + (module-path-index-resolved the-struct_43) + (module-path-index-shift-cache the-struct_43))) + (raise-argument-error + 'struct-copy + "module-path-index?" + the-struct_43)))))) + (begin (hash-set! at-name_0 interned-base_0 mpi_27) mpi_27)))))) + (begin (hash-set! (mpi-intern-table-fast t_10) mpi_26 i-mpi_0) i-mpi_0)))))))))))) + (define-values (built-in-symbols) (make-hasheq)) + (define-values (register-built-in-symbol!) (lambda (s_0) (begin (hash-set! built-in-symbols s_0 #t)))) + (define-values (built-in-symbol?) (lambda (s_87) (begin (hash-ref built-in-symbols s_87 #f)))) + (define-values + (make-built-in-symbol!) + (lambda (s_10) + (begin + (let-values (((built-in-s_0) (string->symbol (format ".~s" s_10)))) + (begin (register-built-in-symbol! built-in-s_0) built-in-s_0))))) + (void + (begin + (for-each2 + register-built-in-symbol! + '(lambda case-lambda + if + begin + begin0 + let-values + letrec-values + set! + quote + with-continuation-mark + #%variable-reference)) + (for-each2 + register-built-in-symbol! + '(check-not-undefined + instance-variable-box + variable-reference + variable-reference? + variable-reference->instance + variable-reference-constant? + variable-reference-from-unsafe?)) + (for-each2 + register-built-in-symbol! + '(or and + let + letrec* + define + $value + with-continuation-mark* + pariah + begin-unsafe + variable-set! + variable-ref + variable-ref/no-check + variable-set!/check-undefined + variable-set!/define + make-instance-variable-reference + instance-variable-reference + unbox/check-undefined + set-box!/check-undefined + annotation? + annotation-expression + #%app + #%call-with-values + #%app/no-return + #%app/value + call-with-module-prompt + make-pthread-parameter + engine-block + make-record-type-descriptor + make-record-type-descriptor* + make-record-constructor-descriptor + record-constructor + record-accessor + record-mutator + record-predicate + make-struct-type-install-properties + #%struct-constructor + #%struct-predicate + #%struct-field-accessor + #%struct-field-mutator + #%nongenerative-uid + unsafe-struct? + unsafe-sealed-struct? + unsafe-struct + raise-binding-result-arity-error + raise-definition-result-arity-error + structure-type-lookup-prefab-uid + struct-type-constructor-add-guards + impersonator-val + impersonator-ref + impersonate-set! + ptr-ref/int8 + ptr-set!/int8 + ptr-ref/uint8 + ptr-set!/uint8 + ptr-ref/int16 + ptr-set!/int16 + ptr-ref/uint16 + ptr-set!/uint16 + ptr-ref/int32 + ptr-set!/int32 + ptr-ref/uint32 + ptr-set!/uint32 + ptr-ref/int64 + ptr-set!/int64 + ptr-ref/uint64 + ptr-set!/uint64 + ptr-ref/double + ptr-set!/double + ptr-ref/float + ptr-set!/float)))) + (define-values (phase-shift-id) (make-built-in-symbol! 'phase)) + (define-values (dest-phase-id) (make-built-in-symbol! 'dest-phase)) + (define-values (ns-id) (make-built-in-symbol! 'namespace)) + (define-values (self-id) (make-built-in-symbol! 'self)) + (define-values (syntax-literals-id) (make-built-in-symbol! 'syntax-literals)) + (define-values (get-syntax-literal!-id) (make-built-in-symbol! 'get-syntax-literal!)) + (define-values (bulk-binding-registry-id) (make-built-in-symbol! 'bulk-binding-registry)) + (define-values (inspector-id) (make-built-in-symbol! 'inspector)) + (define-values (deserialize-syntax-id) (make-built-in-symbol! 'deserialize-syntax)) + (define-values (deserialized-syntax-vector-id) (make-built-in-symbol! 'deserialized-syntax-vector)) + (define-values (set-transformer!-id) (make-built-in-symbol! 'set-transformer!)) + (define-values (top-level-bind!-id) (make-built-in-symbol! 'top-level-bind!)) + (define-values (top-level-require!-id) (make-built-in-symbol! 'top-level-require!)) + (define-values (mpi-vector-id) (make-built-in-symbol! 'mpi-vector)) + (define-values + (struct:module-path-index-table + module-path-index-table1.1 + module-path-index-table? + module-path-index-table-positions + module-path-index-table-intern) + (let-values (((struct:_29 make-_29 ?_29 -ref_29 -set!_29) + (let-values () + (let-values () + (make-struct-type + 'module-path-index-table + #f + 2 + 0 + #f + null + (current-inspector) + #f + '(0 1) + #f + 'module-path-index-table))))) + (values + struct:_29 + make-_29 + ?_29 + (make-struct-field-accessor -ref_29 0 'positions) + (make-struct-field-accessor -ref_29 1 'intern)))) + (define-values + (make-module-path-index-table) + (lambda () (begin (module-path-index-table1.1 (make-hasheq) (make-module-path-index-intern-table))))) + (define-values + (add-module-path-index!) + (lambda (mpis_0 mpi_28) + (begin + (let-values (((pos_31) (add-module-path-index!/pos mpis_0 mpi_28))) + (if pos_31 (list 'unsafe-vector*-ref mpi-vector-id pos_31) #f))))) + (define-values + (add-module-path-index!/pos) + (lambda (mpis_1 mpi_20) + (begin + (if (not mpi_20) + (let-values () #f) + (if mpi_20 + (let-values () + (let-values (((mpi_29) (intern-module-path-index! (module-path-index-table-intern mpis_1) mpi_20)) + ((positions_0) (module-path-index-table-positions mpis_1))) + (let-values (((or-part_58) (hash-ref positions_0 mpi_29 #f))) + (if or-part_58 + or-part_58 + (let-values (((pos_32) (hash-count positions_0))) + (begin (hash-set! positions_0 mpi_29 pos_32) pos_32)))))) + (void)))))) + (define-values + (generate-module-path-index-deserialize.1) + (lambda (as-data?2_0 mpis4_0) + (begin + 'generate-module-path-index-deserialize + (let-values (((mpis_2) mpis4_0)) + (let-values (((as-data?_0) as-data?2_0)) + (let-values () + (let-values (((unique-list_0) + (lambda (v_34) + (begin + 'unique-list + (if (pair? v_34) + (reverse$1 + (let-values (((lst_103) v_34)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_103))) + ((letrec-values (((for-loop_106) + (lambda (fold-var_79 lst_90) + (begin + 'for-loop + (if (pair? lst_90) + (let-values (((i_109) (unsafe-car lst_90)) + ((rest_50) (unsafe-cdr lst_90))) + (let-values (((fold-var_123) + (let-values (((fold-var_124) fold-var_79)) + (let-values (((fold-var_80) + (let-values () + (cons + (let-values () i_109) + fold-var_124)))) + (values fold-var_80))))) + (if (not #f) + (for-loop_106 fold-var_123 rest_50) + fold-var_123))) + fold-var_79))))) + for-loop_106) + null + lst_103)))) + v_34))))) + (let-values (((positions_1) (module-path-index-table-positions mpis_2))) + (let-values (((gen-order_0) (make-hasheqv))) + (let-values (((rev-positions_0) + (let-values (((ht_86) positions_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_86))) + ((letrec-values (((for-loop_129) + (lambda (table_9 i_110) + (begin + 'for-loop + (if i_110 + (let-values (((k_30 v_50) + (hash-iterate-key+value ht_86 i_110))) + (let-values (((table_106) + (let-values (((table_107) table_9)) + (let-values (((table_108) + (let-values () + (let-values (((key_48 + val_35) + (let-values () + (values + v_50 + k_30)))) + (hash-set + table_107 + key_48 + val_35))))) + (values table_108))))) + (if (not #f) + (for-loop_129 + table_106 + (hash-iterate-next ht_86 i_110)) + table_106))) + table_9))))) + for-loop_129) + '#hasheqv() + (hash-iterate-first ht_86)))))) + (let-values ((() + (begin + (let-values (((start_25) 0) ((end_15) (hash-count rev-positions_0)) ((inc_9) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_25 end_15 inc_9))) + ((letrec-values (((for-loop_22) + (lambda (pos_33) + (begin + 'for-loop + (if (< pos_33 end_15) + (let-values (((i_111) pos_33)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((mpi_30) + (hash-ref + rev-positions_0 + i_111))) + ((letrec-values (((loop_80) + (lambda (mpi_31) + (begin + 'loop + (if (hash-ref + gen-order_0 + mpi_31 + #f) + (void) + (let-values () + (let-values (((name_39 + base_17) + (1/module-path-index-split + mpi_31))) + (begin + (if base_17 + (let-values () + (loop_80 + base_17)) + (void)) + (hash-set! + gen-order_0 + mpi_31 + (hash-count + gen-order_0)))))))))) + loop_80) + mpi_30))) + (values))))) + (values))))) + (if (not #f) + (for-loop_22 (+ pos_33 inc_9)) + (values)))) + (values)))))) + for-loop_22) + start_25))) + (values)))) + (let-values () + (let-values (((rev-gen-order_0) + (let-values (((ht_87) gen-order_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_87))) + ((letrec-values (((for-loop_130) + (lambda (table_109 i_112) + (begin + 'for-loop + (if i_112 + (let-values (((k_31 v_134) + (hash-iterate-key+value ht_87 i_112))) + (let-values (((table_110) + (let-values (((table_111) table_109)) + (let-values (((table_112) + (let-values () + (let-values (((key_49 + val_36) + (let-values () + (values + v_134 + k_31)))) + (hash-set + table_111 + key_49 + val_36))))) + (values table_112))))) + (if (not #f) + (for-loop_130 + table_110 + (hash-iterate-next ht_87 i_112)) + table_110))) + table_109))))) + for-loop_130) + '#hasheqv() + (hash-iterate-first ht_87)))))) + (let-values (((gens_0) + (let-values (((len_30) (hash-count gen-order_0))) + (begin + (if (exact-nonnegative-integer? len_30) + (void) + (let-values () + (raise-argument-error 'for/vector "exact-nonnegative-integer?" len_30))) + (let-values (((v_90) (make-vector len_30 0))) + (begin + (if (zero? len_30) + (void) + (let-values () + (let-values (((start_26) 0) + ((end_16) (hash-count gen-order_0)) + ((inc_10) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_26 end_16 inc_10))) + ((letrec-values (((for-loop_131) + (lambda (i_113 pos_34) + (begin + 'for-loop + (if (< pos_34 end_16) + (let-values (((i_114) pos_34)) + (let-values (((i_115) + (let-values (((i_116) + i_113)) + (let-values (((i_117) + (let-values () + (begin + (unsafe-vector*-set! + v_90 + i_116 + (let-values () + (let-values (((mpi_32) + (hash-ref + rev-gen-order_0 + i_114))) + (let-values (((path_9 + base_18) + (1/module-path-index-split + mpi_32))) + (if (top-level-module-path-index? + mpi_32) + (let-values () + 'top) + (if (not + path_9) + (let-values () + (box + (let-values (((or-part_183) + (unique-list_0 + (1/resolved-module-path-name + (module-path-index-resolved + mpi_32))))) + (if or-part_183 + or-part_183 + 'self)))) + (if (not + base_18) + (let-values () + (vector + path_9)) + (if base_18 + (let-values () + (vector + path_9 + (hash-ref + gen-order_0 + base_18))) + (void))))))))) + (unsafe-fx+ + 1 + i_116))))) + (values i_117))))) + (if (if (not + ((lambda x_48 + (unsafe-fx= + i_115 + len_30)) + i_114)) + (not #f) + #f) + (for-loop_131 + i_115 + (+ pos_34 inc_10)) + i_115))) + i_113))))) + for-loop_131) + 0 + start_26))))) + v_90)))))) + (let-values (((reorder-vec_0) + (let-values (((vec_40 i_118) + (let-values (((start_27) 0) + ((end_17) (hash-count rev-positions_0)) + ((inc_11) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_27 end_17 inc_11))) + ((letrec-values (((for-loop_132) + (lambda (vec_41 i_119 pos_35) + (begin + 'for-loop + (if (< pos_35 end_17) + (let-values (((i_120) pos_35)) + (let-values (((vec_42 i_67) + (let-values (((vec_43) + vec_41) + ((i_83) + i_119)) + (let-values (((vec_44 + i_121) + (let-values () + (let-values (((new-vec_2) + (if (eq? + i_83 + (unsafe-vector*-length + vec_43)) + (grow-vector + vec_43) + vec_43))) + (begin + (unsafe-vector*-set! + new-vec_2 + i_83 + (let-values () + (hash-ref + gen-order_0 + (hash-ref + rev-positions_0 + i_120)))) + (values + new-vec_2 + (unsafe-fx+ + i_83 + 1))))))) + (values + vec_44 + i_121))))) + (if (not #f) + (for-loop_132 + vec_42 + i_67 + (+ pos_35 inc_11)) + (values vec_42 i_67)))) + (values vec_41 i_119)))))) + for-loop_132) + (make-vector 16) + 0 + start_27))))) + (shrink-vector vec_40 i_118)))) + (if as-data?_0 + (let-values () (vector gens_0 reorder-vec_0)) + (let-values () + (list + 'deserialize-module-path-indexes + (list 'quote gens_0) + (list 'quote reorder-vec_0))))))))))))))))))) + (define-values + (deserialize-module-path-indexes) + (lambda (gen-vec_0 order-vec_0) + (begin + (let-values (((gen_0) (make-vector (vector-length gen-vec_0) #f))) + (begin + (let-values (((vec_45 len_31) + (let-values (((vec_46) gen-vec_0)) + (begin (check-vector vec_46) (values vec_46 (unsafe-vector-length vec_46))))) + ((start_28) 0)) + (begin + #f + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_28))) + ((letrec-values (((for-loop_4) + (lambda (pos_36 pos_37) + (begin + 'for-loop + (if (if (unsafe-fx< pos_36 len_31) #t #f) + (let-values (((d_25) (unsafe-vector-ref vec_45 pos_36)) ((i_122) pos_37)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (vector-set! + gen_0 + i_122 + (if (eq? d_25 'top) + (let-values () + (deserialize-module-path-index)) + (if (box? d_25) + (let-values () + (deserialize-module-path-index + (unbox d_25))) + (let-values () + (deserialize-module-path-index + (vector*-ref d_25 0) + (if (> (vector*-length d_25) 1) + (vector*-ref + gen_0 + (vector*-ref d_25 1)) + #f))))))) + (values))))) + (values))))) + (if (not #f) (for-loop_4 (unsafe-fx+ 1 pos_36) (+ pos_37 1)) (values)))) + (values)))))) + for-loop_4) + 0 + start_28))) + (void) + (let-values (((len_32) (vector-length order-vec_0))) + (begin + (if (exact-nonnegative-integer? len_32) + (void) + (let-values () (raise-argument-error 'for/vector "exact-nonnegative-integer?" len_32))) + (let-values (((v_135) (make-vector len_32 0))) + (begin + (if (zero? len_32) + (void) + (let-values () + (let-values (((vec_47 len_33) + (let-values (((vec_48) order-vec_0)) + (begin (check-vector vec_48) (values vec_48 (unsafe-vector-length vec_48)))))) + (begin + #f + ((letrec-values (((for-loop_133) + (lambda (i_123 pos_4) + (begin + 'for-loop + (if (unsafe-fx< pos_4 len_33) + (let-values (((p_28) (unsafe-vector-ref vec_47 pos_4))) + (let-values (((i_35) + (let-values (((i_24) i_123)) + (let-values (((i_124) + (let-values () + (begin + (unsafe-vector*-set! + v_135 + i_24 + (let-values () + (vector*-ref gen_0 p_28))) + (unsafe-fx+ 1 i_24))))) + (values i_124))))) + (if (if (not ((lambda x_49 (unsafe-fx= i_35 len_32)) p_28)) + (not #f) + #f) + (for-loop_133 i_35 (unsafe-fx+ 1 pos_4)) + i_35))) + i_123))))) + for-loop_133) + 0 + 0))))) + v_135))))))))) + (define-values + (deserialize-module-path-index-data) + (lambda (v_136) + (begin + (begin + (if (if (vector? v_136) (= 2 (vector-length v_136)) #f) + (void) + (let-values () (error 'syntax-deserialize "ill-formed serialization"))) + (deserialize-module-path-indexes (vector-ref v_136 0) (vector-ref v_136 1)))))) + (define-values + (mpis-as-vector) + (lambda (mpis_3) + (begin + (let-values (((positions_2) (module-path-index-table-positions mpis_3))) + (let-values (((vec_49) (make-vector (hash-count positions_2) #f))) + (begin + (let-values (((ht_88) positions_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_88))) + ((letrec-values (((for-loop_134) + (lambda (i_125) + (begin + 'for-loop + (if i_125 + (let-values (((mpi_33 pos_38) (hash-iterate-key+value ht_88 i_125))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (vector-set! vec_49 pos_38 mpi_33)) + (values))))) + (values))))) + (if (not #f) (for-loop_134 (hash-iterate-next ht_88 i_125)) (values)))) + (values)))))) + for-loop_134) + (hash-iterate-first ht_88)))) + (void) + vec_49)))))) + (define-values + (generate-module-data-linklet) + (lambda (mpis_4) + (begin + (list + 'linklet + (list deserialize-imports) + (list mpi-vector-id) + (list* 'define-values (list inspector-id) '((current-code-inspector))) + (list + 'define-values + (list mpi-vector-id) + (let-values (((mpis19_0) mpis_4)) (generate-module-path-index-deserialize.1 #f mpis19_0))))))) + (define-values + (generate-module-declaration-linklet) + (lambda (mpis_5 self_6 requires_2 provides_5 phase-to-link-module-uses-expr_0) + (begin + (list + 'linklet + (list deserialize-imports (list mpi-vector-id)) + '(self-mpi requires provides phase-to-link-modules) + (list 'define-values '(self-mpi) (add-module-path-index! mpis_5 self_6)) + (list + 'define-values + '(requires) + (let-values (((requires20_0) requires_2) ((mpis21_0) mpis_5) ((temp22_2) #f)) + (generate-deserialize.1 #f #f mpis21_0 '#hasheq() temp22_2 requires20_0))) + (list + 'define-values + '(provides) + (let-values (((provides23_0) provides_5) ((mpis24_0) mpis_5) ((temp25_1) #f)) + (generate-deserialize.1 #f #f mpis24_0 '#hasheq() temp25_1 provides23_0))) + (list 'define-values '(phase-to-link-modules) phase-to-link-module-uses-expr_0))))) + (define-values + (serialize-module-uses) + (lambda (mus_0 mpis_6) + (begin + (reverse$1 + (let-values (((lst_117) mus_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_117))) + ((letrec-values (((for-loop_135) + (lambda (fold-var_125 lst_118) + (begin + 'for-loop + (if (pair? lst_118) + (let-values (((mu_1) (unsafe-car lst_118)) ((rest_58) (unsafe-cdr lst_118))) + (let-values (((fold-var_126) + (let-values (((fold-var_108) fold-var_125)) + (let-values (((fold-var_109) + (let-values () + (cons + (let-values () + (list + 'module-use + (add-module-path-index! + mpis_6 + (module-use-module mu_1)) + (module-use-phase mu_1))) + fold-var_108)))) + (values fold-var_109))))) + (if (not #f) (for-loop_135 fold-var_126 rest_58) fold-var_126))) + fold-var_125))))) + for-loop_135) + null + lst_117))))))) + (define-values + (interned-literal?) + (lambda (v_137) + (begin + (let-values (((or-part_93) (null? v_137))) + (if or-part_93 + or-part_93 + (let-values (((or-part_94) (boolean? v_137))) + (if or-part_94 + or-part_94 + (let-values (((or-part_95) + (if (fixnum? v_137) (if (< v_137 (sub1 (expt 2 30))) (> v_137 (- (expt 2 30))) #f) #f))) + (if or-part_95 + or-part_95 + (let-values (((or-part_184) (symbol? v_137))) + (if or-part_184 + or-part_184 + (let-values (((or-part_100) (char? v_137))) + (if or-part_100 or-part_100 (keyword? v_137)))))))))))))) + (define-values + (serialize-phase-to-link-module-uses) + (lambda (phase-to-link-module-uses_0 mpis_7) + (begin + (let-values (((phases-in-order_0) + (let-values (((temp26_2) (hash-keys phase-to-link-module-uses_0)) ((<27_0) <)) + (sort.1 #f #f temp26_2 <27_0)))) + (list* + 'hasheqv + (apply + append + (reverse$1 + (let-values (((lst_119) phases-in-order_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_119))) + ((letrec-values (((for-loop_136) + (lambda (fold-var_127 lst_120) + (begin + 'for-loop + (if (pair? lst_120) + (let-values (((phase_40) (unsafe-car lst_120)) ((rest_59) (unsafe-cdr lst_120))) + (let-values (((fold-var_128) + (let-values (((fold-var_129) fold-var_127)) + (let-values (((fold-var_130) + (let-values () + (cons + (let-values () + (list + phase_40 + (list* + 'list + (serialize-module-uses + (hash-ref + phase-to-link-module-uses_0 + phase_40) + mpis_7)))) + fold-var_129)))) + (values fold-var_130))))) + (if (not #f) (for-loop_136 fold-var_128 rest_59) fold-var_128))) + fold-var_127))))) + for-loop_136) + null + lst_119)))))))))) + (define-values + (generate-deserialize.1) + (lambda (as-data?7_0 keep-provides?10_0 mpis6_0 preserve-prop-keys9_0 syntax-support?8_0 v16_0) + (begin + 'generate-deserialize + (let-values (((v_138) v16_0)) + (let-values (((mpis_8) mpis6_0)) + (let-values (((as-data?_1) as-data?7_0)) + (let-values (((syntax-support?_0) syntax-support?8_0)) + (let-values (((preserve-prop-keys_1) preserve-prop-keys9_0)) + (let-values (((keep-provides?_1) keep-provides?10_0)) + (let-values () + (let-values (((bulk-shifts_7) (if keep-provides?_1 (list (make-hasheq)) #f))) + (let-values (((reachable-scopes_3) (find-reachable-scopes v_138 bulk-shifts_7))) + (let-values (((state_25) + (make-serialize-state + reachable-scopes_3 + preserve-prop-keys_1 + (if keep-provides?_1 + (lambda (b_77) + (let-values (((name_40) (hash-ref (car bulk-shifts_7) b_77 #f))) + (let-values (((or-part_185) (not name_40))) + (if or-part_185 or-part_185 (keep-provides?_1 name_40))))) + #f)))) + (let-values (((mutables_0) (make-hasheq))) + (let-values (((objs_0) (make-hasheq))) + (let-values (((shares_0) (make-hasheq))) + (let-values (((obj-step_0) 0)) + (let-values (((frontier_0) null)) + (letrec-values (((add-frontier!_0) + (case-lambda + ((v_139) + (begin 'add-frontier! (set! frontier_0 (cons v_139 frontier_0)))) + ((kind_3 v_140) (add-frontier!_0 v_140))))) + (let-values ((() + (begin + ((letrec-values (((frontier-loop_0) + (lambda (v_141) + (begin + 'frontier-loop + (begin + ((letrec-values (((loop_85) + (lambda (v_142) + (begin + 'loop + (if (let-values (((or-part_186) + (interned-literal? + v_142))) + (if or-part_186 + or-part_186 + (1/module-path-index? + v_142))) + (let-values () + (void)) + (if (hash-ref + objs_0 + v_142 + #f) + (let-values () + (if (hash-ref + mutables_0 + v_142 + #f) + (void) + (let-values () + (hash-set! + shares_0 + v_142 + #t)))) + (let-values () + (begin + (if (serialize-fill!? + v_142) + (let-values () + (begin + (hash-set! + mutables_0 + v_142 + (hash-count + mutables_0)) + ((serialize-fill!-ref + v_142) + v_142 + add-frontier!_0 + state_25))) + (if (serialize? + v_142) + (let-values () + ((serialize-ref + v_142) + v_142 + (case-lambda + ((sub-v_0) + (loop_85 + sub-v_0)) + ((kind_4 + sub-v_1) + (loop_85 + sub-v_1))) + state_25)) + (if (pair? + v_142) + (let-values () + (begin + (loop_85 + (car + v_142)) + (loop_85 + (cdr + v_142)))) + (if (vector? + v_142) + (let-values () + (if (let-values (((or-part_164) + (immutable? + v_142))) + (if or-part_164 + or-part_164 + (zero? + (vector-length + v_142)))) + (begin + (let-values (((vec_50 + len_34) + (let-values (((vec_51) + v_142)) + (begin + (check-vector + vec_51) + (values + vec_51 + (unsafe-vector-length + vec_51)))))) + (begin + #f + ((letrec-values (((for-loop_37) + (lambda (pos_39) + (begin + 'for-loop + (if (unsafe-fx< + pos_39 + len_34) + (let-values (((e_29) + (unsafe-vector-ref + vec_50 + pos_39))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_85 + e_29)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_37 + (unsafe-fx+ + 1 + pos_39)) + (values)))) + (values)))))) + for-loop_37) + 0))) + (void)) + (begin + (hash-set! + mutables_0 + v_142 + (hash-count + mutables_0)) + (begin + (let-values (((vec_52 + len_35) + (let-values (((vec_53) + v_142)) + (begin + (check-vector + vec_53) + (values + vec_53 + (unsafe-vector-length + vec_53)))))) + (begin + #f + ((letrec-values (((for-loop_137) + (lambda (pos_40) + (begin + 'for-loop + (if (unsafe-fx< + pos_40 + len_35) + (let-values (((e_30) + (unsafe-vector-ref + vec_52 + pos_40))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (add-frontier!_0 + e_30)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_137 + (unsafe-fx+ + 1 + pos_40)) + (values)))) + (values)))))) + for-loop_137) + 0))) + (void))))) + (if (box? + v_142) + (let-values () + (if (immutable? + v_142) + (loop_85 + (unbox + v_142)) + (begin + (hash-set! + mutables_0 + v_142 + (hash-count + mutables_0)) + (add-frontier!_0 + (unbox + v_142))))) + (if (hash? + v_142) + (let-values () + (if (immutable? + v_142) + (begin + (let-values (((lst_121) + (sorted-hash-keys + v_142))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_121))) + ((letrec-values (((for-loop_138) + (lambda (lst_122) + (begin + 'for-loop + (if (pair? + lst_122) + (let-values (((k_32) + (unsafe-car + lst_122)) + ((rest_60) + (unsafe-cdr + lst_122))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (loop_85 + k_32) + (loop_85 + (hash-ref + v_142 + k_32)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_138 + rest_60) + (values)))) + (values)))))) + for-loop_138) + lst_121))) + (void)) + (begin + (hash-set! + mutables_0 + v_142 + (hash-count + mutables_0)) + (begin + (let-values (((lst_123) + (sorted-hash-keys + v_142))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_123))) + ((letrec-values (((for-loop_139) + (lambda (lst_124) + (begin + 'for-loop + (if (pair? + lst_124) + (let-values (((k_33) + (unsafe-car + lst_124)) + ((rest_61) + (unsafe-cdr + lst_124))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (add-frontier!_0 + k_33) + (add-frontier!_0 + (hash-ref + v_142 + k_33)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_139 + rest_61) + (values)))) + (values)))))) + for-loop_139) + lst_123))) + (void))))) + (if (prefab-struct-key + v_142) + (let-values () + (begin + (let-values (((v*_3 + start*_3 + stop*_4 + step*_3) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (unsafe-normalise-inputs + unsafe-vector-length + (struct->vector + v_142) + 1 + #f + 1) + (normalise-inputs + 'in-vector + "vector" + (lambda (x_50) + (vector? + x_50)) + (lambda (x_51) + (unsafe-vector-length + x_51)) + (struct->vector + v_142) + 1 + #f + 1)))) + (begin + #t + ((letrec-values (((for-loop_140) + (lambda (idx_3) + (begin + 'for-loop + (if (unsafe-fx< + idx_3 + stop*_4) + (let-values (((e_31) + (unsafe-vector-ref + v*_3 + idx_3))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_85 + e_31)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_140 + (unsafe-fx+ + idx_3 + 1)) + (values)))) + (values)))))) + for-loop_140) + start*_3))) + (void))) + (if (srcloc? + v_142) + (let-values () + (if (path? + (srcloc-source + v_142)) + (void) + (let-values () + (begin + (let-values (((v*_4 + start*_4 + stop*_5 + step*_4) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (unsafe-normalise-inputs + unsafe-vector-length + (struct->vector + v_142) + 1 + #f + 1) + (normalise-inputs + 'in-vector + "vector" + (lambda (x_52) + (vector? + x_52)) + (lambda (x_53) + (unsafe-vector-length + x_53)) + (struct->vector + v_142) + 1 + #f + 1)))) + (begin + #t + ((letrec-values (((for-loop_141) + (lambda (idx_4) + (begin + 'for-loop + (if (unsafe-fx< + idx_4 + stop*_5) + (let-values (((e_32) + (unsafe-vector-ref + v*_4 + idx_4))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_85 + e_32)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_141 + (unsafe-fx+ + idx_4 + 1)) + (values)))) + (values)))))) + for-loop_141) + start*_4))) + (void))))) + (let-values () + (void)))))))))) + (hash-set! + objs_0 + v_142 + obj-step_0) + (set! obj-step_0 + (add1 + obj-step_0)))))))))) + loop_85) + v_141) + (if (null? frontier_0) + (void) + (let-values () + (let-values (((l_36) frontier_0)) + (begin + (set! frontier_0 null) + (let-values (((lst_125) l_36)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_125))) + ((letrec-values (((for-loop_142) + (lambda (lst_45) + (begin + 'for-loop + (if (pair? + lst_45) + (let-values (((v_143) + (unsafe-car + lst_45)) + ((rest_62) + (unsafe-cdr + lst_45))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (frontier-loop_0 + v_143)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_142 + rest_62) + (values)))) + (values)))))) + for-loop_142) + lst_125))) + (void)))))))))) + frontier-loop_0) + v_138) + (values)))) + (let-values (((num-mutables_0) (hash-count mutables_0))) + (let-values (((share-step-positions_0) + (let-values (((share-steps_0) + (reverse$1 + (let-values (((ht_81) shares_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_81))) + ((letrec-values (((for-loop_143) + (lambda (fold-var_131 + i_126) + (begin + 'for-loop + (if i_126 + (let-values (((obj_0) + (hash-iterate-key + ht_81 + i_126))) + (let-values (((fold-var_24) + (let-values (((fold-var_25) + fold-var_131)) + (let-values (((fold-var_26) + (let-values () + (cons + (let-values () + (hash-ref + objs_0 + obj_0)) + fold-var_25)))) + (values + fold-var_26))))) + (if (not #f) + (for-loop_143 + fold-var_24 + (hash-iterate-next + ht_81 + i_126)) + fold-var_24))) + fold-var_131))))) + for-loop_143) + null + (hash-iterate-first ht_81))))))) + (let-values (((lst_126) + (let-values (((share-steps28_0) share-steps_0) + ((<29_0) <)) + (sort.1 #f #f share-steps28_0 <29_0))) + ((start_29) num-mutables_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_126))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-naturals start_29))) + ((letrec-values (((for-loop_144) + (lambda (table_113 lst_127 pos_41) + (begin + 'for-loop + (if (if (pair? lst_127) #t #f) + (let-values (((step_5) + (unsafe-car + lst_127)) + ((rest_63) + (unsafe-cdr + lst_127)) + ((pos_42) pos_41)) + (let-values (((table_114) + (let-values (((table_115) + table_113)) + (let-values (((table_116) + (let-values () + (let-values (((key_50 + val_37) + (let-values () + (values + step_5 + pos_42)))) + (hash-set + table_115 + key_50 + val_37))))) + (values + table_116))))) + (if (not #f) + (for-loop_144 + table_114 + rest_63 + (+ pos_41 1)) + table_114))) + table_113))))) + for-loop_144) + '#hasheqv() + lst_126 + start_29)))))) + (let-values (((stream_0) null)) + (let-values (((stream-size_0) 0)) + (let-values (((next-push-position_0) + (lambda () (begin 'next-push-position stream-size_0)))) + (let-values (((quoted?_0) + (lambda (pos_43) + (begin + 'quoted? + (let-values (((v_64) + (list-ref + stream_0 + (- stream-size_0 (add1 pos_43))))) + (let-values (((or-part_187) + (not (keyword? v_64)))) + (if or-part_187 + or-part_187 + (eq? '#:quote v_64)))))))) + (let-values (((ser-reset!_0) + (lambda (pos_44) + (begin + 'ser-reset! + (begin + (set! stream_0 + (list-tail stream_0 (- stream-size_0 pos_44))) + (set! stream-size_0 pos_44)))))) + (let-values (((reap-stream!_0) + (lambda () + (begin + 'reap-stream! + (begin0 + (list->vector (reverse$1 stream_0)) + (set! stream_0 null) + (set! stream-size_0 0)))))) + (letrec-values (((ser-push!_15) + (case-lambda + ((v_144) + (begin + 'ser-push! + (if (hash-ref shares_0 v_144 #f) + (let-values () + (let-values (((n_25) + (hash-ref + share-step-positions_0 + (hash-ref + objs_0 + v_144)))) + (begin + (ser-push!_15 'tag '#:ref) + (ser-push!_15 'exact n_25)))) + (let-values (((c1_9) + (hash-ref + mutables_0 + v_144 + #f))) + (if c1_9 + ((lambda (n_26) + (begin + (ser-push!_15 'tag '#:ref) + (ser-push!_15 'exact n_26))) + c1_9) + (let-values () + (ser-push-encoded!_0 v_144))))))) + ((kind_5 v_145) + (let-values (((tmp_19) kind_5)) + (if (equal? tmp_19 'exact) + (let-values () + (begin + (set! stream_0 (cons v_145 stream_0)) + (set! stream-size_0 + (add1 stream-size_0)))) + (if (equal? tmp_19 'tag) + (let-values () + (ser-push!_15 'exact v_145)) + (if (equal? tmp_19 'reference) + (let-values () + (if (hash-ref shares_0 v_145 #f) + (let-values () + (let-values (((n_27) + (hash-ref + share-step-positions_0 + (hash-ref + objs_0 + v_145)))) + (ser-push!_15 'exact n_27))) + (let-values (((c2_2) + (hash-ref + mutables_0 + v_145 + #f))) + (if c2_2 + ((lambda (n_28) + (ser-push!_15 + 'exact + n_28)) + c2_2) + (let-values () + (ser-push!_15 v_145)))))) + (let-values () + (ser-push!_15 v_145))))))))) + ((ser-push-encoded!_0) + (lambda (v_146) + (begin + 'ser-push-encoded! + (if (keyword? v_146) + (let-values () + (begin + (ser-push!_15 'tag '#:quote) + (ser-push!_15 'exact v_146))) + (if (1/module-path-index? v_146) + (let-values () + (begin + (ser-push!_15 'tag '#:mpi) + (ser-push!_15 + 'exact + (add-module-path-index!/pos + mpis_8 + v_146)))) + (if (serialize? v_146) + (let-values () + ((serialize-ref v_146) + v_146 + ser-push!_15 + state_25)) + (if (if (list? v_146) + (if (pair? v_146) + (pair? (cdr v_146)) + #f) + #f) + (let-values () + (let-values (((start-pos_2) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + 'tag + '#:list) + (values)))) + (let-values ((() + (begin + (ser-push!_15 + 'exact + (length + v_146)) + (values)))) + (let-values (((all-quoted?_0) + (let-values (((lst_128) + v_146)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_128))) + ((letrec-values (((for-loop_145) + (lambda (all-quoted?_1 + lst_129) + (begin + 'for-loop + (if (pair? + lst_129) + (let-values (((i_127) + (unsafe-car + lst_129)) + ((rest_64) + (unsafe-cdr + lst_129))) + (let-values (((all-quoted?_2) + (let-values (((all-quoted?_3) + all-quoted?_1)) + (let-values (((all-quoted?_4) + (let-values () + (let-values (((i-pos_0) + (next-push-position_0))) + (begin + (ser-push!_15 + i_127) + (if all-quoted?_3 + (quoted?_0 + i-pos_0) + #f)))))) + (values + all-quoted?_4))))) + (if (not + #f) + (for-loop_145 + all-quoted?_2 + rest_64) + all-quoted?_2))) + all-quoted?_1))))) + for-loop_145) + #t + lst_128))))) + (if all-quoted?_0 + (let-values () + (begin + (ser-reset!_0 + start-pos_2) + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (void))))))) + (if (pair? v_146) + (let-values () + (let-values (((start-pos_3) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + 'tag + '#:cons) + (values)))) + (let-values (((a-pos_0) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + (car + v_146)) + (values)))) + (let-values (((d-pos_0) + (next-push-position_0))) + (begin + (ser-push!_15 + (cdr v_146)) + (if (if (quoted?_0 + a-pos_0) + (quoted?_0 + d-pos_0) + #f) + (let-values () + (begin + (ser-reset!_0 + start-pos_3) + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (void))))))))) + (if (box? v_146) + (let-values () + (let-values (((start-pos_4) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + 'tag + '#:box) + (values)))) + (let-values (((v-pos_0) + (next-push-position_0))) + (begin + (ser-push!_15 + (unbox v_146)) + (if (quoted?_0 + v-pos_0) + (let-values () + (begin + (ser-reset!_0 + start-pos_4) + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (void))))))) + (if (vector? v_146) + (let-values () + (let-values (((start-pos_5) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + 'tag + '#:vector) + (values)))) + (let-values ((() + (begin + (ser-push!_15 + 'exact + (vector-length + v_146)) + (values)))) + (let-values (((all-quoted?_5) + (let-values (((vec_54 + len_36) + (let-values (((vec_55) + v_146)) + (begin + (check-vector + vec_55) + (values + vec_55 + (unsafe-vector-length + vec_55)))))) + (begin + #f + ((letrec-values (((for-loop_146) + (lambda (all-quoted?_6 + pos_45) + (begin + 'for-loop + (if (unsafe-fx< + pos_45 + len_36) + (let-values (((i_128) + (unsafe-vector-ref + vec_54 + pos_45))) + (let-values (((all-quoted?_7) + (let-values (((all-quoted?_8) + all-quoted?_6)) + (let-values (((all-quoted?_9) + (let-values () + (let-values (((i-pos_1) + (next-push-position_0))) + (begin + (ser-push!_15 + i_128) + (if all-quoted?_8 + (quoted?_0 + i-pos_1) + #f)))))) + (values + all-quoted?_9))))) + (if (not + #f) + (for-loop_146 + all-quoted?_7 + (unsafe-fx+ + 1 + pos_45)) + all-quoted?_7))) + all-quoted?_6))))) + for-loop_146) + #t + 0))))) + (if all-quoted?_5 + (let-values () + (begin + (ser-reset!_0 + start-pos_5) + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (void))))))) + (if (hash? v_146) + (let-values () + (let-values (((start-pos_6) + (next-push-position_0))) + (let-values (((as-set?_0) + (let-values (((ht_89) + v_146)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash-values + ht_89))) + ((letrec-values (((for-loop_147) + (lambda (result_66 + i_129) + (begin + 'for-loop + (if i_129 + (let-values (((val_38) + (hash-iterate-value + ht_89 + i_129))) + (let-values (((result_67) + (let-values () + (let-values (((result_68) + (let-values () + (let-values () + (eq? + val_38 + #t))))) + (values + result_68))))) + (if (if (not + ((lambda x_54 + (not + result_67)) + val_38)) + (not + #f) + #f) + (for-loop_147 + result_67 + (hash-iterate-next + ht_89 + i_129)) + result_67))) + result_66))))) + for-loop_147) + #t + (hash-iterate-first + ht_89)))))) + (let-values ((() + (begin + (ser-push!_15 + 'tag + (if as-set?_0 + (if (hash-eq? + v_146) + (let-values () + '#:seteq) + (if (hash-eqv? + v_146) + (let-values () + '#:seteqv) + (let-values () + '#:set))) + (if (hash-eq? + v_146) + (let-values () + '#:hasheq) + (if (hash-eqv? + v_146) + (let-values () + '#:hasheqv) + (let-values () + '#:hash))))) + (values)))) + (let-values ((() + (begin + (ser-push!_15 + 'exact + (hash-count + v_146)) + (values)))) + (let-values (((ks_0) + (sorted-hash-keys + v_146))) + (let-values (((all-quoted?_10) + (let-values (((lst_130) + ks_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_130))) + ((letrec-values (((for-loop_148) + (lambda (all-quoted?_11 + lst_131) + (begin + 'for-loop + (if (pair? + lst_131) + (let-values (((k_34) + (unsafe-car + lst_131)) + ((rest_65) + (unsafe-cdr + lst_131))) + (let-values (((all-quoted?_12) + (let-values (((all-quoted?_13) + all-quoted?_11)) + (let-values (((all-quoted?_14) + (let-values () + (let-values (((k-pos_0) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + k_34) + (values)))) + (let-values (((v-pos_1) + (next-push-position_0))) + (begin + (if as-set?_0 + (void) + (let-values () + (ser-push!_15 + (hash-ref + v_146 + k_34)))) + (if all-quoted?_13 + (if (quoted?_0 + k-pos_0) + (let-values (((or-part_188) + as-set?_0)) + (if or-part_188 + or-part_188 + (quoted?_0 + v-pos_1))) + #f) + #f)))))))) + (values + all-quoted?_14))))) + (if (not + #f) + (for-loop_148 + all-quoted?_12 + rest_65) + all-quoted?_12))) + all-quoted?_11))))) + for-loop_148) + #t + lst_130))))) + (if all-quoted?_10 + (let-values () + (begin + (ser-reset!_0 + start-pos_6) + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (void))))))))) + (let-values (((c3_0) + (prefab-struct-key + v_146))) + (if c3_0 + ((lambda (k_35) + (let-values (((vec_56) + (struct->vector + v_146))) + (let-values (((start-pos_7) + (next-push-position_0))) + (let-values ((() + (begin + (ser-push!_15 + 'tag + '#:prefab) + (values)))) + (let-values ((() + (begin + (ser-push!_15 + 'exact + k_35) + (values)))) + (let-values ((() + (begin + (ser-push!_15 + 'exact + (sub1 + (vector-length + vec_56))) + (values)))) + (let-values (((all-quoted?_15) + (let-values (((v*_5 + start*_5 + stop*_6 + step*_5) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (unsafe-normalise-inputs + unsafe-vector-length + vec_56 + 1 + #f + 1) + (normalise-inputs + 'in-vector + "vector" + (lambda (x_55) + (vector? + x_55)) + (lambda (x_56) + (unsafe-vector-length + x_56)) + vec_56 + 1 + #f + 1)))) + (begin + #t + ((letrec-values (((for-loop_149) + (lambda (all-quoted?_16 + idx_5) + (begin + 'for-loop + (if (unsafe-fx< + idx_5 + stop*_6) + (let-values (((i_130) + (unsafe-vector-ref + v*_5 + idx_5))) + (let-values (((all-quoted?_17) + (let-values (((all-quoted?_18) + all-quoted?_16)) + (let-values (((all-quoted?_19) + (let-values () + (let-values (((i-pos_2) + (next-push-position_0))) + (begin + (ser-push!_15 + i_130) + (if all-quoted?_18 + (quoted?_0 + i-pos_2) + #f)))))) + (values + all-quoted?_19))))) + (if (not + #f) + (for-loop_149 + all-quoted?_17 + (unsafe-fx+ + idx_5 + 1)) + all-quoted?_17))) + all-quoted?_16))))) + for-loop_149) + #t + start*_5))))) + (if all-quoted?_15 + (let-values () + (begin + (ser-reset!_0 + start-pos_7) + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (void))))))))) + c3_0) + (if (srcloc? v_146) + (let-values () + (if (path? + (srcloc-source + v_146)) + (let-values () + (begin + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))) + (let-values () + (begin + (ser-push!_15 + 'tag + '#:srcloc) + (ser-push!_15 + (srcloc-source + v_146)) + (ser-push!_15 + (srcloc-line + v_146)) + (ser-push!_15 + (srcloc-column + v_146)) + (ser-push!_15 + (srcloc-position + v_146)) + (ser-push!_15 + (srcloc-span + v_146)))))) + (let-values () + (begin + (ser-push-optional-quote!_0) + (ser-push!_15 + 'exact + v_146))))))))))))))))) + ((ser-push-optional-quote!_0) + (lambda () + (begin 'ser-push-optional-quote! (void))))) + (let-values (((ser-shell!_0) + (lambda (v_147) + (begin + 'ser-shell! + (if (serialize-fill!? v_147) + (let-values () + ((serialize-ref v_147) + v_147 + ser-push!_15 + state_25)) + (if (box? v_147) + (let-values () + (ser-push!_15 'tag '#:box)) + (if (vector? v_147) + (let-values () + (begin + (ser-push!_15 'tag '#:vector) + (ser-push!_15 + 'exact + (vector-length v_147)))) + (if (hash? v_147) + (let-values () + (ser-push!_15 + 'tag + (if (hash-eq? v_147) + (let-values () '#:hasheq) + (if (hash-eqv? v_147) + (let-values () '#:hasheqv) + (let-values () '#:hash))))) + (let-values () + (error + 'ser-shell + "unknown mutable: ~e" + v_147)))))))))) + (let-values (((ser-shell-fill!_0) + (lambda (v_148) + (begin + 'ser-shell-fill! + (if (serialize-fill!? v_148) + (let-values () + ((serialize-fill!-ref v_148) + v_148 + ser-push!_15 + state_25)) + (if (box? v_148) + (let-values () + (begin + (ser-push!_15 'tag '#:set-box!) + (ser-push!_15 (unbox v_148)))) + (if (vector? v_148) + (let-values () + (begin + (ser-push!_15 + 'tag + '#:set-vector!) + (ser-push!_15 + 'exact + (vector-length v_148)) + (let-values (((vec_57 len_37) + (let-values (((vec_58) + v_148)) + (begin + (check-vector + vec_58) + (values + vec_58 + (unsafe-vector-length + vec_58)))))) + (begin + #f + ((letrec-values (((for-loop_150) + (lambda (pos_30) + (begin + 'for-loop + (if (unsafe-fx< + pos_30 + len_37) + (let-values (((v_149) + (unsafe-vector-ref + vec_57 + pos_30))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (ser-push!_15 + v_149)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_150 + (unsafe-fx+ + 1 + pos_30)) + (values)))) + (values)))))) + for-loop_150) + 0))) + (void))) + (if (hash? v_148) + (let-values () + (let-values ((() + (begin + (ser-push!_15 + 'tag + '#:set-hash!) + (values)))) + (let-values ((() + (begin + (ser-push!_15 + 'exact + (hash-count + v_148)) + (values)))) + (let-values (((ks_1) + (sorted-hash-keys + v_148))) + (begin + (let-values (((lst_132) + ks_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_132))) + ((letrec-values (((for-loop_151) + (lambda (lst_133) + (begin + 'for-loop + (if (pair? + lst_133) + (let-values (((k_36) + (unsafe-car + lst_133)) + ((rest_66) + (unsafe-cdr + lst_133))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (ser-push!_15 + k_36) + (ser-push!_15 + (hash-ref + v_148 + k_36)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_151 + rest_66) + (values)))) + (values)))))) + for-loop_151) + lst_132))) + (void)))))) + (let-values () + (error + 'ser-shell-fill + "unknown mutable: ~e" + v_148)))))))))) + (let-values (((rev-mutables_0) + (let-values (((ht_90) mutables_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_90))) + ((letrec-values (((for-loop_152) + (lambda (table_117 + i_131) + (begin + 'for-loop + (if i_131 + (let-values (((k_37 + v_150) + (hash-iterate-key+value + ht_90 + i_131))) + (let-values (((table_118) + (let-values (((table_119) + table_117)) + (let-values (((table_120) + (let-values () + (let-values (((key_51 + val_39) + (let-values () + (values + v_150 + k_37)))) + (hash-set + table_119 + key_51 + val_39))))) + (values + table_120))))) + (if (not #f) + (for-loop_152 + table_118 + (hash-iterate-next + ht_90 + i_131)) + table_118))) + table_117))))) + for-loop_152) + '#hasheqv() + (hash-iterate-first ht_90)))))) + (let-values (((mutable-shell-bindings_0) + (begin + (begin + (let-values (((start_30) 0) + ((end_18) + (hash-count mutables_0)) + ((inc_12) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_30 + end_18 + inc_12))) + ((letrec-values (((for-loop_153) + (lambda (pos_46) + (begin + 'for-loop + (if (< + pos_46 + end_18) + (let-values (((i_132) + pos_46)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (ser-shell!_0 + (hash-ref + rev-mutables_0 + i_132))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_153 + (+ + pos_46 + inc_12)) + (values)))) + (values)))))) + for-loop_153) + start_30))) + (void)) + (reap-stream!_0)))) + (let-values (((rev-shares_0) + (let-values (((ht_91) shares_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash-keys ht_91))) + ((letrec-values (((for-loop_154) + (lambda (table_121 + i_133) + (begin + 'for-loop + (if i_133 + (let-values (((obj_1) + (hash-iterate-key + ht_91 + i_133))) + (let-values (((table_122) + (let-values (((table_123) + table_121)) + (let-values (((table_124) + (let-values () + (let-values (((key_52 + val_40) + (let-values () + (values + (hash-ref + share-step-positions_0 + (hash-ref + objs_0 + obj_1)) + obj_1)))) + (hash-set + table_123 + key_52 + val_40))))) + (values + table_124))))) + (if (not + #f) + (for-loop_154 + table_122 + (hash-iterate-next + ht_91 + i_133)) + table_122))) + table_121))))) + for-loop_154) + '#hasheqv() + (hash-iterate-first ht_91)))))) + (let-values (((shared-bindings_0) + (begin + (begin + (let-values (((start_31) + num-mutables_0) + ((end_19) + (+ + num-mutables_0 + (hash-count + shares_0))) + ((inc_13) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_31 + end_19 + inc_13))) + ((letrec-values (((for-loop_155) + (lambda (pos_47) + (begin + 'for-loop + (if (< + pos_47 + end_19) + (let-values (((i_134) + pos_47)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (ser-push-encoded!_0 + (hash-ref + rev-shares_0 + i_134))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_155 + (+ + pos_47 + inc_13)) + (values)))) + (values)))))) + for-loop_155) + start_31))) + (void)) + (reap-stream!_0)))) + (let-values (((mutable-fills_0) + (begin + (begin + (let-values (((start_32) 0) + ((end_20) + (hash-count + mutables_0)) + ((inc_14) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_32 + end_20 + inc_14))) + ((letrec-values (((for-loop_156) + (lambda (pos_48) + (begin + 'for-loop + (if (< + pos_48 + end_20) + (let-values (((i_135) + pos_48)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (ser-shell-fill!_0 + (hash-ref + rev-mutables_0 + i_135))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_156 + (+ + pos_48 + inc_14)) + (values)))) + (values)))))) + for-loop_156) + start_32))) + (void)) + (reap-stream!_0)))) + (let-values (((result_69) + (begin + (ser-push!_15 v_138) + (reap-stream!_0)))) + (if as-data?_1 + (let-values () + (vector + (hash-count mutables_0) + mutable-shell-bindings_0 + (hash-count shares_0) + shared-bindings_0 + mutable-fills_0 + result_69)) + (let-values () + (let-values (((finish_2) + (lambda (mutable-shell-bindings-expr_0 + shared-bindings-expr_0 + mutable-fills-expr_0 + result-expr_0) + (begin + 'finish + (list + 'deserialize + mpi-vector-id + (if syntax-support?_0 + inspector-id + #f) + (if syntax-support?_0 + bulk-binding-registry-id + #f) + (list + 'quote + (hash-count + mutables_0)) + mutable-shell-bindings-expr_0 + (list + 'quote + (hash-count shares_0)) + shared-bindings-expr_0 + mutable-fills-expr_0 + result-expr_0))))) + (list + 'let-values + (list + (list + '(data) + (list + 'quote + (vector + mutable-shell-bindings_0 + shared-bindings_0 + mutable-fills_0 + result_69)))) + (finish_2 + '(unsafe-vector*-ref data 0) + '(unsafe-vector*-ref data 1) + '(unsafe-vector*-ref data 2) + '(unsafe-vector*-ref + data + 3))))))))))))))))))))))))))))))))))))))))))) + (define-values + (sorted-hash-keys) + (lambda (ht_92) + (begin + (let-values (((ks_2) (hash-keys ht_92))) + (if (null? ks_2) + (let-values () ks_2) + (if (null? (cdr ks_2)) + (let-values () ks_2) + (if (andmap2 symbol? ks_2) + (let-values () + (let-values (((ks30_0) ks_2) ((symbolsyntax . 5) + (#:hash . 13) + (#:hasheq . 13) + (#:hasheqv . 13) + (#:inspector . 2) + (#:interned-scope . 18) + (#:like-ambiguous-binding . 28) + (#:list . 12) + (#:local-binding . 26) + (#:module-binding . 24) + (#:mpi . 9) + (#:multi-scope . 19) + (#:prefab . 15) + (#:provided . 30) + (#:quote . 8) + (#:ref . 1) + (#:representative-scope . 23) + (#:scope . 16) + (#:scope+kind . 17) + (#:set . 14) + (#:seteq . 14) + (#:seteqv . 14) + (#:shifted-multi-scope . 20) + (#:simple-module-binding . 25) + (#:srcloc . 7) + (#:syntax . 4) + (#:syntax+props . 6) + (#:table-with-bulk-bindings . 21) + (#:vector . 12)) + tmp_21 + (lambda () 0)) + 0))) + (if (unsafe-fx< index_1 15) + (if (unsafe-fx< index_1 7) + (if (unsafe-fx< index_1 3) + (if (unsafe-fx< index_1 1) + (let-values () (values (vector*-ref vec_62 pos_66) (add1 pos_66))) + (if (unsafe-fx< index_1 2) + (let-values () (values (vector*-ref shared_4 (vector*-ref vec_62 (add1 pos_66))) (+ pos_66 2))) + (let-values () (values inspector_7 (add1 pos_66))))) + (if (unsafe-fx< index_1 4) + (let-values () (values bulk-binding-registry_8 (add1 pos_66))) + (if (unsafe-fx< index_1 5) + (let-values () + (let-values (((content_17 next-pos_2) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((context_2 next-pos_3) + (let-values (((i_138) (vector*-ref vec_62 next-pos_2))) + (if (exact-integer? i_138) + (values (vector*-ref shared_4 i_138) (add1 next-pos_2)) + (decode + vec_62 + next-pos_2 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))))) + (let-values (((srcloc_5 next-pos_4) + (let-values (((i_139) (vector*-ref vec_62 next-pos_3))) + (if (exact-integer? i_139) + (values (vector*-ref shared_4 i_139) (add1 next-pos_3)) + (decode + vec_62 + next-pos_3 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))))) + (values + (deserialize-syntax content_17 context_2 srcloc_5 #f #f inspector_7) + next-pos_4))))) + (if (unsafe-fx< index_1 6) + (let-values () + (let-values (((content_18 next-pos_5) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((context_3 next-pos_6) + (let-values (((i_140) (vector*-ref vec_62 next-pos_5))) + (if (exact-integer? i_140) + (values (vector*-ref shared_4 i_140) (add1 next-pos_5)) + (decode + vec_62 + next-pos_5 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))))) + (let-values (((srcloc_6 next-pos_7) + (let-values (((i_141) (vector*-ref vec_62 next-pos_6))) + (if (exact-integer? i_141) + (values (vector*-ref shared_4 i_141) (add1 next-pos_6)) + (decode + vec_62 + next-pos_6 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))))) + (values + (deserialize-datum->syntax content_18 context_3 srcloc_6 inspector_7) + next-pos_7))))) + (let-values () + (let-values (((content_19 next-pos_8) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((context_4 next-pos_9) + (let-values (((i_142) (vector*-ref vec_62 next-pos_8))) + (if (exact-integer? i_142) + (values (vector*-ref shared_4 i_142) (add1 next-pos_8)) + (decode + vec_62 + next-pos_8 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))))) + (let-values (((srcloc_7 next-pos_10) + (let-values (((i_143) (vector*-ref vec_62 next-pos_9))) + (if (exact-integer? i_143) + (values (vector*-ref shared_4 i_143) (add1 next-pos_9)) + (decode + vec_62 + next-pos_9 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))))) + (let-values (((props_3 next-pos_11) + (decode + vec_62 + next-pos_10 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((tamper_0 next-pos_12) + (decode + vec_62 + next-pos_11 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (deserialize-syntax content_19 context_4 srcloc_7 props_3 tamper_0 inspector_7) + next-pos_12))))))))))) + (if (unsafe-fx< index_1 10) + (if (unsafe-fx< index_1 8) + (let-values () + (let-values (((source_0 next-pos_13) + (decode vec_62 (add1 pos_66) mpis_12 inspector_7 bulk-binding-registry_8 shared_4))) + (let-values (((line_0 next-pos_14) + (decode vec_62 next-pos_13 mpis_12 inspector_7 bulk-binding-registry_8 shared_4))) + (let-values (((column_0 next-pos_15) + (decode + vec_62 + next-pos_14 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((position_0 next-pos_16) + (decode + vec_62 + next-pos_15 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((span_0 next-pos_17) + (decode + vec_62 + next-pos_16 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (srcloc source_0 line_0 column_0 position_0 span_0) next-pos_17))))))) + (if (unsafe-fx< index_1 9) + (let-values () (values (vector*-ref vec_62 (add1 pos_66)) (+ pos_66 2))) + (let-values () (values (vector*-ref mpis_12 (vector*-ref vec_62 (add1 pos_66))) (+ pos_66 2))))) + (if (unsafe-fx< index_1 12) + (if (unsafe-fx< index_1 11) + (let-values () + (let-values (((v_152 next-pos_18) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (box-immutable v_152) next-pos_18))) + (let-values () + (let-values (((a_31 next-pos_19) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((d_28 next-pos_20) + (decode + vec_62 + next-pos_19 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (cons a_31 d_28) next-pos_20))))) + (if (unsafe-fx< index_1 13) + (let-values () + (let-values (((len_39) (vector*-ref vec_62 (add1 pos_66)))) + (let-values (((r_27) (make-vector len_39))) + (let-values (((next-pos_21) + (let-values (((start_36) 0) ((end_24) len_39) ((inc_18) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_36 end_24 inc_18))) + ((letrec-values (((for-loop_160) + (lambda (pos_67 pos_68) + (begin + 'for-loop + (if (< pos_68 end_24) + (let-values (((i_144) pos_68)) + (let-values (((pos_69) + (let-values (((pos_70) pos_67)) + (let-values (((pos_71) + (let-values () + (let-values (((v_153 + next-pos_22) + (let-values (((v_154 + next-pos_23) + (decode + vec_62 + pos_70 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + v_154 + next-pos_23)))) + (begin + (vector-set! + r_27 + i_144 + v_153) + next-pos_22))))) + (values pos_71))))) + (if (not #f) + (for-loop_160 pos_69 (+ pos_68 inc_18)) + pos_69))) + pos_67))))) + for-loop_160) + (+ pos_66 2) + start_36))))) + (values + (if (eq? (vector*-ref vec_62 pos_66) '#:list) + (vector->list r_27) + (vector->immutable-vector r_27)) + next-pos_21))))) + (if (unsafe-fx< index_1 14) + (let-values () + (let-values (((ht_93) + (let-values (((tmp_22) (vector*-ref vec_62 pos_66))) + (if (equal? tmp_22 '#:hash) + (let-values () (hash)) + (if (equal? tmp_22 '#:hasheq) + (let-values () (hasheq)) + (if (equal? tmp_22 '#:hasheqv) + (let-values () (hasheqv)) + (let-values () (void)))))))) + (let-values (((len_40) (vector*-ref vec_62 (add1 pos_66)))) + (let-values (((start_37) 0) ((end_25) len_40) ((inc_19) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_37 end_25 inc_19))) + ((letrec-values (((for-loop_161) + (lambda (ht_94 pos_72 pos_73) + (begin + 'for-loop + (if (< pos_73 end_25) + (let-values () + (let-values (((ht_95 pos_74) + (let-values (((ht_96) ht_94) + ((pos_75) pos_72)) + (let-values (((ht_97 pos_76) + (let-values () + (let-values (((k_38 + next-pos_24) + (decode + vec_62 + pos_75 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((v_155 + next-pos_25) + (decode + vec_62 + next-pos_24 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (hash-set + ht_96 + k_38 + v_155) + next-pos_25)))))) + (values ht_97 pos_76))))) + (if (not #f) + (for-loop_161 ht_95 pos_74 (+ pos_73 inc_19)) + (values ht_95 pos_74)))) + (values ht_94 pos_72)))))) + for-loop_161) + ht_93 + (+ pos_66 2) + start_37)))))) + (let-values () + (let-values (((s_187) + (let-values (((tmp_23) (vector*-ref vec_62 pos_66))) + (if (equal? tmp_23 '#:set) + (let-values () (set)) + (if (equal? tmp_23 '#:seteq) + (let-values () (seteq)) + (if (equal? tmp_23 '#:seteqv) + (let-values () (seteqv)) + (let-values () (void)))))))) + (let-values (((len_41) (vector*-ref vec_62 (add1 pos_66)))) + (let-values (((start_38) 0) ((end_26) len_41) ((inc_20) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_38 end_26 inc_20))) + ((letrec-values (((for-loop_162) + (lambda (s_188 pos_77 pos_78) + (begin + 'for-loop + (if (< pos_78 end_26) + (let-values () + (let-values (((s_189 pos_79) + (let-values (((s_190) s_188) + ((pos_80) pos_77)) + (let-values (((s_191 pos_81) + (let-values () + (let-values (((k_39 + next-pos_26) + (decode + vec_62 + pos_80 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (set-add s_190 k_39) + next-pos_26))))) + (values s_191 pos_81))))) + (if (not #f) + (for-loop_162 s_189 pos_79 (+ pos_78 inc_20)) + (values s_189 pos_79)))) + (values s_188 pos_77)))))) + for-loop_162) + s_187 + (+ pos_66 2) + start_38))))))))))) + (if (unsafe-fx< index_1 22) + (if (unsafe-fx< index_1 18) + (if (unsafe-fx< index_1 16) + (let-values () + (let-values (((key_53 next-pos_27) + (let-values (((k_40 next-pos_28) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values k_40 next-pos_28)))) + (let-values (((len_42) (vector*-ref vec_62 next-pos_27))) + (let-values (((r_28 done-pos_1) + (let-values (((start_39) 0) ((end_27) len_42) ((inc_21) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_39 end_27 inc_21))) + ((letrec-values (((for-loop_163) + (lambda (r_29 pos_82 pos_83) + (begin + 'for-loop + (if (< pos_83 end_27) + (let-values () + (let-values (((r_30 pos_84) + (let-values (((r_31) r_29) + ((pos_85) pos_82)) + (let-values (((r_32 pos_86) + (let-values () + (let-values (((v_156 + next-pos_29) + (decode + vec_62 + pos_85 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (cons + v_156 + r_31) + next-pos_29))))) + (values r_32 pos_86))))) + (if (not #f) + (for-loop_163 r_30 pos_84 (+ pos_83 inc_21)) + (values r_30 pos_84)))) + (values r_29 pos_82)))))) + for-loop_163) + null + (add1 next-pos_27) + start_39))))) + (values (apply make-prefab-struct key_53 (reverse$1 r_28)) done-pos_1))))) + (if (unsafe-fx< index_1 17) + (let-values () (values (deserialize-scope) (add1 pos_66))) + (let-values () + (let-values (((kind_6 next-pos_30) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (deserialize-scope kind_6) next-pos_30))))) + (if (unsafe-fx< index_1 19) + (let-values () + (let-values (((id_26 next-pos_31) + (decode vec_62 (add1 pos_66) mpis_12 inspector_7 bulk-binding-registry_8 shared_4))) + (values (make-interned-scope id_26) next-pos_31))) + (if (unsafe-fx< index_1 20) + (let-values () + (let-values (((name_41 next-pos_32) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((scopes_22 next-pos_33) + (decode + vec_62 + next-pos_32 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (deserialize-multi-scope name_41 scopes_22) next-pos_33)))) + (if (unsafe-fx< index_1 21) + (let-values () + (let-values (((phase_49 next-pos_34) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((multi-scope_2 next-pos_35) + (decode + vec_62 + next-pos_34 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (deserialize-shifted-multi-scope phase_49 multi-scope_2) next-pos_35)))) + (let-values () + (let-values (((syms_12 next-pos_36) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((bulk-bindings_4 next-pos_37) + (decode + vec_62 + next-pos_36 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (deserialize-table-with-bulk-bindings syms_12 bulk-bindings_4) next-pos_37)))))))) + (if (unsafe-fx< index_1 26) + (if (unsafe-fx< index_1 23) + (let-values () + (let-values (((scopes_23 next-pos_38) + (decode vec_62 (add1 pos_66) mpis_12 inspector_7 bulk-binding-registry_8 shared_4))) + (let-values (((bulk_5 next-pos_39) + (decode vec_62 next-pos_38 mpis_12 inspector_7 bulk-binding-registry_8 shared_4))) + (values (deserialize-bulk-binding-at scopes_23 bulk_5) next-pos_39)))) + (if (unsafe-fx< index_1 24) + (let-values () + (let-values (((kind_7 next-pos_40) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((phase_50 next-pos_41) + (decode + vec_62 + next-pos_40 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (deserialize-representative-scope kind_7 phase_50) next-pos_41)))) + (if (unsafe-fx< index_1 25) + (let-values () + (let-values (((module_4 next-pos_42) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((sym_27 next-pos_43) + (decode + vec_62 + next-pos_42 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((phase_51 next-pos_44) + (decode + vec_62 + next-pos_43 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((nominal-module_4 next-pos_45) + (decode + vec_62 + next-pos_44 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((nominal-phase_0 next-pos_46) + (decode + vec_62 + next-pos_45 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((nominal-sym_4 next-pos_47) + (decode + vec_62 + next-pos_46 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((nominal-require-phase_0 next-pos_48) + (decode + vec_62 + next-pos_47 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((free=id_7 next-pos_49) + (decode + vec_62 + next-pos_48 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((extra-inspector_3 next-pos_50) + (decode + vec_62 + next-pos_49 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((extra-nominal-bindings_3 next-pos_51) + (decode + vec_62 + next-pos_50 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (deserialize-full-module-binding + module_4 + sym_27 + phase_51 + nominal-module_4 + nominal-phase_0 + nominal-sym_4 + nominal-require-phase_0 + free=id_7 + extra-inspector_3 + extra-nominal-bindings_3) + next-pos_51)))))))))))) + (let-values () + (let-values (((module_5 next-pos_52) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((sym_28 next-pos_53) + (decode + vec_62 + next-pos_52 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((phase_52 next-pos_54) + (decode + vec_62 + next-pos_53 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((nominal-module_5 next-pos_55) + (decode + vec_62 + next-pos_54 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (deserialize-simple-module-binding module_5 sym_28 phase_52 nominal-module_5) + next-pos_55))))))))) + (if (unsafe-fx< index_1 28) + (if (unsafe-fx< index_1 27) + (let-values () + (let-values (((key_54 next-pos_56) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((free=id_8 next-pos_57) + (decode + vec_62 + next-pos_56 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values (deserialize-full-local-binding key_54 free=id_8) next-pos_57)))) + (let-values () + (let-values (((prefix_4 next-pos_58) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((excepts_4 next-pos_59) + (decode + vec_62 + next-pos_58 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((mpi_34 next-pos_60) + (decode + vec_62 + next-pos_59 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((provide-phase-level_0 next-pos_61) + (decode + vec_62 + next-pos_60 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((phase-shift_3 next-pos_62) + (decode + vec_62 + next-pos_61 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((bulk-binding-registry_9 next-pos_63) + (decode + vec_62 + next-pos_62 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (deserialize-bulk-binding + prefix_4 + excepts_4 + mpi_34 + provide-phase-level_0 + phase-shift_3 + bulk-binding-registry_9) + next-pos_63))))))))) + (if (unsafe-fx< index_1 29) + (let-values () (values (like-ambiguous-binding1.1) (add1 pos_66))) + (if (unsafe-fx< index_1 30) + (let-values () + (let-values (((provides_6 next-pos_64) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((self_7 next-pos_65) + (decode + vec_62 + next-pos_64 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((prefix_5 next-pos_66) + (decode + vec_62 + next-pos_65 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((excepts_5 next-pos_67) + (decode + vec_62 + next-pos_66 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((mpi_35 next-pos_68) + (decode + vec_62 + next-pos_67 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((provide-phase-level_1 next-pos_69) + (decode + vec_62 + next-pos_68 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((phase-shift_4 next-pos_70) + (decode + vec_62 + next-pos_69 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((bulk-binding-registry_10 next-pos_71) + (decode + vec_62 + next-pos_70 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (deserialize-bulk-binding+provides + provides_6 + self_7 + prefix_5 + excepts_5 + mpi_35 + provide-phase-level_1 + phase-shift_4 + bulk-binding-registry_10) + next-pos_71)))))))))) + (let-values () + (let-values (((binding_10 next-pos_72) + (decode + vec_62 + (add1 pos_66) + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((protected?_2 next-pos_73) + (decode + vec_62 + next-pos_72 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (let-values (((syntax?_2 next-pos_74) + (decode + vec_62 + next-pos_73 + mpis_12 + inspector_7 + bulk-binding-registry_8 + shared_4))) + (values + (deserialize-provided binding_10 protected?_2 syntax?_2) + next-pos_74))))))))))))))))) + (define-values + (decode-fill!) + (lambda (v_157 vec_63 pos_87 mpis_13 inspector_11 bulk-binding-registry_11 shared_5) + (begin + (let-values (((tmp_24) (vector*-ref vec_63 pos_87))) + (if (equal? tmp_24 #f) + (let-values () (add1 pos_87)) + (if (equal? tmp_24 '#:set-box!) + (let-values () + (let-values (((c_28 next-pos_75) + (decode vec_63 (add1 pos_87) mpis_13 inspector_11 bulk-binding-registry_11 shared_5))) + (begin (set-box! v_157 c_28) next-pos_75))) + (if (equal? tmp_24 '#:set-vector!) + (let-values () + (let-values (((len_43) (vector*-ref vec_63 (add1 pos_87)))) + (let-values (((start_40) 0) ((end_28) len_43) ((inc_22) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_40 end_28 inc_22))) + ((letrec-values (((for-loop_164) + (lambda (pos_88 pos_89) + (begin + 'for-loop + (if (< pos_89 end_28) + (let-values (((i_145) pos_89)) + (let-values (((pos_90) + (let-values (((pos_91) pos_88)) + (let-values (((pos_92) + (let-values () + (let-values (((c_29 next-pos_76) + (decode + vec_63 + pos_91 + mpis_13 + inspector_11 + bulk-binding-registry_11 + shared_5))) + (begin + (vector-set! v_157 i_145 c_29) + next-pos_76))))) + (values pos_92))))) + (if (not #f) (for-loop_164 pos_90 (+ pos_89 inc_22)) pos_90))) + pos_88))))) + for-loop_164) + (+ pos_87 2) + start_40))))) + (if (equal? tmp_24 '#:set-hash!) + (let-values () + (let-values (((len_44) (vector*-ref vec_63 (add1 pos_87)))) + (let-values (((start_41) 0) ((end_29) len_44) ((inc_23) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_41 end_29 inc_23))) + ((letrec-values (((for-loop_165) + (lambda (pos_93 pos_94) + (begin + 'for-loop + (if (< pos_94 end_29) + (let-values () + (let-values (((pos_95) + (let-values (((pos_96) pos_93)) + (let-values (((pos_97) + (let-values () + (let-values (((key_55 next-pos_77) + (decode + vec_63 + pos_96 + mpis_13 + inspector_11 + bulk-binding-registry_11 + shared_5))) + (let-values (((val_41 done-pos_2) + (decode + vec_63 + next-pos_77 + mpis_13 + inspector_11 + bulk-binding-registry_11 + shared_5))) + (begin + (hash-set! v_157 key_55 val_41) + done-pos_2)))))) + (values pos_97))))) + (if (not #f) (for-loop_165 pos_95 (+ pos_94 inc_23)) pos_95))) + pos_93))))) + for-loop_165) + (+ pos_87 2) + start_41))))) + (if (equal? tmp_24 '#:scope-fill!) + (let-values () + (let-values (((c_30 next-pos_78) + (decode vec_63 (add1 pos_87) mpis_13 inspector_11 bulk-binding-registry_11 shared_5))) + (begin (deserialize-scope-fill! v_157 c_30) next-pos_78))) + (if (equal? tmp_24 '#:representative-scope-fill!) + (let-values () + (let-values (((a_32 next-pos_79) + (decode + vec_63 + (add1 pos_87) + mpis_13 + inspector_11 + bulk-binding-registry_11 + shared_5))) + (let-values (((d_29 done-pos_3) + (decode + vec_63 + next-pos_79 + mpis_13 + inspector_11 + bulk-binding-registry_11 + shared_5))) + (begin (deserialize-representative-scope-fill! v_157 a_32 d_29) done-pos_3)))) + (let-values () (error 'deserialize "bad fill encoding: ~v" (vector*-ref vec_63 pos_87))))))))))))) + (define-values + (find-reachable-scopes) + (lambda (v_158 bulk-shifts_8) + (begin + (let-values (((seen_20) (make-hasheq))) + (let-values (((reachable-scopes_4) (seteq))) + (let-values (((get-reachable-scopes_4) (lambda () (begin 'get-reachable-scopes reachable-scopes_4)))) + (let-values (((scope-triggers_0) (make-hasheq))) + (begin + ((letrec-values (((loop_86) + (lambda (v_159 bulk-shifts_9) + (begin + 'loop + (if (interned-literal? v_159) + (let-values () (void)) + (if (hash-ref seen_20 v_159 #f) + (let-values () (void)) + (let-values () + (begin + (hash-set! seen_20 v_159 #t) + (if (scope-with-bindings? v_159) + (let-values () + (begin + (set! reachable-scopes_4 (set-add reachable-scopes_4 v_159)) + ((reach-scopes-ref v_159) v_159 bulk-shifts_9 loop_86) + (let-values (((lst_134) (hash-ref scope-triggers_0 v_159 null))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_134))) + ((letrec-values (((for-loop_166) + (lambda (lst_135) + (begin + 'for-loop + (if (pair? lst_135) + (let-values (((proc_5) + (unsafe-car lst_135)) + ((rest_67) + (unsafe-cdr lst_135))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (proc_5 + loop_86)) + (values))))) + (values))))) + (if (not #f) + (for-loop_166 rest_67) + (values)))) + (values)))))) + for-loop_166) + lst_134))) + (void) + (hash-remove! scope-triggers_0 v_159) + ((scope-with-bindings-ref v_159) + v_159 + get-reachable-scopes_4 + bulk-shifts_9 + loop_86 + (lambda (sc-unreachable_0 b_78) + (hash-update! + scope-triggers_0 + sc-unreachable_0 + (lambda (l_37) (cons b_78 l_37)) + null))))) + (if (reach-scopes? v_159) + (let-values () ((reach-scopes-ref v_159) v_159 bulk-shifts_9 loop_86)) + (if (pair? v_159) + (let-values () + (begin + (loop_86 (car v_159) bulk-shifts_9) + (loop_86 (cdr v_159) bulk-shifts_9))) + (if (vector? v_159) + (let-values () + (begin + (let-values (((vec_64 len_45) + (let-values (((vec_65) v_159)) + (begin + (check-vector vec_65) + (values + vec_65 + (unsafe-vector-length vec_65)))))) + (begin + #f + ((letrec-values (((for-loop_167) + (lambda (pos_98) + (begin + 'for-loop + (if (unsafe-fx< pos_98 len_45) + (let-values (((e_33) + (unsafe-vector-ref + vec_64 + pos_98))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_86 + e_33 + bulk-shifts_9)) + (values))))) + (values))))) + (if (not #f) + (for-loop_167 + (unsafe-fx+ 1 pos_98)) + (values)))) + (values)))))) + for-loop_167) + 0))) + (void))) + (if (box? v_159) + (let-values () (loop_86 (unbox v_159) bulk-shifts_9)) + (if (hash? v_159) + (let-values () + (begin + (let-values (((ht_98) v_159)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_98))) + ((letrec-values (((for-loop_168) + (lambda (i_146) + (begin + 'for-loop + (if i_146 + (let-values (((k_41 v_160) + (hash-iterate-key+value + ht_98 + i_146))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (loop_86 + k_41 + bulk-shifts_9) + (loop_86 + v_160 + bulk-shifts_9))) + (values))))) + (values))))) + (if (not #f) + (for-loop_168 + (hash-iterate-next + ht_98 + i_146)) + (values)))) + (values)))))) + for-loop_168) + (hash-iterate-first ht_98)))) + (void))) + (if (prefab-struct-key v_159) + (let-values () + (begin + (let-values (((v*_6 start*_6 stop*_7 step*_6) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (unsafe-normalise-inputs + unsafe-vector-length + (struct->vector v_159) + 1 + #f + 1) + (normalise-inputs + 'in-vector + "vector" + (lambda (x_57) (vector? x_57)) + (lambda (x_58) + (unsafe-vector-length x_58)) + (struct->vector v_159) + 1 + #f + 1)))) + (begin + #t + ((letrec-values (((for-loop_169) + (lambda (idx_6) + (begin + 'for-loop + (if (unsafe-fx< idx_6 stop*_7) + (let-values (((e_34) + (unsafe-vector-ref + v*_6 + idx_6))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_86 + e_34 + bulk-shifts_9)) + (values))))) + (values))))) + (if (not #f) + (for-loop_169 + (unsafe-fx+ idx_6 1)) + (values)))) + (values)))))) + for-loop_169) + start*_6))) + (void))) + (if (srcloc? v_159) + (let-values () + (loop_86 (srcloc-source v_159) bulk-shifts_9)) + (let-values () (void)))))))))))))))))) + loop_86) + v_158 + bulk-shifts_8) + reachable-scopes_4)))))))) + (define-values + (deserialize-imports) + '(deserialize-module-path-indexes syntax-module-path-index-shift syntax-shift-phase-level module-use deserialize)) + (define-values + (syntax-module-path-index-shift/no-keywords) + (let-values (((syntax-module-path-index-shift_0) + (let-values (((syntax-module-path-index-shift_1) + (lambda (s39_0 from-mpi40_0 to-mpi41_0 inspector38_0) + (begin + 'syntax-module-path-index-shift + (let-values (((s_192) s39_0)) + (let-values (((from-mpi_4) from-mpi40_0)) + (let-values (((to-mpi_3) to-mpi41_0)) + (let-values (((inspector_12) inspector38_0)) + (let-values () + (let-values (((s42_0) s_192) + ((from-mpi43_0) from-mpi_4) + ((to-mpi44_0) to-mpi_3) + ((inspector45_0) inspector_12)) + (syntax-module-path-index-shift.1 + #f + s42_0 + from-mpi43_0 + to-mpi44_0 + inspector45_0))))))))))) + (case-lambda + ((s_193 from-mpi_5 to-mpi_4) + (begin + 'syntax-module-path-index-shift + (syntax-module-path-index-shift_1 s_193 from-mpi_5 to-mpi_4 #f))) + ((s_194 from-mpi_6 to-mpi_5 inspector38_1) + (syntax-module-path-index-shift_1 s_194 from-mpi_6 to-mpi_5 inspector38_1)))))) + syntax-module-path-index-shift_0)) + (define-values + (deserialize-instance) + (1/make-instance + 'deserialize + #f + 'consistent + 'deserialize-module-path-indexes + deserialize-module-path-indexes + 'syntax-module-path-index-shift + syntax-module-path-index-shift/no-keywords + 'syntax-shift-phase-level + syntax-shift-phase-level$1 + 'module-use + module-use1.1 + 'deserialize + deserialize)) + (define-values + (struct:parsed parsed1.1 parsed? parsed-s) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type 'parsed #f 1 0 #f (list (cons prop:authentic #t)) #f #f '(0) #f 'parsed))))) + (values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 's)))) + (define-values + (struct:parsed-id parsed-id2.1 parsed-id? parsed-id-binding parsed-id-inspector) + (let-values (((struct:_3 make-_3 ?_3 -ref_3 -set!_3) + (let-values () + (let-values () + (make-struct-type + 'parsed-id + struct:parsed + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'parsed-id))))) + (values + struct:_3 + make-_3 + ?_3 + (make-struct-field-accessor -ref_3 0 'binding) + (make-struct-field-accessor -ref_3 1 'inspector)))) + (define-values + (struct:parsed-primitive-id parsed-primitive-id3.1 parsed-primitive-id?) + (let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () + (make-struct-type + 'parsed-primitive-id + struct:parsed-id + 0 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'parsed-primitive-id))))) + (values struct:_6 make-_6 ?_6))) + (define-values + (struct:parsed-top-id parsed-top-id4.1 parsed-top-id?) + (let-values (((struct:_35 make-_35 ?_35 -ref_35 -set!_35) + (let-values () + (let-values () + (make-struct-type + 'parsed-top-id + struct:parsed-id + 0 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'parsed-top-id))))) + (values struct:_35 make-_35 ?_35))) + (define-values + (struct:parsed-lambda parsed-lambda5.1 parsed-lambda? parsed-lambda-keys parsed-lambda-body) + (let-values (((struct:_38 make-_38 ?_38 -ref_38 -set!_38) + (let-values () + (let-values () + (make-struct-type + 'parsed-lambda + struct:parsed + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'parsed-lambda))))) + (values + struct:_38 + make-_38 + ?_38 + (make-struct-field-accessor -ref_38 0 'keys) + (make-struct-field-accessor -ref_38 1 'body)))) + (define-values + (struct:parsed-case-lambda parsed-case-lambda6.1 parsed-case-lambda? parsed-case-lambda-clauses) + (let-values (((struct:_39 make-_39 ?_39 -ref_39 -set!_39) + (let-values () + (let-values () + (make-struct-type + 'parsed-case-lambda + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-case-lambda))))) + (values struct:_39 make-_39 ?_39 (make-struct-field-accessor -ref_39 0 'clauses)))) + (define-values + (struct:parsed-app parsed-app7.1 parsed-app? parsed-app-rator parsed-app-rands) + (let-values (((struct:_40 make-_40 ?_40 -ref_40 -set!_40) + (let-values () + (let-values () + (make-struct-type + 'parsed-app + struct:parsed + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'parsed-app))))) + (values + struct:_40 + make-_40 + ?_40 + (make-struct-field-accessor -ref_40 0 'rator) + (make-struct-field-accessor -ref_40 1 'rands)))) + (define-values + (struct:parsed-if parsed-if8.1 parsed-if? parsed-if-tst parsed-if-thn parsed-if-els) + (let-values (((struct:_41 make-_41 ?_41 -ref_41 -set!_41) + (let-values () + (let-values () + (make-struct-type + 'parsed-if + struct:parsed + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'parsed-if))))) + (values + struct:_41 + make-_41 + ?_41 + (make-struct-field-accessor -ref_41 0 'tst) + (make-struct-field-accessor -ref_41 1 'thn) + (make-struct-field-accessor -ref_41 2 'els)))) + (define-values + (struct:parsed-set! parsed-set!9.1 parsed-set!? parsed-set!-id parsed-set!-rhs) + (let-values (((struct:_42 make-_42 ?_42 -ref_42 -set!_42) + (let-values () + (let-values () + (make-struct-type + 'parsed-set! + struct:parsed + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'parsed-set!))))) + (values + struct:_42 + make-_42 + ?_42 + (make-struct-field-accessor -ref_42 0 'id) + (make-struct-field-accessor -ref_42 1 'rhs)))) + (define-values + (struct:parsed-with-continuation-mark + parsed-with-continuation-mark10.1 + parsed-with-continuation-mark? + parsed-with-continuation-mark-key + parsed-with-continuation-mark-val + parsed-with-continuation-mark-body) + (let-values (((struct:_43 make-_43 ?_43 -ref_43 -set!_43) + (let-values () + (let-values () + (make-struct-type + 'parsed-with-continuation-mark + struct:parsed + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'parsed-with-continuation-mark))))) + (values + struct:_43 + make-_43 + ?_43 + (make-struct-field-accessor -ref_43 0 'key) + (make-struct-field-accessor -ref_43 1 'val) + (make-struct-field-accessor -ref_43 2 'body)))) + (define-values + (struct:parsed-#%variable-reference + parsed-#%variable-reference11.1 + parsed-#%variable-reference? + parsed-#%variable-reference-id) + (let-values (((struct:_44 make-_44 ?_44 -ref_44 -set!_44) + (let-values () + (let-values () + (make-struct-type + 'parsed-#%variable-reference + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-#%variable-reference))))) + (values struct:_44 make-_44 ?_44 (make-struct-field-accessor -ref_44 0 'id)))) + (define-values + (struct:parsed-begin parsed-begin12.1 parsed-begin? parsed-begin-body) + (let-values (((struct:_45 make-_45 ?_45 -ref_45 -set!_45) + (let-values () + (let-values () + (make-struct-type + 'parsed-begin + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-begin))))) + (values struct:_45 make-_45 ?_45 (make-struct-field-accessor -ref_45 0 'body)))) + (define-values + (struct:parsed-begin0 parsed-begin013.1 parsed-begin0? parsed-begin0-body) + (let-values (((struct:_5 make-_5 ?_5 -ref_5 -set!_5) + (let-values () + (let-values () + (make-struct-type + 'parsed-begin0 + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-begin0))))) + (values struct:_5 make-_5 ?_5 (make-struct-field-accessor -ref_5 0 'body)))) + (define-values + (struct:parsed-quote parsed-quote14.1 parsed-quote? parsed-quote-datum) + (let-values (((struct:_46 make-_46 ?_46 -ref_46 -set!_46) + (let-values () + (let-values () + (make-struct-type + 'parsed-quote + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-quote))))) + (values struct:_46 make-_46 ?_46 (make-struct-field-accessor -ref_46 0 'datum)))) + (define-values + (struct:parsed-quote-syntax parsed-quote-syntax15.1 parsed-quote-syntax? parsed-quote-syntax-datum) + (let-values (((struct:_47 make-_47 ?_47 -ref_47 -set!_47) + (let-values () + (let-values () + (make-struct-type + 'parsed-quote-syntax + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-quote-syntax))))) + (values struct:_47 make-_47 ?_47 (make-struct-field-accessor -ref_47 0 'datum)))) + (define-values + (struct:parsed-let_-values + parsed-let_-values16.1 + parsed-let_-values? + parsed-let_-values-idss + parsed-let_-values-clauses + parsed-let_-values-body) + (let-values (((struct:_48 make-_48 ?_48 -ref_48 -set!_48) + (let-values () + (let-values () + (make-struct-type + 'parsed-let_-values + struct:parsed + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'parsed-let_-values))))) + (values + struct:_48 + make-_48 + ?_48 + (make-struct-field-accessor -ref_48 0 'idss) + (make-struct-field-accessor -ref_48 1 'clauses) + (make-struct-field-accessor -ref_48 2 'body)))) + (define-values + (struct:parsed-let-values parsed-let-values17.1 parsed-let-values?) + (let-values (((struct:_7 make-_7 ?_7 -ref_7 -set!_7) + (let-values () + (let-values () + (make-struct-type + 'parsed-let-values + struct:parsed-let_-values + 0 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'parsed-let-values))))) + (values struct:_7 make-_7 ?_7))) + (define-values + (struct:parsed-letrec-values parsed-letrec-values18.1 parsed-letrec-values?) + (let-values (((struct:_8 make-_8 ?_8 -ref_8 -set!_8) + (let-values () + (let-values () + (make-struct-type + 'parsed-letrec-values + struct:parsed-let_-values + 0 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'parsed-letrec-values))))) + (values struct:_8 make-_8 ?_8))) + (define-values + (struct:parsed-define-values + parsed-define-values19.1 + parsed-define-values? + parsed-define-values-ids + parsed-define-values-syms + parsed-define-values-rhs) + (let-values (((struct:_49 make-_49 ?_49 -ref_49 -set!_49) + (let-values () + (let-values () + (make-struct-type + 'parsed-define-values + struct:parsed + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'parsed-define-values))))) + (values + struct:_49 + make-_49 + ?_49 + (make-struct-field-accessor -ref_49 0 'ids) + (make-struct-field-accessor -ref_49 1 'syms) + (make-struct-field-accessor -ref_49 2 'rhs)))) + (define-values + (struct:parsed-define-syntaxes + parsed-define-syntaxes20.1 + parsed-define-syntaxes? + parsed-define-syntaxes-ids + parsed-define-syntaxes-syms + parsed-define-syntaxes-rhs) + (let-values (((struct:_50 make-_50 ?_50 -ref_50 -set!_50) + (let-values () + (let-values () + (make-struct-type + 'parsed-define-syntaxes + struct:parsed + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'parsed-define-syntaxes))))) + (values + struct:_50 + make-_50 + ?_50 + (make-struct-field-accessor -ref_50 0 'ids) + (make-struct-field-accessor -ref_50 1 'syms) + (make-struct-field-accessor -ref_50 2 'rhs)))) + (define-values + (struct:parsed-begin-for-syntax parsed-begin-for-syntax21.1 parsed-begin-for-syntax? parsed-begin-for-syntax-body) + (let-values (((struct:_51 make-_51 ?_51 -ref_51 -set!_51) + (let-values () + (let-values () + (make-struct-type + 'parsed-begin-for-syntax + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-begin-for-syntax))))) + (values struct:_51 make-_51 ?_51 (make-struct-field-accessor -ref_51 0 'body)))) + (define-values + (struct:parsed-#%declare parsed-#%declare22.1 parsed-#%declare?) + (let-values (((struct:_52 make-_52 ?_52 -ref_52 -set!_52) + (let-values () + (let-values () + (make-struct-type + 'parsed-#%declare + struct:parsed + 0 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'parsed-#%declare))))) + (values struct:_52 make-_52 ?_52))) + (define-values + (struct:parsed-require parsed-require23.1 parsed-require?) + (let-values (((struct:_53 make-_53 ?_53 -ref_53 -set!_53) + (let-values () + (let-values () + (make-struct-type + 'parsed-require + struct:parsed + 0 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'parsed-require))))) + (values struct:_53 make-_53 ?_53))) + (define-values + (struct:parsed-#%module-begin parsed-#%module-begin24.1 parsed-#%module-begin? parsed-#%module-begin-body) + (let-values (((struct:_54 make-_54 ?_54 -ref_54 -set!_54) + (let-values () + (let-values () + (make-struct-type + 'parsed-#%module-begin + struct:parsed + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'parsed-#%module-begin))))) + (values struct:_54 make-_54 ?_54 (make-struct-field-accessor -ref_54 0 'body)))) + (define-values + (struct:parsed-module + parsed-module25.1 + parsed-module? + parsed-module-star? + parsed-module-name-id + parsed-module-self + parsed-module-requires + parsed-module-provides + parsed-module-root-ctx-simple? + parsed-module-encoded-root-ctx + parsed-module-body + parsed-module-compiled-module + parsed-module-compiled-submodules) + (let-values (((struct:_55 make-_55 ?_55 -ref_55 -set!_55) + (let-values () + (let-values () + (make-struct-type + 'parsed-module + struct:parsed + 10 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6 7 8 9) + #f + 'parsed-module))))) + (values + struct:_55 + make-_55 + ?_55 + (make-struct-field-accessor -ref_55 0 'star?) + (make-struct-field-accessor -ref_55 1 'name-id) + (make-struct-field-accessor -ref_55 2 'self) + (make-struct-field-accessor -ref_55 3 'requires) + (make-struct-field-accessor -ref_55 4 'provides) + (make-struct-field-accessor -ref_55 5 'root-ctx-simple?) + (make-struct-field-accessor -ref_55 6 'encoded-root-ctx) + (make-struct-field-accessor -ref_55 7 'body) + (make-struct-field-accessor -ref_55 8 'compiled-module) + (make-struct-field-accessor -ref_55 9 'compiled-submodules)))) + (define-values + (add-space-scope) + (lambda (stx_9 space_1) (begin (if space_1 (add-scope stx_9 (make-interned-scope space_1)) stx_9)))) + (define-values + (remove-space-scope) + (lambda (stx_10 space_2) (begin (if space_2 (remove-scope stx_10 (make-interned-scope space_2)) stx_10)))) + (define-values + (module-path->mpi.1) + (lambda (declared-submodule-names1_0 mod-path3_0 self4_2) + (begin + 'module-path->mpi + (let-values (((mod-path_4) mod-path3_0)) + (let-values (((self_8) self4_2)) + (let-values (((declared-submodule-names_1) declared-submodule-names1_0)) + (let-values () + (if (if (list? mod-path_4) + (if (= 2 (length mod-path_4)) + (if (eq? 'quote (car mod-path_4)) + (if (symbol? (cadr mod-path_4)) (hash-ref declared-submodule-names_1 (cadr mod-path_4) #f) #f) + #f) + #f) + #f) + (let-values () (1/module-path-index-join (list 'submod "." (cadr mod-path_4)) self_8)) + (if (if (list? mod-path_4) + (if (eq? 'submod (car mod-path_4)) + (let-values (((mod-path_5) (cadr mod-path_4))) + (if (list? mod-path_5) + (if (= 2 (length mod-path_5)) + (if (eq? 'quote (car mod-path_5)) + (if (symbol? (cadr mod-path_5)) + (hash-ref declared-submodule-names_1 (cadr mod-path_5) #f) + #f) + #f) + #f) + #f)) + #f) + #f) + (let-values () + (1/module-path-index-join (list* 'submod "." (cadr (cadr mod-path_4)) (cddr mod-path_4)) self_8)) + (let-values () (1/module-path-index-join mod-path_4 self_8))))))))))) + (define-values + (module-path->mpi/context) + (lambda (mod-path_6 ctx_10) + (begin + (let-values (((mod-path6_0) mod-path_6) + ((temp7_1) (namespace-mpi (expand-context-namespace ctx_10))) + ((temp8_0) (expand-context-declared-submodule-names ctx_10))) + (module-path->mpi.1 temp8_0 mod-path6_0 temp7_1))))) + (define-values + (syntax-mapped-names) + (lambda (s_0 phase_45) + (begin + (let-values (((s-scs_1) (syntax-scope-set s_0 phase_45))) + (let-values (((ht_99) s-scs_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_99))) + ((letrec-values (((for-loop_111) + (lambda (syms_13 i_147) + (begin + 'for-loop + (if i_147 + (let-values (((sc_31) (unsafe-immutable-hash-iterate-key ht_99 i_147))) + (let-values (((syms_14) + (let-values (((syms_15) syms_13)) + (let-values (((syms_16) + (let-values () + (set-union + syms_15 + (binding-table-symbols + (scope-binding-table sc_31) + s-scs_1 + s_0 + null))))) + (values syms_16))))) + (if (not #f) + (for-loop_111 syms_14 (unsafe-immutable-hash-iterate-next ht_99 i_147)) + syms_14))) + syms_13))))) + for-loop_111) + (seteq) + (unsafe-immutable-hash-iterate-first ht_99)))))))) + (define-values + (struct:requires+provides + requires+provides1.1 + requires+provides? + requires+provides-self + requires+provides-require-mpis + requires+provides-require-mpis-in-order + requires+provides-requires + requires+provides-provides + requires+provides-phase-to-defined-syms + requires+provides-also-required + requires+provides-spaces + requires+provides-can-cross-phase-persistent? + requires+provides-all-bindings-simple? + set-requires+provides-can-cross-phase-persistent?! + set-requires+provides-all-bindings-simple?!) + (let-values (((struct:_39 make-_39 ?_39 -ref_39 -set!_39) + (let-values () + (let-values () + (make-struct-type + 'requires+provides + #f + 10 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6 7) + #f + 'requires+provides))))) + (values + struct:_39 + make-_39 + ?_39 + (make-struct-field-accessor -ref_39 0 'self) + (make-struct-field-accessor -ref_39 1 'require-mpis) + (make-struct-field-accessor -ref_39 2 'require-mpis-in-order) + (make-struct-field-accessor -ref_39 3 'requires) + (make-struct-field-accessor -ref_39 4 'provides) + (make-struct-field-accessor -ref_39 5 'phase-to-defined-syms) + (make-struct-field-accessor -ref_39 6 'also-required) + (make-struct-field-accessor -ref_39 7 'spaces) + (make-struct-field-accessor -ref_39 8 'can-cross-phase-persistent?) + (make-struct-field-accessor -ref_39 9 'all-bindings-simple?) + (make-struct-field-mutator -set!_39 8 'can-cross-phase-persistent?) + (make-struct-field-mutator -set!_39 9 'all-bindings-simple?)))) + (define-values + (struct:required + required2.1 + required? + required-id + required-phase+space + required-can-be-shadowed? + required-as-transformer?) + (let-values (((struct:_40 make-_40 ?_40 -ref_40 -set!_40) + (let-values () + (let-values () + (make-struct-type + 'required + #f + 4 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3) + #f + 'required))))) + (values + struct:_40 + make-_40 + ?_40 + (make-struct-field-accessor -ref_40 0 'id) + (make-struct-field-accessor -ref_40 1 'phase+space) + (make-struct-field-accessor -ref_40 2 'can-be-shadowed?) + (make-struct-field-accessor -ref_40 3 'as-transformer?)))) + (define-values + (struct:bulk-required + bulk-required3.1 + bulk-required? + bulk-required-provides + bulk-required-prefix-len + bulk-required-s + bulk-required-provide-phase+space + bulk-required-can-be-shadowed?) + (let-values (((struct:_41 make-_41 ?_41 -ref_41 -set!_41) + (let-values () + (let-values () + (make-struct-type + 'bulk-required + #f + 5 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4) + #f + 'bulk-required))))) + (values + struct:_41 + make-_41 + ?_41 + (make-struct-field-accessor -ref_41 0 'provides) + (make-struct-field-accessor -ref_41 1 'prefix-len) + (make-struct-field-accessor -ref_41 2 's) + (make-struct-field-accessor -ref_41 3 'provide-phase+space) + (make-struct-field-accessor -ref_41 4 'can-be-shadowed?)))) + (define-values + (make-requires+provides.1) + (lambda (copy-requires4_0 self6_0) + (begin + 'make-requires+provides + (let-values (((self_9) self6_0)) + (let-values (((copy-r+p_0) copy-requires4_0)) + (let-values () + (requires+provides1.1 + self_9 + (if copy-r+p_0 (requires+provides-require-mpis copy-r+p_0) (make-module-path-index-intern-table)) + (if copy-r+p_0 (hash-copy (requires+provides-require-mpis-in-order copy-r+p_0)) (make-hasheqv)) + (make-hasheq) + (make-hasheqv) + (make-hasheqv) + (make-hasheq) + (make-hasheq) + #t + #t))))))) + (define-values + (requires+provides-reset!) + (lambda (r+p_0) + (begin + (begin + (hash-clear! (requires+provides-requires r+p_0)) + (hash-clear! (requires+provides-provides r+p_0)) + (hash-clear! (requires+provides-phase-to-defined-syms r+p_0)) + (hash-clear! (requires+provides-also-required r+p_0)) + (hash-clear! (requires+provides-spaces r+p_0)))))) + (define-values + (intern-mpi) + (lambda (r+p_1 mpi_36) (begin (intern-module-path-index! (requires+provides-require-mpis r+p_1) mpi_36)))) + (define-values + (add-required-space!) + (lambda (r+p_2 space_3) + (begin (if space_3 (let-values () (hash-set! (requires+provides-spaces r+p_2) space_3 #t)) (void))))) + (define-values + (add-required-module!) + (lambda (r+p_3 mod-name_1 phase+space-shift_2 is-cross-phase-persistent?_0) + (begin + (let-values (((mpi_37) (intern-mpi r+p_3 mod-name_1))) + (begin + (if (hash-ref (hash-ref (requires+provides-requires r+p_3) mpi_37 '#hasheqv()) phase+space-shift_2 #f) + (void) + (let-values () + (begin + (hash-update! + (requires+provides-require-mpis-in-order r+p_3) + (phase+space-shift-phase-level phase+space-shift_2) + (lambda (l_38) (cons mpi_37 l_38)) + null) + (hash-set! + (hash-ref! (requires+provides-requires r+p_3) mpi_37 make-hasheqv) + phase+space-shift_2 + (make-hasheq))))) + (if is-cross-phase-persistent?_0 + (void) + (let-values () (set-requires+provides-can-cross-phase-persistent?! r+p_3 #f))) + mpi_37))))) + (define-values + (add-defined-or-required-id!.1) + (lambda (as-transformer?9_0 can-be-shadowed?8_0 r+p12_0 id13_0 phase+space14_0 binding15_1) + (begin + 'add-defined-or-required-id! + (let-values (((r+p_4) r+p12_0)) + (let-values (((id_27) id13_0)) + (let-values (((phase+space_1) phase+space14_0)) + (let-values (((binding_11) binding15_1)) + (let-values (((can-be-shadowed?_0) can-be-shadowed?8_0)) + (let-values (((as-transformer?_0) as-transformer?9_0)) + (let-values () + (begin + (if (eqv? + phase+space_1 + (phase+space+ + (module-binding-nominal-phase+space binding_11) + (module-binding-nominal-require-phase+space-shift binding_11))) + (void) + (let-values () (error "internal error: binding phase+space does not match nominal info"))) + (let-values (((r+p99_0) r+p_4) + ((id100_0) id_27) + ((phase+space101_0) phase+space_1) + ((temp102_0) (module-binding-nominal-module binding_11)) + ((temp103_0) (module-binding-nominal-require-phase+space-shift binding_11)) + ((can-be-shadowed?104_0) can-be-shadowed?_0) + ((as-transformer?105_0) as-transformer?_0)) + (add-defined-or-required-id-at-nominal!.1 + as-transformer?105_0 + can-be-shadowed?104_0 + temp102_0 + temp103_0 + r+p99_0 + id100_0 + phase+space101_0))))))))))))) + (define-values + (add-defined-or-required-id-at-nominal!.1) + (lambda (as-transformer?20_0 + can-be-shadowed?19_0 + nominal-module17_0 + nominal-require-phase+space-shift18_0 + r+p25_0 + id26_0 + phase+space27_0) + (begin + 'add-defined-or-required-id-at-nominal! + (let-values (((r+p_5) r+p25_0)) + (let-values (((id_28) id26_0)) + (let-values (((phase+space_2) phase+space27_0)) + (let-values (((nominal-module_6) nominal-module17_0)) + (let-values (((nominal-require-phase+space-shift_4) nominal-require-phase+space-shift18_0)) + (let-values (((can-be-shadowed?_1) can-be-shadowed?19_0)) + (let-values (((as-transformer?_1) as-transformer?20_0)) + (let-values () + (let-values (((at-mod_0) + (hash-ref! + (requires+provides-requires r+p_5) + (intern-mpi r+p_5 nominal-module_6) + make-hasheqv))) + (let-values (((sym-to-reqds_0) + (hash-ref! at-mod_0 nominal-require-phase+space-shift_4 make-hasheq))) + (let-values (((sym_29) (syntax-e$1 id_28))) + (hash-set! + sym-to-reqds_0 + sym_29 + (cons-ish + (required2.1 id_28 phase+space_2 can-be-shadowed?_1 as-transformer?_1) + (hash-ref sym-to-reqds_0 sym_29 null))))))))))))))))) + (define-values + (add-bulk-required-ids!.1) + (lambda (accum-update-nominals35_0 + can-be-shadowed?33_0 + check-and-remove?34_0 + excepts30_0 + in32_0 + prefix29_0 + symbols-accum31_0 + who36_0 + r+p45_0 + s46_0 + self47_0 + nominal-module48_0 + phase-level49_0 + provides50_0 + provide-phase+space51_0) + (begin + 'add-bulk-required-ids! + (let-values (((r+p_6) r+p45_0)) + (let-values (((s_195) s46_0)) + (let-values (((self_10) self47_0)) + (let-values (((nominal-module_7) nominal-module48_0)) + (let-values (((phase-level_16) phase-level49_0)) + (let-values (((provides_7) provides50_0)) + (let-values (((provide-phase+space_3) provide-phase+space51_0)) + (let-values (((bulk-prefix_0) prefix29_0)) + (let-values (((bulk-excepts_0) excepts30_0)) + (let-values (((symbols-accum_0) symbols-accum31_0)) + (let-values (((orig-s_0) in32_0)) + (let-values (((can-be-shadowed?_2) can-be-shadowed?33_0)) + (let-values (((check-and-remove?_0) check-and-remove?34_0)) + (let-values (((accum-update-nominals_0) accum-update-nominals35_0)) + (let-values (((who_12) who36_0)) + (let-values () + (let-values (((phase+space_3) + (phase+space+ provide-phase+space_3 phase-level_16))) + (let-values (((phase_53) (phase+space-phase phase+space_3))) + (let-values (((space_4) (phase+space-space phase+space_3))) + (let-values (((s-at-space_0) (add-space-scope s_195 space_4))) + (let-values (((shortcut-table_0) + (if check-and-remove?_0 + (if (> (hash-count provides_7) 64) + (syntax-mapped-names s-at-space_0 phase_53) + #f) + #f))) + (let-values (((mpi_38) (intern-mpi r+p_6 nominal-module_7))) + (let-values (((at-mod_1) + (hash-ref! + (requires+provides-requires r+p_6) + mpi_38 + make-hasheqv))) + (let-values (((sym-to-reqds_1) + (hash-ref! at-mod_1 phase-level_16 make-hasheq))) + (let-values (((prefix-len_0) + (if bulk-prefix_0 + (string-length (symbol->string bulk-prefix_0)) + 0))) + (let-values (((br_0) + (bulk-required3.1 + provides_7 + prefix-len_0 + s_195 + provide-phase+space_3 + can-be-shadowed?_2))) + (let-values (((ht_37) provides_7)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_37))) + ((letrec-values (((for-loop_170) + (lambda (any-already-defined?_0 i_148) + (begin + 'for-loop + (if i_148 + (let-values (((out-sym_0 + binding/p_2) + (hash-iterate-key+value + ht_37 + i_148))) + (let-values (((any-already-defined?_1) + (let-values (((any-already-defined?_2) + any-already-defined?_0)) + (if (not + (symbol-interned? + out-sym_0)) + any-already-defined?_2 + (let-values (((any-already-defined?_3) + any-already-defined?_2)) + (let-values (((any-already-defined?_4) + (let-values () + (begin + (if symbols-accum_0 + (let-values () + (hash-set! + symbols-accum_0 + out-sym_0 + #t)) + (void)) + (if (hash-ref + bulk-excepts_0 + out-sym_0 + #f) + (let-values () + #f) + (let-values () + (let-values (((sym_30) + (if (not + bulk-prefix_0) + (let-values () + out-sym_0) + (let-values () + (string->symbol + (string-append + (symbol->string + bulk-prefix_0) + (symbol->string + out-sym_0))))))) + (let-values (((bound-status_0) + (if (if check-and-remove?_0 + (let-values (((or-part_189) + (not + shortcut-table_0))) + (if or-part_189 + or-part_189 + (hash-ref + shortcut-table_0 + sym_30 + #f))) + #f) + (let-values () + (let-values (((id_29) + (datum->syntax$1 + s-at-space_0 + sym_30 + s-at-space_0))) + (begin + (adjust-shadow-requires! + r+p_6 + id_29 + phase_53 + space_4) + (let-values (((temp106_0) + #t) + ((temp107_0) + #t) + ((r+p108_0) + r+p_6) + ((id109_0) + id_29) + ((phase110_0) + phase_53) + ((space111_0) + space_4) + ((orig-s112_0) + orig-s_0) + ((temp113_0) + (lambda () + (let-values (((binding/p117_0) + binding/p_2) + ((sym118_0) + sym_30) + ((self119_0) + self_10) + ((mpi120_0) + mpi_38) + ((provide-phase+space121_0) + provide-phase+space_3) + ((phase-level122_0) + phase-level_16)) + (provide-binding-to-require-binding.1 + mpi120_0 + phase-level122_0 + provide-phase+space121_0 + self119_0 + binding/p117_0 + sym118_0)))) + ((temp114_0) + #t) + ((accum-update-nominals115_0) + accum-update-nominals_0) + ((who116_0) + who_12)) + (check-not-defined.1 + accum-update-nominals115_0 + temp107_0 + temp106_0 + orig-s112_0 + temp114_0 + temp113_0 + who116_0 + r+p108_0 + id109_0 + phase110_0 + space111_0))))) + (let-values () + #f)))) + (let-values (((already-defined?_0) + (eq? + bound-status_0 + 'defined))) + (begin + (if already-defined?_0 + (void) + (let-values () + (hash-set! + sym-to-reqds_1 + sym_30 + (cons-ish + br_0 + (hash-ref + sym-to-reqds_1 + sym_30 + null))))) + (let-values (((or-part_182) + any-already-defined?_3)) + (if or-part_182 + or-part_182 + already-defined?_0)))))))))))) + (values + any-already-defined?_4))))))) + (if (not #f) + (for-loop_170 + any-already-defined?_1 + (hash-iterate-next + ht_37 + i_148)) + any-already-defined?_1))) + any-already-defined?_0))))) + for-loop_170) + #f + (hash-iterate-first + ht_37))))))))))))))))))))))))))))))))) + (define-values + (bulk-required->required) + (lambda (br_1 nominal-module_8 phase+space-shift_3 sym_31) + (begin + (let-values (((prefix-len_1) (bulk-required-prefix-len br_1))) + (let-values (((out-sym_1) + (if (zero? prefix-len_1) + sym_31 + (string->symbol (substring (symbol->string sym_31) prefix-len_1))))) + (let-values (((binding/p_3) (hash-ref (bulk-required-provides br_1) out-sym_1))) + (let-values (((phase+space_4) (phase+space+ (bulk-required-provide-phase+space br_1) phase+space-shift_3))) + (required2.1 + (add-space-scope (datum->syntax$1 (bulk-required-s br_1) sym_31) (phase+space-space phase+space_4)) + phase+space_4 + (bulk-required-can-be-shadowed? br_1) + (provided-as-transformer? binding/p_3))))))))) + (define-values + (normalize-required) + (lambda (r_33 mod-name_9 phase+space-shift_4 sym_32) + (begin (if (bulk-required? r_33) (bulk-required->required r_33 mod-name_9 phase+space-shift_4 sym_32) r_33)))) + (define-values + (add-enclosing-module-defined-and-required!.1) + (lambda (enclosing-requires+provides53_0 r+p55_0 enclosing-mod56_0 phase-level57_0) + (begin + 'add-enclosing-module-defined-and-required! + (let-values (((r+p_7) r+p55_0)) + (let-values (((enclosing-r+p_0) enclosing-requires+provides53_0)) + (let-values (((enclosing-mod_0) enclosing-mod56_0)) + (let-values (((phase-level_17) phase-level57_0)) + (let-values () + (begin + (set-requires+provides-all-bindings-simple?! r+p_7 #f) + (let-values (((ht_100) (requires+provides-requires enclosing-r+p_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_100))) + ((letrec-values (((for-loop_171) + (lambda (i_149) + (begin + 'for-loop + (if i_149 + (let-values (((mod-name_10 at-mod_2) + (hash-iterate-key+value ht_100 i_149))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (let-values (((ht_101) at-mod_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash ht_101))) + ((letrec-values (((for-loop_172) + (lambda (i_150) + (begin + 'for-loop + (if i_150 + (let-values (((phase+space-shift_5 + at-phase_8) + (hash-iterate-key+value + ht_101 + i_150))) + (let-values ((() + (let-values (((ht_102) + at-phase_8)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_102))) + ((letrec-values (((for-loop_173) + (lambda (i_151) + (begin + 'for-loop + (if i_151 + (let-values (((sym_33 + reqds_0) + (hash-iterate-key+value + ht_102 + i_151))) + (let-values ((() + (let-values (((lst_136) + reqds_0)) + (begin + (void) + ((letrec-values (((for-loop_174) + (lambda (lst_137) + (begin + 'for-loop + (if (not + (null? + lst_137)) + (let-values (((reqd/maybe-bulk_0) + (if (pair? + lst_137) + (car + lst_137) + lst_137)) + ((rest_68) + (if (pair? + lst_137) + (cdr + lst_137) + null))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((reqd_0) + (normalize-required + reqd/maybe-bulk_0 + mod-name_10 + phase+space-shift_5 + sym_33))) + (let-values (((r+p123_0) + r+p_7) + ((temp124_0) + (syntax-shift-phase-level$1 + (let-values (((temp130_0) + (required-id + reqd_0)) + ((temp131_0) + (requires+provides-self + enclosing-r+p_0)) + ((enclosing-mod132_0) + enclosing-mod_0)) + (syntax-module-path-index-shift.1 + #f + temp130_0 + temp131_0 + enclosing-mod132_0 + #f)) + phase-level_17)) + ((temp125_0) + (phase+space+ + (required-phase+space + reqd_0) + phase-level_17)) + ((enclosing-mod126_0) + enclosing-mod_0) + ((phase-level127_0) + phase-level_17) + ((temp128_0) + #t) + ((temp129_0) + (required-as-transformer? + reqd_0))) + (add-defined-or-required-id-at-nominal!.1 + temp129_0 + temp128_0 + enclosing-mod126_0 + phase-level127_0 + r+p123_0 + temp124_0 + temp125_0)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_174 + rest_68) + (values)))) + (values)))))) + for-loop_174) + lst_136))))) + (if (not + #f) + (for-loop_173 + (hash-iterate-next + ht_102 + i_151)) + (values)))) + (values)))))) + for-loop_173) + (hash-iterate-first + ht_102)))))) + (if (not + #f) + (for-loop_172 + (hash-iterate-next + ht_101 + i_150)) + (values)))) + (values)))))) + for-loop_172) + (hash-iterate-first + ht_101)))) + (void))) + (values))))) + (values))))) + (if (not #f) + (for-loop_171 (hash-iterate-next ht_100 i_149)) + (values)))) + (values)))))) + for-loop_171) + (hash-iterate-first ht_100)))) + (void)))))))))) + (define-values + (remove-required-id!) + (lambda (r+p_8 id_30 phase_54) + (begin + (let-values (((remove!_0) + (lambda (bind-as-ambiguous?133_0 id135_0) + (begin + 'remove! + (let-values (((id_31) id135_0)) + (let-values (((bind-as-ambiguous?_0) bind-as-ambiguous?133_0)) + (let-values () + (let-values (((b_79) + (let-values (((id138_0) id_31) ((phase139_0) phase_54) ((temp140_0) #t)) + (resolve+shift.1 + #f + temp140_0 + null + unsafe-undefined + #f + id138_0 + phase139_0)))) + (if (if (module-binding? b_79) + (not (eq? (requires+provides-self r+p_8) (module-binding-module b_79))) + #f) + (let-values () + (let-values ((() + (begin + (if bind-as-ambiguous?_0 + (let-values () + (let-values (((id141_0) id_31) + ((temp142_0) (like-ambiguous-binding1.1)) + ((phase143_0) phase_54)) + (add-binding!.1 #f #f id141_0 temp142_0 phase143_0))) + (void)) + (values)))) + (let-values (((mpi_39) (intern-mpi r+p_8 (module-binding-nominal-module b_79)))) + (let-values (((at-mod_3) + (hash-ref (requires+provides-requires r+p_8) mpi_39 #f))) + (if at-mod_3 + (let-values () + (let-values (((nominal-phase+space-shift_0) + (module-binding-nominal-require-phase+space-shift b_79))) + (let-values (((sym-to-reqds_2) + (hash-ref at-mod_3 nominal-phase+space-shift_0 #f))) + (if sym-to-reqds_2 + (let-values () + (let-values (((sym_34) (syntax-e$1 id_31))) + (let-values (((l_39) (hash-ref sym-to-reqds_2 sym_34 null))) + (if (null? l_39) + (void) + (let-values () + (hash-set! + sym-to-reqds_2 + sym_34 + (remove-non-matching-requireds + l_39 + id_31 + phase_54 + mpi_39 + nominal-phase+space-shift_0 + sym_34))))))) + (void))))) + (void)))))) + (void)))))))))) + (let-values () + (let-values () + (begin + (let-values (((id137_0) id_30)) (remove!_0 #f id137_0)) + (let-values (((ht_103) (requires+provides-spaces r+p_8))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_103))) + ((letrec-values (((for-loop_175) + (lambda (i_152) + (begin + 'for-loop + (if i_152 + (let-values (((space_5) (hash-iterate-key ht_103 i_152))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((temp144_1) + (add-space-scope + id_30 + space_5)) + ((temp145_0) #t)) + (remove!_0 temp145_0 temp144_1))) + (values))))) + (values))))) + (if (not #f) (for-loop_175 (hash-iterate-next ht_103 i_152)) (values)))) + (values)))))) + for-loop_175) + (hash-iterate-first ht_103)))) + (void)))))))) + (define-values + (remove-non-matching-requireds) + (lambda (reqds_1 id_32 phase_55 mpi_40 nominal-phase+space-shift_1 sym_35) + (begin + (reverse$1 + (let-values (((lst_138) reqds_1)) + (begin + (void) + ((letrec-values (((for-loop_176) + (lambda (fold-var_132 lst_139) + (begin + 'for-loop + (if (not (null? lst_139)) + (let-values (((r_34) (if (pair? lst_139) (car lst_139) lst_139)) + ((rest_69) (if (pair? lst_139) (cdr lst_139) null))) + (let-values (((fold-var_133) + (let-values (((id*_3) + (normalize-required + r_34 + mpi_40 + nominal-phase+space-shift_1 + sym_35))) + (begin + #t + ((letrec-values (((for-loop_177) + (lambda (fold-var_134) + (begin + 'for-loop + (let-values (((r_35) id*_3)) + (let-values (((fold-var_135) + (let-values (((fold-var_136) + fold-var_134)) + (if (if (eqv? + phase_55 + (phase+space-phase + (required-phase+space + r_35))) + (free-identifier=?$1 + (required-id r_35) + id_32 + phase_55 + phase_55) + #f) + fold-var_136 + (let-values (((fold-var_137) + fold-var_136)) + (let-values (((fold-var_138) + (let-values () + (cons + (let-values () + r_35) + fold-var_137)))) + (values + fold-var_138))))))) + fold-var_135)))))) + for-loop_177) + fold-var_132))))) + (if (not #f) (for-loop_176 fold-var_133 rest_69) fold-var_133))) + fold-var_132))))) + for-loop_176) + null + lst_138))))))) + (define-values + (check-not-defined.1) + (lambda (accum-update-nominals64_0 + allow-defined?60_0 + check-not-required?59_0 + in61_0 + remove-shadowed!?63_0 + unless-matches62_0 + who65_0 + r+p73_0 + id74_0 + phase75_0 + space76_0) + (begin + 'check-not-defined + (let-values (((check-not-required?_0) check-not-required?59_0)) + (let-values (((allow-defined?_0) allow-defined?60_0)) + (let-values (((r+p_9) r+p73_0)) + (let-values (((id_33) id74_0)) + (let-values (((phase_56) phase75_0)) + (let-values (((space_6) space76_0)) + (let-values (((orig-s_1) in61_0)) + (let-values (((ok-binding/delayed_0) unless-matches62_0)) + (let-values (((remove-shadowed!?_0) remove-shadowed!?63_0)) + (let-values (((accum-update-nominals_1) accum-update-nominals64_0)) + (let-values (((who_13) who65_0)) + (let-values () + (let-values (((b_80) + (let-values (((id146_0) id_33) ((phase147_0) phase_56) ((temp148_0) #t)) + (resolve+shift.1 + #f + temp148_0 + null + unsafe-undefined + #f + id146_0 + phase147_0)))) + (let-values (((check-default-space_0) + (lambda () + (begin + 'check-default-space + (if (let-values (((or-part_190) (not space_6))) + (if or-part_190 or-part_190 (not check-not-required?_0))) + (let-values () #f) + (let-values () + (let-values (((default-b_0) + (let-values (((temp149_1) + (remove-space-scope id_33 space_6)) + ((phase150_1) phase_56) + ((temp151_0) #t)) + (resolve+shift.1 + #f + temp151_0 + null + unsafe-undefined + #f + temp149_1 + phase150_1)))) + (let-values (((defined?_0) + (if default-b_0 + (eq? + (requires+provides-self r+p_9) + (module-binding-module default-b_0)) + #f))) + (if defined?_0 + (let-values () + (begin + (let-values (((id152_0) id_33) + ((temp153_0) (like-ambiguous-binding1.1)) + ((phase154_0) phase_56)) + (add-binding!.1 #f #f id152_0 temp153_0 phase154_0)) + 'defined)) + (let-values () #f)))))))))) + (if (not b_80) + (let-values () (check-default-space_0)) + (if (not (module-binding? b_80)) + (let-values () (raise-syntax-error$1 #f "identifier out of context" id_33)) + (let-values () + (let-values (((defined?_1) + (if b_80 + (eq? + (requires+provides-self r+p_9) + (module-binding-module b_80)) + #f))) + (if (if defined?_1 + (not + (hash-ref + (hash-ref + (requires+provides-phase-to-defined-syms r+p_9) + phase_56 + '#hasheq()) + (module-binding-sym b_80) + #f)) + #f) + (let-values () (check-default-space_0)) + (let-values () + (let-values (((define-shadowing-require?_0) + (if (not defined?_1) (not check-not-required?_0) #f))) + (let-values (((mpi_41) + (intern-mpi r+p_9 (module-binding-nominal-module b_80)))) + (let-values (((at-mod_4) + (hash-ref + (requires+provides-requires r+p_9) + mpi_41 + #f))) + (let-values (((ok-binding_0) + (if (not define-shadowing-require?_0) + (if (procedure? ok-binding/delayed_0) + (ok-binding/delayed_0) + ok-binding/delayed_0) + #f))) + (let-values (((raise-already-bound_0) + (lambda (defined?_2 where_0) + (begin + 'raise-already-bound + (raise-syntax-error$1 + who_13 + (string-append + "identifier already " + (if defined?_2 "defined" "required") + (if (zero-phase? phase_56) + (let-values () "") + (if (label-phase? phase_56) + (let-values () " for label") + (if (= 1 phase_56) + (let-values () " for syntax") + (let-values () + (format " for phase ~a" phase_56)))))) + orig-s_1 + id_33 + null + (if (bulk-required? where_0) + (let-values () + (format + "\n also provided by: ~.s" + (syntax->datum$1 + (bulk-required-s where_0)))) + (let-values () ""))))))) + (if (if (not at-mod_4) (not define-shadowing-require?_0) #f) + (let-values () (check-default-space_0)) + (if (if ok-binding_0 (same-binding? b_80 ok-binding_0) #f) + (let-values () + (begin + (if (same-binding-nominals? b_80 ok-binding_0) + (void) + (let-values () + (let-values (((update!_0) + (lambda () + (begin + 'update! + (let-values (((temp155_0) #t) + ((id156_0) id_33) + ((temp157_0) + (let-values (((ok-binding159_0) + ok-binding_0) + ((temp160_0) + (cons + b_80 + (module-binding-extra-nominal-bindings + b_80)))) + (module-binding-update.1 + unsafe-undefined + temp160_0 + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + ok-binding159_0))) + ((phase158_0) + phase_56)) + (add-binding!.1 + #f + temp155_0 + id156_0 + temp157_0 + phase158_0)))))) + (if accum-update-nominals_1 + (let-values () + (set-box! + accum-update-nominals_1 + (cons + update!_0 + (unbox accum-update-nominals_1)))) + (let-values () (update!_0)))))) + (if defined?_1 'defined 'required))) + (if (if defined?_1 allow-defined?_0 #f) + (let-values () + (let-values (((also-required_0) + (requires+provides-also-required r+p_9))) + (let-values (((prev-b_0) + (hash-ref + also-required_0 + (module-binding-sym b_80) + #f))) + (begin + (if (if prev-b_0 + (not (same-binding? ok-binding_0 prev-b_0)) + #f) + (let-values () (raise-already-bound_0 #f #f)) + (void)) + (hash-set! + also-required_0 + (module-binding-sym b_80) + ok-binding_0) + (set-requires+provides-all-bindings-simple?! + r+p_9 + #f) + 'defined)))) + (let-values () + (let-values (((nominal-phase+space-shift_2) + (module-binding-nominal-require-phase+space-shift + b_80))) + (let-values (((sym-to-reqds_3) + (hash-ref + at-mod_4 + nominal-phase+space-shift_2 + '#hasheq()))) + (let-values (((reqds_2) + (hash-ref + sym-to-reqds_3 + (syntax-e$1 id_33) + null))) + (let-values (((only-can-can-shadow-require?_0) + (let-values (((lst_140) reqds_2)) + (begin + (void) + ((letrec-values (((for-loop_178) + (lambda (only-can-can-shadow-require?_1 + lst_141) + (begin + 'for-loop + (if (not + (null? + lst_141)) + (let-values (((r_36) + (if (pair? + lst_141) + (car + lst_141) + lst_141)) + ((rest_70) + (if (pair? + lst_141) + (cdr + lst_141) + null))) + (let-values (((only-can-can-shadow-require?_2) + (let-values (((only-can-can-shadow-require?_3) + only-can-can-shadow-require?_1)) + (let-values (((only-can-can-shadow-require?_4) + (let-values () + (if (if (bulk-required? + r_36) + (bulk-required-can-be-shadowed? + r_36) + (required-can-be-shadowed? + r_36)) + (let-values () + (begin + (set-requires+provides-all-bindings-simple?! + r+p_9 + #f) + only-can-can-shadow-require?_3)) + (if define-shadowing-require?_0 + (let-values () + #f) + (let-values () + (raise-already-bound_0 + defined?_1 + r_36))))))) + (values + only-can-can-shadow-require?_4))))) + (if (not + #f) + (for-loop_178 + only-can-can-shadow-require?_2 + rest_70) + only-can-can-shadow-require?_2))) + only-can-can-shadow-require?_1))))) + for-loop_178) + #t + lst_140))))) + (begin + (if define-shadowing-require?_0 + (let-values () + (begin + (set-requires+provides-all-bindings-simple?! + r+p_9 + #f) + (if only-can-can-shadow-require?_0 + (void) + (let-values () + (hash-set! + (requires+provides-also-required + r+p_9) + (module-binding-sym b_80) + b_80))))) + (let-values () + (if (if remove-shadowed!?_0 + (not (null? reqds_2)) + #f) + (let-values () + (hash-set! + sym-to-reqds_3 + (syntax-e$1 id_33) + (remove-non-matching-requireds + reqds_2 + id_33 + phase_56 + mpi_41 + nominal-phase+space-shift_2 + (syntax-e$1 id_33)))) + (void)))) + #f))))))))))))))))))))))))))))))))))))) + (define-values + (adjust-shadow-requires!) + (lambda (r+p_10 id_34 phase_57 space_7) + (begin + (if space_7 + (void) + (let-values () + (begin + (let-values (((ht_104) (requires+provides-spaces r+p_10))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_104))) + ((letrec-values (((for-loop_179) + (lambda (i_153) + (begin + 'for-loop + (if i_153 + (let-values (((space_8) (hash-iterate-key ht_104 i_153))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((space-id_0) + (add-space-scope + id_34 + space_8))) + (let-values (((b_81) + (let-values (((space-id161_0) + space-id_0) + ((phase162_0) + phase_57) + ((temp163_0) + #t)) + (resolve+shift.1 + #f + temp163_0 + null + unsafe-undefined + #f + space-id161_0 + phase162_0)))) + (if (if (module-binding? b_81) + (not + (eq? + (requires+provides-self + r+p_10) + (module-binding-module b_81))) + #f) + (let-values () + (let-values (((mpi_42) + (intern-mpi + r+p_10 + (module-binding-nominal-module + b_81)))) + (let-values (((at-mod_5) + (hash-ref + (requires+provides-requires + r+p_10) + mpi_42 + #f))) + (let-values (((nominal-phase+space-shift_3) + (module-binding-nominal-require-phase+space-shift + b_81))) + (let-values (((sym-to-reqds_4) + (hash-ref + at-mod_5 + nominal-phase+space-shift_3 + '#hasheq()))) + (let-values (((reqds_3) + (hash-ref + sym-to-reqds_4 + (syntax-e$1 + id_34) + null))) + (if (let-values (((lst_142) + reqds_3)) + (begin + (void) + ((letrec-values (((for-loop_180) + (lambda (result_71 + lst_143) + (begin + 'for-loop + (if (not + (null? + lst_143)) + (let-values (((r_37) + (if (pair? + lst_143) + (car + lst_143) + lst_143)) + ((rest_71) + (if (pair? + lst_143) + (cdr + lst_143) + null))) + (let-values (((result_72) + (let-values () + (let-values (((result_73) + (let-values () + (let-values () + (if (bulk-required? + r_37) + (bulk-required-can-be-shadowed? + r_37) + (required-can-be-shadowed? + r_37)))))) + (values + result_73))))) + (if (if (not + ((lambda x_59 + (not + result_72)) + r_37)) + (not + #f) + #f) + (for-loop_180 + result_72 + rest_71) + result_72))) + result_71))))) + for-loop_180) + #t + lst_142))) + (let-values () + (begin + (hash-set! + sym-to-reqds_4 + (syntax-e$1 + id_34) + (remove-non-matching-requireds + reqds_3 + space-id_0 + phase_57 + mpi_42 + nominal-phase+space-shift_3 + (syntax-e$1 + id_34))) + (let-values (((space-id164_0) + space-id_0) + ((temp165_0) + (like-ambiguous-binding1.1)) + ((phase166_1) + phase_57)) + (add-binding!.1 + #f + #f + space-id164_0 + temp165_0 + phase166_1)))) + (void)))))))) + (void))))) + (values))))) + (values))))) + (if (not #f) (for-loop_179 (hash-iterate-next ht_104 i_153)) (values)))) + (values)))))) + for-loop_179) + (hash-iterate-first ht_104)))) + (void))))))) + (define-values + (add-defined-syms!.1) + (lambda (as-transformer?78_0 r+p80_0 syms81_0 phase82_0) + (begin + 'add-defined-syms! + (let-values (((r+p_11) r+p80_0)) + (let-values (((syms_17) syms81_0)) + (let-values (((phase_58) phase82_0)) + (let-values (((as-transformer?_2) as-transformer?78_0)) + (let-values () + (let-values (((phase-to-defined-syms_0) (requires+provides-phase-to-defined-syms r+p_11))) + (let-values (((defined-syms_2) (hash-ref phase-to-defined-syms_0 phase_58 '#hasheq()))) + (let-values (((new-defined-syms_0) + (let-values (((lst_144) syms_17)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_144))) + ((letrec-values (((for-loop_181) + (lambda (defined-syms_3 lst_73) + (begin + 'for-loop + (if (pair? lst_73) + (let-values (((sym_36) (unsafe-car lst_73)) + ((rest_34) (unsafe-cdr lst_73))) + (let-values (((defined-syms_4) + (let-values (((defined-syms_5) + defined-syms_3)) + (let-values (((defined-syms_6) + (let-values () + (hash-set + defined-syms_5 + sym_36 + (if as-transformer?_2 + 'transformer + 'variable))))) + (values defined-syms_6))))) + (if (not #f) + (for-loop_181 defined-syms_4 rest_34) + defined-syms_4))) + defined-syms_3))))) + for-loop_181) + defined-syms_2 + lst_144))))) + (hash-set! phase-to-defined-syms_0 phase_58 new-defined-syms_0)))))))))))) + (define-values + (defined-sym-kind) + (lambda (r+p_12 sym_37 phase_59) + (begin + (let-values (((phase-to-defined-syms_1) (requires+provides-phase-to-defined-syms r+p_12))) + (let-values (((defined-syms_7) (hash-ref phase-to-defined-syms_1 phase_59 '#hasheq()))) + (hash-ref defined-syms_7 sym_37 #f)))))) + (define-values + (extract-module-requires) + (lambda (r+p_13 mod-name_11 phase+space-shift_6) + (begin + (let-values (((mpi_43) (intern-mpi r+p_13 mod-name_11))) + (let-values (((at-mod_6) (hash-ref (requires+provides-requires r+p_13) mpi_43 #f))) + (if at-mod_6 + (reverse$1 + (let-values (((ht_105) (hash-ref at-mod_6 phase+space-shift_6 '#hasheq()))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_105))) + ((letrec-values (((for-loop_182) + (lambda (fold-var_139 i_154) + (begin + 'for-loop + (if i_154 + (let-values (((sym_38 reqds_4) (hash-iterate-key+value ht_105 i_154))) + (let-values (((fold-var_140) + (let-values (((lst_145) reqds_4)) + (begin + (void) + ((letrec-values (((for-loop_183) + (lambda (fold-var_141 lst_146) + (begin + 'for-loop + (if (not (null? lst_146)) + (let-values (((reqd_1) + (if (pair? lst_146) + (car lst_146) + lst_146)) + ((rest_72) + (if (pair? lst_146) + (cdr lst_146) + null))) + (let-values (((fold-var_142) + (let-values (((fold-var_143) + fold-var_141)) + (let-values (((fold-var_144) + (let-values () + (cons + (let-values () + (normalize-required + reqd_1 + mpi_43 + phase+space-shift_6 + sym_38)) + fold-var_143)))) + (values + fold-var_144))))) + (if (not #f) + (for-loop_183 + fold-var_142 + rest_72) + fold-var_142))) + fold-var_141))))) + for-loop_183) + fold-var_139 + lst_145))))) + (if (not #f) + (for-loop_182 fold-var_140 (hash-iterate-next ht_105 i_154)) + fold-var_140))) + fold-var_139))))) + for-loop_182) + null + (hash-iterate-first ht_105))))) + #f)))))) + (define-values + (extract-module-definitions) + (lambda (r+p_14) + (begin + (let-values (((or-part_191) (extract-module-requires r+p_14 (requires+provides-self r+p_14) 0))) + (if or-part_191 or-part_191 null))))) + (define-values + (extract-all-module-requires) + (lambda (r+p_15 mod-name_12 phase+space-shift_7) + (begin + (let-values (((self_11) (requires+provides-self r+p_15))) + (let-values (((requires_3) (requires+provides-requires r+p_15))) + (call/ec + (lambda (esc_0) + (reverse$1 + (let-values (((lst_147) (if mod-name_12 (list (intern-mpi r+p_15 mod-name_12)) (hash-keys requires_3)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_147))) + ((letrec-values (((for-loop_184) + (lambda (fold-var_145 lst_148) + (begin + 'for-loop + (if (pair? lst_148) + (let-values (((mod-name_13) (unsafe-car lst_148)) + ((rest_73) (unsafe-cdr lst_148))) + (let-values (((fold-var_146) + (let-values (((fold-var_147) fold-var_145)) + (if (eq? mod-name_13 self_11) + fold-var_147 + (let-values (((id*_4) + (hash-ref + requires_3 + mod-name_13 + '#hasheqv()))) + (begin + #t + ((letrec-values (((for-loop_71) + (lambda (fold-var_148) + (begin + 'for-loop + (let-values (((phase+space-to-requireds_0) + id*_4)) + (let-values (((fold-var_149) + (let-values (((lst_75) + (if (eq? + phase+space-shift_7 + 'all) + (hash-keys + phase+space-to-requireds_0) + (list + phase+space-shift_7)))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_75))) + ((letrec-values (((for-loop_185) + (lambda (fold-var_150 + lst_149) + (begin + 'for-loop + (if (pair? + lst_149) + (let-values (((phase+space-shift_8) + (unsafe-car + lst_149)) + ((rest_74) + (unsafe-cdr + lst_149))) + (let-values (((fold-var_151) + (let-values (((ht_106) + (hash-ref + phase+space-to-requireds_0 + phase+space-shift_8 + (lambda () + (esc_0 + #f))))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_106))) + ((letrec-values (((for-loop_186) + (lambda (fold-var_152 + i_155) + (begin + 'for-loop + (if i_155 + (let-values (((sym_39 + reqds_5) + (hash-iterate-key+value + ht_106 + i_155))) + (let-values (((fold-var_153) + (let-values (((lst_150) + reqds_5)) + (begin + (void) + ((letrec-values (((for-loop_187) + (lambda (fold-var_154 + lst_151) + (begin + 'for-loop + (if (not + (null? + lst_151)) + (let-values (((reqd_2) + (if (pair? + lst_151) + (car + lst_151) + lst_151)) + ((rest_75) + (if (pair? + lst_151) + (cdr + lst_151) + null))) + (let-values (((fold-var_155) + (let-values (((fold-var_156) + fold-var_154)) + (let-values (((fold-var_157) + (let-values () + (cons + (let-values () + (normalize-required + reqd_2 + mod-name_13 + phase+space-shift_8 + sym_39)) + fold-var_156)))) + (values + fold-var_157))))) + (if (not + #f) + (for-loop_187 + fold-var_155 + rest_75) + fold-var_155))) + fold-var_154))))) + for-loop_187) + fold-var_152 + lst_150))))) + (if (not + #f) + (for-loop_186 + fold-var_153 + (hash-iterate-next + ht_106 + i_155)) + fold-var_153))) + fold-var_152))))) + for-loop_186) + fold-var_150 + (hash-iterate-first + ht_106)))))) + (if (not + #f) + (for-loop_185 + fold-var_151 + rest_74) + fold-var_151))) + fold-var_150))))) + for-loop_185) + fold-var_148 + lst_75))))) + fold-var_149)))))) + for-loop_71) + fold-var_147))))))) + (if (not #f) (for-loop_184 fold-var_146 rest_73) fold-var_146))) + fold-var_145))))) + for-loop_184) + null + lst_147))))))))))) + (define-values + (add-provide!.1) + (lambda (as-protected?84_0 + as-transformer?85_0 + r+p88_0 + sym89_0 + phase+space90_0 + binding91_0 + immed-binding92_0 + id93_0 + orig-s94_0) + (begin + 'add-provide! + (let-values (((r+p_16) r+p88_0)) + (let-values (((sym_40) sym89_0)) + (let-values (((phase+space_5) phase+space90_0)) + (let-values (((binding_12) binding91_0)) + (let-values (((immed-binding_0) immed-binding92_0)) + (let-values (((id_35) id93_0)) + (let-values (((orig-s_2) orig-s94_0)) + (let-values (((as-protected?_0) as-protected?84_0)) + (let-values (((as-transformer?_3) as-transformer?85_0)) + (let-values () + (begin + (if (if as-protected?_0 + (not (eq? (module-binding-module immed-binding_0) (requires+provides-self r+p_16))) + #f) + (let-values () + (raise-syntax-error$1 #f "cannot protect required identifier in re-provide" sym_40)) + (void)) + (hash-update! + (requires+provides-provides r+p_16) + phase+space_5 + (lambda (at-phase_9) + (let-values (((b/p_0) (hash-ref at-phase_9 sym_40 #f))) + (let-values (((b_82) (provided-as-binding b/p_0))) + (if (not b_82) + (let-values () + (let-values (((plain-binding_0) + (if (binding-free=id binding_12) + (let-values (((binding167_0) binding_12) ((temp168_0) #f)) + (module-binding-update.1 + unsafe-undefined + unsafe-undefined + unsafe-undefined + temp168_0 + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + binding167_0)) + binding_12))) + (hash-set + at-phase_9 + sym_40 + (if (let-values (((or-part_192) as-protected?_0)) + (if or-part_192 or-part_192 as-transformer?_3)) + (provided1.1 plain-binding_0 as-protected?_0 as-transformer?_3) + plain-binding_0)))) + (if (same-binding? b_82 binding_12) + (let-values () at-phase_9) + (let-values () + (raise-syntax-error$1 + #f + "identifier already provided (as a different binding)" + orig-s_2 + id_35))))))) + '#hasheq()))))))))))))))) + (define-values + (extract-requires-and-provides) + (lambda (r+p_17 old-self_0 new-self_1) + (begin + (let-values (((extract-requires_0) + (lambda () + (begin + 'extract-requires + (let-values (((phase-to-mpis-in-order_0) (requires+provides-require-mpis-in-order r+p_17))) + (let-values (((phases-in-order_1) + (let-values (((temp169_0) (hash-keys phase-to-mpis-in-order_0)) + ((phasedatum$1 + req_0))) + (let-values ((() + (begin + (if (let-values (((or-part_193) + (1/module-path? + maybe-mp_0))) + (if or-part_193 + or-part_193 + (1/resolved-module-path? + maybe-mp_0))) + (void) + (let-values () + (raise-syntax-error$1 + #f + "bad require spec" + orig-s_3 + req_0))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_194) + adjust_0)) + (if or-part_194 + or-part_194 + (not + (eq? + just-meta_0 + 'all)))) + (let-values () + (set-requires+provides-all-bindings-simple?! + requires+provides_1 + #f)) + (void)) + (values)))) + (let-values (((mp_0) + (if (1/resolved-module-path? + maybe-mp_0) + (resolved-module-path->module-path + maybe-mp_0) + maybe-mp_0))) + (let-values (((mpi_45) + (let-values (((mp135_0) + mp_0) + ((self136_0) + self_12) + ((declared-submodule-names137_0) + declared-submodule-names_2)) + (module-path->mpi.1 + declared-submodule-names137_0 + mp135_0 + self136_0)))) + (begin + (let-values (((mpi116_0) + mpi_45) + ((req117_0) + req_0) + ((self118_0) + self_12) + ((temp119_0) + (let-values (((or-part_44) + req_0)) + (if or-part_44 + or-part_44 + top-req_0))) + ((m-ns120_0) + m-ns_7) + ((phase-shift121_0) + phase-shift_6) + ((space-level122_0) + space-level_1) + ((run-phase123_0) + run-phase_5) + ((just-meta124_0) + just-meta_0) + ((just-space125_0) + just-space_0) + ((adjust126_0) + adjust_0) + ((requires+provides127_0) + requires+provides_1) + ((run?128_0) + run?_1) + ((visit?129_0) + visit?_1) + ((copy-variable-phase-level130_0) + copy-variable-phase-level_0) + ((copy-variable-as-constant?131_0) + copy-variable-as-constant?_0) + ((skip-variable-phase-level132_0) + skip-variable-phase-level_0) + ((initial-require?133_0) + initial-require?_0) + ((who134_0) + who_8)) + (perform-require!.1 + adjust126_0 + #t + #f + copy-variable-as-constant?131_0 + copy-variable-phase-level130_0 + initial-require?133_0 + just-meta124_0 + just-space125_0 + phase-shift121_0 + requires+provides127_0 + run-phase123_0 + run?128_0 + skip-variable-phase-level132_0 + space-level122_0 + visit?129_0 + who134_0 + mpi116_0 + req117_0 + self118_0 + temp119_0 + m-ns120_0)) + (set! initial-require?_0 + #f)))))))) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'raw + for-meta-ok?_0) + (values)))) + (let-values (((ok?_1 + for-meta138_0 + phase-level139_0 + spec140_0) + (let-values (((s_196) + req_0)) + (let-values (((orig-s_4) + s_196)) + (let-values (((for-meta138_1 + phase-level139_1 + spec140_1) + (let-values (((s_63) + (if (syntax?$1 + s_196) + (syntax-e$1 + s_196) + s_196))) + (if (pair? + s_63) + (let-values (((for-meta141_0) + (let-values (((s_65) + (car + s_63))) + s_65)) + ((phase-level142_0 + spec143_0) + (let-values (((s_197) + (cdr + s_63))) + (let-values (((s_89) + (if (syntax?$1 + s_197) + (syntax-e$1 + s_197) + s_197))) + (if (pair? + s_89) + (let-values (((phase-level144_0) + (let-values (((s_198) + (car + s_89))) + s_198)) + ((spec145_0) + (let-values (((s_199) + (cdr + s_89))) + (let-values (((s_40) + (if (syntax?$1 + s_199) + (syntax-e$1 + s_199) + s_199))) + (let-values (((flat-s_0) + (to-syntax-list.1 + s_40))) + (if (not + flat-s_0) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_4)) + (let-values () + flat-s_0))))))) + (values + phase-level144_0 + spec145_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_4)))))) + (values + for-meta141_0 + phase-level142_0 + spec143_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_4))))) + (values + #t + for-meta138_1 + phase-level139_1 + spec140_1)))))) + (let-values (((p_29) + (syntax-e$1 + phase-level139_0))) + (begin + (if (phase? + p_29) + (void) + (let-values () + (raise-syntax-error$1 + #f + "bad phase" + orig-s_3 + req_0))) + (loop_51 + spec140_0 + (let-values (((or-part_195) + top-req_0)) + (if or-part_195 + or-part_195 + req_0)) + (phase+ + phase-shift_6 + p_29) + space-level_1 + just-meta_0 + just-space_0 + adjust_0 + #f + just-meta-ok?_0 + 'raw))))))) + (if (unsafe-fx< + index_2 + 3) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'raw + for-meta-ok?_0) + (values)))) + (let-values (((ok?_2 + for-syntax146_0 + spec147_0) + (let-values (((s_200) + req_0)) + (let-values (((orig-s_5) + s_200)) + (let-values (((for-syntax146_1 + spec147_1) + (let-values (((s_195) + (if (syntax?$1 + s_200) + (syntax-e$1 + s_200) + s_200))) + (if (pair? + s_195) + (let-values (((for-syntax148_0) + (let-values (((s_101) + (car + s_195))) + s_101)) + ((spec149_0) + (let-values (((s_43) + (cdr + s_195))) + (let-values (((s_201) + (if (syntax?$1 + s_43) + (syntax-e$1 + s_43) + s_43))) + (let-values (((flat-s_1) + (to-syntax-list.1 + s_201))) + (if (not + flat-s_1) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_5)) + (let-values () + flat-s_1))))))) + (values + for-syntax148_0 + spec149_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_5))))) + (values + #t + for-syntax146_1 + spec147_1)))))) + (loop_51 + spec147_0 + (let-values (((or-part_196) + top-req_0)) + (if or-part_196 + or-part_196 + req_0)) + (phase+ + phase-shift_6 + 1) + space-level_1 + just-meta_0 + just-space_0 + adjust_0 + #f + just-meta-ok?_0 + 'raw)))) + (if (unsafe-fx< + index_2 + 4) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'raw + for-meta-ok?_0) + (values)))) + (let-values (((ok?_3 + for-template150_0 + spec151_0) + (let-values (((s_202) + req_0)) + (let-values (((orig-s_6) + s_202)) + (let-values (((for-template150_1 + spec151_1) + (let-values (((s_80) + (if (syntax?$1 + s_202) + (syntax-e$1 + s_202) + s_202))) + (if (pair? + s_80) + (let-values (((for-template152_0) + (let-values (((s_45) + (car + s_80))) + s_45)) + ((spec153_0) + (let-values (((s_203) + (cdr + s_80))) + (let-values (((s_204) + (if (syntax?$1 + s_203) + (syntax-e$1 + s_203) + s_203))) + (let-values (((flat-s_2) + (to-syntax-list.1 + s_204))) + (if (not + flat-s_2) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_6)) + (let-values () + flat-s_2))))))) + (values + for-template152_0 + spec153_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_6))))) + (values + #t + for-template150_1 + spec151_1)))))) + (loop_51 + spec151_0 + (let-values (((or-part_197) + top-req_0)) + (if or-part_197 + or-part_197 + req_0)) + (phase+ + phase-shift_6 + -1) + space-level_1 + just-meta_0 + just-space_0 + adjust_0 + #f + just-meta-ok?_0 + 'raw)))) + (if (unsafe-fx< + index_2 + 5) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'raw + for-meta-ok?_0) + (values)))) + (let-values (((ok?_4 + for-label154_0 + spec155_0) + (let-values (((s_205) + req_0)) + (let-values (((orig-s_7) + s_205)) + (let-values (((for-label154_1 + spec155_1) + (let-values (((s_206) + (if (syntax?$1 + s_205) + (syntax-e$1 + s_205) + s_205))) + (if (pair? + s_206) + (let-values (((for-label156_0) + (let-values (((s_207) + (car + s_206))) + s_207)) + ((spec157_0) + (let-values (((s_208) + (cdr + s_206))) + (let-values (((s_209) + (if (syntax?$1 + s_208) + (syntax-e$1 + s_208) + s_208))) + (let-values (((flat-s_3) + (to-syntax-list.1 + s_209))) + (if (not + flat-s_3) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_7)) + (let-values () + flat-s_3))))))) + (values + for-label156_0 + spec157_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_7))))) + (values + #t + for-label154_1 + spec155_1)))))) + (loop_51 + spec155_0 + (let-values (((or-part_198) + top-req_0)) + (if or-part_198 + or-part_198 + req_0)) + (phase+ + phase-shift_6 + #f) + space-level_1 + just-meta_0 + just-space_0 + adjust_0 + #f + just-meta-ok?_0 + 'raw)))) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'raw + just-meta-ok?_0) + (values)))) + (let-values (((ok?_5 + just-meta158_0 + phase-level159_0 + spec160_0) + (let-values (((s_210) + req_0)) + (let-values (((orig-s_8) + s_210)) + (let-values (((just-meta158_1 + phase-level159_1 + spec160_1) + (let-values (((s_211) + (if (syntax?$1 + s_210) + (syntax-e$1 + s_210) + s_210))) + (if (pair? + s_211) + (let-values (((just-meta161_0) + (let-values (((s_166) + (car + s_211))) + s_166)) + ((phase-level162_0 + spec163_0) + (let-values (((s_167) + (cdr + s_211))) + (let-values (((s_212) + (if (syntax?$1 + s_167) + (syntax-e$1 + s_167) + s_167))) + (if (pair? + s_212) + (let-values (((phase-level164_0) + (let-values (((s_213) + (car + s_212))) + s_213)) + ((spec165_0) + (let-values (((s_214) + (cdr + s_212))) + (let-values (((s_215) + (if (syntax?$1 + s_214) + (syntax-e$1 + s_214) + s_214))) + (let-values (((flat-s_4) + (to-syntax-list.1 + s_215))) + (if (not + flat-s_4) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_8)) + (let-values () + flat-s_4))))))) + (values + phase-level164_0 + spec165_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_8)))))) + (values + just-meta161_0 + phase-level162_0 + spec163_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_8))))) + (values + #t + just-meta158_1 + phase-level159_1 + spec160_1)))))) + (let-values (((p_30) + (syntax-e$1 + phase-level159_0))) + (begin + (if (phase? + p_30) + (void) + (let-values () + (raise-syntax-error$1 + #f + "bad phase" + orig-s_3 + req_0))) + (loop_51 + spec160_0 + (let-values (((or-part_199) + top-req_0)) + (if or-part_199 + or-part_199 + req_0)) + phase-shift_6 + space-level_1 + p_30 + just-space_0 + adjust_0 + for-meta-ok?_0 + #f + 'raw)))))))))) + (if (unsafe-fx< + index_2 + 9) + (if (unsafe-fx< + index_2 + 7) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'phaseless) + (values)))) + (let-values (((ok?_6 + for-space166_0 + space167_0 + spec168_0) + (let-values (((s_216) + req_0)) + (let-values (((orig-s_9) + s_216)) + (let-values (((for-space166_1 + space167_1 + spec168_1) + (let-values (((s_217) + (if (syntax?$1 + s_216) + (syntax-e$1 + s_216) + s_216))) + (if (pair? + s_217) + (let-values (((for-space169_0) + (let-values (((s_218) + (car + s_217))) + s_218)) + ((space170_0 + spec171_0) + (let-values (((s_121) + (cdr + s_217))) + (let-values (((s_219) + (if (syntax?$1 + s_121) + (syntax-e$1 + s_121) + s_121))) + (if (pair? + s_219) + (let-values (((space172_0) + (let-values (((s_122) + (car + s_219))) + s_122)) + ((spec173_0) + (let-values (((s_123) + (cdr + s_219))) + (let-values (((s_124) + (if (syntax?$1 + s_123) + (syntax-e$1 + s_123) + s_123))) + (let-values (((flat-s_5) + (to-syntax-list.1 + s_124))) + (if (not + flat-s_5) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_9)) + (let-values () + flat-s_5))))))) + (values + space172_0 + spec173_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_9)))))) + (values + for-space169_0 + space170_0 + spec171_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_9))))) + (values + #t + for-space166_1 + space167_1 + spec168_1)))))) + (let-values (((space_9) + (syntax-e$1 + space167_0))) + (begin + (if (space? + space_9) + (void) + (let-values () + (raise-syntax-error$1 + #f + "bad space" + orig-s_3 + req_0))) + (loop_51 + spec168_0 + (let-values (((or-part_200) + top-req_0)) + (if or-part_200 + or-part_200 + req_0)) + phase-shift_6 + space_9 + just-meta_0 + just-space_0 + adjust_0 + #f + #f + 'spaceless)))))) + (if (unsafe-fx< + index_2 + 8) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'spaceless) + (values)))) + (let-values (((ok?_7 + just-space174_0 + space175_0 + spec176_0) + (let-values (((s_129) + req_0)) + (let-values (((orig-s_10) + s_129)) + (let-values (((just-space174_1 + space175_1 + spec176_1) + (let-values (((s_131) + (if (syntax?$1 + s_129) + (syntax-e$1 + s_129) + s_129))) + (if (pair? + s_131) + (let-values (((just-space177_0) + (let-values (((s_220) + (car + s_131))) + s_220)) + ((space178_0 + spec179_0) + (let-values (((s_221) + (cdr + s_131))) + (let-values (((s_185) + (if (syntax?$1 + s_221) + (syntax-e$1 + s_221) + s_221))) + (if (pair? + s_185) + (let-values (((space180_0) + (let-values (((s_222) + (car + s_185))) + s_222)) + ((spec181_0) + (let-values (((s_134) + (cdr + s_185))) + (let-values (((s_223) + (if (syntax?$1 + s_134) + (syntax-e$1 + s_134) + s_134))) + (let-values (((flat-s_6) + (to-syntax-list.1 + s_223))) + (if (not + flat-s_6) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_10)) + (let-values () + flat-s_6))))))) + (values + space180_0 + spec181_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_10)))))) + (values + just-space177_0 + space178_0 + spec179_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_10))))) + (values + #t + just-space174_1 + space175_1 + spec176_1)))))) + (let-values (((space_10) + (syntax-e$1 + space175_0))) + (begin + (if (space? + space_10) + (void) + (let-values () + (raise-syntax-error$1 + #f + "bad space" + orig-s_3 + req_0))) + (loop_51 + spec176_0 + (let-values (((or-part_201) + top-req_0)) + (if or-part_201 + or-part_201 + req_0)) + phase-shift_6 + space-level_1 + just-meta_0 + space_10 + adjust_0 + #f + #f + 'justspaceless)))))) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'justspaceless) + (values)))) + (let-values (((ok?_8 + only182_0 + spec183_0 + id184_0) + (let-values (((s_224) + req_0)) + (let-values (((orig-s_11) + s_224)) + (let-values (((only182_1 + spec183_1 + id184_1) + (let-values (((s_225) + (if (syntax?$1 + s_224) + (syntax-e$1 + s_224) + s_224))) + (if (pair? + s_225) + (let-values (((only185_0) + (let-values (((s_226) + (car + s_225))) + s_226)) + ((spec186_0 + id187_0) + (let-values (((s_227) + (cdr + s_225))) + (let-values (((s_228) + (if (syntax?$1 + s_227) + (syntax-e$1 + s_227) + s_227))) + (if (pair? + s_228) + (let-values (((spec188_0) + (let-values (((s_229) + (car + s_228))) + s_229)) + ((id189_0) + (let-values (((s_230) + (cdr + s_228))) + (let-values (((s_231) + (if (syntax?$1 + s_230) + (syntax-e$1 + s_230) + s_230))) + (let-values (((flat-s_7) + (to-syntax-list.1 + s_231))) + (if (not + flat-s_7) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_11)) + (let-values () + (let-values (((id_36) + (let-values (((lst_157) + flat-s_7)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_157))) + ((letrec-values (((for-loop_193) + (lambda (id_37 + lst_158) + (begin + 'for-loop + (if (pair? + lst_158) + (let-values (((s_232) + (unsafe-car + lst_158)) + ((rest_79) + (unsafe-cdr + lst_158))) + (let-values (((id_38) + (let-values (((id_32) + id_37)) + (let-values (((id_39) + (let-values () + (let-values (((id190_0) + (let-values () + (if (let-values (((or-part_202) + (if (syntax?$1 + s_232) + (symbol? + (syntax-e$1 + s_232)) + #f))) + (if or-part_202 + or-part_202 + (symbol? + s_232))) + s_232 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_11 + s_232))))) + (cons + id190_0 + id_32))))) + (values + id_39))))) + (if (not + #f) + (for-loop_193 + id_38 + rest_79) + id_38))) + id_37))))) + for-loop_193) + null + lst_157))))) + (reverse$1 + id_36))))))))) + (values + spec188_0 + id189_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_11)))))) + (values + only185_0 + spec186_0 + id187_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_11))))) + (values + #t + only182_1 + spec183_1 + id184_1)))))) + (loop_51 + (list + spec183_0) + (let-values (((or-part_203) + top-req_0)) + (if or-part_203 + or-part_203 + req_0)) + phase-shift_6 + space-level_1 + just-meta_0 + just-space_0 + (adjust-only1.1 + (ids->sym-set + id184_0)) + #f + #f + 'path)))))) + (if (unsafe-fx< + index_2 + 10) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'justspaceless) + (values)))) + (let-values (((ok?_9 + prefix191_0 + id:prefix192_0 + spec193_0) + (let-values (((s_233) + req_0)) + (let-values (((orig-s_12) + s_233)) + (let-values (((prefix191_1 + id:prefix192_1 + spec193_1) + (let-values (((s_234) + (if (syntax?$1 + s_233) + (syntax-e$1 + s_233) + s_233))) + (if (pair? + s_234) + (let-values (((prefix194_0) + (let-values (((s_235) + (car + s_234))) + s_235)) + ((id:prefix195_0 + spec196_0) + (let-values (((s_236) + (cdr + s_234))) + (let-values (((s_237) + (if (syntax?$1 + s_236) + (syntax-e$1 + s_236) + s_236))) + (if (pair? + s_237) + (let-values (((id:prefix197_0) + (let-values (((s_238) + (car + s_237))) + (if (let-values (((or-part_204) + (if (syntax?$1 + s_238) + (symbol? + (syntax-e$1 + s_238)) + #f))) + (if or-part_204 + or-part_204 + (symbol? + s_238))) + s_238 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_12 + s_238)))) + ((spec198_0) + (let-values (((s_239) + (cdr + s_237))) + (let-values (((s_240) + (if (syntax?$1 + s_239) + (syntax-e$1 + s_239) + s_239))) + (if (pair? + s_240) + (let-values (((spec199_0) + (let-values (((s_241) + (car + s_240))) + s_241)) + (() + (let-values (((s_242) + (cdr + s_240))) + (let-values (((s_243) + (if (syntax?$1 + s_242) + (syntax-e$1 + s_242) + s_242))) + (if (null? + s_243) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_12)))))) + (values + spec199_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_12)))))) + (values + id:prefix197_0 + spec198_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_12)))))) + (values + prefix194_0 + id:prefix195_0 + spec196_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_12))))) + (values + #t + prefix191_1 + id:prefix192_1 + spec193_1)))))) + (loop_51 + (list + spec193_0) + (let-values (((or-part_205) + top-req_0)) + (if or-part_205 + or-part_205 + req_0)) + phase-shift_6 + space-level_1 + just-meta_0 + just-space_0 + (adjust-prefix2.1 + (syntax-e$1 + id:prefix192_0)) + #f + #f + 'path)))) + (if (unsafe-fx< + index_2 + 11) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'justspaceless) + (values)))) + (let-values (((ok?_10 + all-except200_0 + spec201_0 + id202_0) + (let-values (((s_244) + req_0)) + (let-values (((orig-s_13) + s_244)) + (let-values (((all-except200_1 + spec201_1 + id202_1) + (let-values (((s_245) + (if (syntax?$1 + s_244) + (syntax-e$1 + s_244) + s_244))) + (if (pair? + s_245) + (let-values (((all-except203_0) + (let-values (((s_246) + (car + s_245))) + s_246)) + ((spec204_0 + id205_0) + (let-values (((s_247) + (cdr + s_245))) + (let-values (((s_248) + (if (syntax?$1 + s_247) + (syntax-e$1 + s_247) + s_247))) + (if (pair? + s_248) + (let-values (((spec206_0) + (let-values (((s_249) + (car + s_248))) + s_249)) + ((id207_0) + (let-values (((s_250) + (cdr + s_248))) + (let-values (((s_251) + (if (syntax?$1 + s_250) + (syntax-e$1 + s_250) + s_250))) + (let-values (((flat-s_8) + (to-syntax-list.1 + s_251))) + (if (not + flat-s_8) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_13)) + (let-values () + (let-values (((id_40) + (let-values (((lst_159) + flat-s_8)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_159))) + ((letrec-values (((for-loop_194) + (lambda (id_41 + lst_160) + (begin + 'for-loop + (if (pair? + lst_160) + (let-values (((s_252) + (unsafe-car + lst_160)) + ((rest_80) + (unsafe-cdr + lst_160))) + (let-values (((id_42) + (let-values (((id_43) + id_41)) + (let-values (((id_44) + (let-values () + (let-values (((id208_0) + (let-values () + (if (let-values (((or-part_206) + (if (syntax?$1 + s_252) + (symbol? + (syntax-e$1 + s_252)) + #f))) + (if or-part_206 + or-part_206 + (symbol? + s_252))) + s_252 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_13 + s_252))))) + (cons + id208_0 + id_43))))) + (values + id_44))))) + (if (not + #f) + (for-loop_194 + id_42 + rest_80) + id_42))) + id_41))))) + for-loop_194) + null + lst_159))))) + (reverse$1 + id_40))))))))) + (values + spec206_0 + id207_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_13)))))) + (values + all-except203_0 + spec204_0 + id205_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_13))))) + (values + #t + all-except200_1 + spec201_1 + id202_1)))))) + (loop_51 + (list + spec201_0) + (let-values (((or-part_207) + top-req_0)) + (if or-part_207 + or-part_207 + req_0)) + phase-shift_6 + space-level_1 + just-meta_0 + just-space_0 + (adjust-all-except3.1 + '|| + (ids->sym-set + id202_0)) + #f + #f + 'path)))) + (if (unsafe-fx< + index_2 + 12) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'justspaceless) + (values)))) + (let-values (((ok?_11 + prefix-all-except209_0 + id:prefix210_0 + spec211_0 + id212_0) + (let-values (((s_253) + req_0)) + (let-values (((orig-s_14) + s_253)) + (let-values (((prefix-all-except209_1 + id:prefix210_1 + spec211_1 + id212_1) + (let-values (((s_142) + (if (syntax?$1 + s_253) + (syntax-e$1 + s_253) + s_253))) + (if (pair? + s_142) + (let-values (((prefix-all-except213_0) + (let-values (((s_254) + (car + s_142))) + s_254)) + ((id:prefix214_0 + spec215_0 + id216_0) + (let-values (((s_255) + (cdr + s_142))) + (let-values (((s_143) + (if (syntax?$1 + s_255) + (syntax-e$1 + s_255) + s_255))) + (if (pair? + s_143) + (let-values (((id:prefix217_0) + (let-values (((s_256) + (car + s_143))) + (if (let-values (((or-part_208) + (if (syntax?$1 + s_256) + (symbol? + (syntax-e$1 + s_256)) + #f))) + (if or-part_208 + or-part_208 + (symbol? + s_256))) + s_256 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_14 + s_256)))) + ((spec218_0 + id219_0) + (let-values (((s_144) + (cdr + s_143))) + (let-values (((s_145) + (if (syntax?$1 + s_144) + (syntax-e$1 + s_144) + s_144))) + (if (pair? + s_145) + (let-values (((spec220_0) + (let-values (((s_257) + (car + s_145))) + s_257)) + ((id221_0) + (let-values (((s_258) + (cdr + s_145))) + (let-values (((s_259) + (if (syntax?$1 + s_258) + (syntax-e$1 + s_258) + s_258))) + (let-values (((flat-s_9) + (to-syntax-list.1 + s_259))) + (if (not + flat-s_9) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_14)) + (let-values () + (let-values (((id_45) + (let-values (((lst_161) + flat-s_9)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_161))) + ((letrec-values (((for-loop_195) + (lambda (id_46 + lst_162) + (begin + 'for-loop + (if (pair? + lst_162) + (let-values (((s_260) + (unsafe-car + lst_162)) + ((rest_81) + (unsafe-cdr + lst_162))) + (let-values (((id_47) + (let-values (((id_48) + id_46)) + (let-values (((id_49) + (let-values () + (let-values (((id222_0) + (let-values () + (if (let-values (((or-part_209) + (if (syntax?$1 + s_260) + (symbol? + (syntax-e$1 + s_260)) + #f))) + (if or-part_209 + or-part_209 + (symbol? + s_260))) + s_260 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_14 + s_260))))) + (cons + id222_0 + id_48))))) + (values + id_49))))) + (if (not + #f) + (for-loop_195 + id_47 + rest_81) + id_47))) + id_46))))) + for-loop_195) + null + lst_161))))) + (reverse$1 + id_45))))))))) + (values + spec220_0 + id221_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_14)))))) + (values + id:prefix217_0 + spec218_0 + id219_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_14)))))) + (values + prefix-all-except213_0 + id:prefix214_0 + spec215_0 + id216_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_14))))) + (values + #t + prefix-all-except209_1 + id:prefix210_1 + spec211_1 + id212_1)))))) + (loop_51 + (list + spec211_0) + (let-values (((or-part_210) + top-req_0)) + (if or-part_210 + or-part_210 + req_0)) + phase-shift_6 + space-level_1 + just-meta_0 + just-space_0 + (adjust-all-except3.1 + (syntax-e$1 + id:prefix210_0) + (ids->sym-set + id212_0)) + #f + #f + 'path)))) + (let-values () + (let-values ((() + (begin + (check-nested_0 + 'justspaceless) + (values)))) + (let-values (((ok?_12 + rename223_0 + spec224_0 + id:to225_0 + id:from226_0) + (let-values (((s_261) + req_0)) + (let-values (((orig-s_15) + s_261)) + (let-values (((rename223_1 + spec224_1 + id:to225_1 + id:from226_1) + (let-values (((s_262) + (if (syntax?$1 + s_261) + (syntax-e$1 + s_261) + s_261))) + (if (pair? + s_262) + (let-values (((rename227_0) + (let-values (((s_263) + (car + s_262))) + s_263)) + ((spec228_0 + id:to229_0 + id:from230_0) + (let-values (((s_264) + (cdr + s_262))) + (let-values (((s_150) + (if (syntax?$1 + s_264) + (syntax-e$1 + s_264) + s_264))) + (if (pair? + s_150) + (let-values (((spec231_0) + (let-values (((s_265) + (car + s_150))) + s_265)) + ((id:to232_0 + id:from233_0) + (let-values (((s_266) + (cdr + s_150))) + (let-values (((s_267) + (if (syntax?$1 + s_266) + (syntax-e$1 + s_266) + s_266))) + (if (pair? + s_267) + (let-values (((id:to234_0) + (let-values (((s_268) + (car + s_267))) + (if (let-values (((or-part_211) + (if (syntax?$1 + s_268) + (symbol? + (syntax-e$1 + s_268)) + #f))) + (if or-part_211 + or-part_211 + (symbol? + s_268))) + s_268 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_15 + s_268)))) + ((id:from235_0) + (let-values (((s_269) + (cdr + s_267))) + (let-values (((s_270) + (if (syntax?$1 + s_269) + (syntax-e$1 + s_269) + s_269))) + (if (pair? + s_270) + (let-values (((id:from236_0) + (let-values (((s_152) + (car + s_270))) + (if (let-values (((or-part_212) + (if (syntax?$1 + s_152) + (symbol? + (syntax-e$1 + s_152)) + #f))) + (if or-part_212 + or-part_212 + (symbol? + s_152))) + s_152 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_15 + s_152)))) + (() + (let-values (((s_271) + (cdr + s_270))) + (let-values (((s_272) + (if (syntax?$1 + s_271) + (syntax-e$1 + s_271) + s_271))) + (if (null? + s_272) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_15)))))) + (values + id:from236_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_15)))))) + (values + id:to234_0 + id:from235_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_15)))))) + (values + spec231_0 + id:to232_0 + id:from233_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_15)))))) + (values + rename227_0 + spec228_0 + id:to229_0 + id:from230_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_15))))) + (values + #t + rename223_1 + spec224_1 + id:to225_1 + id:from226_1)))))) + (loop_51 + (list + spec224_0) + (let-values (((or-part_213) + top-req_0)) + (if or-part_213 + or-part_213 + req_0)) + phase-shift_6 + space-level_1 + just-meta_0 + just-space_0 + (adjust-rename4.1 + id:to225_0 + (syntax-e$1 + id:from226_0)) + #f + #f + 'path))))))))))))))))) + (values + result_75))))) + (if (if (not + ((lambda x_60 + (not result_48)) + req_0)) + (not #f) + #f) + (for-loop_192 + result_48 + rest_78) + result_48))) + result_74))))) + for-loop_192) + #t + lst_156))))))) + loop_51) + reqs_0 + #f + phase-shift_5 + '#:none + 'all + #t + #f + #t + #t + 'raw)))))))))))))))))))) + (define-values + (ids->sym-set) + (lambda (ids_4) + (begin + (let-values (((lst_163) ids_4)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_163))) + ((letrec-values (((for-loop_196) + (lambda (table_133 lst_164) + (begin + 'for-loop + (if (pair? lst_164) + (let-values (((id_50) (unsafe-car lst_164)) ((rest_82) (unsafe-cdr lst_164))) + (let-values (((table_134) + (let-values (((table_135) table_133)) + (let-values (((table_136) + (let-values () + (let-values (((key_58 val_44) + (let-values () + (values + (let-values () (syntax-e$1 id_50)) + #t)))) + (hash-set table_135 key_58 val_44))))) + (values table_136))))) + (if (not #f) (for-loop_196 table_134 rest_82) table_134))) + table_133))))) + for-loop_196) + '#hash() + lst_163)))))) + (define-values + (perform-initial-require!.1) + (lambda (bind?31_0 who32_0 mod-path35_0 self36_0 in-stx37_0 m-ns38_0 requires+provides39_0) + (begin + 'perform-initial-require! + (let-values (((mod-path_7) mod-path35_0)) + (let-values (((self_13) self36_0)) + (let-values (((in-stx_0) in-stx37_0)) + (let-values (((m-ns_8) m-ns38_0)) + (let-values (((requires+provides_2) requires+provides39_0)) + (let-values (((bind?_0) bind?31_0)) + (let-values (((who_14) who32_0)) + (let-values () + (let-values (((temp237_0) + (let-values (((mod-path249_0) mod-path_7) ((self250_0) self_13)) + (module-path->mpi.1 '#hasheq() mod-path249_0 self250_0))) + ((temp238_0) #f) + ((self239_0) self_13) + ((in-stx240_0) in-stx_0) + ((m-ns241_0) m-ns_8) + ((temp242_0) 0) + ((temp243_0) 0) + ((requires+provides244_0) requires+provides_2) + ((temp245_0) #t) + ((temp246_0) #t) + ((bind?247_0) bind?_0) + ((who248_0) who_14)) + (perform-require!.1 + #f + bind?247_0 + temp245_0 + #f + #f + temp246_0 + 'all + #t + temp242_0 + requires+provides244_0 + temp243_0 + #f + #f + unsafe-undefined + #t + who248_0 + temp237_0 + temp238_0 + self239_0 + in-stx240_0 + m-ns241_0))))))))))))) + (define-values + (perform-require!.1) + (lambda (adjust46_0 + bind?55_0 + can-be-shadowed?50_0 + copy-variable-as-constant?53_0 + copy-variable-phase-level52_0 + initial-require?51_0 + just-meta44_0 + just-space45_0 + phase-shift41_0 + requires+provides47_0 + run-phase43_0 + run?49_0 + skip-variable-phase-level54_0 + space-level42_0 + visit?48_0 + who56_0 + mpi73_0 + orig-s74_0 + self75_0 + in-stx76_0 + m-ns77_0) + (begin + 'perform-require! + (let-values (((mpi_46) mpi73_0)) + (let-values (((orig-s_16) orig-s74_0)) + (let-values () + (let-values (((in-stx_1) in-stx76_0)) + (let-values (((m-ns_9) m-ns77_0)) + (let-values (((phase-shift_7) phase-shift41_0)) + (let-values (((space-level_2) (if (eq? space-level42_0 unsafe-undefined) '#:none space-level42_0))) + (let-values (((run-phase_6) run-phase43_0)) + (let-values (((just-meta_1) just-meta44_0)) + (let-values (((just-space_1) just-space45_0)) + (let-values (((adjust_1) adjust46_0)) + (let-values (((requires+provides_3) requires+provides47_0)) + (let-values (((visit?_2) visit?48_0)) + (let-values (((run?_2) run?49_0)) + (let-values (((can-be-shadowed?_3) can-be-shadowed?50_0)) + (let-values (((initial-require?_1) initial-require?51_0)) + (let-values (((copy-variable-phase-level_1) copy-variable-phase-level52_0)) + (let-values (((copy-variable-as-constant?_1) copy-variable-as-constant?53_0)) + (let-values (((skip-variable-phase-level_1) skip-variable-phase-level54_0)) + (let-values (((bind?_1) bind?55_0)) + (let-values (((who_15) who56_0)) + (let-values () + (begin + (if log-performance? + (let-values () (start-performance-region 'expand 'require)) + (void)) + (begin0 + (let-values () + (let-values (((module-name_0) + (1/module-path-index-resolve + mpi_46 + #t + orig-s_16))) + (let-values (((bind-in-stx_0) + (if (adjust-rename? adjust_1) + (adjust-rename-to-id adjust_1) + in-stx_1))) + (let-values (((done-syms_0) (if adjust_1 (make-hash) #f))) + (let-values (((m_13) + (namespace->module m-ns_9 module-name_0))) + (let-values ((() + (begin + (if m_13 + (void) + (let-values () + (raise-unknown-module-error + 'require + module-name_0))) + (values)))) + (let-values (((interned-mpi_0) + (if requires+provides_3 + (add-required-module! + requires+provides_3 + mpi_46 + (intern-phase+space-shift + phase-shift_7 + space-level_2) + (module-cross-phase-persistent? + m_13)) + mpi_46))) + (let-values ((() + (begin + (if visit?_2 + (let-values () + (let-values (((m-ns270_0) + m-ns_9) + ((interned-mpi271_0) + interned-mpi_0) + ((phase-shift272_0) + phase-shift_7) + ((run-phase273_0) + run-phase_6)) + (namespace-module-visit!.1 + run-phase273_0 + m-ns270_0 + interned-mpi271_0 + phase-shift272_0))) + (void)) + (values)))) + (let-values ((() + (begin + (if run?_2 + (let-values () + (let-values (((m-ns274_0) + m-ns_9) + ((interned-mpi275_0) + interned-mpi_0) + ((phase-shift276_0) + phase-shift_7) + ((run-phase277_0) + run-phase_6)) + (namespace-module-instantiate!.1 + #f + #t + run-phase277_0 + '#hasheq() + null + #f + m-ns274_0 + interned-mpi275_0 + phase-shift276_0))) + (void)) + (values)))) + (let-values ((() + (begin + (if (not + (let-values (((or-part_214) + visit?_2)) + (if or-part_214 + or-part_214 + run?_2))) + (let-values () + (let-values (((m-ns278_0) + m-ns_9) + ((interned-mpi279_0) + interned-mpi_0) + ((phase-shift280_0) + phase-shift_7) + ((run-phase281_0) + run-phase_6)) + (namespace-module-make-available!.1 + run-phase281_0 + m-ns278_0 + interned-mpi279_0 + phase-shift280_0))) + (void)) + (values)))) + (let-values (((can-bulk-bind?_0) + (if (eq? space-level_2 '#:none) + (if (let-values (((or-part_215) + (not + adjust_1))) + (if or-part_215 + or-part_215 + (let-values (((or-part_216) + (adjust-prefix? + adjust_1))) + (if or-part_216 + or-part_216 + (adjust-all-except? + adjust_1))))) + (not + skip-variable-phase-level_1) + #f) + #f))) + (let-values (((bulk-prefix_1) + (if (adjust-prefix? adjust_1) + (let-values () + (adjust-prefix-sym + adjust_1)) + (if (adjust-all-except? + adjust_1) + (let-values () + (adjust-all-except-prefix-sym + adjust_1)) + (let-values () #f))))) + (let-values (((bulk-excepts_1) + (if (adjust-all-except? + adjust_1) + (let-values () + (adjust-all-except-syms + adjust_1)) + (let-values () + '#hasheq())))) + (let-values (((update-nominals-box_0) + (if can-bulk-bind?_0 + (box null) + #f))) + (let-values ((() + (begin + (let-values (((m251_0) + m_13) + ((bind-in-stx252_0) + bind-in-stx_0) + ((phase-shift253_0) + phase-shift_7) + ((space-level254_0) + space-level_2) + ((m-ns255_0) + m-ns_9) + ((interned-mpi256_0) + interned-mpi_0) + ((module-name257_0) + module-name_0) + ((requires+provides258_0) + requires+provides_3) + ((orig-s259_0) + orig-s_16) + ((temp260_0) + (if requires+provides_3 + (requires+provides-self + requires+provides_3) + #f)) + ((temp261_0) + (if (adjust-only? + adjust_1) + (let-values () + (set->list + (adjust-only-syms + adjust_1))) + (if (adjust-rename? + adjust_1) + (let-values () + (list + (adjust-rename-from-sym + adjust_1))) + (let-values () + #f)))) + ((just-meta262_0) + just-meta_1) + ((just-space263_0) + just-space_1) + ((bind?264_0) + bind?_1) + ((can-bulk-bind?265_0) + can-bulk-bind?_0) + ((bulk-prefix266_0) + bulk-prefix_1) + ((bulk-excepts267_0) + bulk-excepts_1) + ((temp268_0) + (if requires+provides_3 + (if can-bulk-bind?_0 + (lambda (provides_9 + provide-phase+space_4) + (begin + 'temp268 + (let-values (((requires+provides282_0) + requires+provides_3) + ((bind-in-stx283_0) + bind-in-stx_0) + ((temp284_0) + (module-self + m_13)) + ((mpi285_0) + mpi_46) + ((phase-shift286_0) + phase-shift_7) + ((provides287_0) + provides_9) + ((provide-phase+space288_0) + provide-phase+space_4) + ((bulk-prefix289_0) + bulk-prefix_1) + ((bulk-excepts290_0) + bulk-excepts_1) + ((temp291_0) + (if (positive? + (hash-count + bulk-excepts_1)) + done-syms_0 + #f)) + ((can-be-shadowed?292_0) + can-be-shadowed?_3) + ((temp293_0) + (not + initial-require?_1)) + ((orig-s294_0) + orig-s_16) + ((update-nominals-box295_0) + update-nominals-box_0) + ((who296_0) + who_15)) + (add-bulk-required-ids!.1 + update-nominals-box295_0 + can-be-shadowed?292_0 + temp293_0 + bulk-excepts290_0 + orig-s294_0 + bulk-prefix289_0 + temp291_0 + who296_0 + requires+provides282_0 + bind-in-stx283_0 + temp284_0 + mpi285_0 + phase-shift286_0 + provides287_0 + provide-phase+space288_0)))) + #f) + #f)) + ((temp269_0) + (if (let-values (((or-part_217) + (not + can-bulk-bind?_0))) + (if or-part_217 + or-part_217 + copy-variable-phase-level_1)) + (lambda (binding_15 + as-transformer?_4) + (begin + 'temp269 + (let-values (((sym_42) + (module-binding-nominal-sym + binding_15))) + (let-values (((provide-phase+space_5) + (module-binding-nominal-phase+space + binding_15))) + (let-values (((provide-phase_0) + (phase+space-phase + provide-phase+space_5))) + (let-values (((provide-space_0) + (phase+space-space + provide-phase+space_5))) + (let-values (((adjusted-sym_0) + (if (not + (symbol-interned? + sym_42)) + (let-values () + #f) + (if (if skip-variable-phase-level_1 + (if (not + as-transformer?_4) + (equal? + provide-phase_0 + skip-variable-phase-level_1) + #f) + #f) + (let-values () + #f) + (if (not + adjust_1) + (let-values () + sym_42) + (if (adjust-only? + adjust_1) + (let-values () + (if (set-member? + (adjust-only-syms + adjust_1) + sym_42) + (if (hash-set! + done-syms_0 + sym_42 + #t) + sym_42 + #f) + #f)) + (if (adjust-prefix? + adjust_1) + (let-values () + (string->symbol + (string-append + (symbol->string + (adjust-prefix-sym + adjust_1)) + (symbol->string + sym_42)))) + (if (adjust-all-except? + adjust_1) + (let-values () + (if (not + (if (set-member? + (adjust-all-except-syms + adjust_1) + sym_42) + (hash-set! + done-syms_0 + sym_42 + #t) + #f)) + (string->symbol + (string-append + (symbol->string + (adjust-all-except-prefix-sym + adjust_1)) + (symbol->string + sym_42))) + #f)) + (if (adjust-rename? + adjust_1) + (let-values () + (if (eq? + sym_42 + (adjust-rename-from-sym + adjust_1)) + (if (hash-set! + done-syms_0 + sym_42 + #t) + (adjust-rename-to-id + adjust_1) + #f) + #f)) + (void)))))))))) + (let-values (((skip-bind?_0) + (if (if adjusted-sym_0 + requires+provides_3 + #f) + (let-values () + (let-values (((bind-phase_0) + (phase+ + phase-shift_7 + provide-phase_0))) + (let-values (((bind-space_0) + (space+ + provide-space_0 + space-level_2))) + (let-values (((s_273) + (add-space-scope + (datum->syntax$1 + bind-in-stx_0 + adjusted-sym_0) + bind-space_0))) + (let-values (((bound-status_1) + (if initial-require?_1 + (let-values () + #f) + (let-values () + (begin + (adjust-shadow-requires! + requires+provides_3 + s_273 + bind-phase_0 + bind-space_0) + (let-values (((temp297_0) + #t) + ((temp298_0) + #t) + ((requires+provides299_0) + requires+provides_3) + ((s300_0) + s_273) + ((bind-phase301_0) + bind-phase_0) + ((bind-space302_0) + bind-space_0) + ((binding303_0) + binding_15) + ((orig-s304_0) + orig-s_16) + ((temp305_0) + #t) + ((who306_0) + who_15)) + (check-not-defined.1 + #f + temp298_0 + temp297_0 + orig-s304_0 + temp305_0 + binding303_0 + who306_0 + requires+provides299_0 + s300_0 + bind-phase301_0 + bind-space302_0))))))) + (begin + (if (eq? + bound-status_1 + 'defined) + (void) + (let-values () + (let-values (((requires+provides307_0) + requires+provides_3) + ((s308_0) + s_273) + ((temp309_0) + (intern-phase+space + bind-phase_0 + bind-space_0)) + ((binding310_0) + binding_15) + ((can-be-shadowed?311_0) + can-be-shadowed?_3) + ((as-transformer?312_0) + as-transformer?_4)) + (add-defined-or-required-id!.1 + as-transformer?312_0 + can-be-shadowed?311_0 + requires+provides307_0 + s308_0 + temp309_0 + binding310_0)))) + bound-status_1)))))) + (let-values () + #f)))) + (begin + (if (if copy-variable-phase-level_1 + (if (not + as-transformer?_4) + (equal? + provide-phase_0 + copy-variable-phase-level_1) + #f) + #f) + (let-values () + (copy-namespace-value + m-ns_9 + sym_42 + binding_15 + copy-variable-phase-level_1 + phase-shift_7 + copy-variable-as-constant?_1)) + (void)) + (if (not + skip-bind?_0) + adjusted-sym_0 + #f)))))))))) + #f))) + (bind-all-provides!.1 + bind?264_0 + temp268_0 + bulk-excepts267_0 + bulk-prefix266_0 + can-bulk-bind?265_0 + temp260_0 + temp269_0 + orig-s259_0 + just-meta262_0 + just-space263_0 + temp261_0 + m251_0 + bind-in-stx252_0 + phase-shift253_0 + space-level254_0 + m-ns255_0 + interned-mpi256_0 + module-name257_0 + requires+provides258_0)) + (values)))) + (let-values ((() + (begin + (if update-nominals-box_0 + (let-values () + (begin + (let-values (((lst_165) + (unbox + update-nominals-box_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_165))) + ((letrec-values (((for-loop_197) + (lambda (lst_166) + (begin + 'for-loop + (if (pair? + lst_166) + (let-values (((update!_1) + (unsafe-car + lst_166)) + ((rest_83) + (unsafe-cdr + lst_166))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (update!_1)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_197 + rest_83) + (values)))) + (values)))))) + for-loop_197) + lst_165))) + (void))) + (void)) + (values)))) + (let-values (((need-syms_0) + (if (adjust-only? + adjust_1) + (let-values () + (adjust-only-syms + adjust_1)) + (if (adjust-all-except? + adjust_1) + (let-values () + (adjust-all-except-syms + adjust_1)) + (if (adjust-rename? + adjust_1) + (let-values () + (set + (adjust-rename-from-sym + adjust_1))) + (let-values () + #f)))))) + (if (if need-syms_0 + (not + (= + (set-count need-syms_0) + (hash-count + done-syms_0))) + #f) + (let-values () + (begin + (let-values (((ht_109) + need-syms_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-immutable-hash-keys + ht_109))) + ((letrec-values (((for-loop_198) + (lambda (i_158) + (begin + 'for-loop + (if i_158 + (let-values (((sym_43) + (unsafe-immutable-hash-iterate-key + ht_109 + i_158))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (hash-ref + done-syms_0 + sym_43 + #f) + (void) + (let-values () + (raise-syntax-error$1 + who_15 + "not in nested spec" + orig-s_16 + sym_43)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_198 + (unsafe-immutable-hash-iterate-next + ht_109 + i_158)) + (values)))) + (values)))))) + for-loop_198) + (unsafe-immutable-hash-iterate-first + ht_109)))) + (void))) + (void))))))))))))))))))) + (if log-performance? + (let-values () (end-performance-region)) + (void))))))))))))))))))))))))))))) + (define-values + (bind-all-provides!.1) + (lambda (bind?84_0 + bulk-callback89_0 + bulk-excepts87_0 + bulk-prefix86_0 + can-bulk?85_0 + defines-mpi80_0 + filter88_0 + in79_0 + just-meta82_0 + just-space83_0 + only81_0 + m101_0 + in-stx102_0 + phase-shift103_0 + space-level104_0 + ns105_0 + mpi106_0 + module-name107_0 + requires+provides108_0) + (begin + 'bind-all-provides! + (let-values (((m_14) m101_0)) + (let-values (((in-stx_2) in-stx102_0)) + (let-values (((phase-shift_8) phase-shift103_0)) + (let-values (((space-level_3) space-level104_0)) + (let-values (((ns_46) ns105_0)) + (let-values (((mpi_47) mpi106_0)) + (let-values (((module-name_1) module-name107_0)) + (let-values (((requires+provides_4) requires+provides108_0)) + (let-values (((orig-s_17) in79_0)) + (let-values (((defines-mpi_0) defines-mpi80_0)) + (let-values (((only-syms_0) only81_0)) + (let-values (((just-meta_2) just-meta82_0)) + (let-values (((just-space_2) just-space83_0)) + (let-values (((bind?_2) bind?84_0)) + (let-values (((can-bulk?_0) can-bulk?85_0)) + (let-values (((bulk-prefix_2) bulk-prefix86_0)) + (let-values (((bulk-excepts_2) bulk-excepts87_0)) + (let-values (((filter_0) filter88_0)) + (let-values (((bulk-callback_0) bulk-callback89_0)) + (let-values () + (let-values (((self_14) (module-self m_14))) + (let-values (((phase+space-shift_9) + (intern-phase+space-shift phase-shift_8 space-level_3))) + (begin + (let-values (((ht_110) (module-provides m_14))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_110))) + ((letrec-values (((for-loop_199) + (lambda (i_159) + (begin + 'for-loop + (if i_159 + (let-values (((provide-phase+space_6 + provides_10) + (hash-iterate-key+value + ht_110 + i_159))) + (let-values ((() + (let-values () + (if (if (let-values (((or-part_218) + (eq? + just-meta_2 + 'all))) + (if or-part_218 + or-part_218 + (eqv? + just-meta_2 + (phase+space-phase + provide-phase+space_6)))) + (let-values (((or-part_219) + (eq? + just-space_2 + #t))) + (if or-part_219 + or-part_219 + (eqv? + just-space_2 + (phase+space-space + provide-phase+space_6)))) + #f) + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((phase+space_7) + (phase+space+ + provide-phase+space_6 + phase+space-shift_9))) + (let-values (((phase_61) + (phase+space-phase + phase+space_7))) + (let-values (((space_11) + (phase+space-space + phase+space_7))) + (let-values ((() + (begin + (if requires+provides_4 + (let-values () + (add-required-space! + requires+provides_4 + space_11)) + (void)) + (values)))) + (let-values (((need-except?_0) + (if bulk-callback_0 + (bulk-callback_0 + provides_10 + provide-phase+space_6) + #f))) + (if bind?_2 + (let-values () + (begin + (if filter_0 + (let-values () + (begin + (let-values (((lst_167) + (let-values (((or-part_220) + only-syms_0)) + (if or-part_220 + or-part_220 + (hash-keys + provides_10))))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_167))) + ((letrec-values (((for-loop_200) + (lambda (lst_168) + (begin + 'for-loop + (if (pair? + lst_168) + (let-values (((sym_44) + (unsafe-car + lst_168)) + ((rest_84) + (unsafe-cdr + lst_168))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((binding/p_4) + (hash-ref + provides_10 + sym_44 + #f))) + (if binding/p_4 + (let-values () + (let-values (((b_83) + (let-values (((binding/p313_0) + binding/p_4) + ((sym314_0) + sym_44) + ((self315_0) + self_14) + ((mpi316_0) + mpi_47) + ((provide-phase+space317_0) + provide-phase+space_6) + ((phase+space-shift318_0) + phase+space-shift_9)) + (provide-binding-to-require-binding.1 + mpi316_0 + phase+space-shift318_0 + provide-phase+space317_0 + self315_0 + binding/p313_0 + sym314_0)))) + (let-values (((sym_45) + (filter_0 + b_83 + (provided-as-transformer? + binding/p_4)))) + (if (if sym_45 + (not + can-bulk?_0) + #f) + (let-values () + (let-values (((temp319_0) + (add-space-scope + (datum->syntax$1 + in-stx_2 + sym_45) + space_11)) + ((b320_0) + b_83) + ((phase321_0) + phase_61)) + (add-binding!.1 + #f + #f + temp319_0 + b320_0 + phase321_0))) + (void))))) + (void)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_200 + rest_84) + (values)))) + (values)))))) + for-loop_200) + lst_167))) + (void))) + (void)) + (if can-bulk?_0 + (let-values () + (let-values (((bulk-binding-registry_12) + (namespace-bulk-binding-registry + ns_46))) + (let-values (((temp322_0) + (add-space-scope + in-stx_2 + space_11)) + ((temp323_0) + (bulk-binding12.1 + (let-values (((or-part_221) + (if (not + bulk-prefix_2) + (if (zero? + (hash-count + bulk-excepts_2)) + provides_10 + #f) + #f))) + (if or-part_221 + or-part_221 + (if (not + (registered-bulk-provide? + bulk-binding-registry_12 + module-name_1)) + (bulk-provides-add-prefix-remove-exceptions + provides_10 + bulk-prefix_2 + bulk-excepts_2) + #f))) + bulk-prefix_2 + bulk-excepts_2 + self_14 + mpi_47 + provide-phase+space_6 + phase-shift_8 + bulk-binding-registry_12)) + ((phase324_0) + phase_61) + ((orig-s325_0) + orig-s_17) + ((temp326_0) + (if need-except?_0 + defines-mpi_0 + #f))) + (add-bulk-binding!.1 + orig-s325_0 + temp326_0 + temp322_0 + temp323_0 + phase324_0)))) + (void)))) + (void)))))))) + (values))))) + (values))) + (values))))) + (if (not #f) + (for-loop_199 + (hash-iterate-next ht_110 i_159)) + (values)))) + (values)))))) + for-loop_199) + (hash-iterate-first ht_110)))) + (void))))))))))))))))))))))))))) + (define-values + (require-spec-shift-for-syntax) + (lambda (req_1) + (begin + (let-values (((rebuild-req_0) + (lambda (req_2 new-req_0) (begin 'rebuild-req (datum->syntax$1 req_2 new-req_0 req_2 req_2))))) + (letrec-values (((loop_88) + (lambda (shifted?_0) + (begin + 'loop + (lambda (req_3) + (let-values (((fm_1) + (if (pair? (syntax-e$1 req_3)) + (if (identifier? (car (syntax-e$1 req_3))) + (syntax-e$1 (car (syntax-e$1 req_3))) + #f) + #f))) + (let-values (((tmp_26) fm_1)) + (if (equal? tmp_26 'for-meta) + (let-values () + (let-values (((ok?_13 for-meta327_0 phase-level328_0 spec329_0) + (let-values (((s_274) req_3)) + (let-values (((orig-s_18) s_274)) + (let-values (((for-meta327_1 phase-level328_1 spec329_1) + (let-values (((s_275) + (if (syntax?$1 s_274) + (syntax-e$1 s_274) + s_274))) + (if (pair? s_275) + (let-values (((for-meta330_0) + (let-values (((s_276) + (car s_275))) + s_276)) + ((phase-level331_0 spec332_0) + (let-values (((s_277) + (cdr s_275))) + (let-values (((s_278) + (if (syntax?$1 + s_277) + (syntax-e$1 + s_277) + s_277))) + (if (pair? s_278) + (let-values (((phase-level333_0) + (let-values (((s_279) + (car + s_278))) + s_279)) + ((spec334_0) + (let-values (((s_280) + (cdr + s_278))) + (let-values (((s_281) + (if (syntax?$1 + s_280) + (syntax-e$1 + s_280) + s_280))) + (let-values (((flat-s_10) + (to-syntax-list.1 + s_281))) + (if (not + flat-s_10) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_18)) + (let-values () + flat-s_10))))))) + (values + phase-level333_0 + spec334_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_18)))))) + (values + for-meta330_0 + phase-level331_0 + spec332_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_18))))) + (values #t for-meta327_1 phase-level328_1 spec329_1)))))) + (let-values (((p_31) (syntax-e$1 phase-level328_0))) + (begin + (if (phase? p_31) + (void) + (let-values () (raise-syntax-error$1 #f "bad phase" req_3))) + (rebuild-req_0 + req_3 + (list* for-meta327_0 (phase+ p_31 1) (map2 (loop_88 #t) spec329_0))))))) + (if (equal? tmp_26 'for-syntax) + (let-values () + (let-values (((ok?_14 for-syntax335_0 spec336_0) + (let-values (((s_282) req_3)) + (let-values (((orig-s_19) s_282)) + (let-values (((for-syntax335_1 spec336_1) + (let-values (((s_283) + (if (syntax?$1 s_282) + (syntax-e$1 s_282) + s_282))) + (if (pair? s_283) + (let-values (((for-syntax337_0) + (let-values (((s_284) + (car s_283))) + s_284)) + ((spec338_0) + (let-values (((s_285) + (cdr s_283))) + (let-values (((s_286) + (if (syntax?$1 + s_285) + (syntax-e$1 + s_285) + s_285))) + (let-values (((flat-s_11) + (to-syntax-list.1 + s_286))) + (if (not flat-s_11) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_19)) + (let-values () + flat-s_11))))))) + (values for-syntax337_0 spec338_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_19))))) + (values #t for-syntax335_1 spec336_1)))))) + (rebuild-req_0 req_3 (list* 'for-meta 2 (map2 (loop_88 #t) spec336_0))))) + (if (equal? tmp_26 'for-template) + (let-values () + (let-values (((ok?_15 for-template339_0 spec340_0) + (let-values (((s_287) req_3)) + (let-values (((orig-s_20) s_287)) + (let-values (((for-template339_1 spec340_1) + (let-values (((s_288) + (if (syntax?$1 s_287) + (syntax-e$1 s_287) + s_287))) + (if (pair? s_288) + (let-values (((for-template341_0) + (let-values (((s_289) + (car s_288))) + s_289)) + ((spec342_0) + (let-values (((s_290) + (cdr s_288))) + (let-values (((s_291) + (if (syntax?$1 + s_290) + (syntax-e$1 + s_290) + s_290))) + (let-values (((flat-s_12) + (to-syntax-list.1 + s_291))) + (if (not flat-s_12) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_20)) + (let-values () + flat-s_12))))))) + (values for-template341_0 spec342_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_20))))) + (values #t for-template339_1 spec340_1)))))) + (rebuild-req_0 req_3 (list* 'for-meta 0 (map2 (loop_88 #t) spec340_0))))) + (if (equal? tmp_26 'for-label) + (let-values () + (let-values (((ok?_16 for-label343_0 spec344_0) + (let-values (((s_292) req_3)) + (let-values (((orig-s_21) s_292)) + (let-values (((for-label343_1 spec344_1) + (let-values (((s_293) + (if (syntax?$1 s_292) + (syntax-e$1 s_292) + s_292))) + (if (pair? s_293) + (let-values (((for-label345_0) + (let-values (((s_294) + (car + s_293))) + s_294)) + ((spec346_0) + (let-values (((s_295) + (cdr + s_293))) + (let-values (((s_296) + (if (syntax?$1 + s_295) + (syntax-e$1 + s_295) + s_295))) + (let-values (((flat-s_13) + (to-syntax-list.1 + s_296))) + (if (not flat-s_13) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_21)) + (let-values () + flat-s_13))))))) + (values for-label345_0 spec346_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_21))))) + (values #t for-label343_1 spec344_1)))))) + (rebuild-req_0 + req_3 + (list* for-label343_0 (map2 (loop_88 #t) spec344_0))))) + (if (equal? tmp_26 'just-meta) + (let-values () + (let-values (((ok?_17 just-meta347_0 phase-level348_0 spec349_0) + (let-values (((s_297) req_3)) + (let-values (((orig-s_22) s_297)) + (let-values (((just-meta347_1 + phase-level348_1 + spec349_1) + (let-values (((s_298) + (if (syntax?$1 s_297) + (syntax-e$1 s_297) + s_297))) + (if (pair? s_298) + (let-values (((just-meta350_0) + (let-values (((s_299) + (car + s_298))) + s_299)) + ((phase-level351_0 + spec352_0) + (let-values (((s_300) + (cdr + s_298))) + (let-values (((s_301) + (if (syntax?$1 + s_300) + (syntax-e$1 + s_300) + s_300))) + (if (pair? s_301) + (let-values (((phase-level353_0) + (let-values (((s_302) + (car + s_301))) + s_302)) + ((spec354_0) + (let-values (((s_303) + (cdr + s_301))) + (let-values (((s_304) + (if (syntax?$1 + s_303) + (syntax-e$1 + s_303) + s_303))) + (let-values (((flat-s_14) + (to-syntax-list.1 + s_304))) + (if (not + flat-s_14) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_22)) + (let-values () + flat-s_14))))))) + (values + phase-level353_0 + spec354_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_22)))))) + (values + just-meta350_0 + phase-level351_0 + spec352_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_22))))) + (values + #t + just-meta347_1 + phase-level348_1 + spec349_1)))))) + (rebuild-req_0 + req_3 + (list* + just-meta347_0 + phase-level348_0 + (map2 (loop_88 #f) spec349_0))))) + (let-values () + (if shifted?_0 + req_3 + (datum->syntax$1 #f (list 'for-syntax req_3)))))))))))))))) + ((loop_88 #f) req_1)))))) + (define-values + (copy-namespace-value) + (lambda (m-ns_10 adjusted-sym_1 binding_16 phase-level_18 phase-shift_9 as-constant?_1) + (begin + (let-values (((i-ns_0) + (let-values (((m-ns355_0) m-ns_10) + ((temp356_0) (1/module-path-index-resolve (module-binding-module binding_16))) + ((temp357_0) + (phase+ + (phase- (module-binding-phase binding_16) phase-level_18) + (namespace-phase m-ns_10))) + ((temp358_0) #t)) + (namespace->module-namespace.1 #f temp358_0 void m-ns355_0 temp356_0 temp357_0)))) + (let-values (((val_45) + (namespace-get-variable + i-ns_0 + (module-binding-phase binding_16) + (module-binding-sym binding_16) + (lambda () + (error + 'namespace-require/copy + (format + (string-append + "namespace mismatch;\n" + " variable not found\n" + " module: ~a\n" + " variable name: ~s\n" + " phase level: ~s") + (module-binding-module binding_16) + (module-binding-sym binding_16) + (module-binding-phase binding_16))))))) + (namespace-set-variable! + m-ns_10 + (phase+ phase-shift_9 phase-level_18) + adjusted-sym_1 + val_45 + as-constant?_1)))))) + (define-values + (top-level-instance) + (1/make-instance + 'top-level + #f + 'constant + top-level-bind!-id + (lambda (id_23 mpi_48 orig-phase_0 phase-shift_10 ns_47 sym_46 trans?_0 trans-val_0) + (let-values (((phase_62) (phase+ orig-phase_0 phase-shift_10))) + (let-values (((b_84) + (let-values (((mpi4_0) mpi_48) + ((phase5_1) phase_62) + ((sym6_0) sym_46) + ((temp7_2) (root-expand-context-frame-id (namespace-get-root-expand-ctx ns_47)))) + (make-module-binding.1 + #f + null + temp7_2 + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + mpi4_0 + phase5_1 + sym6_0)))) + (begin + (let-values (((id1_3) id_23) ((b2_4) b_84) ((phase3_2) phase_62)) (add-binding!.1 #f #f id1_3 b2_4 phase3_2)) + (if trans?_0 + (let-values () (if trans-val_0 (let-values () (maybe-install-free=id! trans-val_0 id_23 phase_62)) (void))) + (let-values () (namespace-unset-transformer! ns_47 phase_62 sym_46))))))) + top-level-require!-id + (lambda (stx_2 ns_48) + (let-values (((reqs_2) (cdr (syntax->list$1 stx_2)))) + (let-values (((temp8_1) #t) + ((temp9_0) #f) + ((reqs10_0) reqs_2) + ((temp11_0) #f) + ((ns12_0) ns_48) + ((temp13_1) (namespace-self-mpi/no-top-level ns_48)) + ((temp14_2) (namespace-phase ns_48)) + ((temp15_2) (let-values (((temp18_1) #f)) (make-requires+provides.1 #f temp18_1))) + ((temp16_4) 'require) + ((temp17_1) #t)) + (parse-and-perform-requires!.1 + #f + #f + '#hasheq() + temp17_1 + unsafe-undefined + temp8_1 + temp13_1 + #f + temp9_0 + temp16_4 + reqs10_0 + temp11_0 + ns12_0 + temp14_2 + temp15_2)))))) + (define-values + (struct:compiled-in-memory + compiled-in-memory1.1 + compiled-in-memory? + compiled-in-memory-linklet-directory + compiled-in-memory-original-self + compiled-in-memory-requires + compiled-in-memory-provides + compiled-in-memory-phase-to-link-module-uses + compiled-in-memory-compile-time-inspector + compiled-in-memory-phase-to-link-extra-inspectorsss + compiled-in-memory-mpis + compiled-in-memory-syntax-literals + compiled-in-memory-pre-compiled-in-memorys + compiled-in-memory-post-compiled-in-memorys + compiled-in-memory-namespace-scopes + compiled-in-memory-purely-functional?) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'compiled-in-memory + #f + 13 + 0 + #f + (list + (cons + prop:custom-write + (lambda (cim_0 port_7 mode_10) (write (compiled-in-memory-linklet-directory cim_0) port_7)))) + (current-inspector) + #f + '(0 1 2 3 4 5 6 7 8 9 10 11 12) + #f + 'compiled-in-memory))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'linklet-directory) + (make-struct-field-accessor -ref_2 1 'original-self) + (make-struct-field-accessor -ref_2 2 'requires) + (make-struct-field-accessor -ref_2 3 'provides) + (make-struct-field-accessor -ref_2 4 'phase-to-link-module-uses) + (make-struct-field-accessor -ref_2 5 'compile-time-inspector) + (make-struct-field-accessor -ref_2 6 'phase-to-link-extra-inspectorsss) + (make-struct-field-accessor -ref_2 7 'mpis) + (make-struct-field-accessor -ref_2 8 'syntax-literals) + (make-struct-field-accessor -ref_2 9 'pre-compiled-in-memorys) + (make-struct-field-accessor -ref_2 10 'post-compiled-in-memorys) + (make-struct-field-accessor -ref_2 11 'namespace-scopes) + (make-struct-field-accessor -ref_2 12 'purely-functional?)))) + (define-values (version-bytes$1) (string->bytes/utf-8 (version))) + (define-values (vm-bytes$1) (1/linklet-virtual-machine-bytes)) + (define-values (datum->syntax$3) (hash-ref (primitive-table '#%kernel) 'datum->syntax #f)) + (define-values (syntax->datum$3) (hash-ref (primitive-table '#%kernel) 'syntax->datum #f)) + (define-values (syntax-property-symbol-keys$2) (hash-ref (primitive-table '#%kernel) 'syntax-property-symbol-keys #f)) + (define-values (syntax-property$2) (hash-ref (primitive-table '#%kernel) 'syntax-property #f)) + (define-values (syntax-span$2) (hash-ref (primitive-table '#%kernel) 'syntax-span #f)) + (define-values (syntax-position$2) (hash-ref (primitive-table '#%kernel) 'syntax-position #f)) + (define-values (syntax-column$2) (hash-ref (primitive-table '#%kernel) 'syntax-column #f)) + (define-values (syntax-line$2) (hash-ref (primitive-table '#%kernel) 'syntax-line #f)) + (define-values (syntax-source$2) (hash-ref (primitive-table '#%kernel) 'syntax-source #f)) + (define-values (syntax-e$2) (hash-ref (primitive-table '#%kernel) 'syntax-e #f)) + (define-values (1/syntax?) (hash-ref (primitive-table '#%kernel) 'syntax? #f)) + (define-values (correlated?) (lambda (e_35) (begin (1/syntax? e_35)))) + (define-values + (datum->correlated) + (let-values (((datum->correlated_1) + (lambda (d2_0 srcloc1_2) + (begin + 'datum->correlated + (let-values (((d_30) d2_0)) + (let-values (((srcloc_8) srcloc1_2)) (let-values () (datum->syntax$3 #f d_30 srcloc_8)))))))) + (case-lambda + ((d_31) (begin (datum->correlated_1 d_31 #f))) + ((d_32 srcloc1_3) (datum->correlated_1 d_32 srcloc1_3))))) + (define-values (correlated-e) (lambda (e_36) (begin (if (1/syntax? e_36) (syntax-e$2 e_36) e_36)))) + (define-values (correlated-cadr) (lambda (e_37) (begin (car (correlated-e (cdr (correlated-e e_37))))))) + (define-values + (correlated-length) + (lambda (e_38) (begin (let-values (((l_40) (correlated-e e_38))) (if (list? l_40) (length l_40) #f))))) + (define-values + (correlated->list) + (lambda (e_39) + (begin + ((letrec-values (((loop_89) + (lambda (e_40) + (begin + 'loop + (if (list? e_40) + (let-values () e_40) + (if (pair? e_40) + (let-values () (cons (car e_40) (loop_89 (cdr e_40)))) + (if (null? e_40) + (let-values () null) + (if (1/syntax? e_40) + (let-values () (loop_89 (syntax-e$2 e_40))) + (let-values () (error 'correlated->list "not a list")))))))))) + loop_89) + e_39)))) + (define-values + (correlated-property) + (case-lambda + ((e_41 k_42) (begin (syntax-property$2 e_41 k_42))) + ((e_42 k_43 v_161) (syntax-property$2 e_42 k_43 v_161)))) + (define-values + (to-syntax-list.1$1) + (lambda (s_305) + (begin + 'to-syntax-list + (if (list? s_305) + (let-values () s_305) + (if (pair? s_305) + (let-values () (let-values (((r_38) (to-syntax-list.1$1 (cdr s_305)))) (if r_38 (cons (car s_305) r_38) #f))) + (if (1/syntax? s_305) (let-values () (to-syntax-list.1$1 (syntax-e$2 s_305))) (let-values () #f))))))) + (define-values (correlated-source) (lambda (s_120) (begin (syntax-source$2 s_120)))) + (define-values (correlated-line) (lambda (s_184) (begin (syntax-line$2 s_184)))) + (define-values (correlated-column) (lambda (s_306) (begin (syntax-column$2 s_306)))) + (define-values (correlated-position) (lambda (s_218) (begin (syntax-position$2 s_218)))) + (define-values (correlated-span) (lambda (s_121) (begin (syntax-span$2 s_121)))) + (define-values + (struct:correlated-linklet + correlated-linklet1.1 + correlated-linklet? + correlated-linklet-expr + correlated-linklet-name + correlated-linklet-compiled + set-correlated-linklet-compiled!) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'correlated-linklet + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'correlated-linklet))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'expr) + (make-struct-field-accessor -ref_2 1 'name) + (make-struct-field-accessor -ref_2 2 'compiled) + (make-struct-field-mutator -set!_2 2 'compiled)))) + (define-values (make-correlated-linklet) (lambda (expr_10 name_42) (begin (correlated-linklet1.1 expr_10 name_42 #f)))) + (define-values + (force-compile-linklet) + (lambda (l_31) + (begin + (if (correlated-linklet? l_31) + (let-values () + (let-values (((or-part_33) (correlated-linklet-compiled l_31))) + (if or-part_33 + or-part_33 + (let-values (((c_31) (1/compile-linklet (correlated-linklet-expr l_31) (correlated-linklet-name l_31)))) + (begin (set-correlated-linklet-compiled! l_31 c_31) c_31))))) + (let-values () l_31))))) + (define-values + (eval-correlated-linklet) + (lambda (l_41) + (begin + (if (correlated-linklet? l_41) + (let-values () + (eval-linklet$1 (1/compile-linklet (correlated-linklet-expr l_41) (correlated-linklet-name l_41) #f #f '()))) + (let-values () (error 'eval-correlated-linklet "cannot evaluate unknown linklet: ~s" l_41)))))) + (define-values (correlated-linklet-vm-bytes) #"linklet") + (define-values + (struct:faslable-correlated + faslable-correlated2.1 + faslable-correlated? + faslable-correlated-e + faslable-correlated-source + faslable-correlated-position + faslable-correlated-line + faslable-correlated-column + faslable-correlated-span + faslable-correlated-props) + (let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () + (make-struct-type + 'faslable-correlated + #f + 7 + 0 + #f + null + 'prefab + #f + '(0 1 2 3 4 5 6) + #f + 'faslable-correlated))))) + (values + struct:_6 + make-_6 + ?_6 + (make-struct-field-accessor -ref_6 0 'e) + (make-struct-field-accessor -ref_6 1 'source) + (make-struct-field-accessor -ref_6 2 'position) + (make-struct-field-accessor -ref_6 3 'line) + (make-struct-field-accessor -ref_6 4 'column) + (make-struct-field-accessor -ref_6 5 'span) + (make-struct-field-accessor -ref_6 6 'props)))) + (define-values + (struct:faslable-correlated-linklet + faslable-correlated-linklet3.1 + faslable-correlated-linklet? + faslable-correlated-linklet-expr + faslable-correlated-linklet-name) + (let-values (((struct:_35 make-_35 ?_35 -ref_35 -set!_35) + (let-values () + (let-values () + (make-struct-type + 'faslable-correlated-linklet + #f + 2 + 0 + #f + null + 'prefab + #f + '(0 1) + #f + 'faslable-correlated-linklet))))) + (values + struct:_35 + make-_35 + ?_35 + (make-struct-field-accessor -ref_35 0 'expr) + (make-struct-field-accessor -ref_35 1 'name)))) + (define-values + (write-correlated-linklet-bundle-hash) + (lambda (ht_111 o_5) + (begin (let-values (((temp7_3) (->faslable ht_111)) ((o8_0) o_5)) (s-exp->fasl.1 #f #f #f #f temp7_3 o8_0))))) + (define-values + (->faslable) + (lambda (v_67) + (begin + (if (pair? v_67) + (let-values () + (let-values (((a_33) (->faslable (car v_67)))) + (let-values (((d_33) (->faslable (cdr v_67)))) + (if (if (eq? a_33 (car v_67)) (eq? d_33 (cdr v_67)) #f) v_67 (cons a_33 d_33))))) + (if (correlated? v_67) + (let-values () + (faslable-correlated2.1 + (->faslable (correlated-e v_67)) + (correlated-source v_67) + (correlated-position v_67) + (correlated-line v_67) + (correlated-column v_67) + (correlated-span v_67) + (let-values (((lst_89) + '(inferred-name undefined-error-name method-arity-error compiler-hint:cross-module-inline))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_89))) + ((letrec-values (((for-loop_201) + (lambda (ht_112 lst_169) + (begin + 'for-loop + (if (pair? lst_169) + (let-values (((k_44) (unsafe-car lst_169)) ((rest_85) (unsafe-cdr lst_169))) + (let-values (((ht_24) + (let-values (((ht_113) ht_112)) + (let-values (((ht_114) + (let-values () + (let-values (((p_6) + (correlated-property + v_67 + k_44))) + (if p_6 + (hash-set + (let-values (((or-part_99) ht_113)) + (if or-part_99 or-part_99 '#hasheq())) + k_44 + p_6) + ht_113))))) + (values ht_114))))) + (if (not #f) (for-loop_201 ht_24 rest_85) ht_24))) + ht_112))))) + for-loop_201) + #f + lst_89))))) + (if (hash? v_67) + (let-values () + (if (hash-eq? v_67) + (let-values () + (let-values (((ht_115) v_67)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_115))) + ((letrec-values (((for-loop_202) + (lambda (table_137 i_0) + (begin + 'for-loop + (if i_0 + (let-values (((key_59 value_0) (hash-iterate-key+value ht_115 i_0))) + (let-values (((table_107) + (let-values (((table_108) table_137)) + (let-values (((table_138) + (let-values () + (let-values (((key_60 val_46) + (let-values () + (values + (->faslable key_59) + (->faslable + value_0))))) + (hash-set table_108 key_60 val_46))))) + (values table_138))))) + (if (not #f) + (for-loop_202 table_107 (hash-iterate-next ht_115 i_0)) + table_107))) + table_137))))) + for-loop_202) + '#hasheq() + (hash-iterate-first ht_115))))) + (if (hash-eqv? v_67) + (let-values () + (let-values (((ht_116) v_67)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_116))) + ((letrec-values (((for-loop_203) + (lambda (table_139 i_160) + (begin + 'for-loop + (if i_160 + (let-values (((key_61 value_1) (hash-iterate-key+value ht_116 i_160))) + (let-values (((table_12) + (let-values (((table_13) table_139)) + (let-values (((table_14) + (let-values () + (let-values (((key_11 val_2) + (let-values () + (values + (->faslable key_61) + (->faslable + value_1))))) + (hash-set table_13 key_11 val_2))))) + (values table_14))))) + (if (not #f) + (for-loop_203 table_12 (hash-iterate-next ht_116 i_160)) + table_12))) + table_139))))) + for-loop_203) + '#hasheqv() + (hash-iterate-first ht_116))))) + (let-values () + (let-values (((ht_25) v_67)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_25))) + ((letrec-values (((for-loop_23) + (lambda (table_140 i_41) + (begin + 'for-loop + (if i_41 + (let-values (((key_62 value_2) (hash-iterate-key+value ht_25 i_41))) + (let-values (((table_111) + (let-values (((table_112) table_140)) + (let-values (((table_82) + (let-values () + (let-values (((key_63 val_47) + (let-values () + (values + (->faslable key_62) + (->faslable + value_2))))) + (hash-set + table_112 + key_63 + val_47))))) + (values table_82))))) + (if (not #f) + (for-loop_23 table_111 (hash-iterate-next ht_25 i_41)) + table_111))) + table_140))))) + for-loop_23) + '#hash() + (hash-iterate-first ht_25)))))))) + (if (correlated-linklet? v_67) + (let-values () + (faslable-correlated-linklet3.1 + (->faslable (correlated-linklet-expr v_67)) + (->faslable (correlated-linklet-name v_67)))) + (let-values () v_67)))))))) + (define-values + (read-correlated-linklet-bundle-hash) + (lambda (in_0) + (begin + (faslable-> (let-values (((in9_0) in_0) ((temp10_0) #t)) (fasl->s-exp.1 temp10_0 unsafe-undefined #f in9_0)))))) + (define-values + (faslable->) + (lambda (v_93) + (begin + (if (pair? v_93) + (let-values () + (let-values (((a_34) (faslable-> (car v_93)))) + (let-values (((d_34) (faslable-> (cdr v_93)))) + (if (if (eq? a_34 (car v_93)) (eq? d_34 (cdr v_93)) #f) v_93 (cons a_34 d_34))))) + (if (faslable-correlated? v_93) + (let-values () + (let-values (((props_4) (faslable-correlated-props v_93))) + (let-values (((c_32) + (datum->correlated + (faslable-> (faslable-correlated-e v_93)) + (vector + (faslable-correlated-source v_93) + (faslable-correlated-line v_93) + (faslable-correlated-column v_93) + (faslable-correlated-position v_93) + (faslable-correlated-span v_93))))) + (if props_4 + (let-values (((ht_79) props_4)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_79))) + ((letrec-values (((for-loop_103) + (lambda (c_33 i_32) + (begin + 'for-loop + (if i_32 + (let-values (((k_45 p_32) (hash-iterate-key+value ht_79 i_32))) + (let-values (((c_34) + (let-values (((c_9) c_33)) + (let-values (((c_35) + (let-values () + (correlated-property c_9 k_45 p_32)))) + (values c_35))))) + (if (not #f) + (for-loop_103 c_34 (hash-iterate-next ht_79 i_32)) + c_34))) + c_33))))) + for-loop_103) + c_32 + (hash-iterate-first ht_79)))) + c_32)))) + (if (hash? v_93) + (let-values () + (if (hash-eq? v_93) + (let-values () + (let-values (((ht_117) v_93)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_117))) + ((letrec-values (((for-loop_204) + (lambda (table_141 i_161) + (begin + 'for-loop + (if i_161 + (let-values (((key_64 value_3) (hash-iterate-key+value ht_117 i_161))) + (let-values (((table_18) + (let-values (((table_142) table_141)) + (let-values (((table_143) + (let-values () + (let-values (((key_65 val_48) + (let-values () + (values + (faslable-> key_64) + (faslable-> + value_3))))) + (hash-set table_142 key_65 val_48))))) + (values table_143))))) + (if (not #f) + (for-loop_204 table_18 (hash-iterate-next ht_117 i_161)) + table_18))) + table_141))))) + for-loop_204) + '#hasheq() + (hash-iterate-first ht_117))))) + (if (hash-eqv? v_93) + (let-values () + (let-values (((ht_118) v_93)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_118))) + ((letrec-values (((for-loop_86) + (lambda (table_144 i_162) + (begin + 'for-loop + (if i_162 + (let-values (((key_66 value_4) (hash-iterate-key+value ht_118 i_162))) + (let-values (((table_22) + (let-values (((table_145) table_144)) + (let-values (((table_146) + (let-values () + (let-values (((key_67 val_49) + (let-values () + (values + (faslable-> key_66) + (faslable-> + value_4))))) + (hash-set + table_145 + key_67 + val_49))))) + (values table_146))))) + (if (not #f) + (for-loop_86 table_22 (hash-iterate-next ht_118 i_162)) + table_22))) + table_144))))) + for-loop_86) + '#hasheqv() + (hash-iterate-first ht_118))))) + (let-values () + (let-values (((ht_119) v_93)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_119))) + ((letrec-values (((for-loop_205) + (lambda (table_85 i_163) + (begin + 'for-loop + (if i_163 + (let-values (((key_39 value_5) (hash-iterate-key+value ht_119 i_163))) + (let-values (((table_26) + (let-values (((table_65) table_85)) + (let-values (((table_147) + (let-values () + (let-values (((key_68 val_50) + (let-values () + (values + (faslable-> key_39) + (faslable-> + value_5))))) + (hash-set + table_65 + key_68 + val_50))))) + (values table_147))))) + (if (not #f) + (for-loop_205 table_26 (hash-iterate-next ht_119 i_163)) + table_26))) + table_85))))) + for-loop_205) + '#hash() + (hash-iterate-first ht_119)))))))) + (if (faslable-correlated-linklet? v_93) + (let-values () + (make-correlated-linklet + (faslable-> (faslable-correlated-linklet-expr v_93)) + (faslable-> (faslable-correlated-linklet-name v_93)))) + (let-values () v_93)))))))) + (define-values + (write-linklet-bundle) + (lambda (b_44 as-correlated-linklet?_0 linklet-bundle->hash_0 port_8) + (begin + (begin + (write-bytes #"#~" port_8) + (write-bytes (bytes (bytes-length version-bytes$1)) port_8) + (write-bytes version-bytes$1 port_8) + (let-values (((vm-bytes_0) (if as-correlated-linklet?_0 correlated-linklet-vm-bytes vm-bytes$1))) + (begin (write-bytes (bytes (bytes-length vm-bytes_0)) port_8) (write-bytes vm-bytes_0 port_8))) + (write-bytes #"B" port_8) + (write-bytes (make-bytes 20 0) port_8) + (if as-correlated-linklet?_0 + (write-correlated-linklet-bundle-hash (linklet-bundle->hash_0 b_44) port_8) + (1/write-linklet-bundle-hash (linklet-bundle->hash_0 b_44) port_8)))))) + (define-values + (linklet-bundle->bytes) + (lambda (b_17 as-correlated-linklet?_1 linklet-bundle->hash_1) + (begin + (let-values (((o_6) (open-output-bytes))) + (begin + (write-linklet-bundle b_17 as-correlated-linklet?_1 linklet-bundle->hash_1 o_6) + (get-output-bytes o_6)))))) + (define-values + (write-linklet-directory) + (lambda (ld_0 as-correlated-linklet?_2 linklet-directory->hash_0 linklet-bundle->hash_2 port_9) + (begin + (let-values (((vm-bytes_1) (if as-correlated-linklet?_2 correlated-linklet-vm-bytes vm-bytes$1))) + (let-values ((() (begin (write-bytes #"#~" port_9) (values)))) + (let-values ((() (begin (write-byte (bytes-length version-bytes$1) port_9) (values)))) + (let-values ((() (begin (write-bytes version-bytes$1 port_9) (values)))) + (let-values ((() (begin (write-byte (bytes-length vm-bytes_1) port_9) (values)))) + (let-values ((() (begin (write-bytes vm-bytes_1 port_9) (values)))) + (let-values ((() (begin (write-bytes #"D" port_9) (values)))) + (letrec-values (((flatten-linklet-directory_0) + (lambda (ld_1 rev-name-prefix_0 accum_2) + (begin + 'flatten-linklet-directory + (let-values (((new-accum_0 saw-bundle?_0) + (let-values (((ht_120) (linklet-directory->hash_0 ld_1))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_120))) + ((letrec-values (((for-loop_206) + (lambda (accum_3 saw-bundle?_1 i_87) + (begin + 'for-loop + (if i_87 + (let-values (((key_69 value_6) + (hash-iterate-key+value + ht_120 + i_87))) + (let-values (((accum_4 + saw-bundle?_2) + (let-values (((accum_5) + accum_3) + ((saw-bundle?_3) + saw-bundle?_1)) + (let-values (((accum_6 + saw-bundle?_4) + (let-values () + (if (eq? + key_69 + #f) + (let-values () + (values + (cons + (cons + (encode-name + rev-name-prefix_0) + (linklet-bundle->bytes + value_6 + as-correlated-linklet?_2 + linklet-bundle->hash_2)) + accum_5) + #t)) + (let-values () + (values + (flatten-linklet-directory_0 + value_6 + (cons + key_69 + rev-name-prefix_0) + accum_5) + saw-bundle?_3)))))) + (values + accum_6 + saw-bundle?_4))))) + (if (not #f) + (for-loop_206 + accum_4 + saw-bundle?_2 + (hash-iterate-next + ht_120 + i_87)) + (values + accum_4 + saw-bundle?_2)))) + (values accum_3 saw-bundle?_1)))))) + for-loop_206) + accum_2 + #f + (hash-iterate-first ht_120)))))) + (if saw-bundle?_0 + (let-values () new-accum_0) + (let-values () + (cons (cons (encode-name rev-name-prefix_0) #"#f") new-accum_0)))))))) + (let-values (((bundles_0) + (list->vector + (let-values (((temp1_2) (flatten-linklet-directory_0 ld_0 '() '())) + ((temp2_2) (lambda (a_35 b_85) (bytesbytes/utf-8 (symbol->string s_7)))) + (let-values (((len_47) (bytes-length bstr_17))) + (if (< len_47 255) + (list (bytes len_47) bstr_17) + (list (bytes 255) (integer->integer-bytes len_47 4 #f #f) bstr_17)))))))) + ((letrec-values (((loop_90) + (lambda (rev-name_1 accum_7) + (begin + 'loop + (if (null? rev-name_1) + (let-values () (apply bytes-append accum_7)) + (let-values () + (loop_90 (cdr rev-name_1) (append (encode-symbol_0 (car rev-name_1)) accum_7)))))))) + loop_90) + rev-name_0 + '()))))) + (define-values + (compute-btree-size) + (lambda (bundles_1 len_48) + (begin + (let-values (((start_43) 0) ((end_31) len_48) ((inc_25) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_43 end_31 inc_25))) + ((letrec-values (((for-loop_113) + (lambda (result_5 pos_100) + (begin + 'for-loop + (if (< pos_100 end_31) + (let-values (((i_112) pos_100)) + (let-values (((result_76) + (let-values (((result_77) result_5)) + (let-values (((result_78) + (let-values () + (+ + result_77 + (let-values () + (let-values (((nlen_0) + (bytes-length + (car + (vector-ref bundles_1 i_112))))) + (+ nlen_0 (* 5 4)))))))) + (values result_78))))) + (if (not #f) (for-loop_113 result_76 (+ pos_100 inc_25)) result_76))) + result_5))))) + for-loop_113) + 0 + start_43)))))) + (define-values + (compute-btree-node-offsets) + (lambda (bundles_2 len_49 initial-offset_1) + (begin + (let-values (((node-offsets_1) (make-vector len_49))) + (begin + ((letrec-values (((loop_91) + (lambda (lo_2 hi_2 offset_1) + (begin + 'loop + (if (= lo_2 hi_2) + (let-values () offset_1) + (let-values () + (let-values (((mid_0) (quotient (+ lo_2 hi_2) 2))) + (let-values ((() (begin (vector-set! node-offsets_1 mid_0 offset_1) (values)))) + (let-values (((nlen_1) (bytes-length (car (vector-ref bundles_2 mid_0))))) + (let-values (((offset_2) (+ offset_1 4 nlen_1 4 4 4 4))) + (let-values (((offset_3) (loop_91 lo_2 mid_0 offset_2))) + (loop_91 (add1 mid_0) hi_2 offset_3)))))))))))) + loop_91) + 0 + len_49 + initial-offset_1) + node-offsets_1))))) + (define-values + (compute-bundle-offsets) + (lambda (bundles_3 len_50 offset_4) + (begin + (let-values (((bundle-offsets_1) (make-vector len_50))) + (begin + ((letrec-values (((loop_38) + (lambda (i_27 offset_5) + (begin + 'loop + (if (= i_27 len_50) + (void) + (let-values () + (begin + (vector-set! bundle-offsets_1 i_27 offset_5) + (loop_38 + (add1 i_27) + (+ offset_5 (bytes-length (cdr (vector-ref bundles_3 i_27)))))))))))) + loop_38) + 0 + offset_4) + bundle-offsets_1))))) + (define-values + (write-directory-btree) + (lambda (bundles_4 node-offsets_2 bundle-offsets_2 len_51 port_10) + (begin + ((letrec-values (((loop_92) + (lambda (lo_3 hi_3) + (begin + 'loop + (if (= lo_3 hi_3) + (let-values () (void)) + (let-values () + (let-values (((mid_1) (quotient (+ lo_3 hi_3) 2))) + (let-values (((p_33) (vector-ref bundles_4 mid_1))) + (let-values (((nlen_2) (bytes-length (car p_33)))) + (begin + (write-int nlen_2 port_10) + (write-bytes (car p_33) port_10) + (write-int (vector-ref bundle-offsets_2 mid_1) port_10) + (write-int (bytes-length (cdr p_33)) port_10) + (if (> mid_1 lo_3) + (let-values () + (let-values (((left_0) (quotient (+ lo_3 mid_1) 2))) + (write-int (vector-ref node-offsets_2 left_0) port_10))) + (let-values () (write-int 0 port_10))) + (if (< (add1 mid_1) hi_3) + (let-values () + (let-values (((right_0) (quotient (+ (add1 mid_1) hi_3) 2))) + (write-int (vector-ref node-offsets_2 right_0) port_10))) + (let-values () (write-int 0 port_10))) + (loop_92 lo_3 mid_1) + (loop_92 (add1 mid_1) hi_3))))))))))) + loop_92) + 0 + len_51)))) + (define-values (write-int) (lambda (n_29 port_11) (begin (write-bytes (integer->integer-bytes n_29 4 #f #f) port_11)))) + (define-values + (struct:linklet-directory linklet-directory1.1 linklet-directory?$1 linklet-directory-ht) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'linklet-directory + #f + 1 + 0 + #f + (list + (cons + prop:custom-write + (lambda (ld_2 port_7 mode_10) + (write-linklet-directory + ld_2 + (correlated-linklet-directory? ld_2) + linklet-directory->hash$1 + 1/linklet-bundle->hash + port_7)))) + (current-inspector) + #f + '(0) + #f + 'linklet-directory))))) + (values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'ht)))) + (define-values + (struct:linklet-bundle linklet-bundle2.1 1/linklet-bundle? linklet-bundle-ht) + (let-values (((struct:_58 make-_58 ?_58 -ref_58 -set!_58) + (let-values () + (let-values () + (make-struct-type + 'linklet-bundle + #f + 1 + 0 + #f + (list + (cons + prop:custom-write + (lambda (b_47 port_12 mode_11) + (write-linklet-bundle b_47 (correlated-linklet-bundle? b_47) 1/linklet-bundle->hash port_12)))) + (current-inspector) + #f + '(0) + #f + 'linklet-bundle))))) + (values struct:_58 make-_58 ?_58 (make-struct-field-accessor -ref_58 0 'ht)))) + (define-values + (1/hash->linklet-directory) + (lambda (ht_68) + (begin + 'hash->linklet-directory + (let-values () + (let-values () + (begin + (if ((lambda (ht_121) + (if (not (impersonator? ht_121)) + (if (hash? ht_121) (if (immutable? ht_121) (hash-eq? ht_121) #f) #f) + #f)) + ht_68) + (void) + (let-values () + (raise-argument-error + 'hash->linklet-directory + "(and/c hash? hash-eq? immutable? (not/c impersonator?))" + ht_68))) + (let-values (((ht_122) ht_68)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_122))) + ((letrec-values (((for-loop_105) + (lambda (i_165) + (begin + 'for-loop + (if i_165 + (let-values (((k_46 v_162) (hash-iterate-key+value ht_122 i_165))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (not k_46) + (let-values () + (if (1/linklet-bundle? v_162) + (void) + (let-values () + (raise-arguments-error + 'hash->linklet-directory + "value for #f key is not a linklet bundle" + "value" + v_162)))) + (if (symbol? k_46) + (let-values () + (if (linklet-directory?$1 v_162) + (void) + (let-values () + (raise-arguments-error + 'hash->linklet-directory + "value for symbol key is not a linklet directory" + "value" + v_162)))) + (let-values () + (raise-arguments-error + 'hash->linklet-directory + "key in given hash is not #f or a symbol" + "key" + k_46))))) + (values))))) + (values))))) + (if (not #f) (for-loop_105 (hash-iterate-next ht_122 i_165)) (values)))) + (values)))))) + for-loop_105) + (hash-iterate-first ht_122)))) + (void) + (linklet-directory1.1 ht_68))))))) + (define-values + (1/hash->linklet-bundle) + (lambda (ht_76) + (begin + 'hash->linklet-bundle + (let-values () + (let-values () + (begin + (if ((lambda (ht_69) + (if (not (impersonator? ht_69)) + (if (hash? ht_69) (if (immutable? ht_69) (hash-eq? ht_69) #f) #f) + #f)) + ht_76) + (void) + (let-values () + (raise-argument-error + 'hash->linklet-bundle + "(and/c hash? hash-eq? immutable? (not/c impersonator?))" + ht_76))) + (let-values (((ht_123) ht_76)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_123))) + ((letrec-values (((for-loop_112) + (lambda (i_87) + (begin + 'for-loop + (if i_87 + (let-values (((k_22) (hash-iterate-key ht_123 i_87))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (let-values (((or-part_35) + (symbol? k_22))) + (if or-part_35 + or-part_35 + (fixnum? k_22))) + (void) + (let-values () + (raise-arguments-error + 'hash->linklet-bundle + "key in given hash is not a symbol or fixnum" + "key" + k_22)))) + (values))))) + (values))))) + (if (not #f) (for-loop_112 (hash-iterate-next ht_123 i_87)) (values)))) + (values)))))) + for-loop_112) + (hash-iterate-first ht_123)))) + (void) + (linklet-bundle2.1 ht_76))))))) + (define-values + (linklet-directory->hash$1) + (lambda (ld_3) + (begin + 'linklet-directory->hash + (let-values () + (let-values () + (begin + (if (linklet-directory?$1 ld_3) + (void) + (let-values () (raise-argument-error 'linklet-directory->hash "linklet-directory?" ld_3))) + (linklet-directory-ht ld_3))))))) + (define-values + (1/linklet-bundle->hash) + (lambda (ld_4) + (begin + 'linklet-bundle->hash + (let-values () + (let-values () + (begin + (if (1/linklet-bundle? ld_4) + (void) + (let-values () (raise-argument-error 'linklet-bundle->hash "linklet-bundle?" ld_4))) + (linklet-bundle-ht ld_4))))))) + (define-values + (correlated-linklet-directory?) + (lambda (ld_5) + (begin + (let-values (((ht_114) (linklet-directory->hash$1 ld_5))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_114))) + ((letrec-values (((for-loop_208) + (lambda (result_79 i_91) + (begin + 'for-loop + (if i_91 + (let-values (((k_47 v_163) (hash-iterate-key+value ht_114 i_91))) + (let-values (((result_80) + (let-values () + (let-values (((result_63) + (let-values () + (let-values () + (if (not k_47) + (let-values () + (correlated-linklet-bundle? v_163)) + (if (symbol? k_47) + (let-values () + (correlated-linklet-directory? v_163)) + (let-values () #t))))))) + (values result_63))))) + (if (if (not ((lambda x_61 (not result_80)) k_47 v_163)) (not #f) #f) + (for-loop_208 result_80 (hash-iterate-next ht_114 i_91)) + result_80))) + result_79))))) + for-loop_208) + #t + (hash-iterate-first ht_114))))))) + (define-values + (correlated-linklet-bundle?) + (lambda (b_12) + (begin + (let-values (((ht_124) (1/linklet-bundle->hash b_12))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_124))) + ((letrec-values (((for-loop_85) + (lambda (result_81 i_166) + (begin + 'for-loop + (if i_166 + (let-values (((k_48 v_164) (hash-iterate-key+value ht_124 i_166))) + (let-values (((result_65) + (let-values () + (let-values (((result_82) + (let-values () + (let-values () (not (linklet?$1 v_164)))))) + (values result_82))))) + (if (if (not ((lambda x_62 (not result_65)) k_48 v_164)) (not #f) #f) + (for-loop_85 result_65 (hash-iterate-next ht_124 i_166)) + result_65))) + result_81))))) + for-loop_85) + #t + (hash-iterate-first ht_124))))))) + (define-values + (struct:namespace-scopes namespace-scopes1.1 namespace-scopes? namespace-scopes-post namespace-scopes-other) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type 'namespace-scopes #f 2 0 #f null 'prefab #f '(0 1) #f 'namespace-scopes))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'post) + (make-struct-field-accessor -ref_2 1 'other)))) + (define-values + (swap-top-level-scopes) + (lambda (s_307 original-scopes-s_0 new-ns_0) + (begin + (let-values (((old-scs-post_0 old-scs-other_0) + (if (namespace-scopes? original-scopes-s_0) + (values (namespace-scopes-post original-scopes-s_0) (namespace-scopes-other original-scopes-s_0)) + (decode-namespace-scopes original-scopes-s_0)))) + (let-values (((new-scs-post_0 new-scs-other_0) (extract-namespace-scopes/values new-ns_0))) + (syntax-swap-scopes + (syntax-swap-scopes s_307 old-scs-post_0 new-scs-post_0) + old-scs-other_0 + new-scs-other_0)))))) + (define-values + (extract-namespace-scopes/values) + (lambda (ns_49) + (begin + (let-values (((root-ctx_3) (namespace-get-root-expand-ctx ns_49))) + (let-values (((post-expansion-sc_0) (post-expansion-scope (root-expand-context-post-expansion root-ctx_3)))) + (values + (seteq post-expansion-sc_0) + (set-remove (list->seteq (root-expand-context-module-scopes root-ctx_3)) post-expansion-sc_0))))))) + (define-values + (extract-namespace-scopes) + (lambda (ns_50) + (begin + (let-values (((scs-post_0 scs-other_0) (extract-namespace-scopes/values ns_50))) + (namespace-scopes1.1 scs-post_0 scs-other_0))))) + (define-values + (encode-namespace-scopes) + (lambda (ns_48) + (begin + (let-values (((post-expansion-scs_0 other-scs_0) (extract-namespace-scopes/values ns_48))) + (let-values (((post-expansion-s_0) (add-scopes (datum->syntax$1 #f 'post) (set->list post-expansion-scs_0)))) + (let-values (((other-s_0) (add-scopes (datum->syntax$1 #f 'other) (set->list other-scs_0)))) + (datum->syntax$1 #f (vector post-expansion-s_0 other-s_0)))))))) + (define-values + (decode-namespace-scopes) + (lambda (stx_11) + (begin + (let-values (((vec_66) (syntax-e$1 stx_11))) + (values (syntax-scope-set (vector-ref vec_66 0) 0) (syntax-scope-set (vector-ref vec_66 1) 0)))))) + (define-values + (namespace-scopes=?) + (lambda (nss1_0 nss2_0) + (begin + (if (set=? (namespace-scopes-post nss1_0) (namespace-scopes-post nss2_0)) + (set=? (namespace-scopes-other nss1_0) (namespace-scopes-other nss2_0)) + #f)))) + (define-values + (struct:syntax-literals + syntax-literals1.1 + syntax-literals? + syntax-literals-stxes + syntax-literals-count + set-syntax-literals-stxes! + set-syntax-literals-count!) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'syntax-literals + #f + 2 + 0 + #f + null + (current-inspector) + #f + '() + #f + 'syntax-literals))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'stxes) + (make-struct-field-accessor -ref_2 1 'count) + (make-struct-field-mutator -set!_2 0 'stxes) + (make-struct-field-mutator -set!_2 1 'count)))) + (define-values + (struct:header + header2.1 + header? + header-module-path-indexes + header-binding-sym-to-define-sym + header-binding-syms-in-order + header-require-var-to-import-sym + header-import-sym-to-extra-inspectors + header-require-vars-in-order + header-define-and-import-syms + header-syntax-literals + set-header-binding-syms-in-order! + set-header-require-vars-in-order!) + (let-values (((struct:_3 make-_3 ?_3 -ref_3 -set!_3) + (let-values () + (let-values () + (make-struct-type 'header #f 8 0 #f null (current-inspector) #f '(0 1 3 4 6 7) #f 'header))))) + (values + struct:_3 + make-_3 + ?_3 + (make-struct-field-accessor -ref_3 0 'module-path-indexes) + (make-struct-field-accessor -ref_3 1 'binding-sym-to-define-sym) + (make-struct-field-accessor -ref_3 2 'binding-syms-in-order) + (make-struct-field-accessor -ref_3 3 'require-var-to-import-sym) + (make-struct-field-accessor -ref_3 4 'import-sym-to-extra-inspectors) + (make-struct-field-accessor -ref_3 5 'require-vars-in-order) + (make-struct-field-accessor -ref_3 6 'define-and-import-syms) + (make-struct-field-accessor -ref_3 7 'syntax-literals) + (make-struct-field-mutator -set!_3 2 'binding-syms-in-order) + (make-struct-field-mutator -set!_3 5 'require-vars-in-order)))) + (define-values + (struct:variable-use variable-use3.1 variable-use? variable-use-module-use variable-use-sym) + (let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () (make-struct-type 'variable-use #f 2 0 #f null #f #f '(0 1) #f 'variable-use))))) + (values + struct:_6 + make-_6 + ?_6 + (make-struct-field-accessor -ref_6 0 'module-use) + (make-struct-field-accessor -ref_6 1 'sym)))) + (define-values (make-syntax-literals) (lambda () (begin (syntax-literals1.1 null 0)))) + (define-values + (make-header) + (lambda (mpis_14 syntax-literals_0) + (begin + (header2.1 mpis_14 (make-hasheq) null (make-variable-uses) (make-hasheq) null (make-hasheq) syntax-literals_0)))) + (define-values (make-variable-uses) (lambda () (begin (make-hash)))) + (define-values + (add-syntax-literal!) + (lambda (header-or-literals_0 q_0) + (begin + (let-values (((sl_0) + (if (header? header-or-literals_0) + (header-syntax-literals header-or-literals_0) + header-or-literals_0))) + (let-values (((pos_101) (syntax-literals-count sl_0))) + (begin + (set-syntax-literals-count! sl_0 (add1 pos_101)) + (set-syntax-literals-stxes! sl_0 (cons q_0 (syntax-literals-stxes sl_0))) + pos_101)))))) + (define-values + (add-syntax-literals!) + (lambda (sl_1 vec_66) + (begin + (let-values (((pos_102) (syntax-literals-count sl_1))) + (begin + (let-values (((vec_67 len_52) + (let-values (((vec_68) vec_66)) + (begin (check-vector vec_68) (values vec_68 (unsafe-vector-length vec_68)))))) + (begin + #f + ((letrec-values (((for-loop_112) + (lambda (pos_103) + (begin + 'for-loop + (if (unsafe-fx< pos_103 len_52) + (let-values (((e_43) (unsafe-vector-ref vec_67 pos_103))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (add-syntax-literal! sl_1 e_43)) + (values))))) + (values))))) + (if (not #f) (for-loop_112 (unsafe-fx+ 1 pos_103)) (values)))) + (values)))))) + for-loop_112) + 0))) + (void) + (cons pos_102 (vector-length vec_66))))))) + (define-values (syntax-literals-empty?) (lambda (sl_2) (begin (null? (syntax-literals-stxes sl_2))))) + (define-values + (generate-lazy-syntax-literals!.1) + (lambda (skip-deserialize?4_0 sl6_0 mpis7_0 self8_0) + (begin + 'generate-lazy-syntax-literals! + (let-values (((sl_3) sl6_0)) + (let-values (((mpis_15) mpis7_0)) + (let-values (((self_15) self8_0)) + (let-values (((skip-deserialize?_0) skip-deserialize?4_0)) + (let-values () + (list + (list 'define-values (list syntax-literals-id) (list* 'make-vector (syntax-literals-count sl_3) '(#f))) + (list + 'define-values + (list get-syntax-literal!-id) + (list + 'lambda + '(pos) + (list + 'let-values + (list (list '(ready-stx) (list* 'unsafe-vector*-ref syntax-literals-id '(pos)))) + (list + 'if + 'ready-stx + 'ready-stx + (list* + 'begin + (qq-append + (if skip-deserialize?_0 + null + (list + (list + 'if + (list* 'unsafe-vector*-ref deserialized-syntax-vector-id '(0)) + '(void) + (list deserialize-syntax-id bulk-binding-registry-id)))) + (list + (list + 'let-values + (list + (list + '(stx) + (list + 'syntax-module-path-index-shift + (list + 'syntax-shift-phase-level + (list* 'unsafe-vector*-ref deserialized-syntax-vector-id '(pos)) + phase-shift-id) + (add-module-path-index! mpis_15 self_15) + self-id + inspector-id))) + (list* + 'letrec-values + (list + (list + '(loop) + (list + 'lambda + '() + (list + 'begin + (list* 'vector-cas! syntax-literals-id '(pos #f stx)) + (list* + 'let-values + (list (list '(new-stx) (list* 'unsafe-vector*-ref syntax-literals-id '(pos)))) + '((if new-stx new-stx (loop)))))))) + '((loop)))))))))))))))))))) + (define-values + (generate-lazy-syntax-literals-data!) + (lambda (sl_4 mpis_16) + (begin + (if (syntax-literals-empty? sl_4) + (let-values () (list (list* 'define-values (list deserialize-syntax-id) '(#f)))) + (let-values () + (list + (list + 'define-values + (list deserialize-syntax-id) + (list + 'lambda + (list bulk-binding-registry-id) + (list + 'begin + (list + 'vector-copy! + deserialized-syntax-vector-id + ''0 + (list + 'let-values + (list (list* (list inspector-id) '(#f))) + (let-values (((temp21_3) + (vector->immutable-vector (list->vector (reverse$1 (syntax-literals-stxes sl_4))))) + ((mpis22_0) mpis_16)) + (generate-deserialize.1 #f #f mpis22_0 '#hasheq() #t temp21_3)))) + (list* 'set! deserialize-syntax-id '(#f))))))))))) + (define-values (generate-lazy-syntax-literal-lookup) (lambda (pos_104) (begin (list get-syntax-literal!-id pos_104)))) + (define-values + (generate-eager-syntax-literals!) + (lambda (sl_5 mpis_17 base-phase_0 self_16 ns_51) + (begin + (if (syntax-literals-empty? sl_5) + (let-values () #f) + (let-values () + (list + 'let-values + (list + (list + '(ns+stxss) + (let-values (((temp23_1) (cons (encode-namespace-scopes ns_51) (reverse$1 (syntax-literals-stxes sl_5)))) + ((mpis24_1) mpis_17)) + (generate-deserialize.1 #f #f mpis24_1 '#hasheq() #t temp23_1)))) + (list + 'let-values + '(((ns-scope-s) (car ns+stxss))) + (list + 'list->vector + (list* + 'map + (list + 'lambda + '(stx) + (list + 'swap-top-level-scopes + (list + 'syntax-module-path-index-shift + (list 'syntax-shift-phase-level 'stx (list '- base-phase_0 dest-phase-id)) + (add-module-path-index! mpis_17 self_16) + self-id) + 'ns-scope-s + ns-id)) + '((cdr ns+stxss))))))))))) + (define-values + (generate-eager-syntax-literal-lookup) + (lambda (pos_105) (begin (list 'unsafe-vector*-ref syntax-literals-id pos_105)))) + (define-values + (syntax-literals-as-vector) + (lambda (sl_6) (begin (list->vector (reverse$1 (syntax-literals-stxes sl_6)))))) + (define-values + (select-fresh) + (lambda (sym_47 header_0) + (begin + (if (symbol-conflicts? sym_47 header_0) + ((letrec-values (((loop_93) + (lambda (pos_106) + (begin + 'loop + (let-values (((new-sym_0) + (string->symbol + (string-append (number->string pos_106) "/" (symbol->string sym_47))))) + (if (symbol-conflicts? new-sym_0 header_0) (loop_93 (add1 pos_106)) new-sym_0)))))) + loop_93) + 1) + sym_47)))) + (define-values + (symbol-conflicts?) + (lambda (sym_48 header_1) + (begin + (let-values (((or-part_222) (built-in-symbol? sym_48))) + (if or-part_222 or-part_222 (hash-ref (header-define-and-import-syms header_1) sym_48 #f)))))) + (define-values + (register-required-variable-use!.1) + (lambda (defined?10_0 header12_0 mpi13_0 phase14_1 sym15_0 extra-inspector16_0) + (begin + 'register-required-variable-use! + (let-values (((header_2) header12_0)) + (let-values (((mpi_49) mpi13_0)) + (let-values (((phase_63) phase14_1)) + (let-values (((sym_49) sym15_0)) + (let-values (((extra-inspector_4) extra-inspector16_0)) + (let-values (((defined?_3) defined?10_0)) + (let-values () + (let-values (((key_70) (variable-use3.1 (module-use1.1 mpi_49 phase_63) sym_49))) + (let-values (((variable-uses_0) (header-require-var-to-import-sym header_2))) + (let-values (((prev-var-sym_0) (hash-ref variable-uses_0 key_70 #f))) + (let-values (((var-sym_0) + (let-values (((or-part_156) prev-var-sym_0)) + (if or-part_156 + or-part_156 + (let-values (((sym_50) (select-fresh (variable-use-sym key_70) header_2))) + (begin + (hash-set! variable-uses_0 key_70 sym_50) + (set-header-require-vars-in-order! + header_2 + (cons key_70 (header-require-vars-in-order header_2))) + (hash-set! + (header-define-and-import-syms header_2) + sym_50 + (if defined?_3 'defined 'required)) + sym_50)))))) + (begin + (if (if extra-inspector_4 (not prev-var-sym_0) #f) + (let-values () + (let-values (((extra-inspectors_0) (header-import-sym-to-extra-inspectors header_2))) + (hash-update! + extra-inspectors_0 + var-sym_0 + (lambda (s_308) (set-add s_308 extra-inspector_4)) + '#hasheq()))) + (void)) + var-sym_0))))))))))))))) + (define-values + (register-as-defined!) + (lambda (header_3 def-sym_0) (begin (hash-set! (header-define-and-import-syms header_3) def-sym_0 'defined)))) + (define-values + (registered-as-required?) + (lambda (header_4 var-sym_1) + (begin (eq? 'required (hash-ref (header-define-and-import-syms header_4) var-sym_1 #f))))) + (define-values + (generate-links+imports) + (lambda (header_5 phase_64 cctx_0 cross-linklet-inlining?_0) + (begin + (let-values (((mod-use-ht_0 link-mod-uses_0) + (let-values (((lst_170) (header-require-vars-in-order header_5))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_170))) + ((letrec-values (((for-loop_209) + (lambda (ht_125 link-mod-uses_1 lst_171) + (begin + 'for-loop + (if (pair? lst_171) + (let-values (((vu_0) (unsafe-car lst_171)) + ((rest_86) (unsafe-cdr lst_171))) + (let-values (((ht_126 link-mod-uses_2) + (let-values (((ht_127) ht_125) + ((link-mod-uses_3) link-mod-uses_1)) + (let-values (((ht_22 link-mod-uses_4) + (let-values () + (let-values (((mu_2) + (variable-use-module-use + vu_0))) + (if (let-values (((or-part_223) + (hash-ref + ht_127 + mu_2 + #f))) + (if or-part_223 + or-part_223 + (let-values (((or-part_224) + (eq? + (module-use-module + mu_2) + (compile-context-self + cctx_0)))) + (if or-part_224 + or-part_224 + (top-level-module-path-index? + (module-use-module + mu_2)))))) + (values ht_127 link-mod-uses_3) + (values + (hash-set ht_127 mu_2 #t) + (cons mu_2 link-mod-uses_3))))))) + (values ht_22 link-mod-uses_4))))) + (if (not #f) + (for-loop_209 ht_126 link-mod-uses_2 rest_86) + (values ht_126 link-mod-uses_2)))) + (values ht_125 link-mod-uses_1)))))) + for-loop_209) + '#hash() + null + lst_170))))) + (values + link-mod-uses_0 + (reverse$1 + (let-values (((lst_172) link-mod-uses_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_172))) + ((letrec-values (((for-loop_210) + (lambda (fold-var_5 lst_11) + (begin + 'for-loop + (if (pair? lst_11) + (let-values (((mu_3) (unsafe-car lst_11)) ((rest_87) (unsafe-cdr lst_11))) + (let-values (((fold-var_167) + (let-values (((fold-var_168) fold-var_5)) + (let-values (((fold-var_169) + (let-values () + (cons + (let-values () + (reverse$1 + (let-values (((lst_173) + (header-require-vars-in-order + header_5))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_173))) + ((letrec-values (((for-loop_211) + (lambda (fold-var_170 + lst_174) + (begin + 'for-loop + (if (pair? + lst_174) + (let-values (((vu_1) + (unsafe-car + lst_174)) + ((rest_88) + (unsafe-cdr + lst_174))) + (let-values (((fold-var_171) + (let-values (((fold-var_37) + fold-var_170)) + (if (equal? + mu_3 + (variable-use-module-use + vu_1)) + (let-values (((fold-var_38) + fold-var_37)) + (let-values (((fold-var_39) + (let-values () + (cons + (let-values () + (let-values (((var-sym_2) + (hash-ref + (header-require-var-to-import-sym + header_5) + vu_1))) + (let-values (((ex-sym_0) + (variable-use-sym + vu_1))) + (if (eq? + var-sym_2 + ex-sym_0) + var-sym_2 + (list + ex-sym_0 + var-sym_2))))) + fold-var_38)))) + (values + fold-var_39))) + fold-var_37)))) + (if (not #f) + (for-loop_211 + fold-var_171 + rest_88) + fold-var_171))) + fold-var_170))))) + for-loop_211) + null + lst_173))))) + fold-var_168)))) + (values fold-var_169))))) + (if (not #f) (for-loop_210 fold-var_167 rest_87) fold-var_167))) + fold-var_5))))) + for-loop_210) + null + lst_172)))) + (reverse$1 + (let-values (((lst_31) link-mod-uses_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_31))) + ((letrec-values (((for-loop_212) + (lambda (fold-var_172 lst_117) + (begin + 'for-loop + (if (pair? lst_117) + (let-values (((mu_4) (unsafe-car lst_117)) ((rest_89) (unsafe-cdr lst_117))) + (let-values (((fold-var_107) + (let-values (((fold-var_173) fold-var_172)) + (let-values (((fold-var_174) + (let-values () + (cons + (let-values () + (let-values (((extra-inspectorss_0) + (let-values (((lst_175) + (header-require-vars-in-order + header_5))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_175))) + ((letrec-values (((for-loop_213) + (lambda (table_148 + lst_176) + (begin + 'for-loop + (if (pair? + lst_176) + (let-values (((vu_2) + (unsafe-car + lst_176)) + ((rest_90) + (unsafe-cdr + lst_176))) + (let-values (((table_149) + (let-values (((table_150) + table_148)) + (if (equal? + mu_4 + (variable-use-module-use + vu_2)) + (let-values (((id*_5) + (hash-ref + (header-require-var-to-import-sym + header_5) + vu_2))) + (begin + #t + ((letrec-values (((for-loop_214) + (lambda (table_151) + (begin + 'for-loop + (let-values (((var-sym_3) + id*_5)) + (let-values (((table_152) + (let-values (((id*_6) + (hash-ref + (header-import-sym-to-extra-inspectors + header_5) + var-sym_3 + #f))) + (begin + #t + ((letrec-values (((for-loop_136) + (lambda (table_153) + (begin + 'for-loop + (let-values (((extra-inspectors_1) + id*_6)) + (let-values (((table_154) + (let-values (((table_155) + table_153)) + (if (let-values (((or-part_225) + extra-inspectors_1)) + (if or-part_225 + or-part_225 + cross-linklet-inlining?_0)) + (let-values (((table_156) + table_155)) + (let-values (((table_157) + (let-values () + (let-values (((key_71 + val_51) + (let-values () + (values + var-sym_3 + extra-inspectors_1)))) + (hash-set + table_156 + key_71 + val_51))))) + (values + table_157))) + table_155)))) + table_154)))))) + for-loop_136) + table_151))))) + table_152)))))) + for-loop_214) + table_150))) + table_150)))) + (if (not + #f) + (for-loop_213 + table_149 + rest_90) + table_149))) + table_148))))) + for-loop_213) + '#hash() + lst_175))))) + (if (hash-count extra-inspectorss_0) + extra-inspectorss_0 + #f))) + fold-var_173)))) + (values fold-var_174))))) + (if (not #f) (for-loop_212 fold-var_107 rest_89) fold-var_107))) + fold-var_172))))) + for-loop_212) + null + lst_31)))) + (reverse$1 + (let-values (((lst_177) (header-require-vars-in-order header_5))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_177))) + ((letrec-values (((for-loop_215) + (lambda (fold-var_175 lst_178) + (begin + 'for-loop + (if (pair? lst_178) + (let-values (((vu_3) (unsafe-car lst_178)) ((rest_91) (unsafe-cdr lst_178))) + (let-values (((fold-var_176) + (let-values (((fold-var_177) fold-var_175)) + (if (let-values (((mod_2) + (module-use-module + (variable-use-module-use vu_3)))) + (let-values (((or-part_226) + (eq? mod_2 (compile-context-self cctx_0)))) + (if or-part_226 + or-part_226 + (top-level-module-path-index? mod_2)))) + (let-values (((fold-var_178) fold-var_177)) + (let-values (((fold-var_179) + (let-values () + (cons + (let-values () + (let-values (((var-sym_4) + (hash-ref + (header-require-var-to-import-sym + header_5) + vu_3))) + (let-values (((ex-sym_1) + (variable-use-sym vu_3))) + (if (eq? var-sym_4 ex-sym_1) + var-sym_4 + (list var-sym_4 ex-sym_1))))) + fold-var_178)))) + (values fold-var_179))) + fold-var_177)))) + (if (not #f) (for-loop_215 fold-var_176 rest_91) fold-var_176))) + fold-var_175))))) + for-loop_215) + null + lst_177))))))))) + (define-values + (instance-imports) + (list ns-id phase-shift-id self-id inspector-id bulk-binding-registry-id set-transformer!-id)) + (define-values + (make-instance-instance.1) + (lambda (bulk-binding-registry5_0 inspector4_0 namespace1_0 phase-shift2_0 self3_0 set-transformer!6_0) + (begin + 'make-instance-instance + (let-values (((ns_52) namespace1_0)) + (let-values (((phase-shift_11) phase-shift2_0)) + (let-values (((self_17) self3_0)) + (let-values (((inspector_13) inspector4_0)) + (let-values (((bulk-binding-registry_13) bulk-binding-registry5_0)) + (let-values (((set-transformer!_0) set-transformer!6_0)) + (let-values () + (1/make-instance + 'instance + #f + 'constant + ns-id + ns_52 + phase-shift-id + phase-shift_11 + self-id + self_17 + inspector-id + inspector_13 + bulk-binding-registry-id + bulk-binding-registry_13 + set-transformer!-id + set-transformer!_0))))))))))) + (define-values + (make-module-body-instance-instance.1) + (lambda (set-transformer!14_0) + (begin + 'make-module-body-instance-instance + (let-values (((set-transformer!_1) set-transformer!14_0)) + (let-values () (1/make-instance 'body-instance #f 'constant set-transformer!-id set-transformer!_1)))))) + (define-values + (empty-syntax-literals-instance) + (1/make-instance + 'empty-stx + #f + 'constant + get-syntax-literal!-id + (lambda (pos_107) #f) + 'get-encoded-root-expand-ctx + #f)) + (void (1/instance-describe-variable! empty-syntax-literals-instance get-syntax-literal!-id '(procedure/succeeds 2))) + (define-values + (empty-module-body-instance) + (let-values (((temp17_2) (lambda (name_43 val_52) (void)))) (make-module-body-instance-instance.1 temp17_2))) + (void (1/instance-describe-variable! empty-module-body-instance set-transformer!-id '(procedure/succeeds 4))) + (define-values + (empty-top-syntax-literal-instance) + (1/make-instance 'top-syntax-literal #f 'constant mpi-vector-id #f syntax-literals-id #f)) + (define-values + (empty-syntax-literals-data-instance) + (1/make-instance 'empty-stx-data #f 'constant deserialized-syntax-vector-id (vector) deserialize-syntax-id void)) + (define-values + (empty-instance-instance) + (let-values (((temp18_2) #f) ((temp19_0) #f) ((temp20_1) #f) ((temp21_4) #f) ((temp22_3) #f) ((temp23_2) #f)) + (make-instance-instance.1 temp22_3 temp21_4 temp18_2 temp19_0 temp20_1 temp23_2))) + (define-values + (eager-instance-imports) + (list* ns-id dest-phase-id self-id bulk-binding-registry-id inspector-id '(swap-top-level-scopes))) + (define-values + (make-eager-instance-instance.1) + (lambda (bulk-binding-registry4_0 dest-phase2_0 inspector5_0 namespace1_1 self3_1) + (begin + 'make-eager-instance-instance + (let-values (((ns_53) namespace1_1)) + (let-values (((dest-phase_0) dest-phase2_0)) + (let-values (((self_5) self3_1)) + (let-values (((bulk-binding-registry_14) bulk-binding-registry4_0)) + (let-values (((inspector_14) inspector5_0)) + (let-values () + (1/make-instance + 'instance + #f + 'constant + ns-id + ns_53 + dest-phase-id + dest-phase_0 + self-id + self_5 + bulk-binding-registry-id + bulk-binding-registry_14 + inspector-id + inspector_14 + 'swap-top-level-scopes + swap-top-level-scopes)))))))))) + (define-values + (empty-eager-instance-instance) + (let-values (((temp12_1) #f) ((temp13_2) #f) ((temp14_3) #f) ((temp15_3) #f) ((temp16_5) #f)) + (make-eager-instance-instance.1 temp15_3 temp13_2 temp16_5 temp12_1 temp14_3))) + (define-values + (self-quoting-in-linklet?) + (lambda (datum_1) + (begin + (let-values (((or-part_1) (number? datum_1))) + (if or-part_1 + or-part_1 + (let-values (((or-part_2) (boolean? datum_1))) + (if or-part_2 + or-part_2 + (let-values (((or-part_12) (string? datum_1))) (if or-part_12 or-part_12 (bytes? datum_1)))))))))) + (define-values (datum->syntax$2) (hash-ref (primitive-table '#%kernel) 'datum->syntax #f)) + (define-values (syntax->datum$2) (hash-ref (primitive-table '#%kernel) 'syntax->datum #f)) + (define-values (syntax-property-symbol-keys$1) (hash-ref (primitive-table '#%kernel) 'syntax-property-symbol-keys #f)) + (define-values (1/syntax-property) (hash-ref (primitive-table '#%kernel) 'syntax-property #f)) + (define-values (syntax-span$1) (hash-ref (primitive-table '#%kernel) 'syntax-span #f)) + (define-values (syntax-position$1) (hash-ref (primitive-table '#%kernel) 'syntax-position #f)) + (define-values (syntax-column$1) (hash-ref (primitive-table '#%kernel) 'syntax-column #f)) + (define-values (syntax-line$1) (hash-ref (primitive-table '#%kernel) 'syntax-line #f)) + (define-values (syntax-source$1) (hash-ref (primitive-table '#%kernel) 'syntax-source #f)) + (define-values (syntax-e$3) (hash-ref (primitive-table '#%kernel) 'syntax-e #f)) + (define-values (syntax?$2) (hash-ref (primitive-table '#%kernel) 'syntax? #f)) + (define-values + (srcloc->vector) + (lambda (s_52) + (begin + (if s_52 + (vector (srcloc-source s_52) (srcloc-line s_52) (srcloc-column s_52) (srcloc-position s_52) (srcloc-span s_52)) + #f)))) + (define-values (keep-source-locations?) #f) + (define-values + (correlate*) + (lambda (stx_9 s-exp_0) + (begin (if (1/syntax-srcloc stx_9) (datum->correlated s-exp_0 (srcloc->vector (1/syntax-srcloc stx_9))) s-exp_0)))) + (define-values (correlate~) (lambda (stx_10 s-exp_1) (begin s-exp_1))) + (define-values + (correlate/app) + (lambda (stx_12 s-exp_2) (begin (if keep-source-locations? (correlate* stx_12 s-exp_2) (correlate~ stx_12 s-exp_2))))) + (define-values (->correlated) (lambda (s_307) (begin (datum->correlated s_307 #f)))) + (define-values + (correlate-source-name) + (lambda (sym_51 e-sym_0) + (begin (if (eq? sym_51 e-sym_0) sym_51 (correlated-property (datum->correlated sym_51 #f) 'source-name e-sym_0))))) + (define-values (compile-keep-source-locations!) (lambda (on?_0) (begin (set! keep-source-locations? on?_0)))) + (define-values + (compile$2) + (let-values (((compile_0) + (lambda (p3_0 cctx4_0 name1_1 result-used?2_0) + (begin + 'compile + (let-values (((p_34) p3_0)) + (let-values (((cctx_1) cctx4_0)) + (let-values (((name_44) name1_1)) + (let-values (((result-used?_0) result-used?2_0)) + (let-values () + (let-values (((compile_1) + (lambda (p_35 name_45 result-used?_1) + (begin 'compile (compile$2 p_35 cctx_1 name_45 result-used?_1))))) + (let-values (((s_4) (parsed-s p_34))) + (if (parsed-id? p_34) + (let-values () + (let-values (((p19_0) p_34) ((cctx20_0) cctx_1)) + (compile-identifier.1 #f #f p19_0 cctx20_0))) + (if (parsed-lambda? p_34) + (let-values () + (if result-used?_0 + (let-values () + (add-lambda-properties + (correlate* + s_4 + (list* + 'lambda + (compile-lambda + (parsed-lambda-keys p_34) + (parsed-lambda-body p_34) + cctx_1))) + name_44 + s_4)) + (let-values () (correlate~ s_4 ''unused-lambda)))) + (if (parsed-case-lambda? p_34) + (let-values () + (if result-used?_0 + (let-values () + (add-lambda-properties + (correlate* + s_4 + (list* + 'case-lambda + (reverse$1 + (let-values (((lst_87) (parsed-case-lambda-clauses p_34))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_87))) + ((letrec-values (((for-loop_105) + (lambda (fold-var_34 lst_88) + (begin + 'for-loop + (if (pair? lst_88) + (let-values (((clause_0) + (unsafe-car lst_88)) + ((rest_42) + (unsafe-cdr lst_88))) + (let-values (((fold-var_77) + (let-values (((fold-var_78) + fold-var_34)) + (let-values (((fold-var_28) + (let-values () + (cons + (let-values () + (compile-lambda + (car + clause_0) + (cadr + clause_0) + cctx_1)) + fold-var_78)))) + (values + fold-var_28))))) + (if (not #f) + (for-loop_105 fold-var_77 rest_42) + fold-var_77))) + fold-var_34))))) + for-loop_105) + null + lst_87)))))) + name_44 + s_4)) + (let-values () (correlate~ s_4 ''unused-case-lambda)))) + (if (parsed-app? p_34) + (let-values () + (let-values (((rands_0) (parsed-app-rands p_34))) + (correlate/app + s_4 + (cons + (compile_1 (parsed-app-rator p_34) #f #t) + (reverse$1 + (let-values (((lst_89) rands_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_89))) + ((letrec-values (((for-loop_201) + (lambda (fold-var_180 lst_169) + (begin + 'for-loop + (if (pair? lst_169) + (let-values (((r_39) (unsafe-car lst_169)) + ((rest_85) + (unsafe-cdr lst_169))) + (let-values (((fold-var_181) + (let-values (((fold-var_123) + fold-var_180)) + (let-values (((fold-var_124) + (let-values () + (cons + (let-values () + (compile_1 + r_39 + #f + #t)) + fold-var_123)))) + (values + fold-var_124))))) + (if (not #f) + (for-loop_201 fold-var_181 rest_85) + fold-var_181))) + fold-var_180))))) + for-loop_201) + null + lst_89)))))))) + (if (parsed-if? p_34) + (let-values () + (let-values (((tst-e_0) (compile_1 (parsed-if-tst p_34) #f #f))) + (if (eq? (correlated-e tst-e_0) #t) + (let-values () + (compile_1 (parsed-if-thn p_34) name_44 result-used?_0)) + (if (eq? (correlated-e tst-e_0) #f) + (let-values () + (compile_1 (parsed-if-els p_34) name_44 result-used?_0)) + (let-values () + (correlate~ + s_4 + (list + 'if + tst-e_0 + (compile_1 (parsed-if-thn p_34) name_44 result-used?_0) + (compile_1 (parsed-if-els p_34) name_44 result-used?_0)))))))) + (if (parsed-with-continuation-mark? p_34) + (let-values () + (correlate~ + s_4 + (list + 'with-continuation-mark + (compile_1 (parsed-with-continuation-mark-key p_34) #f #t) + (compile_1 (parsed-with-continuation-mark-val p_34) #f #t) + (compile_1 + (parsed-with-continuation-mark-body p_34) + name_44 + result-used?_0)))) + (if (parsed-begin0? p_34) + (let-values () + (correlate~ + s_4 + (list* + 'begin0 + (compile_1 (car (parsed-begin0-body p_34)) name_44 result-used?_0) + (reverse$1 + (let-values (((lst_179) (cdr (parsed-begin0-body p_34)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_179))) + ((letrec-values (((for-loop_129) + (lambda (fold-var_182 lst_105) + (begin + 'for-loop + (if (pair? lst_105) + (let-values (((e_44) + (unsafe-car lst_105)) + ((rest_92) + (unsafe-cdr lst_105))) + (let-values (((fold-var_7) + (let-values (((fold-var_183) + fold-var_182)) + (let-values (((fold-var_13) + (let-values () + (cons + (let-values () + (compile_1 + e_44 + #f + #f)) + fold-var_183)))) + (values + fold-var_13))))) + (if (not #f) + (for-loop_129 fold-var_7 rest_92) + fold-var_7))) + fold-var_182))))) + for-loop_129) + null + lst_179))))))) + (if (parsed-begin? p_34) + (let-values () + (correlate~ + s_4 + (compile-begin + (parsed-begin-body p_34) + cctx_1 + name_44 + result-used?_0))) + (if (parsed-set!? p_34) + (let-values () + (correlate~ + s_4 + (let-values (((temp21_5) (parsed-set!-id p_34)) + ((cctx22_0) cctx_1) + ((temp23_3) #t) + ((temp24_0) + (compile_1 + (parsed-set!-rhs p_34) + (parsed-s (parsed-set!-id p_34)) + #t))) + (compile-identifier.1 temp24_0 temp23_3 temp21_5 cctx22_0)))) + (if (parsed-let-values? p_34) + (let-values () + (let-values (((p25_0) p_34) + ((cctx26_0) cctx_1) + ((name27_0) name_44) + ((temp28_2) #f) + ((result-used?29_0) result-used?_0)) + (compile-let.1 + temp28_2 + p25_0 + cctx26_0 + name27_0 + result-used?29_0))) + (if (parsed-letrec-values? p_34) + (let-values () + (let-values (((p30_1) p_34) + ((cctx31_0) cctx_1) + ((name32_0) name_44) + ((temp33_0) #t) + ((result-used?34_0) result-used?_0)) + (compile-let.1 + temp33_0 + p30_1 + cctx31_0 + name32_0 + result-used?34_0))) + (if (parsed-quote? p_34) + (let-values () + (let-values (((datum_2) (parsed-quote-datum p_34))) + (if (self-quoting-in-linklet? datum_2) + (let-values () (correlate~ s_4 datum_2)) + (let-values () + (correlate~ s_4 (list 'quote datum_2)))))) + (if (parsed-quote-syntax? p_34) + (let-values () + (if result-used?_0 + (compile-quote-syntax + (parsed-quote-syntax-datum p_34) + cctx_1) + (correlate~ s_4 ''syntax))) + (if (parsed-#%variable-reference? p_34) + (let-values () + (let-values (((id_51) + (parsed-#%variable-reference-id p_34))) + (correlate~ + s_4 + (if id_51 + (list + '#%variable-reference + (let-values (((id35_0) id_51) ((cctx36_0) cctx_1)) + (compile-identifier.1 #f #f id35_0 cctx36_0))) + '(#%variable-reference))))) + (let-values () + (error + "unrecognized parsed form:" + p_34))))))))))))))))))))))))))) + (case-lambda + ((p_36 cctx_2) (begin 'compile (compile_0 p_36 cctx_2 #f #t))) + ((p_37 cctx_3 name_46 result-used?2_1) (compile_0 p_37 cctx_3 name_46 result-used?2_1)) + ((p_38 cctx_4 name1_2) (compile_0 p_38 cctx_4 name1_2 #t))))) + (define-values + (compile-lambda) + (lambda (formals_0 bodys_0 cctx_5) (begin (list formals_0 (compile-sequence bodys_0 cctx_5 #f #t))))) + (define-values + (compile-sequence) + (lambda (bodys_1 cctx_6 name_47 result-used?_2) + (begin + (if (null? (cdr bodys_1)) + (compile$2 (car bodys_1) cctx_6 name_47 result-used?_2) + (compile-begin bodys_1 cctx_6 name_47 result-used?_2))))) + (define-values + (compile-begin) + (lambda (es_0 cctx_7 name_48 result-used?_3) + (begin + (let-values (((used-pos_0) (sub1 (length es_0)))) + (list* + 'begin + (reverse$1 + (let-values (((lst_180) es_0) ((start_27) 0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_180))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_27))) + ((letrec-values (((for-loop_204) + (lambda (fold-var_184 lst_181 pos_108) + (begin + 'for-loop + (if (if (pair? lst_181) #t #f) + (let-values (((e_6) (unsafe-car lst_181)) + ((rest_93) (unsafe-cdr lst_181)) + ((i_120) pos_108)) + (let-values (((fold-var_185) + (let-values (((fold-var_186) fold-var_184)) + (let-values (((fold-var_187) + (let-values () + (cons + (let-values () + (let-values (((used?_0) + (= i_120 used-pos_0))) + (compile$2 + e_6 + cctx_7 + (if used?_0 name_48 #f) + (if used?_0 result-used?_3 #f)))) + fold-var_186)))) + (values fold-var_187))))) + (if (not #f) (for-loop_204 fold-var_185 rest_93 (+ pos_108 1)) fold-var_185))) + fold-var_184))))) + for-loop_204) + null + lst_180 + start_27))))))))) + (define-values + (add-lambda-properties) + (lambda (s_309 inferred-name_0 orig-s_23) + (begin + (letrec-values (((simplify-name_0) + (lambda (v_165) + (begin + 'simplify-name + (if (pair? v_165) + (let-values () + (let-values (((n1_0) (simplify-name_0 (car v_165)))) + (let-values (((n2_0) (simplify-name_0 (cdr v_165)))) (if (eq? n1_0 n2_0) n1_0 v_165)))) + (let-values () v_165)))))) + (let-values (((name_49) + (let-values (((or-part_158) + (let-values (((v_166) + (simplify-name_0 (syntax-property$1 orig-s_23 'inferred-name)))) + (if (let-values (((or-part_160) (symbol? v_166))) + (if or-part_160 + or-part_160 + (let-values (((or-part_227) + (if (syntax?$1 v_166) (symbol? (syntax-e$1 v_166)) #f))) + (if or-part_227 or-part_227 (void? v_166))))) + v_166 + #f)))) + (if or-part_158 or-part_158 inferred-name_0)))) + (let-values (((named-s_0) + (if name_49 + (correlated-property + (->correlated s_309) + 'inferred-name + (if (syntax?$1 name_49) (syntax-e$1 name_49) name_49)) + s_309))) + (let-values (((as-method_0) (syntax-property$1 orig-s_23 'method-arity-error))) + (if as-method_0 + (correlated-property (->correlated named-s_0) 'method-arity-error as-method_0) + named-s_0)))))))) + (define-values + (compile-let.1) + (lambda (rec?5_0 p7_0 cctx8_0 name9_0 result-used?10_0) + (begin + 'compile-let + (let-values (((p_39) p7_0)) + (let-values (((cctx_8) cctx8_0)) + (let-values (((name_50) name9_0)) + (let-values (((rec?_0) rec?5_0)) + (let-values (((result-used?_4) result-used?10_0)) + (let-values () + (let-values (((body_0) (parsed-let_-values-body p_39))) + (correlate~ + (parsed-s p_39) + (list + (if rec?_0 'letrec-values 'let-values) + (reverse$1 + (let-values (((lst_182) (parsed-let_-values-clauses p_39)) + ((lst_183) (parsed-let_-values-idss p_39))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_182))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_183))) + ((letrec-values (((for-loop_216) + (lambda (fold-var_188 lst_184 lst_185) + (begin + 'for-loop + (if (if (pair? lst_184) (pair? lst_185) #f) + (let-values (((clause_1) (unsafe-car lst_184)) + ((rest_94) (unsafe-cdr lst_184)) + ((ids_5) (unsafe-car lst_185)) + ((rest_95) (unsafe-cdr lst_185))) + (let-values (((fold-var_189) + (let-values (((fold-var_190) fold-var_188)) + (let-values (((fold-var_191) + (let-values () + (cons + (let-values () + (list + (if rec?_0 + (reverse$1 + (let-values (((lst_186) + (car + clause_1)) + ((lst_187) + ids_5)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_186))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_187))) + ((letrec-values (((for-loop_217) + (lambda (fold-var_192 + lst_188 + lst_172) + (begin + 'for-loop + (if (if (pair? + lst_188) + (pair? + lst_172) + #f) + (let-values (((sym_52) + (unsafe-car + lst_188)) + ((rest_96) + (unsafe-cdr + lst_188)) + ((id_52) + (unsafe-car + lst_172)) + ((rest_97) + (unsafe-cdr + lst_172))) + (let-values (((fold-var_193) + (let-values (((fold-var_167) + fold-var_192)) + (let-values (((fold-var_168) + (let-values () + (cons + (let-values () + (add-undefined-error-name-property + sym_52 + id_52)) + fold-var_167)))) + (values + fold-var_168))))) + (if (not + #f) + (for-loop_217 + fold-var_193 + rest_96 + rest_97) + fold-var_193))) + fold-var_192))))) + for-loop_217) + null + lst_186 + lst_187)))) + (car clause_1)) + (compile$2 + (cadr clause_1) + cctx_8 + (if (= 1 (length ids_5)) + (car ids_5) + #f)))) + fold-var_190)))) + (values fold-var_191))))) + (if (not #f) + (for-loop_216 fold-var_189 rest_94 rest_95) + fold-var_189))) + fold-var_188))))) + for-loop_216) + null + lst_182 + lst_183)))) + (compile-sequence body_0 cctx_8 name_50 result-used?_4))))))))))))) + (define-values + (add-undefined-error-name-property) + (lambda (sym_53 orig-id_0) + (begin + (let-values (((id_53) (correlate~ orig-id_0 sym_53))) + (correlated-property + (->correlated id_53) + 'undefined-error-name + (let-values (((or-part_228) (syntax-property$1 orig-id_0 'undefined-error-name))) + (if or-part_228 or-part_228 (syntax-e$1 orig-id_0)))))))) + (define-values + (compile-identifier.1) + (lambda (set-to13_0 set-to?12_0 p16_0 cctx17_0) + (begin + 'compile-identifier + (let-values (((p_40) p16_0)) + (let-values (((cctx_9) cctx17_0)) + (let-values (((set-to?_0) set-to?12_0)) + (let-values (((rhs_0) set-to13_0)) + (let-values () + (let-values (((normal-b_0) (parsed-id-binding p_40))) + (let-values (((b_25) + (let-values (((or-part_229) normal-b_0)) + (if or-part_229 + or-part_229 + (let-values (((temp37_0) (compile-context-self cctx_9)) + ((temp38_0) (compile-context-phase cctx_9)) + ((temp39_0) (syntax-e$1 (parsed-s p_40)))) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + temp37_0 + temp38_0 + temp39_0)))))) + (let-values (((sym_54) + (if (local-binding? b_25) + (let-values () (local-binding-key b_25)) + (if (module-binding? b_25) + (let-values () + (let-values (((mpi_50) + (if (parsed-top-id? p_40) + (compile-context-self cctx_9) + (module-binding-module b_25)))) + (if (parsed-primitive-id? p_40) + (let-values () + (begin + (if (zero? (module-binding-phase b_25)) + (void) + (let-values () + (error "internal error: non-zero phase for a primitive"))) + (if set-to?_0 + (let-values () + (error + "internal error: cannot assign to a primitive:" + (module-binding-sym b_25))) + (void)) + (module-binding-sym b_25))) + (let-values (((c1_25) + (if (eq? mpi_50 (compile-context-module-self cctx_9)) + (hash-ref + (header-binding-sym-to-define-sym + (compile-context-header cctx_9)) + (module-binding-sym b_25) + #f) + #f))) + (if c1_25 + ((lambda (sym_55) sym_55) c1_25) + (let-values () + (let-values (((temp40_0) (compile-context-header cctx_9)) + ((temp41_1) + (if (inside-module-context? + mpi_50 + (compile-context-self cctx_9)) + (compile-context-self cctx_9) + mpi_50)) + ((temp42_0) (module-binding-phase b_25)) + ((temp43_0) (module-binding-sym b_25)) + ((temp44_1) + (let-values (((or-part_230) + (module-binding-extra-inspector b_25))) + (if or-part_230 + or-part_230 + (let-values (((or-part_231) + (parsed-id-inspector p_40))) + (if or-part_231 + or-part_231 + (if (parsed-s p_40) + (syntax-inspector (parsed-s p_40)) + #f))))))) + (register-required-variable-use!.1 + #f + temp40_0 + temp41_1 + temp42_0 + temp43_0 + temp44_1)))))))) + (let-values () + (error + "not a reference to a module or local binding:" + b_25 + (parsed-s p_40))))))) + (correlate~ (parsed-s p_40) (if set-to?_0 (list 'set! sym_54 rhs_0) sym_54))))))))))))) + (define-values + (compile-quote-syntax) + (lambda (q_1 cctx_10) + (begin + (let-values (((pos_109) (add-syntax-literal! (compile-context-header cctx_10) q_1))) + (if (compile-context-lazy-syntax-literals? cctx_10) + (let-values () (generate-lazy-syntax-literal-lookup pos_109)) + (let-values () (generate-eager-syntax-literal-lookup pos_109))))))) + (define-values + (extra-inspectors-allow?) + (lambda (extra-inspectors_2 guard-insp_0) + (begin + (if (not extra-inspectors_2) + (let-values () #f) + (if (set? extra-inspectors_2) + (let-values () + (let-values (((ht_128) extra-inspectors_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_128))) + ((letrec-values (((for-loop_98) + (lambda (result_83 i_167) + (begin + 'for-loop + (if i_167 + (let-values (((extra-insp_0) (unsafe-immutable-hash-iterate-key ht_128 i_167))) + (let-values (((result_84) + (let-values () + (let-values (((result_85) + (let-values () + (let-values () + (inspector-superior? + extra-insp_0 + guard-insp_0))))) + (values result_85))))) + (if (if (not ((lambda x_63 (not result_84)) extra-insp_0)) (not #f) #f) + (for-loop_98 result_84 (unsafe-immutable-hash-iterate-next ht_128 i_167)) + result_84))) + result_83))))) + for-loop_98) + #t + (unsafe-immutable-hash-iterate-first ht_128))))) + (if (procedure? extra-inspectors_2) + (let-values () (extra-inspectors_2 guard-insp_0)) + (let-values () + (error + 'extra-inspectors-allow? + "unknown representation of extra inspectors: ~e" + extra-inspectors_2)))))))) + (define-values + (extra-inspectors-merge) + (lambda (extra-inspectors-1_0 extra-inspectors-2_0) + (begin + (if (let-values (((or-part_14) (not extra-inspectors-1_0))) (if or-part_14 or-part_14 (not extra-inspectors-2_0))) + (let-values () #f) + (if (if (set? extra-inspectors-1_0) (set? extra-inspectors-2_0) #f) + (let-values () (set-union extra-inspectors-1_0 extra-inspectors-2_0)) + (let-values () + (lambda (guard-insp_1) + (if (extra-inspectors-allow? extra-inspectors-1_0 guard-insp_1) + (extra-inspectors-allow? extra-inspectors-2_0 guard-insp_1) + #f)))))))) + (define-values + (struct:module-use* + module-use*1.1 + module-use*? + module-use*-extra-inspectorss + module-use*-self-inspector + set-module-use*-extra-inspectorss! + set-module-use*-self-inspector!) + (let-values (((struct:_59 make-_59 ?_59 -ref_59 -set!_59) + (let-values () + (let-values () + (make-struct-type + 'module-use* + struct:module-use + 2 + 0 + #f + null + (current-inspector) + #f + '() + #f + 'module-use*))))) + (values + struct:_59 + make-_59 + ?_59 + (make-struct-field-accessor -ref_59 0 'extra-inspectorss) + (make-struct-field-accessor -ref_59 1 'self-inspector) + (make-struct-field-mutator -set!_59 0 'extra-inspectorss) + (make-struct-field-mutator -set!_59 1 'self-inspector)))) + (define-values + (module-uses-add-extra-inspectorsss) + (lambda (mus_1 extra-inspectorsss_0) + (begin + (if extra-inspectorsss_0 + (let-values () + (reverse$1 + (let-values (((lst_189) mus_1) ((lst_88) extra-inspectorsss_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_189))) + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_88))) + ((letrec-values (((for-loop_218) + (lambda (fold-var_194 lst_190 lst_101) + (begin + 'for-loop + (if (if (pair? lst_190) (pair? lst_101) #f) + (let-values (((mu_5) (unsafe-car lst_190)) + ((rest_98) (unsafe-cdr lst_190)) + ((extra-inspectorss_1) (unsafe-car lst_101)) + ((rest_99) (unsafe-cdr lst_101))) + (let-values (((fold-var_180) + (let-values (((fold-var_79) fold-var_194)) + (let-values (((fold-var_195) + (let-values () + (cons + (let-values () + (module-use*1.1 + (module-use-module mu_5) + (module-use-phase mu_5) + extra-inspectorss_1 + #f)) + fold-var_79)))) + (values fold-var_195))))) + (if (not #f) (for-loop_218 fold-var_180 rest_98 rest_99) fold-var_180))) + fold-var_194))))) + for-loop_218) + null + lst_189 + lst_88))))) + (let-values () + (reverse$1 + (let-values (((lst_191) mus_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_191))) + ((letrec-values (((for-loop_219) + (lambda (fold-var_123 lst_64) + (begin + 'for-loop + (if (pair? lst_64) + (let-values (((mu_6) (unsafe-car lst_64)) ((rest_29) (unsafe-cdr lst_64))) + (let-values (((fold-var_82) + (let-values (((fold-var_182) fold-var_123)) + (let-values (((fold-var_196) + (let-values () + (cons + (let-values () + (module-use*1.1 + (module-use-module mu_6) + (module-use-phase mu_6) + #f + #f)) + fold-var_182)))) + (values fold-var_196))))) + (if (not #f) (for-loop_219 fold-var_82 rest_29) fold-var_82))) + fold-var_123))))) + for-loop_219) + null + lst_191))))))))) + (define-values + (module-uses-strip-extra-inspectorsss) + (lambda (mu*s_0) + (begin + (reverse$1 + (let-values (((lst_28) mu*s_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_28))) + ((letrec-values (((for-loop_207) + (lambda (fold-var_183 lst_106) + (begin + 'for-loop + (if (pair? lst_106) + (let-values (((mu*_0) (unsafe-car lst_106)) ((rest_51) (unsafe-cdr lst_106))) + (let-values (((fold-var_9) + (let-values (((fold-var_10) fold-var_183)) + (let-values (((fold-var_11) + (let-values () + (cons + (let-values () + (module-use1.1 + (module-use-module mu*_0) + (module-use-phase mu*_0))) + fold-var_10)))) + (values fold-var_11))))) + (if (not #f) (for-loop_207 fold-var_9 rest_51) fold-var_9))) + fold-var_183))))) + for-loop_207) + null + lst_28))))))) + (define-values + (module-uses-extract-extra-inspectorsss) + (lambda (mu*s_1 linklet_0 check-inlined-reference?_0 skip-n_0) + (begin + (if (not check-inlined-reference?_0) + (let-values () + (reverse$1 + (let-values (((lst_192) mu*s_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_192))) + ((letrec-values (((for-loop_107) + (lambda (fold-var_83 lst_92) + (begin + 'for-loop + (if (pair? lst_92) + (let-values (((mu*_1) (unsafe-car lst_92)) ((rest_44) (unsafe-cdr lst_92))) + (let-values (((fold-var_84) + (let-values (((fold-var_70) fold-var_83)) + (let-values (((fold-var_85) + (let-values () + (cons + (let-values () + (module-use*-extra-inspectorss mu*_1)) + fold-var_70)))) + (values fold-var_85))))) + (if (not #f) (for-loop_107 fold-var_84 rest_44) fold-var_84))) + fold-var_83))))) + for-loop_107) + null + lst_192))))) + (let-values () + (reverse$1 + (let-values (((lst_193) mu*s_1) ((lst_93) (list-tail (linklet-import-variables$1 linklet_0) skip-n_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_193))) + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_93))) + ((letrec-values (((for-loop_220) + (lambda (fold-var_71 lst_194 lst_94) + (begin + 'for-loop + (if (if (pair? lst_194) (pair? lst_94) #f) + (let-values (((mu*_2) (unsafe-car lst_194)) + ((rest_100) (unsafe-cdr lst_194)) + ((imports_0) (unsafe-car lst_94)) + ((rest_101) (unsafe-cdr lst_94))) + (let-values (((fold-var_86) + (let-values (((fold-var_87) fold-var_71)) + (let-values (((fold-var_88) + (let-values () + (cons + (let-values () + (let-values (((extra-inspectorss_2) + (module-use*-extra-inspectorss + mu*_2))) + (let-values (((lst_195) imports_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_195))) + ((letrec-values (((for-loop_221) + (lambda (extra-inspectorss_3 + lst_196) + (begin + 'for-loop + (if (pair? + lst_196) + (let-values (((import_0) + (unsafe-car + lst_196)) + ((rest_102) + (unsafe-cdr + lst_196))) + (let-values (((extra-inspectorss_4) + (let-values (((extra-inspectorss_5) + extra-inspectorss_3)) + (let-values (((extra-inspectorss_6) + (let-values () + (if (eq? + (hash-ref + extra-inspectorss_5 + import_0 + '#:not-recorded) + '#:not-recorded) + (let-values () + (hash-set + extra-inspectorss_5 + import_0 + (set + (module-use*-self-inspector + mu*_2)))) + (let-values () + extra-inspectorss_5))))) + (values + extra-inspectorss_6))))) + (if (not + #f) + (for-loop_221 + extra-inspectorss_4 + rest_102) + extra-inspectorss_4))) + extra-inspectorss_3))))) + for-loop_221) + extra-inspectorss_2 + lst_195))))) + fold-var_87)))) + (values fold-var_88))))) + (if (not #f) (for-loop_220 fold-var_86 rest_100 rest_101) fold-var_86))) + fold-var_71))))) + for-loop_220) + null + lst_193 + lst_93))))))))) + (define-values + (module-use*-declaration-inspector!) + (lambda (mu*_3 insp_6) (begin (set-module-use*-self-inspector! mu*_3 insp_6)))) + (define-values + (module-use+extra-inspectors) + (lambda (mpi_17 phase_65 imports_1 inspector_15 extra-inspector_4 extra-inspectorss_7) + (begin + (let-values (((now-inspector_0) (current-code-inspector))) + (let-values (((add-insp?_0) (if inspector_15 (inspector-superior? inspector_15 now-inspector_0) #f))) + (let-values (((add-extra-insp?_0) + (if extra-inspector_4 (inspector-superior? extra-inspector_4 now-inspector_0) #f))) + (let-values (((new-extra-inspectorss_0) + (if (let-values (((or-part_156) add-insp?_0)) (if or-part_156 or-part_156 add-extra-insp?_0)) + (let-values () + (let-values (((lst_16) imports_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_16))) + ((letrec-values (((for-loop_86) + (lambda (table_144 lst_65) + (begin + 'for-loop + (if (pair? lst_65) + (let-values (((import_1) (unsafe-car lst_65)) + ((rest_30) (unsafe-cdr lst_65))) + (let-values (((table_22) + (let-values (((table_145) table_144)) + (let-values (((table_146) + (let-values () + (let-values (((key_67 + val_49) + (let-values () + (values + import_1 + (let-values (((extra-inspectors_3) + (if extra-inspectorss_7 + (hash-ref + extra-inspectorss_7 + import_1 + #f) + #f))) + (lambda (guard-insp_2) + (let-values (((or-part_160) + (if add-insp?_0 + (inspector-superior? + inspector_15 + guard-insp_2) + #f))) + (if or-part_160 + or-part_160 + (let-values (((or-part_227) + (if add-extra-insp?_0 + (inspector-superior? + extra-inspector_4 + guard-insp_2) + #f))) + (if or-part_227 + or-part_227 + (extra-inspectors-allow? + extra-inspectors_3 + guard-insp_2))))))))))) + (hash-set + table_145 + key_67 + val_49))))) + (values table_146))))) + (if (not #f) (for-loop_86 table_22 rest_30) table_22))) + table_144))))) + for-loop_86) + '#hash() + lst_16)))) + (let-values () + (let-values (((lst_197) imports_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_197))) + ((letrec-values (((for-loop_10) + (lambda (extra-inspectorss_8 lst_198) + (begin + 'for-loop + (if (pair? lst_198) + (let-values (((import_2) (unsafe-car lst_198)) + ((rest_103) (unsafe-cdr lst_198))) + (let-values (((extra-inspectorss_9) + (let-values (((extra-inspectorss_10) + extra-inspectorss_8)) + (let-values (((extra-inspectorss_11) + (let-values () + (if (hash-ref + extra-inspectorss_10 + import_2 + #f) + extra-inspectorss_10 + (hash-set + extra-inspectorss_10 + import_2 + #f))))) + (values extra-inspectorss_11))))) + (if (not #f) + (for-loop_10 extra-inspectorss_9 rest_103) + extra-inspectorss_9))) + extra-inspectorss_8))))) + for-loop_10) + (let-values (((or-part_81) extra-inspectorss_7)) (if or-part_81 or-part_81 (seteq))) + lst_197))))))) + (module-use*1.1 mpi_17 phase_65 new-extra-inspectorss_0 #f)))))))) + (define-values + (module-use-merge-extra-inspectorss!) + (lambda (existing-mu*_0 mu*_4) + (begin + (let-values (((existing-extra-inspectorss_0) (module-use*-extra-inspectorss existing-mu*_0))) + (let-values (((extra-inspectorss_12) (module-use*-extra-inspectorss mu*_4))) + (let-values (((new-extra-inspectorss_1) + (if (not existing-extra-inspectorss_0) + (let-values () extra-inspectorss_12) + (if (not extra-inspectorss_12) + (let-values () existing-extra-inspectorss_0) + (let-values () + (let-values (((ht_129) extra-inspectorss_12)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_129))) + ((letrec-values (((for-loop_222) + (lambda (new-extra-inspectorss_2 i_168) + (begin + 'for-loop + (if i_168 + (let-values (((sym_56 extra-inspectors_4) + (hash-iterate-key+value ht_129 i_168))) + (let-values (((new-extra-inspectorss_3) + (let-values (((new-extra-inspectorss_4) + new-extra-inspectorss_2)) + (let-values (((new-extra-inspectorss_5) + (let-values () + (hash-set + new-extra-inspectorss_4 + sym_56 + (extra-inspectors-merge + extra-inspectors_4 + (hash-ref + new-extra-inspectorss_4 + sym_56 + (seteq))))))) + (values new-extra-inspectorss_5))))) + (if (not #f) + (for-loop_222 + new-extra-inspectorss_3 + (hash-iterate-next ht_129 i_168)) + new-extra-inspectorss_3))) + new-extra-inspectorss_2))))) + for-loop_222) + existing-extra-inspectorss_0 + (hash-iterate-first ht_129))))))))) + (set-module-use*-extra-inspectorss! existing-mu*_0 new-extra-inspectorss_1))))))) + (define-values + (struct:link-info + link-info1.1 + link-info? + link-info-link-module-uses + link-info-imports + link-info-extra-inspectorsss + link-info-def-decls) + (let-values (((struct:_24 make-_24 ?_24 -ref_24 -set!_24) + (let-values () + (let-values () + (make-struct-type 'link-info #f 4 0 #f null (current-inspector) #f '(0 1 2 3) #f 'link-info))))) + (values + struct:_24 + make-_24 + ?_24 + (make-struct-field-accessor -ref_24 0 'link-module-uses) + (make-struct-field-accessor -ref_24 1 'imports) + (make-struct-field-accessor -ref_24 2 'extra-inspectorsss) + (make-struct-field-accessor -ref_24 3 'def-decls)))) + (define-values + (compile-forms.1) + (lambda (body-import-instances3_0 + body-imports2_0 + body-suffix-forms4_0 + compiled-expression-callback8_0 + definition-callback9_0 + encoded-root-expand-ctx-box6_0 + force-phases5_0 + get-module-linklet-info11_0 + module-prompt?13_0 + optimize-linklet?15_0 + other-form-callback10_0 + root-ctx-only-if-syntax?7_0 + serializable?12_0 + to-correlated-linklet?14_0 + unsafe?-box16_0 + bodys32_0 + cctx33_0 + mpis34_0) + (begin + 'compile-forms + (let-values (((bodys_2) bodys32_0)) + (let-values (((cctx_11) cctx33_0)) + (let-values (((mpis_18) mpis34_0)) + (let-values (((body-imports_0) body-imports2_0)) + (let-values (((body-import-instances_0) body-import-instances3_0)) + (let-values (((body-suffix-forms_0) body-suffix-forms4_0)) + (let-values (((force-phases_0) force-phases5_0)) + (let-values (((encoded-root-expand-ctx-box_0) encoded-root-expand-ctx-box6_0)) + (let-values (((root-ctx-only-if-syntax?_0) root-ctx-only-if-syntax?7_0)) + (let-values (((compiled-expression-callback_0) compiled-expression-callback8_0)) + (let-values (((definition-callback_0) definition-callback9_0)) + (let-values (((other-form-callback_0) other-form-callback10_0)) + (let-values (((get-module-linklet-info_0) + (if (eq? get-module-linklet-info11_0 unsafe-undefined) + (lambda (mod-name_14 p_41) (begin 'get-module-linklet-info #f)) + get-module-linklet-info11_0))) + (let-values (((serializable?_0) serializable?12_0)) + (let-values (((module-prompt?_0) module-prompt?13_0)) + (let-values (((to-correlated-linklet?_2) to-correlated-linklet?14_0)) + (let-values (((optimize-linklet?_0) optimize-linklet?15_0)) + (let-values (((unsafe?-box_0) unsafe?-box16_0)) + (let-values () + (let-values (((phase_66) (compile-context-phase cctx_11))) + (let-values (((self_18) (compile-context-self cctx_11))) + (let-values (((syntax-literals_1) (make-syntax-literals))) + (let-values (((phase-to-body_0) (make-hasheqv))) + (let-values (((add-body!_0) + (lambda (phase_67 body_1) + (begin + 'add-body! + (hash-update! + phase-to-body_0 + phase_67 + (lambda (l_42) (cons body_1 l_42)) + null))))) + (let-values (((phase-to-header_0) (make-hasheqv))) + (let-values (((find-or-create-header!_0) + (lambda (phase_68) + (begin + 'find-or-create-header! + (let-values (((or-part_222) + (hash-ref + phase-to-header_0 + phase_68 + #f))) + (if or-part_222 + or-part_222 + (let-values (((header_6) + (make-header + mpis_18 + syntax-literals_1))) + (begin + (hash-set! + phase-to-header_0 + phase_68 + header_6) + header_6)))))))) + (let-values ((() + (begin + (let-values (((lst_199) force-phases_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_199))) + ((letrec-values (((for-loop_223) + (lambda (lst_200) + (begin + 'for-loop + (if (pair? lst_200) + (let-values (((phase_69) + (unsafe-car + lst_200)) + ((rest_104) + (unsafe-cdr + lst_200))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (find-or-create-header!_0 + phase_69) + (add-body!_0 + phase_69 + '(void)))) + (values))))) + (values))))) + (if (not #f) + (for-loop_223 + rest_104) + (values)))) + (values)))))) + for-loop_223) + lst_199))) + (values)))) + (let-values () + (let-values (((saw-define-syntaxes?_0) #f)) + (let-values ((() + (begin + (if (compile-context-module-self + cctx_11) + (let-values () + ((letrec-values (((loop!_0) + (lambda (bodys_3 + phase_63 + header_7) + (begin + 'loop! + (begin + (let-values (((lst_156) + bodys_3)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_156))) + ((letrec-values (((for-loop_192) + (lambda (lst_201) + (begin + 'for-loop + (if (pair? + lst_201) + (let-values (((body_2) + (unsafe-car + lst_201)) + ((rest_105) + (unsafe-cdr + lst_201))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (parsed-define-values? + body_2) + (let-values () + (begin + (let-values (((lst_202) + (parsed-define-values-syms + body_2))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_202))) + ((letrec-values (((for-loop_33) + (lambda (lst_16) + (begin + 'for-loop + (if (pair? + lst_16) + (let-values (((sym_57) + (unsafe-car + lst_16)) + ((rest_106) + (unsafe-cdr + lst_16))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((def-sym_1) + (select-fresh + sym_57 + header_7))) + (begin + (hash-set! + (header-binding-sym-to-define-sym + header_7) + sym_57 + def-sym_1) + (set-header-binding-syms-in-order! + header_7 + (cons + sym_57 + (header-binding-syms-in-order + header_7))) + (register-as-defined! + header_7 + def-sym_1)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_33 + rest_106) + (values)))) + (values)))))) + for-loop_33) + lst_202))) + (void))) + (if (parsed-begin-for-syntax? + body_2) + (let-values () + (loop!_0 + (parsed-begin-for-syntax-body + body_2) + (add1 + phase_63) + (find-or-create-header!_0 + (add1 + phase_63)))) + (void)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_192 + rest_105) + (values)))) + (values)))))) + for-loop_192) + lst_156))) + (void)))))) + loop!_0) + bodys_2 + phase_66 + (find-or-create-header!_0 + phase_66))) + (void)) + (values)))) + (let-values (((as-required?_0) + (lambda (header_8) + (begin + 'as-required? + (lambda (sym_58) + (registered-as-required? + header_8 + sym_58)))))) + (let-values (((last-i_0) (sub1 (length bodys_2)))) + (let-values ((() + (begin + ((letrec-values (((loop!_1) + (lambda (bodys_4 + phase_70 + header_9) + (begin + 'loop! + (begin + (let-values (((lst_203) + bodys_4) + ((start_44) + 0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_203))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-naturals + start_44))) + ((letrec-values (((for-loop_205) + (lambda (lst_204 + pos_16) + (begin + 'for-loop + (if (if (pair? + lst_204) + #t + #f) + (let-values (((body_3) + (unsafe-car + lst_204)) + ((rest_107) + (unsafe-cdr + lst_204)) + ((i_169) + pos_16)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (parsed-define-values? + body_3) + (let-values () + (let-values (((ids_6) + (parsed-define-values-ids + body_3))) + (let-values (((binding-syms_0) + (parsed-define-values-syms + body_3))) + (let-values (((def-syms_0) + (if (compile-context-module-self + cctx_11) + (let-values () + (reverse$1 + (let-values (((lst_205) + binding-syms_0) + ((lst_206) + ids_6)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_205))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_206))) + ((letrec-values (((for-loop_4) + (lambda (fold-var_197 + lst_207 + lst_208) + (begin + 'for-loop + (if (if (pair? + lst_207) + (pair? + lst_208) + #f) + (let-values (((binding-sym_0) + (unsafe-car + lst_207)) + ((rest_108) + (unsafe-cdr + lst_207)) + ((id_54) + (unsafe-car + lst_208)) + ((rest_109) + (unsafe-cdr + lst_208))) + (let-values (((fold-var_198) + (let-values (((fold-var_199) + fold-var_197)) + (let-values (((fold-var_200) + (let-values () + (cons + (let-values () + (correlate-source-name + (hash-ref + (header-binding-sym-to-define-sym + header_9) + binding-sym_0) + (syntax-e$1 + id_54))) + fold-var_199)))) + (values + fold-var_200))))) + (if (not + #f) + (for-loop_4 + fold-var_198 + rest_108 + rest_109) + fold-var_198))) + fold-var_197))))) + for-loop_4) + null + lst_205 + lst_206))))) + (let-values () + (reverse$1 + (let-values (((lst_209) + binding-syms_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_209))) + ((letrec-values (((for-loop_5) + (lambda (fold-var_201 + lst_170) + (begin + 'for-loop + (if (pair? + lst_170) + (let-values (((binding-sym_1) + (unsafe-car + lst_170)) + ((rest_110) + (unsafe-cdr + lst_170))) + (let-values (((fold-var_202) + (let-values (((fold-var_203) + fold-var_201)) + (let-values (((fold-var_204) + (let-values () + (cons + (let-values () + (let-values (((header61_0) + header_9) + ((temp62_0) + (compile-context-self + cctx_11)) + ((phase63_1) + phase_70) + ((binding-sym64_0) + binding-sym_1) + ((temp65_0) + #f) + ((temp66_1) + #t)) + (register-required-variable-use!.1 + temp66_1 + header61_0 + temp62_0 + phase63_1 + binding-sym64_0 + temp65_0))) + fold-var_203)))) + (values + fold-var_204))))) + (if (not + #f) + (for-loop_5 + fold-var_202 + rest_110) + fold-var_202))) + fold-var_201))))) + for-loop_5) + null + lst_209)))))))) + (let-values (((rhs_1) + (compile$2 + (parsed-define-values-rhs + body_3) + (let-values (((the-struct_44) + cctx_11)) + (if (compile-context? + the-struct_44) + (let-values (((phase67_0) + phase_70) + ((header68_0) + header_9)) + (compile-context1.1 + (compile-context-namespace + the-struct_44) + phase67_0 + (compile-context-self + the-struct_44) + (compile-context-module-self + the-struct_44) + (compile-context-full-module-name + the-struct_44) + (compile-context-lazy-syntax-literals? + the-struct_44) + header68_0)) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_44))) + (if (= + (length + ids_6) + 1) + (car + ids_6) + #f)))) + (begin + (definition-callback_0) + (compiled-expression-callback_0 + rhs_1 + (length + def-syms_0) + phase_70 + (as-required?_0 + header_9)) + (add-body!_0 + phase_70 + (propagate-inline-property + (correlate* + (parsed-s + body_3) + (list + 'define-values + def-syms_0 + rhs_1)) + (parsed-s + body_3))) + (if (let-values (((or-part_232) + (compile-context-module-self + cctx_11))) + (if or-part_232 + or-part_232 + (null? + ids_6))) + (void) + (let-values () + (begin + (add-body!_0 + phase_70 + (list* + 'if + #f + (list* + 'begin + (reverse$1 + (let-values (((lst_210) + def-syms_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_210))) + ((letrec-values (((for-loop_224) + (lambda (fold-var_6 + lst_211) + (begin + 'for-loop + (if (pair? + lst_211) + (let-values (((def-sym_2) + (unsafe-car + lst_211)) + ((rest_111) + (unsafe-cdr + lst_211))) + (let-values (((fold-var_168) + (let-values (((fold-var_169) + fold-var_6)) + (let-values (((fold-var_205) + (let-values () + (cons + (let-values () + (list* + 'set! + def-sym_2 + '(#f))) + fold-var_169)))) + (values + fold-var_205))))) + (if (not + #f) + (for-loop_224 + fold-var_168 + rest_111) + fold-var_168))) + fold-var_6))))) + for-loop_224) + null + lst_210))))) + '((void)))) + (add-body!_0 + phase_70 + (compile-top-level-bind + ids_6 + binding-syms_0 + (let-values (((the-struct_45) + cctx_11)) + (if (compile-context? + the-struct_45) + (let-values (((phase69_0) + phase_70) + ((header70_0) + header_9)) + (compile-context1.1 + (compile-context-namespace + the-struct_45) + phase69_0 + (compile-context-self + the-struct_45) + (compile-context-module-self + the-struct_45) + (compile-context-full-module-name + the-struct_45) + (compile-context-lazy-syntax-literals? + the-struct_45) + header70_0)) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_45))) + #f))))))))))) + (if (parsed-define-syntaxes? + body_3) + (let-values () + (let-values (((ids_7) + (parsed-define-syntaxes-ids + body_3))) + (let-values (((binding-syms_1) + (parsed-define-syntaxes-syms + body_3))) + (let-values (((next-header_0) + (find-or-create-header!_0 + (add1 + phase_70)))) + (let-values (((gen-syms_0) + (reverse$1 + (let-values (((lst_212) + binding-syms_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_212))) + ((letrec-values (((for-loop_119) + (lambda (fold-var_206 + lst_213) + (begin + 'for-loop + (if (pair? + lst_213) + (let-values (((binding-sym_2) + (unsafe-car + lst_213)) + ((rest_112) + (unsafe-cdr + lst_213))) + (let-values (((fold-var_207) + (let-values (((fold-var_125) + fold-var_206)) + (let-values (((fold-var_107) + (let-values () + (cons + (let-values () + (let-values (((gen-sym_0) + (select-fresh + binding-sym_2 + next-header_0))) + (begin + (register-as-defined! + next-header_0 + gen-sym_0) + gen-sym_0))) + fold-var_125)))) + (values + fold-var_107))))) + (if (not + #f) + (for-loop_119 + fold-var_207 + rest_112) + fold-var_207))) + fold-var_206))))) + for-loop_119) + null + lst_212)))))) + (let-values (((rhs_2) + (compile$2 + (parsed-define-syntaxes-rhs + body_3) + (let-values (((the-struct_46) + cctx_11)) + (if (compile-context? + the-struct_46) + (let-values (((phase71_1) + (add1 + phase_70)) + ((header72_0) + next-header_0)) + (compile-context1.1 + (compile-context-namespace + the-struct_46) + phase71_1 + (compile-context-self + the-struct_46) + (compile-context-module-self + the-struct_46) + (compile-context-full-module-name + the-struct_46) + (compile-context-lazy-syntax-literals? + the-struct_46) + header72_0)) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_46)))))) + (let-values ((() + (begin + (definition-callback_0) + (values)))) + (let-values ((() + (begin + (compiled-expression-callback_0 + rhs_2 + (length + gen-syms_0) + (add1 + phase_70) + (as-required?_0 + header_9)) + (values)))) + (let-values (((transformer-set!s_0) + (reverse$1 + (let-values (((lst_214) + binding-syms_1) + ((lst_215) + gen-syms_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_214))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_215))) + ((letrec-values (((for-loop_225) + (lambda (fold-var_208 + lst_216 + lst_217) + (begin + 'for-loop + (if (if (pair? + lst_216) + (pair? + lst_217) + #f) + (let-values (((binding-sym_3) + (unsafe-car + lst_216)) + ((rest_113) + (unsafe-cdr + lst_216)) + ((gen-sym_1) + (unsafe-car + lst_217)) + ((rest_114) + (unsafe-cdr + lst_217))) + (let-values (((fold-var_209) + (let-values (((fold-var_210) + fold-var_208)) + (let-values (((fold-var_211) + (let-values () + (cons + (let-values () + (list + set-transformer!-id + (list + 'quote + binding-sym_3) + gen-sym_1)) + fold-var_210)))) + (values + fold-var_211))))) + (if (not + #f) + (for-loop_225 + fold-var_209 + rest_113 + rest_114) + fold-var_209))) + fold-var_208))))) + for-loop_225) + null + lst_214 + lst_215)))))) + (begin + (if (compile-context-module-self + cctx_11) + (let-values () + (add-body!_0 + (add1 + phase_70) + (list + 'let-values + (list + (list + gen-syms_0 + rhs_2)) + (list* + 'begin + (qq-append + transformer-set!s_0 + '((void))))))) + (let-values () + (add-body!_0 + (add1 + phase_70) + (generate-top-level-define-syntaxes + gen-syms_0 + rhs_2 + transformer-set!s_0 + (compile-top-level-bind + ids_7 + binding-syms_1 + (let-values (((the-struct_38) + cctx_11)) + (if (compile-context? + the-struct_38) + (let-values (((phase73_0) + phase_70) + ((header74_0) + header_9)) + (compile-context1.1 + (compile-context-namespace + the-struct_38) + phase73_0 + (compile-context-self + the-struct_38) + (compile-context-module-self + the-struct_38) + (compile-context-full-module-name + the-struct_38) + (compile-context-lazy-syntax-literals? + the-struct_38) + header74_0)) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_38))) + gen-syms_0))))) + (set! saw-define-syntaxes?_0 + #t))))))))))) + (if (parsed-begin-for-syntax? + body_3) + (let-values () + (loop!_1 + (parsed-begin-for-syntax-body + body_3) + (add1 + phase_70) + (find-or-create-header!_0 + (add1 + phase_70)))) + (if (let-values (((or-part_233) + (parsed-#%declare? + body_3))) + (if or-part_233 + or-part_233 + (let-values (((or-part_66) + (parsed-module? + body_3))) + (if or-part_66 + or-part_66 + (parsed-require? + body_3))))) + (let-values () + (let-values (((e_45) + (other-form-callback_0 + body_3 + (let-values (((the-struct_47) + cctx_11)) + (if (compile-context? + the-struct_47) + (let-values (((phase75_1) + phase_70) + ((header76_0) + header_9)) + (compile-context1.1 + (compile-context-namespace + the-struct_47) + phase75_1 + (compile-context-self + the-struct_47) + (compile-context-module-self + the-struct_47) + (compile-context-full-module-name + the-struct_47) + (compile-context-lazy-syntax-literals? + the-struct_47) + header76_0)) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_47)))))) + (if e_45 + (let-values () + (begin + (compiled-expression-callback_0 + e_45 + #f + phase_70 + (as-required?_0 + header_9)) + (add-body!_0 + phase_70 + e_45))) + (void)))) + (let-values () + (let-values (((e_46) + (compile$2 + body_3 + (let-values (((the-struct_48) + cctx_11)) + (if (compile-context? + the-struct_48) + (let-values (((phase77_0) + phase_70) + ((header78_0) + header_9)) + (compile-context1.1 + (compile-context-namespace + the-struct_48) + phase77_0 + (compile-context-self + the-struct_48) + (compile-context-module-self + the-struct_48) + (compile-context-full-module-name + the-struct_48) + (compile-context-lazy-syntax-literals? + the-struct_48) + header78_0)) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_48))) + #f + (= + i_169 + last-i_0)))) + (begin + (compiled-expression-callback_0 + e_46 + #f + phase_70 + (as-required?_0 + header_9)) + (add-body!_0 + phase_70 + e_46))))))))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_205 + rest_107 + (+ + pos_16 + 1)) + (values)))) + (values)))))) + for-loop_205) + lst_203 + start_44))) + (void)))))) + loop!_1) + bodys_2 + phase_66 + (find-or-create-header!_0 + phase_66)) + (values)))) + (let-values (((encoded-root-expand-pos_0) + (if encoded-root-expand-ctx-box_0 + (if (unbox + encoded-root-expand-ctx-box_0) + (if (not + (if root-ctx-only-if-syntax?_0 + (if (not + saw-define-syntaxes?_0) + (syntax-literals-empty? + syntax-literals_1) + #f) + #f)) + (add-syntax-literal! + syntax-literals_1 + (unbox + encoded-root-expand-ctx-box_0)) + #f) + #f) + #f))) + (let-values (((phases-in-order_2) + (let-values (((temp79_1) + (hash-keys + phase-to-body_0)) + ((<80_0) <)) + (sort.1 + #f + #f + temp79_1 + <80_0)))) + (let-values (((min-phase_0) + (if (pair? phases-in-order_2) + (car phases-in-order_2) + phase_66))) + (let-values (((max-phase_0) + (if (pair? + phases-in-order_2) + (car + (reverse$1 + phases-in-order_2)) + phase_66))) + (let-values (((phase-to-link-info_0) + (let-values (((lst_218) + phases-in-order_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_218))) + ((letrec-values (((for-loop_226) + (lambda (table_158 + lst_34) + (begin + 'for-loop + (if (pair? + lst_34) + (let-values (((phase_71) + (unsafe-car + lst_34)) + ((rest_115) + (unsafe-cdr + lst_34))) + (let-values (((table_159) + (let-values (((table_160) + table_158)) + (let-values (((table_161) + (let-values () + (let-values (((key_72 + val_53) + (let-values () + (let-values (((header_10) + (hash-ref + phase-to-header_0 + phase_71 + #f))) + (let-values (((link-module-uses_0 + imports_2 + extra-inspectorsss_1 + def-decls_0) + (generate-links+imports + header_10 + phase_71 + cctx_11 + optimize-linklet?_0))) + (values + phase_71 + (link-info1.1 + link-module-uses_0 + imports_2 + extra-inspectorsss_1 + def-decls_0))))))) + (hash-set + table_160 + key_72 + val_53))))) + (values + table_161))))) + (if (not + #f) + (for-loop_226 + table_159 + rest_115) + table_159))) + table_158))))) + for-loop_226) + '#hash() + lst_218))))) + (let-values (((body-linklets+module-use*s_0) + (let-values (((lst_219) + phases-in-order_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_219))) + ((letrec-values (((for-loop_227) + (lambda (table_162 + lst_55) + (begin + 'for-loop + (if (pair? + lst_55) + (let-values (((phase_72) + (unsafe-car + lst_55)) + ((rest_116) + (unsafe-cdr + lst_55))) + (let-values (((table_163) + (let-values (((table_164) + table_162)) + (let-values (((table_37) + (let-values () + (let-values (((key_73 + val_54) + (let-values () + (let-values (((bodys_5) + (hash-ref + phase-to-body_0 + phase_72))) + (let-values (((li_0) + (hash-ref + phase-to-link-info_0 + phase_72))) + (let-values (((binding-sym-to-define-sym_0) + (header-binding-sym-to-define-sym + (hash-ref + phase-to-header_0 + phase_72)))) + (let-values (((module-use*s_0) + (module-uses-add-extra-inspectorsss + (link-info-link-module-uses + li_0) + (link-info-extra-inspectorsss + li_0)))) + (let-values (((body-linklet_0) + (list* + 'linklet + (qq-append + body-imports_0 + (link-info-imports + li_0)) + (qq-append + (link-info-def-decls + li_0) + (reverse$1 + (let-values (((lst_220) + (header-binding-syms-in-order + (hash-ref + phase-to-header_0 + phase_72)))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_220))) + ((letrec-values (((for-loop_228) + (lambda (fold-var_212 + lst_221) + (begin + 'for-loop + (if (pair? + lst_221) + (let-values (((binding-sym_4) + (unsafe-car + lst_221)) + ((rest_117) + (unsafe-cdr + lst_221))) + (let-values (((fold-var_213) + (let-values (((fold-var_214) + fold-var_212)) + (let-values (((fold-var_215) + (let-values () + (cons + (let-values () + (let-values (((def-sym_3) + (hash-ref + binding-sym-to-define-sym_0 + binding-sym_4))) + (if (eq? + def-sym_3 + binding-sym_4) + def-sym_3 + (list + def-sym_3 + binding-sym_4)))) + fold-var_214)))) + (values + fold-var_215))))) + (if (not + #f) + (for-loop_228 + fold-var_213 + rest_117) + fold-var_213))) + fold-var_212))))) + for-loop_228) + null + lst_220))))) + (qq-append + (reverse$1 + bodys_5) + body-suffix-forms_0)))) + (let-values (((linklet_1 + new-module-use*s_0) + (if to-correlated-linklet?_2 + (let-values () + (values + (make-correlated-linklet + body-linklet_0 + 'module) + module-use*s_0)) + (let-values () + (let-values (((body-linklet81_0) + body-linklet_0) + ((body-imports82_0) + body-imports_0) + ((body-import-instances83_0) + body-import-instances_0) + ((get-module-linklet-info84_0) + get-module-linklet-info_0) + ((serializable?85_0) + serializable?_0) + ((module-prompt?86_0) + module-prompt?_0) + ((module-use*s87_0) + module-use*s_0) + ((optimize-linklet?88_0) + optimize-linklet?_0) + ((temp89_0) + (if unsafe?-box_0 + (unbox + unsafe?-box_0) + #f)) + ((temp90_0) + #f) + ((temp91_0) + (compile-context-namespace + cctx_11))) + (compile-module-linklet.1 + body-import-instances83_0 + body-imports82_0 + unsafe-undefined + get-module-linklet-info84_0 + temp90_0 + module-prompt?86_0 + module-use*s87_0 + temp91_0 + optimize-linklet?88_0 + serializable?85_0 + temp89_0 + body-linklet81_0)))))) + (values + phase_72 + (cons + linklet_1 + new-module-use*s_0))))))))))) + (hash-set + table_164 + key_73 + val_54))))) + (values + table_37))))) + (if (not + #f) + (for-loop_227 + table_163 + rest_116) + table_163))) + table_162))))) + for-loop_227) + '#hasheq() + lst_219))))) + (let-values (((body-linklets_0) + (let-values (((ht_130) + body-linklets+module-use*s_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_130))) + ((letrec-values (((for-loop_229) + (lambda (table_47 + i_170) + (begin + 'for-loop + (if i_170 + (let-values (((phase_73 + l+mu*s_0) + (hash-iterate-key+value + ht_130 + i_170))) + (let-values (((table_35) + (let-values (((table_165) + table_47)) + (let-values (((table_166) + (let-values () + (let-values (((key_74 + val_55) + (let-values () + (values + phase_73 + (car + l+mu*s_0))))) + (hash-set + table_165 + key_74 + val_55))))) + (values + table_166))))) + (if (not + #f) + (for-loop_229 + table_35 + (hash-iterate-next + ht_130 + i_170)) + table_35))) + table_47))))) + for-loop_229) + '#hasheq() + (hash-iterate-first + ht_130)))))) + (let-values (((phase-to-link-module-uses_1) + (let-values (((ht_131) + body-linklets+module-use*s_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_131))) + ((letrec-values (((for-loop_230) + (lambda (table_167 + i_171) + (begin + 'for-loop + (if i_171 + (let-values (((phase_74 + l+mu*s_1) + (hash-iterate-key+value + ht_131 + i_171))) + (let-values (((table_168) + (let-values (((table_49) + table_167)) + (let-values (((table_169) + (let-values () + (let-values (((key_75 + val_56) + (let-values () + (values + phase_74 + (module-uses-strip-extra-inspectorsss + (cdr + l+mu*s_1)))))) + (hash-set + table_49 + key_75 + val_56))))) + (values + table_169))))) + (if (not + #f) + (for-loop_230 + table_168 + (hash-iterate-next + ht_131 + i_171)) + table_168))) + table_167))))) + for-loop_230) + '#hasheq() + (hash-iterate-first + ht_131)))))) + (let-values (((phase-to-link-module-uses-expr_1) + (serialize-phase-to-link-module-uses + phase-to-link-module-uses_1 + mpis_18))) + (let-values (((phase-to-link-extra-inspectorsss_0) + (let-values (((ht_132) + body-linklets+module-use*s_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_132))) + ((letrec-values (((for-loop_124) + (lambda (table_170 + i_172) + (begin + 'for-loop + (if i_172 + (let-values (((phase_75 + l+mu*s_2) + (hash-iterate-key+value + ht_132 + i_172))) + (let-values (((table_53) + (let-values (((id*_7) + (module-uses-extract-extra-inspectorsss + (cdr + l+mu*s_2) + (car + l+mu*s_2) + (if optimize-linklet?_0 + (not + to-correlated-linklet?_2) + #f) + (length + body-imports_0)))) + (begin + #t + ((letrec-values (((for-loop_231) + (lambda (table_171) + (begin + 'for-loop + (let-values (((extra-inspectorsss_2) + id*_7)) + (let-values (((table_55) + (let-values (((table_172) + table_171)) + (if extra-inspectorsss_2 + (let-values (((table_56) + table_172)) + (let-values (((table_57) + (let-values () + (let-values (((key_76 + val_57) + (let-values () + (values + phase_75 + extra-inspectorsss_2)))) + (hash-set + table_56 + key_76 + val_57))))) + (values + table_57))) + table_172)))) + table_55)))))) + for-loop_231) + table_170))))) + (if (not + #f) + (for-loop_124 + table_53 + (hash-iterate-next + ht_132 + i_172)) + table_53))) + table_170))))) + for-loop_124) + '#hash() + (hash-iterate-first + ht_132)))))) + (values + body-linklets_0 + min-phase_0 + max-phase_0 + phase-to-link-module-uses_1 + phase-to-link-module-uses-expr_1 + phase-to-link-extra-inspectorsss_0 + syntax-literals_1 + encoded-root-expand-pos_0))))))))))))))))))))))))))))))))))))))))))))))) + (define-values + (compile-top-level-bind) + (lambda (ids_8 binding-syms_2 cctx_12 trans-exprs_0) + (begin + (let-values (((phase_76) (compile-context-phase cctx_12))) + (let-values (((self_19) (compile-context-self cctx_12))) + (let-values (((header_11) (compile-context-header cctx_12))) + (let-values (((mpis_19) (header-module-path-indexes header_11))) + (let-values (((top-level-bind-scope_2) + (root-expand-context-top-level-bind-scope + (namespace-get-root-expand-ctx (compile-context-namespace cctx_12))))) + (let-values (((self-expr_0) (add-module-path-index! mpis_19 self_19))) + (list* + 'begin + (reverse$1 + (let-values (((lst_222) ids_8) + ((lst_223) binding-syms_2) + ((lst_224) + (let-values (((or-part_234) trans-exprs_0)) + (if or-part_234 + or-part_234 + (reverse$1 + (let-values (((lst_225) ids_8)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_225))) + ((letrec-values (((for-loop_232) + (lambda (fold-var_216 lst_226) + (begin + 'for-loop + (if (pair? lst_226) + (let-values (((id_55) (unsafe-car lst_226)) + ((rest_118) (unsafe-cdr lst_226))) + (let-values (((fold-var_217) + (let-values (((fold-var_218) + fold-var_216)) + (let-values (((fold-var_219) + (let-values () + (cons + (let-values () + ''#f) + fold-var_218)))) + (values fold-var_219))))) + (if (not #f) + (for-loop_232 fold-var_217 rest_118) + fold-var_217))) + fold-var_216))))) + for-loop_232) + null + lst_225)))))))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_222))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_223))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_224))) + ((letrec-values (((for-loop_233) + (lambda (fold-var_220 lst_227 lst_228 lst_1) + (begin + 'for-loop + (if (if (pair? lst_227) (if (pair? lst_228) (pair? lst_1) #f) #f) + (let-values (((id_56) (unsafe-car lst_227)) + ((rest_119) (unsafe-cdr lst_227)) + ((binding-sym_5) (unsafe-car lst_228)) + ((rest_120) (unsafe-cdr lst_228)) + ((trans-expr_0) (unsafe-car lst_1)) + ((rest_121) (unsafe-cdr lst_1))) + (let-values (((fold-var_221) + (let-values (((fold-var_222) fold-var_220)) + (let-values (((fold-var_223) + (let-values () + (cons + (let-values () + (let-values (((id-stx_0) + (compile-quote-syntax + (remove-scope + id_56 + top-level-bind-scope_2) + cctx_12))) + (list + top-level-bind!-id + id-stx_0 + self-expr_0 + phase_76 + phase-shift-id + ns-id + (list 'quote binding-sym_5) + (if trans-exprs_0 #t #f) + trans-expr_0))) + fold-var_222)))) + (values fold-var_223))))) + (if (not #f) + (for-loop_233 fold-var_221 rest_119 rest_120 rest_121) + fold-var_221))) + fold-var_220))))) + for-loop_233) + null + lst_222 + lst_223 + lst_224)))))))))))))) + (define-values + (generate-top-level-define-syntaxes) + (lambda (gen-syms_1 rhs_3 transformer-set!s_1 finish_3) + (begin + (list + 'call-with-values + (list 'lambda '() rhs_3) + (list* + 'case-lambda + (qq-append + (if (null? gen-syms_1) + '() + (list (list gen-syms_1 (list* 'begin (qq-append transformer-set!s_1 (qq-append (cdr finish_3) '((void)))))))) + (list + (list + '() + (list + 'let-values + (list + (list + gen-syms_1 + (list* + 'values + (reverse$1 + (let-values (((lst_229) gen-syms_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_229))) + ((letrec-values (((for-loop_234) + (lambda (fold-var_224 lst_230) + (begin + 'for-loop + (if (pair? lst_230) + (let-values (((s_310) (unsafe-car lst_230)) + ((rest_122) (unsafe-cdr lst_230))) + (let-values (((fold-var_225) + (let-values (((fold-var_226) fold-var_224)) + (let-values (((fold-var_227) + (let-values () + (cons + (let-values () ''#f) + fold-var_226)))) + (values fold-var_227))))) + (if (not #f) (for-loop_234 fold-var_225 rest_122) fold-var_225))) + fold-var_224))))) + for-loop_234) + null + lst_229))))))) + (list* 'begin (qq-append (cdr finish_3) '((void)))))) + (list 'args (list* 'let-values (list (list* gen-syms_1 '((apply values args)))) '((void))))))))))) + (define-values + (propagate-inline-property) + (lambda (e_47 orig-s_24) + (begin + (let-values (((v_167) (syntax-property$1 orig-s_24 'compiler-hint:cross-module-inline))) + (if v_167 (correlated-property e_47 'compiler-hint:cross-module-inline v_167) e_47))))) + (define-values + (compile-module-linklet.1) + (lambda (body-import-instances38_0 + body-imports37_0 + compile-linklet36_0 + get-module-linklet-info39_0 + load-modules?45_0 + module-prompt?41_0 + module-use*s42_0 + namespace46_0 + optimize-linklet?43_0 + serializable?40_0 + unsafe?44_0 + body-linklet58_0) + (begin + 'compile-module-linklet + (let-values (((body-linklet_1) body-linklet58_0)) + (let-values (((compile-linklet_0) + (if (eq? compile-linklet36_0 unsafe-undefined) 1/compile-linklet compile-linklet36_0))) + (let-values (((body-imports_1) body-imports37_0)) + (let-values (((body-import-instances_1) body-import-instances38_0)) + (let-values (((get-module-linklet-info_1) get-module-linklet-info39_0)) + (let-values (((serializable?_1) serializable?40_0)) + (let-values (((module-prompt?_1) module-prompt?41_0)) + (let-values (((module-use*s_1) module-use*s42_0)) + (let-values (((optimize-linklet?_1) optimize-linklet?43_0)) + (let-values (((unsafe?_0) unsafe?44_0)) + (let-values (((load-modules?_0) load-modules?45_0)) + (let-values (((namespace_2) namespace46_0)) + (let-values () + (let-values (((linklet_2 new-module-use*s_1) + (begin + (if log-performance? + (let-values () (start-performance-region 'compile '_ 'linklet)) + (void)) + (begin0 + (let-values () + ((lambda (l_43 name_51 keys_1 getter_0) + (compile-linklet_0 + l_43 + name_51 + keys_1 + getter_0 + (let-values (((flags_0) + (if serializable?_1 + (if module-prompt?_1 + '(serializable use-prompt) + '(serializable)) + (if module-prompt?_1 + '(use-prompt) + (if optimize-linklet?_1 '() '(quick)))))) + (if unsafe?_0 (cons 'unsafe flags_0) flags_0)))) + body-linklet_1 + 'module + (list->vector (append body-import-instances_1 module-use*s_1)) + (make-module-use-to-linklet + optimize-linklet?_1 + load-modules?_0 + namespace_2 + get-module-linklet-info_1 + module-use*s_1))) + (if log-performance? + (let-values () (end-performance-region)) + (void)))))) + (values + linklet_2 + (list-tail + (vector->list new-module-use*s_1) + (length body-imports_1)))))))))))))))))))) + (define-values + (make-module-use-to-linklet) + (lambda (optimize-linklet?_2 load-modules?_1 ns_54 get-module-linklet-info_2 init-mu*s_0) + (begin + (let-values (((mu*-intern-table_0) (make-hash))) + (let-values (((intern-module-use*_0) + (lambda (mu*_5) + (begin + 'intern-module-use* + (let-values (((mod-name_15) + (1/module-path-index-resolve (module-use-module mu*_5) load-modules?_1))) + (let-values (((existing-mu*_1) + (hash-ref mu*-intern-table_0 (cons mod-name_15 (module-use-phase mu*_5)) #f))) + (if existing-mu*_1 + (let-values () + (begin (module-use-merge-extra-inspectorss! existing-mu*_1 mu*_5) existing-mu*_1)) + (let-values () + (begin + (hash-set! mu*-intern-table_0 (cons mod-name_15 (module-use-phase mu*_5)) mu*_5) + mu*_5))))))))) + (begin + (let-values (((lst_231) init-mu*s_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_231))) + ((letrec-values (((for-loop_235) + (lambda (lst_232) + (begin + 'for-loop + (if (pair? lst_232) + (let-values (((mu*_6) (unsafe-car lst_232)) ((rest_123) (unsafe-cdr lst_232))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () (intern-module-use*_0 mu*_6)) + (values))))) + (values))))) + (if (not #f) (for-loop_235 rest_123) (values)))) + (values)))))) + for-loop_235) + lst_231))) + (void) + (lambda (mu*-or-instance_0) + (if (1/instance? mu*-or-instance_0) + (let-values () (values mu*-or-instance_0 #f)) + (if (not optimize-linklet?_2) + (let-values () (values #f #f)) + (if mu*-or-instance_0 + (let-values () + (let-values (((mu*_7) mu*-or-instance_0)) + (let-values (((mod-name_16) + (1/module-path-index-resolve (module-use-module mu*_7) load-modules?_1))) + (let-values (((mli_0) + (let-values (((or-part_235) + (get-module-linklet-info_2 mod-name_16 (module-use-phase mu*_7)))) + (if or-part_235 + or-part_235 + (namespace->module-linklet-info + ns_54 + mod-name_16 + (module-use-phase mu*_7)))))) + (begin + (if mli_0 + (let-values () + (module-use*-declaration-inspector! mu*_7 (module-linklet-info-inspector mli_0))) + (void)) + (if mli_0 + (values + (module-linklet-info-linklet-or-instance mli_0) + (if (module-linklet-info-module-uses mli_0) + (list->vector + (append + '(#f #f) + (let-values (((mus_2) (module-linklet-info-module-uses mli_0)) + ((extra-inspectorsss_3) + (module-linklet-info-extra-inspectorsss mli_0))) + (reverse$1 + (let-values (((lst_233) mus_2) + ((lst_234) + (linklet-import-variables$1 + (module-linklet-info-linklet-or-instance mli_0))) + ((lst_235) + (let-values (((or-part_236) extra-inspectorsss_3)) + (if or-part_236 or-part_236 mus_2)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_233))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_234))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_235))) + ((letrec-values (((for-loop_157) + (lambda (fold-var_228 lst_236 lst_237 lst_238) + (begin + 'for-loop + (if (if (pair? lst_236) + (if (pair? lst_237) (pair? lst_238) #f) + #f) + (let-values (((sub-mu_0) (unsafe-car lst_236)) + ((rest_124) (unsafe-cdr lst_236)) + ((imports_3) (unsafe-car lst_237)) + ((rest_125) (unsafe-cdr lst_237)) + ((extra-inspectorss_13) + (unsafe-car lst_238)) + ((rest_126) (unsafe-cdr lst_238))) + (let-values (((fold-var_229) + (let-values (((fold-var_230) + fold-var_228)) + (let-values (((fold-var_231) + (let-values () + (cons + (let-values () + (intern-module-use*_0 + (module-use+extra-inspectors + (module-path-index-shift + (module-use-module + sub-mu_0) + (module-linklet-info-self + mli_0) + (module-use-module + mu*_7)) + (module-use-phase + sub-mu_0) + imports_3 + (module-linklet-info-inspector + mli_0) + (module-linklet-info-extra-inspector + mli_0) + (if extra-inspectorsss_3 + extra-inspectorss_13 + #f)))) + fold-var_230)))) + (values fold-var_231))))) + (if (not #f) + (for-loop_157 + fold-var_229 + rest_124 + rest_125 + rest_126) + fold-var_229))) + fold-var_228))))) + for-loop_157) + null + lst_233 + lst_234 + lst_235))))))) + #f)) + (values #f #f))))))) + (let-values () (values #f #f)))))))))))) + (define-values + (build-shared-data-linklet.1) + (lambda (to-correlated-linklet?1_0 cims3_0 ns4_0) + (begin + 'build-shared-data-linklet + (let-values (((cims_0) cims3_0)) + (let-values (((ns_55) ns4_0)) + (let-values (((to-correlated-linklet?_3) to-correlated-linklet?1_0)) + (let-values () + (let-values (((mpis_20) (make-module-path-index-table))) + (let-values (((mpi-trees_0) + (map-cim-tree + cims_0 + (lambda (cim_1) + (let-values (((vec_69 i_173) + (let-values (((vec_70 len_53) + (let-values (((vec_71) (compiled-in-memory-mpis cim_1))) + (begin + (check-vector vec_71) + (values vec_71 (unsafe-vector-length vec_71)))))) + (begin + #f + ((letrec-values (((for-loop_106) + (lambda (vec_72 i_174 pos_14) + (begin + 'for-loop + (if (unsafe-fx< pos_14 len_53) + (let-values (((mpi_51) + (unsafe-vector-ref + vec_70 + pos_14))) + (let-values (((vec_73 i_175) + (let-values (((vec_74) + vec_72) + ((i_176) i_174)) + (let-values (((vec_75 + i_177) + (let-values () + (let-values (((new-vec_3) + (if (eq? + i_176 + (unsafe-vector*-length + vec_74)) + (grow-vector + vec_74) + vec_74))) + (begin + (unsafe-vector*-set! + new-vec_3 + i_176 + (let-values () + (add-module-path-index!/pos + mpis_20 + mpi_51))) + (values + new-vec_3 + (unsafe-fx+ + i_176 + 1))))))) + (values vec_75 i_177))))) + (if (not #f) + (for-loop_106 + vec_73 + i_175 + (unsafe-fx+ 1 pos_14)) + (values vec_73 i_175)))) + (values vec_72 i_174)))))) + for-loop_106) + (make-vector 16) + 0 + 0))))) + (shrink-vector vec_69 i_173)))))) + (let-values (((syntax-literals_0) (make-syntax-literals))) + (let-values (((syntax-literals-trees_0) + (map-cim-tree + cims_0 + (lambda (cim_2) + (add-syntax-literals! + syntax-literals_0 + (compiled-in-memory-syntax-literals cim_2)))))) + (let-values (((module-uses-tables_0) null)) + (let-values (((module-uses-tables-count_0) 0)) + (let-values (((phase-to-link-module-uses-trees_0) + (map-cim-tree + cims_0 + (lambda (cim_3) + (let-values (((pos_110) module-uses-tables-count_0)) + (begin + (set! module-uses-tables_0 + (cons + (compiled-in-memory-phase-to-link-module-uses cim_3) + module-uses-tables_0)) + (set! module-uses-tables-count_0 (add1 pos_110)) + pos_110)))))) + (let-values (((syntax-literals-expr_0) + (generate-eager-syntax-literals! syntax-literals_0 mpis_20 0 #f ns_55))) + (let-values (((phase-to-link-module-uses-expr_2) + (list* + 'vector + (reverse$1 + (let-values (((lst_26) (reverse$1 module-uses-tables_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_26))) + ((letrec-values (((for-loop_236) + (lambda (fold-var_14 lst_239) + (begin + 'for-loop + (if (pair? lst_239) + (let-values (((phase-to-link-module-uses_2) + (unsafe-car lst_239)) + ((rest_52) (unsafe-cdr lst_239))) + (let-values (((fold-var_11) + (let-values (((fold-var_232) + fold-var_14)) + (let-values (((fold-var_233) + (let-values () + (cons + (let-values () + (serialize-phase-to-link-module-uses + phase-to-link-module-uses_2 + mpis_20)) + fold-var_232)))) + (values fold-var_233))))) + (if (not #f) + (for-loop_236 fold-var_11 rest_52) + fold-var_11))) + fold-var_14))))) + for-loop_236) + null + lst_26))))))) + (let-values (((linklet-s_0) + (list + 'linklet + (list deserialize-imports eager-instance-imports) + (list* + mpi-vector-id + '(mpi-vector-trees + phase-to-link-modules-vector + phase-to-link-modules-trees + syntax-literals + syntax-literals-trees)) + (list + 'define-values + (list mpi-vector-id) + (let-values (((mpis6_1) mpis_20)) + (generate-module-path-index-deserialize.1 #f mpis6_1))) + (list 'define-values '(mpi-vector-trees) (list 'quote mpi-trees_0)) + (list + 'define-values + '(phase-to-link-modules-vector) + phase-to-link-module-uses-expr_2) + (list + 'define-values + '(phase-to-link-modules-trees) + (list 'quote phase-to-link-module-uses-trees_0)) + (list 'define-values '(syntax-literals) syntax-literals-expr_0) + (list + 'define-values + '(syntax-literals-trees) + (list 'quote syntax-literals-trees_0))))) + (if to-correlated-linklet?_3 + (make-correlated-linklet linklet-s_0 #f) + (1/compile-linklet linklet-s_0))))))))))))))))))) + (define-values + (map-cim-tree) + (lambda (cims_1 proc_6) + (begin + ((letrec-values (((loop_94) + (lambda (cims_2) + (begin + 'loop + (reverse$1 + (let-values (((lst_8) cims_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_8))) + ((letrec-values (((for-loop_237) + (lambda (fold-var_234 lst_240) + (begin + 'for-loop + (if (pair? lst_240) + (let-values (((cim_4) (unsafe-car lst_240)) + ((rest_127) (unsafe-cdr lst_240))) + (let-values (((fold-var_88) + (let-values (((fold-var_235) fold-var_234)) + (let-values (((fold-var_106) + (let-values () + (cons + (let-values () + (vector + (proc_6 cim_4) + (loop_94 + (compiled-in-memory-pre-compiled-in-memorys + cim_4)) + (loop_94 + (compiled-in-memory-post-compiled-in-memorys + cim_4)))) + fold-var_235)))) + (values fold-var_106))))) + (if (not #f) + (for-loop_237 fold-var_88 rest_127) + fold-var_88))) + fold-var_234))))) + for-loop_237) + null + lst_8)))))))) + loop_94) + cims_1)))) + (define-values + (compiled-tops->compiled-top.1) + (lambda (merge-serialization?2_0 namespace3_0 to-correlated-linklet?1_1 all-cims7_0) + (begin + 'compiled-tops->compiled-top + (let-values (((all-cims_0) all-cims7_0)) + (let-values (((to-correlated-linklet?_4) to-correlated-linklet?1_1)) + (let-values (((merge-serialization?_0) merge-serialization?2_0)) + (let-values (((ns_56) namespace3_0)) + (let-values () + (let-values (((cims_3) (remove-nontail-purely-functional all-cims_0))) + (if (= 1 (length cims_3)) + (let-values () (car cims_3)) + (let-values () + (let-values (((sequence-ht_0) + (let-values (((lst_241) cims_3) ((start_45) 0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_241))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_45))) + ((letrec-values (((for-loop_238) + (lambda (table_173 lst_242 pos_111) + (begin + 'for-loop + (if (if (pair? lst_242) #t #f) + (let-values (((cim_5) (unsafe-car lst_242)) + ((rest_47) (unsafe-cdr lst_242)) + ((i_178) pos_111)) + (let-values (((table_174) + (let-values (((table_175) table_173)) + (let-values (((table_176) + (let-values () + (let-values (((key_77 + val_58) + (let-values () + (values + (string->symbol + (number->string + i_178)) + (compiled-in-memory-linklet-directory + cim_5))))) + (hash-set + table_175 + key_77 + val_58))))) + (values table_176))))) + (if (not #f) + (for-loop_238 table_174 rest_47 (+ pos_111 1)) + table_174))) + table_173))))) + for-loop_238) + '#hasheq() + lst_241 + start_45))))) + (let-values (((ht_75) + (if merge-serialization?_0 + (hash-set + sequence-ht_0 + 'data + (1/hash->linklet-directory + (hasheq + #f + (1/hash->linklet-bundle + (hasheq + 0 + (let-values (((cims9_0) cims_3) + ((ns10_1) ns_56) + ((to-correlated-linklet?11_0) to-correlated-linklet?_4)) + (build-shared-data-linklet.1 + to-correlated-linklet?11_0 + cims9_0 + ns10_1))))))) + sequence-ht_0))) + (compiled-in-memory1.1 + (1/hash->linklet-directory ht_75) + #f + #f + #f + '#hasheqv() + #f + '#hasheqv() + '#() + '#() + cims_3 + null + #f + #f)))))))))))))) + (define-values + (compiled-top->compiled-tops) + (lambda (ld_6) + (begin + (let-values (((ht_133) (linklet-directory->hash$1 ld_6))) + (reverse$1 + (let-values (((start_46) 0) ((end_32) (hash-count ht_133)) ((inc_26) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_46 end_32 inc_26))) + ((letrec-values (((for-loop_14) + (lambda (fold-var_236 pos_112) + (begin + 'for-loop + (if (< pos_112 end_32) + (let-values (((i_179) pos_112)) + (let-values (((fold-var_237) + (let-values (((id*_8) + (hash-ref + ht_133 + (string->symbol (number->string i_179)) + #f))) + (begin + #t + ((letrec-values (((for-loop_23) + (lambda (fold-var_70) + (begin + 'for-loop + (let-values (((top_0) id*_8)) + (let-values (((fold-var_102) + (let-values (((fold-var_103) + fold-var_70)) + (if top_0 + (let-values (((fold-var_104) + fold-var_103)) + (let-values (((fold-var_71) + (let-values () + (cons + (let-values () + top_0) + fold-var_104)))) + (values + fold-var_71))) + fold-var_103)))) + fold-var_102)))))) + for-loop_23) + fold-var_236))))) + (if (not #f) (for-loop_14 fold-var_237 (+ pos_112 inc_26)) fold-var_237))) + fold-var_236))))) + for-loop_14) + null + start_46)))))))) + (define-values + (remove-nontail-purely-functional) + (lambda (cims_4) + (begin + ((letrec-values (((loop_95) + (lambda (cims_5) + (begin + 'loop + (if (null? cims_5) + (let-values () null) + (if (null? (cdr cims_5)) + (let-values () cims_5) + (if (if (compiled-in-memory? (car cims_5)) + (compiled-in-memory-purely-functional? (car cims_5)) + #f) + (let-values () (loop_95 (cdr cims_5))) + (let-values () (cons (car cims_5) (cdr cims_5)))))))))) + loop_95) + cims_4)))) + (define-values + (struct:known-defined/delay known-defined/delay2.1 known-defined/delay? known-defined/delay-thunk) + (let-values (((struct:_3 make-_3 ?_3 -ref_3 -set!_3) + (let-values () + (let-values () + (make-struct-type 'known-defined/delay #f 1 0 #f null 'prefab #f '(0) #f 'known-defined/delay))))) + (values struct:_3 make-_3 ?_3 (make-struct-field-accessor -ref_3 0 'thunk)))) + (define-values + (struct:known-property known-property3.1 known-property?) + (let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () (make-struct-type 'known-property #f 0 0 #f null 'prefab #f '() #f 'known-property))))) + (values struct:_6 make-_6 ?_6))) + (define-values + (struct:known-property-of-function + known-property-of-function4.1 + known-property-of-function? + known-property-of-function-arity) + (let-values (((struct:_35 make-_35 ?_35 -ref_35 -set!_35) + (let-values () + (let-values () + (make-struct-type + 'known-property-of-function + #f + 1 + 0 + #f + null + 'prefab + #f + '(0) + #f + 'known-property-of-function))))) + (values struct:_35 make-_35 ?_35 (make-struct-field-accessor -ref_35 0 'arity)))) + (define-values + (struct:known-function known-function5.1 known-function? known-function-arity known-function-pure?) + (let-values (((struct:_38 make-_38 ?_38 -ref_38 -set!_38) + (let-values () + (let-values () + (make-struct-type 'known-function #f 2 0 #f null 'prefab #f '(0 1) #f 'known-function))))) + (values + struct:_38 + make-_38 + ?_38 + (make-struct-field-accessor -ref_38 0 'arity) + (make-struct-field-accessor -ref_38 1 'pure?)))) + (define-values + (struct:known-function-of-satisfying + known-function-of-satisfying6.1 + known-function-of-satisfying? + known-function-of-satisfying-arg-predicate-keys) + (let-values (((struct:_39 make-_39 ?_39 -ref_39 -set!_39) + (let-values () + (let-values () + (make-struct-type + 'known-function-of-satisfying + #f + 1 + 0 + #f + null + 'prefab + #f + '(0) + #f + 'known-function-of-satisfying))))) + (values struct:_39 make-_39 ?_39 (make-struct-field-accessor -ref_39 0 'arg-predicate-keys)))) + (define-values + (struct:known-predicate known-predicate7.1 known-predicate? known-predicate-key) + (let-values (((struct:_40 make-_40 ?_40 -ref_40 -set!_40) + (let-values () + (let-values () + (make-struct-type 'known-predicate #f 1 0 #f null 'prefab #f '(0) #f 'known-predicate))))) + (values struct:_40 make-_40 ?_40 (make-struct-field-accessor -ref_40 0 'key)))) + (define-values + (struct:known-satisfies known-satisfies8.1 known-satisfies? known-satisfies-predicate-key) + (let-values (((struct:_41 make-_41 ?_41 -ref_41 -set!_41) + (let-values () + (let-values () + (make-struct-type 'known-satisfies #f 1 0 #f null 'prefab #f '(0) #f 'known-satisfies))))) + (values struct:_41 make-_41 ?_41 (make-struct-field-accessor -ref_41 0 'predicate-key)))) + (define-values + (struct:known-struct-op known-struct-op9.1 known-struct-op? known-struct-op-type known-struct-op-field-count) + (let-values (((struct:_42 make-_42 ?_42 -ref_42 -set!_42) + (let-values () + (let-values () + (make-struct-type 'known-struct-op #f 2 0 #f null 'prefab #f '(0 1) #f 'known-struct-op))))) + (values + struct:_42 + make-_42 + ?_42 + (make-struct-field-accessor -ref_42 0 'type) + (make-struct-field-accessor -ref_42 1 'field-count)))) + (define-values + (lookup-defn) + (lambda (defns_0 sym_59) + (begin + (let-values (((d_35) (hash-ref defns_0 sym_59 #f))) + (if (known-defined/delay? d_35) + (let-values () (begin ((known-defined/delay-thunk d_35)) (lookup-defn defns_0 sym_59))) + (let-values () d_35)))))) + (define-values + (any-side-effects?.1) + (lambda (known-defns2_0 known-locals1_0 ready-variable?3_0 e7_0 expected-results8_0) + (begin + 'any-side-effects? + (let-values (((e_48) e7_0)) + (let-values (((expected-results_0) expected-results8_0)) + (let-values (((locals_0) known-locals1_0)) + (let-values (((defns_1) known-defns2_0)) + (let-values (((ready-variable?_0) + (if (eq? ready-variable?3_0 unsafe-undefined) + (lambda (id_57) (begin 'ready-variable? #f)) + ready-variable?3_0))) + (let-values () + (let-values (((effects?_0) + (lambda (e_19 expected-results_1 locals_1) + (begin + 'effects? + (let-values (((e10_0) e_19) + ((expected-results11_0) expected-results_1) + ((locals12_0) locals_1) + ((defns13_0) defns_1) + ((ready-variable?14_0) ready-variable?_0)) + (any-side-effects?.1 + defns13_0 + locals12_0 + ready-variable?14_0 + e10_0 + expected-results11_0)))))) + (let-values (((actual-results_0) + ((letrec-values (((loop_96) + (lambda (e_49 locals_2) + (begin + 'loop + (let-values (((tmp_27) + (if (pair? (correlated-e e_49)) + (correlated-e (car (correlated-e e_49))) + #f))) + (let-values (((index_3) + (if (symbol? tmp_27) + (hash-ref + '#hasheq((#%variable-reference . 1) + (begin . 5) + (begin0 . 6) + (case-lambda . 1) + (gensym . 12) + (if . 13) + (lambda . 1) + (let-values . 2) + (letrec-values . 2) + (make-parameter . 7) + (make-struct-field-accessor . 9) + (make-struct-field-mutator . 10) + (make-struct-type . 8) + (make-struct-type-property . 11) + (quote . 1) + (values . 3) + (void . 4)) + tmp_27 + (lambda () 0)) + 0))) + (if (unsafe-fx< index_3 6) + (if (unsafe-fx< index_3 2) + (if (unsafe-fx< index_3 1) + (let-values () + (let-values (((v_32) (correlated-e e_49))) + (if (let-values (((or-part_4) (string? v_32))) + (if or-part_4 + or-part_4 + (let-values (((or-part_5) (number? v_32))) + (if or-part_5 + or-part_5 + (let-values (((or-part_6) + (boolean? v_32))) + (if or-part_6 + or-part_6 + (char? v_32))))))) + (let-values () 1) + (let-values (((c1_26) + (if (pair? v_32) + (let-values (((rator_0) + (correlated-e + (car v_32)))) + (let-values (((or-part_35) + (hash-ref + locals_2 + rator_0 + #f))) + (if or-part_35 + or-part_35 + (lookup-defn + defns_1 + rator_0)))) + #f))) + (if c1_26 + ((lambda (d_36) + (let-values (((ok?_18 _15_0 e16_0) + (let-values (((s_7) e_49)) + (let-values (((orig-s_25) + s_7)) + (let-values (((_15_1 + e16_1) + (let-values (((s_8) + (if (1/syntax? + s_7) + (syntax-e$2 + s_7) + s_7))) + (if (pair? + s_8) + (let-values (((_17_0) + (let-values (((s_311) + (car + s_8))) + s_311)) + ((e18_0) + (let-values (((s_312) + (cdr + s_8))) + (let-values (((s_313) + (if (1/syntax? + s_312) + (syntax-e$2 + s_312) + s_312))) + (let-values (((flat-s_15) + (to-syntax-list.1$1 + s_313))) + (if (not + flat-s_15) + (let-values () + ((lambda (false_0 + str_7 + e_50) + (error + str_7)) + #f + "bad syntax" + orig-s_25)) + (let-values () + flat-s_15))))))) + (values + _17_0 + e18_0)) + ((lambda (false_1 + str_8 + e_10) + (error + str_8)) + #f + "bad syntax" + orig-s_25))))) + (values + #t + _15_1 + e16_1)))))) + (let-values (((n-args_0) + (length e16_0))) + (if (let-values (((or-part_237) + (if (let-values (((or-part_238) + (if (known-struct-op? + d_36) + (if (eq? + 'constructor + (known-struct-op-type + d_36)) + (= + (known-struct-op-field-count + d_36) + n-args_0) + #f) + #f))) + (if or-part_238 + or-part_238 + (if (known-function? + d_36) + (if (known-function-pure? + d_36) + (arity-includes? + (known-function-arity + d_36) + n-args_0) + #f) + #f))) + (let-values (((lst_8) + e16_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_8))) + ((letrec-values (((for-loop_237) + (lambda (result_86 + lst_240) + (begin + 'for-loop + (if (pair? + lst_240) + (let-values (((e_51) + (unsafe-car + lst_240)) + ((rest_127) + (unsafe-cdr + lst_240))) + (let-values (((result_87) + (let-values () + (let-values (((result_88) + (let-values () + (let-values () + (not + (effects?_0 + e_51 + 1 + locals_2)))))) + (values + result_88))))) + (if (if (not + ((lambda x_20 + (not + result_87)) + e_51)) + (not + #f) + #f) + (for-loop_237 + result_87 + rest_127) + result_87))) + result_86))))) + for-loop_237) + #t + lst_8))) + #f))) + (if or-part_237 + or-part_237 + (if (known-function-of-satisfying? + d_36) + (if (= + n-args_0 + (length + (known-function-of-satisfying-arg-predicate-keys + d_36))) + (let-values (((lst_10) + e16_0) + ((lst_196) + (known-function-of-satisfying-arg-predicate-keys + d_36))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_10))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_196))) + ((letrec-values (((for-loop_239) + (lambda (result_89 + lst_199 + lst_30) + (begin + 'for-loop + (if (if (pair? + lst_199) + (pair? + lst_30) + #f) + (let-values (((e_52) + (unsafe-car + lst_199)) + ((rest_11) + (unsafe-cdr + lst_199)) + ((key_78) + (unsafe-car + lst_30)) + ((rest_128) + (unsafe-cdr + lst_30))) + (let-values (((result_90) + (let-values () + (let-values (((result_91) + (let-values () + (let-values () + (if (not + (effects?_0 + e_52 + 1 + locals_2)) + (satisfies? + e_52 + key_78 + defns_1 + locals_2) + #f))))) + (values + result_91))))) + (if (if (not + ((lambda x_64 + (not + result_90)) + e_52)) + (if (not + ((lambda x_35 + (not + result_90)) + key_78)) + (not + #f) + #f) + #f) + (for-loop_239 + result_90 + rest_11 + rest_128) + result_90))) + result_89))))) + for-loop_239) + #t + lst_10 + lst_196))) + #f) + #f))) + 1 + #f)))) + c1_26) + (let-values () + (if (let-values (((or-part_153) + (self-quoting-in-linklet? + v_32))) + (if or-part_153 + or-part_153 + (if (symbol? v_32) + (let-values (((or-part_154) + (hash-ref + locals_2 + v_32 + #f))) + (if or-part_154 + or-part_154 + (let-values (((or-part_155) + (lookup-defn + defns_1 + v_32))) + (if or-part_155 + or-part_155 + (let-values (((or-part_239) + (built-in-symbol? + v_32))) + (if or-part_239 + or-part_239 + (ready-variable?_0 + v_32))))))) + #f))) + 1 + #f))))))) + (let-values () 1)) + (if (unsafe-fx< index_3 3) + (let-values () + (let-values (((ok?_19 + _19_0 + ids20_0 + rhs21_0 + body22_0) + (let-values (((s_314) e_49)) + (let-values (((orig-s_26) s_314)) + (let-values (((_19_1 + ids20_1 + rhs21_1 + body22_1) + (let-values (((s_32) + (if (1/syntax? + s_314) + (syntax-e$2 + s_314) + s_314))) + (if (pair? s_32) + (let-values (((_23_0) + (let-values (((s_315) + (car + s_32))) + s_315)) + ((ids24_0 + rhs25_0 + body26_0) + (let-values (((s_98) + (cdr + s_32))) + (let-values (((s_316) + (if (1/syntax? + s_98) + (syntax-e$2 + s_98) + s_98))) + (if (pair? + s_316) + (let-values (((ids27_0 + rhs28_0) + (let-values (((s_317) + (car + s_316))) + (let-values (((s_318) + (if (1/syntax? + s_317) + (syntax-e$2 + s_317) + s_317))) + (let-values (((flat-s_16) + (to-syntax-list.1$1 + s_318))) + (if (not + flat-s_16) + (let-values () + ((lambda (false_2 + str_9 + e_53) + (error + str_9)) + #f + "bad syntax" + orig-s_26)) + (let-values () + (let-values (((ids_9 + rhs_4) + (let-values (((lst_243) + flat-s_16)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_243))) + ((letrec-values (((for-loop_240) + (lambda (ids_10 + rhs_5 + lst_210) + (begin + 'for-loop + (if (pair? + lst_210) + (let-values (((s_319) + (unsafe-car + lst_210)) + ((rest_129) + (unsafe-cdr + lst_210))) + (let-values (((ids_11 + rhs_6) + (let-values (((ids_12) + ids_10) + ((rhs_7) + rhs_5)) + (let-values (((ids_13 + rhs_8) + (let-values () + (let-values (((ids34_0 + rhs35_0) + (let-values () + (let-values (((s_320) + (if (1/syntax? + s_319) + (syntax-e$2 + s_319) + s_319))) + (if (pair? + s_320) + (let-values (((ids30_0) + (let-values (((s_321) + (car + s_320))) + s_321)) + ((rhs31_0) + (let-values (((s_63) + (cdr + s_320))) + (let-values (((s_322) + (if (1/syntax? + s_63) + (syntax-e$2 + s_63) + s_63))) + (if (pair? + s_322) + (let-values (((rhs32_0) + (let-values (((s_64) + (car + s_322))) + s_64)) + (() + (let-values (((s_65) + (cdr + s_322))) + (let-values (((s_197) + (if (1/syntax? + s_65) + (syntax-e$2 + s_65) + s_65))) + (if (null? + s_197) + (values) + ((lambda (false_3 + str_10 + e_54) + (error + str_10)) + #f + "bad syntax" + orig-s_26)))))) + (values + rhs32_0)) + ((lambda (false_4 + str_11 + e_55) + (error + str_11)) + #f + "bad syntax" + orig-s_26)))))) + (values + ids30_0 + rhs31_0)) + ((lambda (false_5 + str_12 + e_56) + (error + str_12)) + #f + "bad syntax" + orig-s_26)))))) + (values + (cons + ids34_0 + ids_12) + (cons + rhs35_0 + rhs_7)))))) + (values + ids_13 + rhs_8))))) + (if (not + #f) + (for-loop_240 + ids_11 + rhs_6 + rest_129) + (values + ids_11 + rhs_6)))) + (values + ids_10 + rhs_5)))))) + for-loop_240) + null + null + lst_243))))) + (values + (reverse$1 + ids_9) + (reverse$1 + rhs_4))))))))) + ((body29_0) + (let-values (((s_323) + (cdr + s_316))) + (let-values (((s_324) + (if (1/syntax? + s_323) + (syntax-e$2 + s_323) + s_323))) + (if (pair? + s_324) + (let-values (((body33_0) + (let-values (((s_325) + (car + s_324))) + s_325)) + (() + (let-values (((s_326) + (cdr + s_324))) + (let-values (((s_90) + (if (1/syntax? + s_326) + (syntax-e$2 + s_326) + s_326))) + (if (null? + s_90) + (values) + ((lambda (false_6 + str_13 + e_57) + (error + str_13)) + #f + "bad syntax" + orig-s_26)))))) + (values + body33_0)) + ((lambda (false_7 + str_14 + e_58) + (error + str_14)) + #f + "bad syntax" + orig-s_26)))))) + (values + ids27_0 + rhs28_0 + body29_0)) + ((lambda (false_8 + str_15 + e_59) + (error + str_15)) + #f + "bad syntax" + orig-s_26)))))) + (values + _23_0 + ids24_0 + rhs25_0 + body26_0)) + ((lambda (false_9 + str_16 + e_60) + (error + str_16)) + #f + "bad syntax" + orig-s_26))))) + (values + #t + _19_1 + ids20_1 + rhs21_1 + body22_1)))))) + (if (not + (let-values (((lst_244) ids20_0) + ((lst_32) rhs21_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_244))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_32))) + ((letrec-values (((for-loop_27) + (lambda (result_92 + lst_33 + lst_245) + (begin + 'for-loop + (if (if (pair? + lst_33) + (pair? + lst_245) + #f) + (let-values (((ids_14) + (unsafe-car + lst_33)) + ((rest_130) + (unsafe-cdr + lst_33)) + ((rhs_9) + (unsafe-car + lst_245)) + ((rest_131) + (unsafe-cdr + lst_245))) + (let-values (((result_93) + (let-values () + (let-values (((result_15) + (let-values () + (let-values () + (effects?_0 + rhs_9 + (correlated-length + ids_14) + locals_2))))) + (values + result_15))))) + (if (if (not + ((lambda x_65 + result_93) + ids_14)) + (if (not + ((lambda x_66 + result_93) + rhs_9)) + (not + #f) + #f) + #f) + (for-loop_27 + result_93 + rest_130 + rest_131) + result_93))) + result_92))))) + for-loop_27) + #f + lst_244 + lst_32)))) + (loop_96 + body22_0 + (add-binding-info locals_2 ids20_0 rhs21_0)) + #f))) + (if (unsafe-fx< index_3 4) + (let-values () + (let-values (((ok?_20 _36_0 e37_0) + (let-values (((s_327) e_49)) + (let-values (((orig-s_27) s_327)) + (let-values (((_36_1 e37_1) + (let-values (((s_328) + (if (1/syntax? + s_327) + (syntax-e$2 + s_327) + s_327))) + (if (pair? + s_328) + (let-values (((_38_0) + (let-values (((s_103) + (car + s_328))) + s_103)) + ((e39_0) + (let-values (((s_329) + (cdr + s_328))) + (let-values (((s_330) + (if (1/syntax? + s_329) + (syntax-e$2 + s_329) + s_329))) + (let-values (((flat-s_17) + (to-syntax-list.1$1 + s_330))) + (if (not + flat-s_17) + (let-values () + ((lambda (false_10 + str_17 + e_61) + (error + str_17)) + #f + "bad syntax" + orig-s_27)) + (let-values () + flat-s_17))))))) + (values + _38_0 + e39_0)) + ((lambda (false_11 + str_18 + e_62) + (error + str_18)) + #f + "bad syntax" + orig-s_27))))) + (values #t _36_1 e37_1)))))) + (if (let-values (((lst_246) e37_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_246))) + ((letrec-values (((for-loop_241) + (lambda (result_94 + lst_38) + (begin + 'for-loop + (if (pair? lst_38) + (let-values (((e_63) + (unsafe-car + lst_38)) + ((rest_132) + (unsafe-cdr + lst_38))) + (let-values (((result_95) + (let-values () + (let-values (((result_96) + (let-values () + (let-values () + (not + (effects?_0 + e_63 + 1 + locals_2)))))) + (values + result_96))))) + (if (if (not + ((lambda x_67 + (not + result_95)) + e_63)) + (not + #f) + #f) + (for-loop_241 + result_95 + rest_132) + result_95))) + result_94))))) + for-loop_241) + #t + lst_246))) + (length e37_0) + #f))) + (if (unsafe-fx< index_3 5) + (let-values () + (let-values (((ok?_21 _40_0 e41_0) + (let-values (((s_108) e_49)) + (let-values (((orig-s_28) + s_108)) + (let-values (((_40_1 e41_1) + (let-values (((s_331) + (if (1/syntax? + s_108) + (syntax-e$2 + s_108) + s_108))) + (if (pair? + s_331) + (let-values (((_42_0) + (let-values (((s_332) + (car + s_331))) + s_332)) + ((e43_0) + (let-values (((s_333) + (cdr + s_331))) + (let-values (((s_210) + (if (1/syntax? + s_333) + (syntax-e$2 + s_333) + s_333))) + (let-values (((flat-s_18) + (to-syntax-list.1$1 + s_210))) + (if (not + flat-s_18) + (let-values () + ((lambda (false_12 + str_19 + e_64) + (error + str_19)) + #f + "bad syntax" + orig-s_28)) + (let-values () + flat-s_18))))))) + (values + _42_0 + e43_0)) + ((lambda (false_13 + str_20 + e_37) + (error + str_20)) + #f + "bad syntax" + orig-s_28))))) + (values #t _40_1 e41_1)))))) + (if (let-values (((lst_247) e41_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_247))) + ((letrec-values (((for-loop_242) + (lambda (result_97 + lst_248) + (begin + 'for-loop + (if (pair? + lst_248) + (let-values (((e_40) + (unsafe-car + lst_248)) + ((rest_133) + (unsafe-cdr + lst_248))) + (let-values (((result_98) + (let-values () + (let-values (((result_99) + (let-values () + (let-values () + (not + (effects?_0 + e_40 + 1 + locals_2)))))) + (values + result_99))))) + (if (if (not + ((lambda x_68 + (not + result_98)) + e_40)) + (not + #f) + #f) + (for-loop_242 + result_98 + rest_133) + result_98))) + result_97))))) + for-loop_242) + #t + lst_247))) + 1 + #f))) + (let-values () + (let-values (((ok?_22 _44_0 e45_0) + (let-values (((s_334) e_49)) + (let-values (((orig-s_29) + s_334)) + (let-values (((_44_1 e45_1) + (let-values (((s_335) + (if (1/syntax? + s_334) + (syntax-e$2 + s_334) + s_334))) + (if (pair? + s_335) + (let-values (((_46_0) + (let-values (((s_305) + (car + s_335))) + s_305)) + ((e47_0) + (let-values (((s_217) + (cdr + s_335))) + (let-values (((s_120) + (if (1/syntax? + s_217) + (syntax-e$2 + s_217) + s_217))) + (let-values (((flat-s_19) + (to-syntax-list.1$1 + s_120))) + (if (not + flat-s_19) + (let-values () + ((lambda (false_14 + str_21 + e_65) + (error + str_21)) + #f + "bad syntax" + orig-s_29)) + (let-values () + flat-s_19))))))) + (values + _46_0 + e47_0)) + ((lambda (false_15 + str_22 + e_66) + (error + str_22)) + #f + "bad syntax" + orig-s_29))))) + (values #t _44_1 e45_1)))))) + ((letrec-values (((bloop_0) + (lambda (es_1) + (begin + 'bloop + (if (null? es_1) + (let-values () #f) + (if (null? (cdr es_1)) + (let-values () + (loop_96 + (car es_1) + locals_2)) + (let-values () + (if (not + (effects?_0 + (car es_1) + #f + locals_2)) + (bloop_0 + (cdr es_1)) + #f)))))))) + bloop_0) + e45_0))))))) + (if (unsafe-fx< index_3 9) + (if (unsafe-fx< index_3 7) + (let-values () + (let-values (((ok?_7 _48_0 e049_0 e50_0) + (let-values (((s_336) e_49)) + (let-values (((orig-s_30) s_336)) + (let-values (((_48_1 e049_1 e50_1) + (let-values (((s_130) + (if (1/syntax? + s_336) + (syntax-e$2 + s_336) + s_336))) + (if (pair? s_130) + (let-values (((_51_0) + (let-values (((s_337) + (car + s_130))) + s_337)) + ((e052_0 + e53_0) + (let-values (((s_220) + (cdr + s_130))) + (let-values (((s_221) + (if (1/syntax? + s_220) + (syntax-e$2 + s_220) + s_220))) + (if (pair? + s_221) + (let-values (((e054_0) + (let-values (((s_338) + (car + s_221))) + s_338)) + ((e55_0) + (let-values (((s_222) + (cdr + s_221))) + (let-values (((s_134) + (if (1/syntax? + s_222) + (syntax-e$2 + s_222) + s_222))) + (let-values (((flat-s_20) + (to-syntax-list.1$1 + s_134))) + (if (not + flat-s_20) + (let-values () + ((lambda (false_16 + str_23 + e_67) + (error + str_23)) + #f + "bad syntax" + orig-s_30)) + (let-values () + flat-s_20))))))) + (values + e054_0 + e55_0)) + ((lambda (false_17 + str_24 + e_68) + (error + str_24)) + #f + "bad syntax" + orig-s_30)))))) + (values + _51_0 + e052_0 + e53_0)) + ((lambda (false_18 + str_25 + e_69) + (error + str_25)) + #f + "bad syntax" + orig-s_30))))) + (values + #t + _48_1 + e049_1 + e50_1)))))) + (if (let-values (((lst_131) e50_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_131))) + ((letrec-values (((for-loop_243) + (lambda (result_100 + lst_249) + (begin + 'for-loop + (if (pair? lst_249) + (let-values (((e_70) + (unsafe-car + lst_249)) + ((rest_134) + (unsafe-cdr + lst_249))) + (let-values (((result_101) + (let-values () + (let-values (((result_102) + (let-values () + (let-values () + (not + (effects?_0 + e_70 + #f + locals_2)))))) + (values + result_102))))) + (if (if (not + ((lambda x_69 + (not + result_101)) + e_70)) + (not #f) + #f) + (for-loop_243 + result_101 + rest_134) + result_101))) + result_100))))) + for-loop_243) + #t + lst_131))) + (loop_96 e049_0 locals_2) + #f))) + (if (unsafe-fx< index_3 8) + (let-values () + (let-values (((ok?_23 + mp56_0 + v57_0 + g58_0 + quot59_0 + nm60_0) + (let-values (((s_339) e_49)) + (if (let-values (((s_340) + (if (1/syntax? + s_339) + (syntax-e$2 + s_339) + s_339))) + (if (pair? s_340) + (if (let-values (((s_341) + (car + s_340))) + #t) + (let-values (((s_342) + (cdr + s_340))) + (let-values (((s_343) + (if (1/syntax? + s_342) + (syntax-e$2 + s_342) + s_342))) + (if (pair? s_343) + (if (let-values (((s_344) + (car + s_343))) + #t) + (let-values (((s_345) + (cdr + s_343))) + (let-values (((s_346) + (if (1/syntax? + s_345) + (syntax-e$2 + s_345) + s_345))) + (if (pair? + s_346) + (if (let-values (((s_347) + (car + s_346))) + #t) + (let-values (((s_348) + (cdr + s_346))) + (let-values (((s_349) + (if (1/syntax? + s_348) + (syntax-e$2 + s_348) + s_348))) + (if (pair? + s_349) + (if (let-values (((s_350) + (car + s_349))) + (let-values (((s_351) + (if (1/syntax? + s_350) + (syntax-e$2 + s_350) + s_350))) + (if (pair? + s_351) + (if (let-values (((s_352) + (car + s_351))) + #t) + (let-values (((s_353) + (cdr + s_351))) + (let-values (((s_354) + (if (1/syntax? + s_353) + (syntax-e$2 + s_353) + s_353))) + (if (pair? + s_354) + (if (let-values (((s_355) + (car + s_354))) + #t) + (let-values (((s_356) + (cdr + s_354))) + (let-values (((s_357) + (if (1/syntax? + s_356) + (syntax-e$2 + s_356) + s_356))) + (null? + s_357))) + #f) + #f))) + #f) + #f))) + (let-values (((s_358) + (cdr + s_349))) + (let-values (((s_359) + (if (1/syntax? + s_358) + (syntax-e$2 + s_358) + s_358))) + (null? + s_359))) + #f) + #f))) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((mp56_1 + v57_1 + g58_1 + quot59_1 + nm60_1) + (let-values (((s_360) + (if (1/syntax? + s_339) + (syntax-e$2 + s_339) + s_339))) + (let-values (((mp61_0) + (let-values (((s_236) + (car + s_360))) + s_236)) + ((v62_0 + g63_0 + quot64_0 + nm65_0) + (let-values (((s_237) + (cdr + s_360))) + (let-values (((s_361) + (if (1/syntax? + s_237) + (syntax-e$2 + s_237) + s_237))) + (let-values (((v66_0) + (let-values (((s_240) + (car + s_361))) + s_240)) + ((g67_0 + quot68_0 + nm69_0) + (let-values (((s_362) + (cdr + s_361))) + (let-values (((s_241) + (if (1/syntax? + s_362) + (syntax-e$2 + s_362) + s_362))) + (let-values (((g70_0) + (let-values (((s_363) + (car + s_241))) + s_363)) + ((quot71_0 + nm72_0) + (let-values (((s_364) + (cdr + s_241))) + (let-values (((s_365) + (if (1/syntax? + s_364) + (syntax-e$2 + s_364) + s_364))) + (let-values (((quot73_0 + nm74_0) + (let-values (((s_366) + (car + s_365))) + (let-values (((s_367) + (if (1/syntax? + s_366) + (syntax-e$2 + s_366) + s_366))) + (let-values (((quot75_0) + (let-values (((s_368) + (car + s_367))) + s_368)) + ((nm76_0) + (let-values (((s_369) + (cdr + s_367))) + (let-values (((s_370) + (if (1/syntax? + s_369) + (syntax-e$2 + s_369) + s_369))) + (let-values (((nm77_0) + (let-values (((s_371) + (car + s_370))) + s_371)) + (() + (let-values (((s_372) + (cdr + s_370))) + (let-values (((s_373) + (if (1/syntax? + s_372) + (syntax-e$2 + s_372) + s_372))) + (values))))) + (values + nm77_0)))))) + (values + quot75_0 + nm76_0))))) + (() + (let-values (((s_374) + (cdr + s_365))) + (let-values (((s_375) + (if (1/syntax? + s_374) + (syntax-e$2 + s_374) + s_374))) + (values))))) + (values + quot73_0 + nm74_0)))))) + (values + g70_0 + quot71_0 + nm72_0)))))) + (values + v66_0 + g67_0 + quot68_0 + nm69_0)))))) + (values + mp61_0 + v62_0 + g63_0 + quot64_0 + nm65_0))))) + (values + #t + mp56_1 + v57_1 + g58_1 + quot59_1 + nm60_1))) + (values #f #f #f #f #f #f))))) + (if ok?_23 + (if (not + (let-values (((temp78_0) v57_0) + ((temp79_2) 1)) + (any-side-effects?.1 + '#hasheq() + '#hasheq() + unsafe-undefined + temp78_0 + temp79_2))) + (if (eq? 'quote quot59_0) + (if (symbol? nm60_0) + (if (equal? #f g58_0) 1 #f) + #f) + #f) + #f) + #f))) + (let-values () + (if (ok-make-struct-type? + e_49 + ready-variable?_0 + defns_1) + 5 + #f)))) + (if (unsafe-fx< index_3 11) + (if (unsafe-fx< index_3 10) + (let-values () + (if (ok-make-struct-field-accessor/mutator? + e_49 + locals_2 + 'general-accessor + defns_1) + 1 + #f)) + (let-values () + (if (ok-make-struct-field-accessor/mutator? + e_49 + locals_2 + 'general-mutator + defns_1) + 1 + #f))) + (if (unsafe-fx< index_3 12) + (let-values () + (if (ok-make-struct-type-property? e_49 defns_1) + 3 + #f)) + (if (unsafe-fx< index_3 13) + (let-values () + (let-values (((ok?_24 gs80_0 quot81_0 datum82_0) + (let-values (((s_376) e_49)) + (if (let-values (((s_377) + (if (1/syntax? + s_376) + (syntax-e$2 + s_376) + s_376))) + (if (pair? s_377) + (if (let-values (((s_378) + (car + s_377))) + #t) + (let-values (((s_379) + (cdr + s_377))) + (let-values (((s_380) + (if (1/syntax? + s_379) + (syntax-e$2 + s_379) + s_379))) + (if (pair? s_380) + (if (let-values (((s_381) + (car + s_380))) + (let-values (((s_382) + (if (1/syntax? + s_381) + (syntax-e$2 + s_381) + s_381))) + (if (pair? + s_382) + (if (let-values (((s_383) + (car + s_382))) + #t) + (let-values (((s_384) + (cdr + s_382))) + (let-values (((s_385) + (if (1/syntax? + s_384) + (syntax-e$2 + s_384) + s_384))) + (if (pair? + s_385) + (if (let-values (((s_386) + (car + s_385))) + #t) + (let-values (((s_387) + (cdr + s_385))) + (let-values (((s_388) + (if (1/syntax? + s_387) + (syntax-e$2 + s_387) + s_387))) + (null? + s_388))) + #f) + #f))) + #f) + #f))) + (let-values (((s_389) + (cdr + s_380))) + (let-values (((s_390) + (if (1/syntax? + s_389) + (syntax-e$2 + s_389) + s_389))) + (null? + s_390))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((gs80_1 + quot81_1 + datum82_1) + (let-values (((s_391) + (if (1/syntax? + s_376) + (syntax-e$2 + s_376) + s_376))) + (let-values (((gs83_0) + (let-values (((s_142) + (car + s_391))) + s_142)) + ((quot84_0 + datum85_0) + (let-values (((s_392) + (cdr + s_391))) + (let-values (((s_393) + (if (1/syntax? + s_392) + (syntax-e$2 + s_392) + s_392))) + (let-values (((quot86_0 + datum87_0) + (let-values (((s_254) + (car + s_393))) + (let-values (((s_255) + (if (1/syntax? + s_254) + (syntax-e$2 + s_254) + s_254))) + (let-values (((quot88_0) + (let-values (((s_394) + (car + s_255))) + s_394)) + ((datum89_0) + (let-values (((s_395) + (cdr + s_255))) + (let-values (((s_256) + (if (1/syntax? + s_395) + (syntax-e$2 + s_395) + s_395))) + (let-values (((datum90_0) + (let-values (((s_144) + (car + s_256))) + s_144)) + (() + (let-values (((s_145) + (cdr + s_256))) + (let-values (((s_396) + (if (1/syntax? + s_145) + (syntax-e$2 + s_145) + s_145))) + (values))))) + (values + datum90_0)))))) + (values + quot88_0 + datum89_0))))) + (() + (let-values (((s_397) + (cdr + s_393))) + (let-values (((s_146) + (if (1/syntax? + s_397) + (syntax-e$2 + s_397) + s_397))) + (values))))) + (values + quot86_0 + datum87_0)))))) + (values + gs83_0 + quot84_0 + datum85_0))))) + (values + #t + gs80_1 + quot81_1 + datum82_1))) + (values #f #f #f #f))))) + (if (let-values (((or-part_130) + (if ok?_24 + (if (eq? 'quote quot81_0) + (let-values (((or-part_240) + (symbol? + datum82_0))) + (if or-part_240 + or-part_240 + (string? + datum82_0))) + #f) + #f))) + (if or-part_130 + or-part_130 + (null? (cdr (correlated-e e_49))))) + 1 + #f))) + (let-values () + (let-values (((ok?_25 + _91_0 + id:rator92_0 + id:arg93_0 + thn94_0 + els95_0) + (let-values (((s_398) e_49)) + (if (let-values (((s_399) + (if (1/syntax? + s_398) + (syntax-e$2 + s_398) + s_398))) + (if (pair? s_399) + (if (let-values (((s_400) + (car + s_399))) + #t) + (let-values (((s_401) + (cdr + s_399))) + (let-values (((s_262) + (if (1/syntax? + s_401) + (syntax-e$2 + s_401) + s_401))) + (if (pair? s_262) + (if (let-values (((s_402) + (car + s_262))) + (let-values (((s_403) + (if (1/syntax? + s_402) + (syntax-e$2 + s_402) + s_402))) + (if (pair? + s_403) + (if (let-values (((s_404) + (car + s_403))) + (let-values (((or-part_241) + (if (1/syntax? + s_404) + (symbol? + (syntax-e$2 + s_404)) + #f))) + (if or-part_241 + or-part_241 + (symbol? + s_404)))) + (let-values (((s_263) + (cdr + s_403))) + (let-values (((s_264) + (if (1/syntax? + s_263) + (syntax-e$2 + s_263) + s_263))) + (if (pair? + s_264) + (if (let-values (((s_150) + (car + s_264))) + (let-values (((or-part_242) + (if (1/syntax? + s_150) + (symbol? + (syntax-e$2 + s_150)) + #f))) + (if or-part_242 + or-part_242 + (symbol? + s_150)))) + (let-values (((s_405) + (cdr + s_264))) + (let-values (((s_406) + (if (1/syntax? + s_405) + (syntax-e$2 + s_405) + s_405))) + (null? + s_406))) + #f) + #f))) + #f) + #f))) + (let-values (((s_265) + (cdr + s_262))) + (let-values (((s_266) + (if (1/syntax? + s_265) + (syntax-e$2 + s_265) + s_265))) + (if (pair? + s_266) + (if (let-values (((s_267) + (car + s_266))) + #t) + (let-values (((s_151) + (cdr + s_266))) + (let-values (((s_407) + (if (1/syntax? + s_151) + (syntax-e$2 + s_151) + s_151))) + (if (pair? + s_407) + (if (let-values (((s_268) + (car + s_407))) + #t) + (let-values (((s_408) + (cdr + s_407))) + (let-values (((s_269) + (if (1/syntax? + s_408) + (syntax-e$2 + s_408) + s_408))) + (null? + s_269))) + #f) + #f))) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((_91_1 + id:rator92_1 + id:arg93_1 + thn94_1 + els95_1) + (let-values (((s_409) + (if (1/syntax? + s_398) + (syntax-e$2 + s_398) + s_398))) + (let-values (((_96_0) + (let-values (((s_154) + (car + s_409))) + s_154)) + ((id:rator97_0 + id:arg98_0 + thn99_0 + els100_0) + (let-values (((s_410) + (cdr + s_409))) + (let-values (((s_411) + (if (1/syntax? + s_410) + (syntax-e$2 + s_410) + s_410))) + (let-values (((id:rator101_0 + id:arg102_0) + (let-values (((s_412) + (car + s_411))) + (let-values (((s_413) + (if (1/syntax? + s_412) + (syntax-e$2 + s_412) + s_412))) + (let-values (((id:rator105_0) + (let-values (((s_414) + (car + s_413))) + s_414)) + ((id:arg106_0) + (let-values (((s_158) + (cdr + s_413))) + (let-values (((s_415) + (if (1/syntax? + s_158) + (syntax-e$2 + s_158) + s_158))) + (let-values (((id:arg107_0) + (let-values (((s_416) + (car + s_415))) + s_416)) + (() + (let-values (((s_417) + (cdr + s_415))) + (let-values (((s_418) + (if (1/syntax? + s_417) + (syntax-e$2 + s_417) + s_417))) + (values))))) + (values + id:arg107_0)))))) + (values + id:rator105_0 + id:arg106_0))))) + ((thn103_0 + els104_0) + (let-values (((s_419) + (cdr + s_411))) + (let-values (((s_420) + (if (1/syntax? + s_419) + (syntax-e$2 + s_419) + s_419))) + (let-values (((thn108_0) + (let-values (((s_421) + (car + s_420))) + s_421)) + ((els109_0) + (let-values (((s_422) + (cdr + s_420))) + (let-values (((s_423) + (if (1/syntax? + s_422) + (syntax-e$2 + s_422) + s_422))) + (let-values (((els110_0) + (let-values (((s_424) + (car + s_423))) + s_424)) + (() + (let-values (((s_425) + (cdr + s_423))) + (let-values (((s_426) + (if (1/syntax? + s_425) + (syntax-e$2 + s_425) + s_425))) + (values))))) + (values + els110_0)))))) + (values + thn108_0 + els109_0)))))) + (values + id:rator101_0 + id:arg102_0 + thn103_0 + els104_0)))))) + (values + _96_0 + id:rator97_0 + id:arg98_0 + thn99_0 + els100_0))))) + (values + #t + _91_1 + id:rator92_1 + id:arg93_1 + thn94_1 + els95_1))) + (values #f #f #f #f #f #f))))) + (if ok?_25 + (let-values () + (let-values (((c2_3) + (let-values (((or-part_243) + (hash-ref + locals_2 + id:rator92_0 + #f))) + (if or-part_243 + or-part_243 + (lookup-defn + defns_1 + id:rator92_0))))) + (if c2_3 + ((lambda (d_37) + (if (known-predicate? d_37) + (if (not + (effects?_0 + thn94_0 + expected-results_0 + (hash-set + locals_2 + id:arg93_0 + (known-satisfies8.1 + (known-predicate-key + d_37))))) + (loop_96 els95_0 locals_2) + #f) + #f)) + c2_3) + (let-values () #f)))) + (let-values () + (let-values (((ok?_26 + _111_0 + tst112_0 + thn113_0 + els114_0) + (let-values (((s_187) e_49)) + (if (let-values (((s_427) + (if (1/syntax? + s_187) + (syntax-e$2 + s_187) + s_187))) + (if (pair? s_427) + (if (let-values (((s_428) + (car + s_427))) + #t) + (let-values (((s_429) + (cdr + s_427))) + (let-values (((s_430) + (if (1/syntax? + s_429) + (syntax-e$2 + s_429) + s_429))) + (if (pair? + s_430) + (if (let-values (((s_431) + (car + s_430))) + #t) + (let-values (((s_432) + (cdr + s_430))) + (let-values (((s_188) + (if (1/syntax? + s_432) + (syntax-e$2 + s_432) + s_432))) + (if (pair? + s_188) + (if (let-values (((s_433) + (car + s_188))) + #t) + (let-values (((s_434) + (cdr + s_188))) + (let-values (((s_435) + (if (1/syntax? + s_434) + (syntax-e$2 + s_434) + s_434))) + (if (pair? + s_435) + (if (let-values (((s_189) + (car + s_435))) + #t) + (let-values (((s_436) + (cdr + s_435))) + (let-values (((s_190) + (if (1/syntax? + s_436) + (syntax-e$2 + s_436) + s_436))) + (null? + s_190))) + #f) + #f))) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((_111_1 + tst112_1 + thn113_1 + els114_1) + (let-values (((s_437) + (if (1/syntax? + s_187) + (syntax-e$2 + s_187) + s_187))) + (let-values (((_115_0) + (let-values (((s_438) + (car + s_437))) + s_438)) + ((tst116_0 + thn117_0 + els118_0) + (let-values (((s_439) + (cdr + s_437))) + (let-values (((s_440) + (if (1/syntax? + s_439) + (syntax-e$2 + s_439) + s_439))) + (let-values (((tst119_0) + (let-values (((s_441) + (car + s_440))) + s_441)) + ((thn120_0 + els121_0) + (let-values (((s_442) + (cdr + s_440))) + (let-values (((s_443) + (if (1/syntax? + s_442) + (syntax-e$2 + s_442) + s_442))) + (let-values (((thn122_0) + (let-values (((s_444) + (car + s_443))) + s_444)) + ((els123_0) + (let-values (((s_160) + (cdr + s_443))) + (let-values (((s_445) + (if (1/syntax? + s_160) + (syntax-e$2 + s_160) + s_160))) + (let-values (((els124_0) + (let-values (((s_446) + (car + s_445))) + s_446)) + (() + (let-values (((s_447) + (cdr + s_445))) + (let-values (((s_448) + (if (1/syntax? + s_447) + (syntax-e$2 + s_447) + s_447))) + (values))))) + (values + els124_0)))))) + (values + thn122_0 + els123_0)))))) + (values + tst119_0 + thn120_0 + els121_0)))))) + (values + _115_0 + tst116_0 + thn117_0 + els118_0))))) + (values + #t + _111_1 + tst112_1 + thn113_1 + els114_1))) + (values + #f + #f + #f + #f + #f))))) + (if ok?_26 + (if (not + (effects?_0 tst112_0 1 locals_2)) + (if (not + (effects?_0 + thn113_0 + expected-results_0 + locals_2)) + (loop_96 els114_0 locals_2) + #f) + #f) + #f))))))))))))))))) + loop_96) + e_48 + locals_0))) + (not + (if actual-results_0 + (let-values (((or-part_244) (not expected-results_0))) + (if or-part_244 or-part_244 (= actual-results_0 expected-results_0))) + #f))))))))))))) + (define-values + (satisfies?) + (lambda (e_71 key_79 defns_2 locals_3) + (begin + (let-values (((d_38) + (let-values (((or-part_245) (hash-ref locals_3 e_71 #f))) + (if or-part_245 or-part_245 (lookup-defn defns_2 e_71))))) + (if d_38 (if (known-satisfies? d_38) (eq? key_79 (known-satisfies-predicate-key d_38)) #f) #f))))) + (define-values + (add-binding-info) + (lambda (locals_4 idss_0 rhss_0) + (begin + (let-values (((lst_250) idss_0) ((lst_251) rhss_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_250))) + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_251))) + ((letrec-values (((for-loop_244) + (lambda (locals_5 lst_252 lst_253) + (begin + 'for-loop + (if (if (pair? lst_252) (pair? lst_253) #f) + (let-values (((ids_15) (unsafe-car lst_252)) + ((rest_135) (unsafe-cdr lst_252)) + ((rhs_10) (unsafe-car lst_253)) + ((rest_136) (unsafe-cdr lst_253))) + (let-values (((locals_6) + (let-values (((locals_7) locals_5)) + (let-values (((locals_8) + (let-values () + ((letrec-values (((loop_97) + (lambda (rhs_11) + (begin + 'loop + (let-values (((tmp_28) + (if (pair? + (correlated-e + rhs_11)) + (correlated-e + (car + (correlated-e + rhs_11))) + #f))) + (if (equal? + tmp_28 + 'make-struct-type) + (let-values () + (let-values (((field-count_0) + (extract-struct-field-count-lower-bound + rhs_11))) + (let-values (((lst_254) + (correlated->list + ids_15)) + ((lst_255) + '(struct-type + constructor + predicate + general-accessor + general-mutator))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_254))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_255))) + ((letrec-values (((for-loop_245) + (lambda (locals_9 + lst_256 + lst_257) + (begin + 'for-loop + (if (if (pair? + lst_256) + (pair? + lst_257) + #f) + (let-values (((id_58) + (unsafe-car + lst_256)) + ((rest_137) + (unsafe-cdr + lst_256)) + ((type_1) + (unsafe-car + lst_257)) + ((rest_138) + (unsafe-cdr + lst_257))) + (let-values (((locals_10) + (let-values (((locals_11) + locals_9)) + (let-values (((locals_12) + (let-values () + (hash-set + locals_11 + (correlated-e + id_58) + (known-struct-op9.1 + type_1 + field-count_0))))) + (values + locals_12))))) + (if (not + #f) + (for-loop_245 + locals_10 + rest_137 + rest_138) + locals_10))) + locals_9))))) + for-loop_245) + locals_7 + lst_254 + lst_255))))) + (if (equal? + tmp_28 + 'let-values) + (let-values () + (if (null? + (correlated-e + (correlated-cadr + rhs_11))) + (loop_97 + (caddr + (correlated->list + rhs_11))) + (loop_97 #f))) + (let-values () + (let-values (((ids*_0) + (correlated->list + ids_15))) + (if (if (pair? + ids*_0) + (null? + (cdr ids*_0)) + #f) + (let-values () + (hash-set + locals_7 + (correlated-e + (car ids*_0)) + (infer-known + rhs_11))) + (let-values () + (let-values (((lst_258) + ids*_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_258))) + ((letrec-values (((for-loop_246) + (lambda (locals_13 + lst_259) + (begin + 'for-loop + (if (pair? + lst_259) + (let-values (((id_59) + (unsafe-car + lst_259)) + ((rest_139) + (unsafe-cdr + lst_259))) + (let-values (((locals_14) + (let-values (((locals_15) + locals_13)) + (let-values (((locals_16) + (let-values () + (hash-set + locals_15 + (correlated-e + id_59) + #t)))) + (values + locals_16))))) + (if (not + #f) + (for-loop_246 + locals_14 + rest_139) + locals_14))) + locals_13))))) + for-loop_246) + locals_7 + lst_258)))))))))))))) + loop_97) + rhs_10)))) + (values locals_8))))) + (if (not #f) (for-loop_244 locals_6 rest_135 rest_136) locals_6))) + locals_5))))) + for-loop_244) + locals_4 + lst_250 + lst_251)))))) + (define-values + (infer-known) + (lambda (e_72) + (begin + (let-values (((tmp_29) (if (pair? (correlated-e e_72)) (correlated-e (car (correlated-e e_72))) #f))) + (if (if (equal? tmp_29 'lambda) #t (equal? tmp_29 'case-lambda)) + (let-values () (known-satisfies8.1 'procedure)) + (let-values () #t)))))) + (define-values + (ok-make-struct-type-property?) + (lambda (e_73 defns_3) + (begin + (let-values (((l_44) (correlated->list e_73))) + (if (<= 2 (length l_44) 5) + (let-values (((lst_260) (cdr l_44)) + ((lst_261) + (list + (lambda (v_168) (quoted? symbol? v_168)) + (lambda (v_169) (is-lambda? v_169 2 defns_3)) + (lambda (v_170) (ok-make-struct-type-property-super? v_170 defns_3)) + (lambda (v_171) + (not + (let-values (((v125_0) v_171) ((temp126_0) 1) ((defns127_0) defns_3)) + (any-side-effects?.1 defns127_0 '#hasheq() unsafe-undefined v125_0 temp126_0))))))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_260))) + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_261))) + ((letrec-values (((for-loop_247) + (lambda (result_103 lst_262 lst_263) + (begin + 'for-loop + (if (if (pair? lst_262) (pair? lst_263) #f) + (let-values (((arg_0) (unsafe-car lst_262)) + ((rest_140) (unsafe-cdr lst_262)) + ((pred_1) (unsafe-car lst_263)) + ((rest_141) (unsafe-cdr lst_263))) + (let-values (((result_104) + (let-values () + (let-values (((result_105) + (let-values () (let-values () (pred_1 arg_0))))) + (values result_105))))) + (if (if (not ((lambda x_70 (not result_104)) arg_0)) + (if (not ((lambda x_71 (not result_104)) pred_1)) (not #f) #f) + #f) + (for-loop_247 result_104 rest_140 rest_141) + result_104))) + result_103))))) + for-loop_247) + #t + lst_260 + lst_261))) + #f))))) + (define-values + (ok-make-struct-type-property-super?) + (lambda (v_172 defns_4) + (begin + (let-values (((or-part_246) (quoted? null? v_172))) + (if or-part_246 + or-part_246 + (let-values (((or-part_247) (eq? 'null (correlated-e v_172)))) + (if or-part_247 + or-part_247 + (if (pair? (correlated-e v_172)) + (if (eq? (correlated-e (car (correlated-e v_172))) 'list) + (if (let-values (((lst_264) (cdr (correlated->list v_172)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_264))) + ((letrec-values (((for-loop_248) + (lambda (result_106 lst_265) + (begin + 'for-loop + (if (pair? lst_265) + (let-values (((prop+val_0) (unsafe-car lst_265)) + ((rest_142) (unsafe-cdr lst_265))) + (let-values (((result_107) + (let-values () + (let-values (((result_108) + (let-values () + (let-values () + (if (= + (correlated-length + prop+val_0) + 3) + (let-values (((prop+val_1) + (correlated->list + prop+val_0))) + (if (eq? + 'cons + (correlated-e + (car prop+val_1))) + (if (let-values (((or-part_248) + (memq + (correlated-e + (list-ref + prop+val_1 + 1)) + '(prop:procedure + prop:equal+hash)))) + (if or-part_248 + or-part_248 + (let-values (((o_7) + (lookup-defn + defns_4 + (correlated-e + (list-ref + prop+val_1 + 1))))) + (let-values (((or-part_249) + (known-property? + o_7))) + (if or-part_249 + or-part_249 + (known-property-of-function? + o_7)))))) + (not + (let-values (((temp128_1) + (list-ref + prop+val_1 + 2)) + ((temp129_1) + 1) + ((defns130_0) + defns_4)) + (any-side-effects?.1 + defns130_0 + '#hasheq() + unsafe-undefined + temp128_1 + temp129_1))) + #f) + #f)) + #f))))) + (values result_108))))) + (if (if (not ((lambda x_72 (not result_107)) prop+val_0)) + (not #f) + #f) + (for-loop_248 result_107 rest_142) + result_107))) + result_106))))) + for-loop_248) + #t + lst_264))) + (= + (sub1 (correlated-length v_172)) + (set-count + (let-values (((lst_266) (cdr (correlated->list v_172)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_266))) + ((letrec-values (((for-loop_249) + (lambda (table_177 lst_134) + (begin + 'for-loop + (if (pair? lst_134) + (let-values (((prop+val_2) (unsafe-car lst_134)) + ((rest_143) (unsafe-cdr lst_134))) + (let-values (((table_178) + (let-values (((table_179) table_177)) + (let-values (((table_180) + (let-values () + (let-values (((key_80 val_59) + (let-values () + (values + (let-values () + (correlated-e + (list-ref + (correlated->list + prop+val_2) + 1))) + #t)))) + (hash-set + table_179 + key_80 + val_59))))) + (values table_180))))) + (if (not #f) (for-loop_249 table_178 rest_143) table_178))) + table_177))))) + for-loop_249) + '#hash() + lst_266))))) + #f) + #f) + #f)))))))) + (define-values + (ok-make-struct-type?) + (lambda (e_74 ready-variable?_1 defns_5) + (begin + (let-values (((l_45) (correlated->list e_74))) + (let-values (((init-field-count-expr_0) (if (> (length l_45) 3) (list-ref l_45 3) #f))) + (let-values (((auto-field-count-expr_0) (if (> (length l_45) 4) (list-ref l_45 4) #f))) + (let-values (((num-fields_0) + (maybe+ + (field-count-expr-to-field-count init-field-count-expr_0) + (field-count-expr-to-field-count auto-field-count-expr_0)))) + (let-values (((immutables-expr_0) + (let-values (((or-part_250) (if (> (length l_45) 9) (list-ref l_45 9) #f))) + (if or-part_250 or-part_250 'null)))) + (let-values (((super-expr_0) (if (> (length l_45) 2) (list-ref l_45 2) #f))) + (if (>= (length l_45) 5) + (if (<= (length l_45) 12) + (let-values (((lst_166) (cdr l_45)) + ((lst_267) + (list + (lambda (v_173) (quoted? symbol? v_173)) + (lambda (v_174) (super-ok? v_174 defns_5)) + (lambda (v_175) (field-count-expr-to-field-count v_175)) + (lambda (v_176) (field-count-expr-to-field-count v_176)) + (lambda (v_177) + (not + (let-values (((v131_0) v_177) + ((temp132_0) 1) + ((ready-variable?133_0) ready-variable?_1) + ((defns134_0) defns_5)) + (any-side-effects?.1 + defns134_0 + '#hasheq() + ready-variable?133_0 + v131_0 + temp132_0)))) + (lambda (v_178) + (known-good-struct-properties? v_178 immutables-expr_0 super-expr_0 defns_5)) + (lambda (v_179) (inspector-or-false? v_179)) + (lambda (v_180) (procedure-spec? v_180 num-fields_0)) + (lambda (v_181) (immutables-ok? v_181 init-field-count-expr_0))))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_166))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_267))) + ((letrec-values (((for-loop_250) + (lambda (result_109 lst_268 lst_269) + (begin + 'for-loop + (if (if (pair? lst_268) (pair? lst_269) #f) + (let-values (((arg_1) (unsafe-car lst_268)) + ((rest_144) (unsafe-cdr lst_268)) + ((pred_2) (unsafe-car lst_269)) + ((rest_145) (unsafe-cdr lst_269))) + (let-values (((result_110) + (let-values () + (let-values (((result_111) + (let-values () + (let-values () (pred_2 arg_1))))) + (values result_111))))) + (if (if (not ((lambda x_73 (not result_110)) arg_1)) + (if (not ((lambda x_74 (not result_110)) pred_2)) + (not #f) + #f) + #f) + (for-loop_250 result_110 rest_144 rest_145) + result_110))) + result_109))))) + for-loop_250) + #t + lst_166 + lst_267))) + #f) + #f)))))))))) + (define-values + (super-ok?) + (lambda (e_75 defns_6) + (begin + (let-values (((or-part_251) (quoted? false? e_75))) + (if or-part_251 + or-part_251 + (let-values (((o_8) (lookup-defn defns_6 (correlated-e e_75)))) + (if o_8 (if (known-struct-op? o_8) (eq? 'struct-type (known-struct-op-type o_8)) #f) #f))))))) + (define-values + (extract-struct-field-count-lower-bound) + (lambda (e_76) + (begin + (let-values (((l_46) (correlated->list e_76))) + (+ (field-count-expr-to-field-count (list-ref l_46 3)) (field-count-expr-to-field-count (list-ref l_46 4))))))) + (define-values + (quoted?) + (lambda (val?_0 v_182) + (begin + (let-values (((or-part_252) + (if (pair? (correlated-e v_182)) + (if (eq? (correlated-e (car (correlated-e v_182))) 'quote) + (val?_0 (correlated-e (correlated-cadr v_182))) + #f) + #f))) + (if or-part_252 or-part_252 (val?_0 (correlated-e v_182))))))) + (define-values + (quoted-value) + (lambda (v_183) + (begin (if (pair? (correlated-e v_183)) (correlated-e (correlated-cadr v_183)) (correlated-e v_183))))) + (define-values (false?) (lambda (v_184) (begin (eq? (correlated-e v_184) #f)))) + (define-values + (field-count-expr-to-field-count) + (lambda (v_185) (begin (if (quoted? exact-nonnegative-integer? v_185) (quoted-value v_185) #f)))) + (define-values + (inspector-or-false?) + (lambda (v_186) + (begin + (let-values (((or-part_253) (quoted? false? v_186))) + (if or-part_253 + or-part_253 + (let-values (((or-part_254) (if (quoted? symbol? v_186) (eq? 'prefab (quoted-value v_186)) #f))) + (if or-part_254 + or-part_254 + (if (= 1 (correlated-length v_186)) + (eq? 'current-inspector (correlated-e (car (correlated-e v_186)))) + #f)))))))) + (define-values + (known-good-struct-properties?) + (lambda (v_187 immutables-expr_1 super-expr_1 defns_7) + (begin + (let-values (((or-part_255) (quoted? null? v_187))) + (if or-part_255 + or-part_255 + (let-values (((or-part_256) (eq? 'null (correlated-e v_187)))) + (if or-part_256 + or-part_256 + (if (pair? (correlated-e v_187)) + (if (eq? (correlated-e (car (correlated-e v_187))) 'list) + (if (let-values (((lst_270) (cdr (correlated->list v_187)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_270))) + ((letrec-values (((for-loop_251) + (lambda (result_112 lst_271) + (begin + 'for-loop + (if (pair? lst_271) + (let-values (((prop+val_3) (unsafe-car lst_271)) + ((rest_146) (unsafe-cdr lst_271))) + (let-values (((result_113) + (let-values () + (let-values (((result_114) + (let-values () + (let-values () + (if (= + (correlated-length + prop+val_3) + 3) + (let-values (((prop+val_4) + (correlated->list + prop+val_3))) + (if (eq? + 'cons + (correlated-e + (car prop+val_4))) + (known-good-struct-property+value? + (list-ref prop+val_4 1) + (list-ref prop+val_4 2) + immutables-expr_1 + super-expr_1 + defns_7) + #f)) + #f))))) + (values result_114))))) + (if (if (not ((lambda x_75 (not result_113)) prop+val_3)) + (not #f) + #f) + (for-loop_251 result_113 rest_146) + result_113))) + result_112))))) + for-loop_251) + #t + lst_270))) + (= + (sub1 (correlated-length v_187)) + (set-count + (let-values (((lst_272) (cdr (correlated->list v_187)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_272))) + ((letrec-values (((for-loop_252) + (lambda (table_181 lst_273) + (begin + 'for-loop + (if (pair? lst_273) + (let-values (((prop+val_5) (unsafe-car lst_273)) + ((rest_147) (unsafe-cdr lst_273))) + (let-values (((table_182) + (let-values (((table_183) table_181)) + (let-values (((table_184) + (let-values () + (let-values (((key_81 val_60) + (let-values () + (values + (let-values () + (correlated-e + (list-ref + (correlated->list + prop+val_5) + 1))) + #t)))) + (hash-set + table_183 + key_81 + val_60))))) + (values table_184))))) + (if (not #f) (for-loop_252 table_182 rest_147) table_182))) + table_181))))) + for-loop_252) + '#hash() + lst_272))))) + #f) + #f) + #f)))))))) + (define-values + (known-good-struct-property+value?) + (lambda (prop-expr_0 val-expr_0 immutables-expr_2 super-expr_2 defns_8) + (begin + (let-values (((prop-name_0) (correlated-e prop-expr_0))) + (let-values (((tmp_30) prop-name_0)) + (if (equal? tmp_30 'prop:evt) + (let-values () + (let-values (((or-part_257) (is-lambda? val-expr_0 1 defns_8))) + (if or-part_257 or-part_257 (immutable-field? val-expr_0 immutables-expr_2)))) + (if (equal? tmp_30 'prop:procedure) + (let-values () + (let-values (((or-part_258) (is-lambda? val-expr_0 1 defns_8))) + (if or-part_258 or-part_258 (immutable-field? val-expr_0 immutables-expr_2)))) + (if (equal? tmp_30 'prop:equal+hash) + (let-values () + (let-values (((l_47) (correlated->list val-expr_0))) + (if (eq? 'list (car l_47)) + (if (is-lambda? (list-ref l_47 1) 3 defns_8) + (if (is-lambda? (list-ref l_47 2) 2 defns_8) (is-lambda? (list-ref l_47 3) 2 defns_8) #f) + #f) + #f))) + (if (equal? tmp_30 'prop:checked-procedure) + (let-values () (if (quoted? false? super-expr_2) (immutable-field? 1 immutables-expr_2) #f)) + (let-values () + (let-values (((o_9) (lookup-defn defns_8 prop-name_0))) + (if (known-property? o_9) + (let-values () + (not + (let-values (((val-expr135_0) val-expr_0) ((temp136_0) 1) ((defns137_0) defns_8)) + (any-side-effects?.1 defns137_0 '#hasheq() unsafe-undefined val-expr135_0 temp136_0)))) + (if (known-property-of-function? o_9) + (let-values () (is-lambda? val-expr_0 (known-property-of-function-arity o_9) defns_8)) + (let-values () #f)))))))))))))) + (define-values + (is-lambda?) + (lambda (expr_11 arity_0 defns_9) + (begin + (let-values (((lookup_0) (lookup-defn defns_9 expr_11))) + (let-values (((or-part_259) + (if lookup_0 + (if (known-function? lookup_0) + (let-values (((or-part_260) (not arity_0))) + (if or-part_260 or-part_260 (arity-includes? (known-function-arity lookup_0) arity_0))) + #f) + #f))) + (if or-part_259 + or-part_259 + (let-values (((or-part_261) + (if (pair? (correlated-e expr_11)) + (if (eq? 'case-lambda (car (correlated-e expr_11))) (not arity_0) #f) + #f))) + (if or-part_261 + or-part_261 + (if (pair? (correlated-e expr_11)) + (if (eq? 'lambda (car (correlated-e expr_11))) + (let-values (((or-part_262) (not arity_0))) + (if or-part_262 + or-part_262 + ((letrec-values (((loop_98) + (lambda (args_5 arity_1) + (begin + 'loop + (if (correlated? args_5) + (let-values () (loop_98 (correlated-e args_5) arity_1)) + (if (null? args_5) + (let-values () (zero? arity_1)) + (if (pair? args_5) + (let-values () (loop_98 (cdr args_5) (sub1 arity_1))) + (let-values () (not (negative? arity_1)))))))))) + loop_98) + (cadr (correlated->list expr_11)) + arity_0))) + #f) + #f))))))))) + (define-values + (arity-includes?) + (lambda (a_36 n_30) + (begin + (let-values (((or-part_263) (equal? a_36 n_30))) + (if or-part_263 + or-part_263 + (if (list? a_36) + (let-values (((lst_274) a_36)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_274))) + ((letrec-values (((for-loop_253) + (lambda (result_115 lst_275) + (begin + 'for-loop + (if (pair? lst_275) + (let-values (((a_37) (unsafe-car lst_275)) ((rest_148) (unsafe-cdr lst_275))) + (let-values (((result_116) + (let-values () + (let-values (((result_117) + (let-values () + (let-values () (equal? a_37 n_30))))) + (values result_117))))) + (if (if (not ((lambda x_76 result_116) a_37)) (not #f) #f) + (for-loop_253 result_116 rest_148) + result_116))) + result_115))))) + for-loop_253) + #f + lst_274))) + #f)))))) + (define-values + (immutable-field?) + (lambda (val-expr_1 immutables-expr_3) + (begin + (if (quoted? exact-nonnegative-integer? val-expr_1) + (memv (quoted-value val-expr_1) (immutables-expr-to-immutables immutables-expr_3 null)) + #f)))) + (define-values + (immutables-expr-to-immutables) + (lambda (e_77 fail-v_0) + (begin + (let-values (((tmp_31) (if (pair? (correlated-e e_77)) (correlated-e (car (correlated-e e_77))) #f))) + (if (equal? tmp_31 'quote) + (let-values () + (let-values (((v_188) (correlated-cadr e_77))) + (let-values (((or-part_264) + (if (correlated-length v_188) + (let-values (((l_48) (map2 correlated-e (correlated->list v_188)))) + (if (andmap2 exact-nonnegative-integer? l_48) + (if (= (length l_48) (set-count (list->set l_48))) l_48 #f) + #f)) + #f))) + (if or-part_264 or-part_264 fail-v_0)))) + (let-values () fail-v_0)))))) + (define-values + (procedure-spec?) + (lambda (e_78 field-count_1) + (begin + (let-values (((or-part_265) (quoted? false? e_78))) + (if or-part_265 + or-part_265 + (let-values (((or-part_266) + (if (quoted? exact-nonnegative-integer? e_78) + (if field-count_1 (< (quoted-value e_78) field-count_1) #f) + #f))) + (if or-part_266 or-part_266 (is-lambda? e_78 #f '#hasheq())))))))) + (define-values + (immutables-ok?) + (lambda (e_79 init-field-count-expr_1) + (begin + (let-values (((l_49) (immutables-expr-to-immutables e_79 #f))) + (let-values (((c_36) (field-count-expr-to-field-count init-field-count-expr_1))) + (if l_49 + (let-values (((lst_276) l_49)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_276))) + ((letrec-values (((for-loop_254) + (lambda (result_118 lst_277) + (begin + 'for-loop + (if (pair? lst_277) + (let-values (((n_31) (unsafe-car lst_277)) ((rest_149) (unsafe-cdr lst_277))) + (let-values (((result_119) + (let-values () + (let-values (((result_120) + (let-values () (let-values () (< n_31 c_36))))) + (values result_120))))) + (if (if (not ((lambda x_77 (not result_119)) n_31)) (not #f) #f) + (for-loop_254 result_119 rest_149) + result_119))) + result_118))))) + for-loop_254) + #t + lst_276))) + #f)))))) + (define-values + (ok-make-struct-field-accessor/mutator?) + (lambda (e_80 locals_17 type_2 defns_10) + (begin + (let-values (((l_50) (correlated->list e_80))) + (let-values (((a_38) + (if (let-values (((or-part_267) (= (length l_50) 3))) + (if or-part_267 or-part_267 (= (length l_50) 4))) + (let-values (((or-part_268) (hash-ref locals_17 (correlated-e (list-ref l_50 1)) #f))) + (if or-part_268 or-part_268 (lookup-defn defns_10 (correlated-e (list-ref l_50 1))))) + #f))) + (if (known-struct-op? a_38) + (if (eq? (known-struct-op-type a_38) type_2) + (if (let-values (((c_37) (field-count-expr-to-field-count (list-ref l_50 2)))) + (if c_37 (< c_37 (known-struct-op-field-count a_38)) #f)) + (let-values (((or-part_219) (= (length l_50) 3))) + (if or-part_219 or-part_219 (quoted? symbol? (list-ref l_50 3)))) + #f) + #f) + #f)))))) + (define-values (maybe+) (lambda (x_78 y_10) (begin (if x_78 (if y_10 (+ x_78 y_10) #f) #f)))) + (define-values + (compile-single) + (lambda (p_20 cctx_13) + (begin + (let-values (((p10_0) p_20) ((cctx11_0) cctx_13) ((temp12_2) #f) ((temp13_3) #t)) + (compile-top.1 temp12_2 temp13_3 #f p10_0 cctx11_0))))) + (define-values + (compile-top.1) + (lambda (serializable?1_0 single-expression?2_0 to-correlated-linklet?3_0 p7_1 cctx8_1) + (begin + 'compile-top + (let-values (((p_42) p7_1)) + (let-values (((cctx_14) cctx8_1)) + (let-values (((serializable?_2) serializable?1_0)) + (let-values (((single-expression?_0) single-expression?2_0)) + (let-values (((to-correlated-linklet?_3) to-correlated-linklet?3_0)) + (let-values () + (begin + (if log-performance? + (let-values () (start-performance-region 'compile (if single-expression?_0 'transformer 'top))) + (void)) + (begin0 + (let-values () + (let-values (((phase_30) (compile-context-phase cctx_14))) + (let-values (((mpis_14) (make-module-path-index-table))) + (let-values (((purely-functional?_0) #t)) + (let-values (((body-linklets_1 + min-phase_1 + max-phase_1 + phase-to-link-module-uses_3 + phase-to-link-module-uses-expr_3 + phase-to-link-extra-inspectorss_0 + syntax-literals_2 + no-root-context-pos_0) + (let-values (((temp14_4) (flatten-begin p_42)) + ((cctx15_0) cctx_14) + ((mpis16_0) mpis_14) + ((temp17_3) + (if single-expression?_0 + (list* '() (list syntax-literals-id) '(())) + (list + (list top-level-bind!-id top-level-require!-id) + (list mpi-vector-id syntax-literals-id) + instance-imports))) + ((temp18_3) + (list + top-level-instance + empty-top-syntax-literal-instance + empty-instance-instance)) + ((serializable?19_0) serializable?_2) + ((to-correlated-linklet?20_0) to-correlated-linklet?_3) + ((temp21_6) (lambda () (set! purely-functional?_0 #f))) + ((temp22_4) + (lambda (e_81 + expected-results_2 + phase_23 + required-reference?_0) + (if (if purely-functional?_0 + (let-values (((e25_0) e_81) + ((expected-results26_0) + expected-results_2) + ((required-reference?27_0) + required-reference?_0)) + (any-side-effects?.1 + '#hasheq() + '#hasheq() + required-reference?27_0 + e25_0 + expected-results26_0)) + #f) + (let-values () (set! purely-functional?_0 #f)) + (void)))) + ((temp23_4) + (lambda (s_180 cctx_15) + (begin + (set! purely-functional?_0 #f) + (compile-top-level-require s_180 cctx_15)))) + ((temp24_1) (not single-expression?_0))) + (compile-forms.1 + temp18_3 + temp17_3 + null + temp22_4 + temp21_6 + #f + null + unsafe-undefined + #f + temp24_1 + temp23_4 + #f + serializable?19_0 + to-correlated-linklet?20_0 + #f + temp14_4 + cctx15_0 + mpis16_0)))) + (let-values (((add-metadata_0) + (lambda (ht_134) + (begin + 'add-metadata + (let-values (((ht_116) (hash-set ht_134 'original-phase phase_30))) + (let-values (((ht_135) (hash-set ht_116 'max-phase max-phase_1))) + ht_135)))))) + (let-values (((bundle_0) + (1/hash->linklet-bundle + (add-metadata_0 + (if serializable?_2 + (let-values () + (let-values (((syntax-literals-expr_1) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'top + 'serialize)) + (void)) + (begin0 + (let-values () + (generate-eager-syntax-literals! + syntax-literals_2 + mpis_14 + phase_30 + (compile-context-self cctx_14) + (compile-context-namespace cctx_14))) + (if log-performance? + (let-values () (end-performance-region)) + (void)))))) + (let-values (((link-linklet_0) + ((lambda (s_92) + (if to-correlated-linklet?_3 + (make-correlated-linklet s_92 #f) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'top + 'linklet)) + (void)) + (begin0 + (let-values () + (let-values (((linklet_3 new-keys_0) + (1/compile-linklet + s_92 + #f + (vector + deserialize-instance + empty-eager-instance-instance) + (lambda (inst_0) + (values inst_0 #f))))) + linklet_3)) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (list + 'linklet + (list + deserialize-imports + eager-instance-imports) + (list + mpi-vector-id + deserialized-syntax-vector-id + 'phase-to-link-modules + syntax-literals-id) + (list + 'define-values + (list mpi-vector-id) + (let-values (((mpis28_0) mpis_14)) + (generate-module-path-index-deserialize.1 + #f + mpis28_0))) + (list + 'define-values + (list deserialized-syntax-vector-id) + (list* 'make-vector (add1 phase_30) '(#f))) + (list + 'define-values + '(phase-to-link-modules) + phase-to-link-module-uses-expr_3) + (list + 'define-values + (list syntax-literals-id) + syntax-literals-expr_1))))) + (hash-set body-linklets_1 'link link-linklet_0)))) + (let-values () body-linklets_1)))))) + (compiled-in-memory1.1 + (1/hash->linklet-directory (hasheq #f bundle_0)) + #f + #f + #f + phase-to-link-module-uses_3 + (current-code-inspector) + phase-to-link-extra-inspectorss_0 + (mpis-as-vector mpis_14) + (syntax-literals-as-vector syntax-literals_2) + null + null + (extract-namespace-scopes (compile-context-namespace cctx_14)) + purely-functional?_0)))))))) + (if log-performance? (let-values () (end-performance-region)) (void))))))))))))) + (define-values + (compile-top-level-require) + (lambda (p_43 cctx_16) + (begin + (let-values (((phase_77) (compile-context-phase cctx_16))) + (if (parsed-require? p_43) + (let-values () + (let-values (((form-stx_0) (compile-quote-syntax (parsed-s p_43) cctx_16))) + (list top-level-require!-id form-stx_0 ns-id))) + (let-values () #f)))))) + (define-values + (flatten-begin) + (lambda (p_44) + (begin + (if (parsed-begin? p_44) + (let-values () (apply append (map2 flatten-begin (parsed-begin-body p_44)))) + (let-values () (list p_44)))))) + (define-values (core-scope) (new-multi-scope)) + (define-values (core-stx) (add-scope empty-syntax core-scope)) + (define-values (core-module-name) (1/make-resolved-module-path '#%core)) + (define-values (core-mpi) (1/module-path-index-join ''#%core #f)) + (define-values (cell.1$4) (unsafe-make-place-local (make-hasheq))) + (define-values (cell.2$1) (unsafe-make-place-local (make-hasheq))) + (define-values + (core-place-init!) + (lambda () + (begin (begin (unsafe-place-local-set! cell.1$4 (make-hasheq)) (unsafe-place-local-set! cell.2$1 (make-hasheq)))))) + (define-values + (core-id) + (lambda (sym_60 phase_78) + (begin + (if (eqv? phase_78 0) + (let-values () + (let-values (((or-part_36) (hash-ref (unsafe-place-local-ref cell.1$4) sym_60 #f))) + (if or-part_36 + or-part_36 + (let-values (((s_8) (datum->syntax$1 core-stx sym_60))) + (begin (hash-set! (unsafe-place-local-ref cell.1$4) sym_60 s_8) s_8))))) + (if (eq? phase_78 1) + (let-values () + (let-values (((or-part_38) (hash-ref (unsafe-place-local-ref cell.2$1) sym_60 #f))) + (if or-part_38 + or-part_38 + (let-values (((s_9) (datum->syntax$1 (syntax-shift-phase-level$1 core-stx 1) sym_60))) + (begin (hash-set! (unsafe-place-local-ref cell.2$1) sym_60 s_9) s_9))))) + (let-values () (datum->syntax$1 (syntax-shift-phase-level$1 core-stx phase_78) sym_60))))))) + (define-values (core-forms) '#hasheq()) + (define-values (core-primitives) '#hasheq()) + (define-values + (struct:protected-core protected-core1.1 protected-core? protected-core-val) + (let-values (((struct:_26 make-_26 ?_26 -ref_26 -set!_26) + (let-values () + (let-values () + (make-struct-type + 'protected-core + #f + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'protected-core))))) + (values struct:_26 make-_26 ?_26 (make-struct-field-accessor -ref_26 0 'val)))) + (define-values + (add-core-form!*) + (lambda (sym_61 proc_7) + (begin (begin (add-core-binding! sym_61) (set! core-forms (hash-set core-forms sym_61 proc_7)))))) + (define-values + (add-core-primitive!.1) + (lambda (protected?2_0 sym4_0 val5_0) + (begin + 'add-core-primitive! + (let-values (((sym_62) sym4_0)) + (let-values (((val_61) val5_0)) + (let-values (((protected?_3) protected?2_0)) + (let-values () + (begin + (add-core-binding! sym_62) + (set! core-primitives + (hash-set core-primitives sym_62 (if protected?_3 (protected-core1.1 val_61) val_61))))))))))) + (define-values + (add-core-binding!) + (lambda (sym_63) + (begin + (let-values (((temp8_2) (datum->syntax$1 core-stx sym_63)) + ((temp9_1) + (let-values (((core-mpi11_0) core-mpi) ((temp12_3) 0) ((sym13_0) sym_63)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + core-mpi11_0 + temp12_3 + sym13_0))) + ((temp10_1) 0)) + (add-binding!.1 #f #f temp8_2 temp9_1 temp10_1))))) + (define-values + (declare-core-module!) + (lambda (ns_57) + (begin + (let-values (((ns14_0) ns_57) + ((temp15_4) + (let-values (((temp17_4) #t) + ((temp18_4) #t) + ((core-mpi19_0) core-mpi) + ((temp20_2) + (hasheqv + 0 + (let-values (((lst_65) (list core-primitives core-forms)) ((lst_97) '(#f #t))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_65))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_97))) + ((letrec-values (((for-loop_80) + (lambda (table_22 lst_98 lst_278) + (begin + 'for-loop + (if (if (pair? lst_98) (pair? lst_278) #f) + (let-values (((syms_18) (unsafe-car lst_98)) + ((rest_150) (unsafe-cdr lst_98)) + ((syntax?_3) (unsafe-car lst_278)) + ((rest_151) (unsafe-cdr lst_278))) + (let-values (((table_85) + (let-values (((table_86) table_22)) + (let-values (((ht_21) syms_18)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash ht_21))) + ((letrec-values (((for-loop_10) + (lambda (table_26 + i_180) + (begin + 'for-loop + (if i_180 + (let-values (((sym_64 + val_16) + (hash-iterate-key+value + ht_21 + i_180))) + (let-values (((table_185) + (let-values (((table_186) + table_26)) + (let-values (((table_187) + (let-values () + (let-values (((key_82 + val_62) + (let-values () + (let-values (((b_86) + (let-values (((core-mpi23_0) + core-mpi) + ((temp24_2) + 0) + ((sym25_0) + sym_64)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + core-mpi23_0 + temp24_2 + sym25_0)))) + (values + sym_64 + (if syntax?_3 + (let-values () + (provided1.1 + b_86 + #f + #t)) + (if (protected-core? + val_16) + (let-values () + (provided1.1 + b_86 + #t + #f)) + (let-values () + b_86)))))))) + (hash-set + table_186 + key_82 + val_62))))) + (values + table_187))))) + (if (not + #f) + (for-loop_10 + table_185 + (hash-iterate-next + ht_21 + i_180)) + table_185))) + table_26))))) + for-loop_10) + table_86 + (hash-iterate-first ht_21))))))) + (if (not #f) + (for-loop_80 table_85 rest_150 rest_151) + table_85))) + table_22))))) + for-loop_80) + '#hasheq() + lst_65 + lst_97))))) + ((temp21_7) + (lambda (phase-level_19 ns_58 insp_7) + (if (zero? phase-level_19) + (let-values (((ns_59) + (let-values (((ns26_0) ns_58) + ((core-module-name27_0) core-module-name) + ((temp28_3) 0)) + (namespace->module-namespace.1 + #f + #f + void + ns26_0 + core-module-name27_0 + temp28_3)))) + (if ns_59 + (module-linklet-info2.1 (namespace->instance ns_59 0) #f core-mpi #f #f #f) + #f)) + #f))) + ((temp22_5) + (lambda (data-box_1 + ns_60 + phase_79 + phase-level_20 + self_20 + bulk-binding-registry_15 + insp_8) + (let-values (((tmp_32) phase-level_20)) + (if (equal? tmp_32 0) + (let-values () + (begin + (let-values (((ht_126) core-primitives)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_126))) + ((letrec-values (((for-loop_255) + (lambda (i_53) + (begin + 'for-loop + (if i_53 + (let-values (((sym_5 val_63) + (hash-iterate-key+value + ht_126 + i_53))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (namespace-set-consistent! + ns_60 + 0 + sym_5 + (if (protected-core? + val_63) + (protected-core-val + val_63) + val_63))) + (values))))) + (values))))) + (if (not #f) + (for-loop_255 + (hash-iterate-next ht_126 i_53)) + (values)))) + (values)))))) + for-loop_255) + (hash-iterate-first ht_126)))) + (void) + (let-values (((ht_136) core-forms)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_136))) + ((letrec-values (((for-loop_217) + (lambda (i_30) + (begin + 'for-loop + (if i_30 + (let-values (((sym_13 proc_8) + (hash-iterate-key+value + ht_136 + i_30))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (namespace-set-transformer! + ns_60 + 0 + sym_13 + (if (procedure-arity-includes? + proc_8 + 2) + (core-form7.1 + proc_8 + sym_13) + proc_8))) + (values))))) + (values))))) + (if (not #f) + (for-loop_217 + (hash-iterate-next ht_136 i_30)) + (values)))) + (values)))))) + for-loop_217) + (hash-iterate-first ht_136)))) + (void))) + (let-values () (void))))))) + (make-module.1 + temp17_4 + void + unsafe-undefined + temp22_5 + #f + 0 + 0 + #f + temp21_7 + temp18_4 + void + #f + temp20_2 + null + core-mpi19_0 + #f + null + #f))) + ((core-module-name16_0) core-module-name)) + (declare-module!.1 #t ns14_0 temp15_4 core-module-name16_0))))) + (define-values + (core-form-sym) + (lambda (s_449 phase_80) + (begin + (let-values (((ok?_27 id29_0 _30_0) + (let-values (((s_64) s_449)) + (if (let-values (((s_65) (if (syntax?$1 s_64) (syntax-e$1 s_64) s_64))) + (if (pair? s_65) + (if (let-values (((s_197) (car s_65))) + (let-values (((or-part_54) (if (syntax?$1 s_197) (symbol? (syntax-e$1 s_197)) #f))) + (if or-part_54 or-part_54 (symbol? s_197)))) + (let-values (((s_450) (cdr s_65))) #t) + #f) + #f)) + (let-values () + (let-values (((id29_1 _30_1) + (let-values (((s_40) (if (syntax?$1 s_64) (syntax-e$1 s_64) s_64))) + (let-values (((id31_0) (let-values (((s_451) (car s_40))) s_451)) + ((_32_0) (let-values (((s_323) (cdr s_40))) s_323))) + (values id31_0 _32_0))))) + (values #t id29_1 _30_1))) + (values #f #f #f))))) + (if ok?_27 + (let-values (((b_87) + (let-values (((temp33_1) id29_0) ((phase34_0) phase_80)) + (resolve+shift.1 #f #f null unsafe-undefined #f temp33_1 phase34_0)))) + (if (module-binding? b_87) + (if (eq? core-module-name (1/module-path-index-resolve (module-binding-module b_87))) + (module-binding-sym b_87) + #f) + #f)) + #f))))) + (define-values + (select-defined-syms-and-bind!.1) + (lambda (as-transformer?5_0 + frame-id1_0 + in4_0 + requires+provides3_0 + top-level-bind-scope2_0 + ids11_0 + defined-syms12_0 + self13_0 + phase14_2 + all-scopes-stx15_0) + (begin + 'select-defined-syms-and-bind! + (let-values (((ids_16) ids11_0)) + (let-values (((defined-syms_8) defined-syms12_0)) + (let-values (((self_21) self13_0)) + (let-values (((phase_81) phase14_2)) + (let-values (((all-scopes-stx_3) all-scopes-stx15_0)) + (let-values (((frame-id_7) frame-id1_0)) + (let-values (((top-level-bind-scope_3) top-level-bind-scope2_0)) + (let-values (((requires+provides_5) requires+provides3_0)) + (let-values (((orig-s_31) in4_0)) + (let-values (((as-transformer?_5) as-transformer?5_0)) + (let-values () + (let-values (((defined-syms-at-phase_0) + (let-values (((or-part_88) (hash-ref defined-syms_8 phase_81 #f))) + (if or-part_88 + or-part_88 + (let-values (((ht_114) (make-hasheq))) + (begin (hash-set! defined-syms_8 phase_81 ht_114) ht_114)))))) + (reverse$1 + (let-values (((lst_279) ids_16)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_279))) + ((letrec-values (((for-loop_256) + (lambda (fold-var_82 lst_27) + (begin + 'for-loop + (if (pair? lst_27) + (let-values (((id_60) (unsafe-car lst_27)) + ((rest_152) (unsafe-cdr lst_27))) + (let-values (((fold-var_238) + (let-values (((fold-var_7) fold-var_82)) + (let-values (((fold-var_183) + (let-values () + (cons + (let-values () + (let-values (((sym_65) + (syntax-e$1 + id_60))) + (let-values (((defined-sym_0) + (if (if (not + (defined-as-other? + (hash-ref + defined-syms-at-phase_0 + sym_65 + #f) + id_60 + phase_81 + top-level-bind-scope_3)) + (if (no-extra-scopes? + id_60 + all-scopes-stx_3 + top-level-bind-scope_3 + phase_81) + (symbol-interned? + sym_65) + #f) + #f) + sym_65 + ((letrec-values (((loop_78) + (lambda (pos_113) + (begin + 'loop + (let-values (((s_452) + (string->unreadable-symbol + (string-append + (symbol->string + sym_65) + "." + (number->string + pos_113))))) + (if (defined-as-other? + (hash-ref + defined-syms-at-phase_0 + s_452 + #f) + id_60 + phase_81 + top-level-bind-scope_3) + (loop_78 + (add1 + pos_113)) + s_452)))))) + loop_78) + 1)))) + (let-values ((() + (begin + (hash-set! + defined-syms-at-phase_0 + defined-sym_0 + id_60) + (values)))) + (let-values (((b_19) + (let-values (((self21_0) + self_21) + ((phase22_2) + phase_81) + ((defined-sym23_0) + defined-sym_0) + ((frame-id24_0) + frame-id_7) + ((sym25_1) + sym_65)) + (make-module-binding.1 + #f + null + frame-id24_0 + #f + unsafe-undefined + unsafe-undefined + 0 + sym25_1 + self21_0 + phase22_2 + defined-sym23_0)))) + (begin + (if requires+provides_5 + (let-values () + (remove-required-id! + requires+provides_5 + id_60 + phase_81)) + (void)) + (let-values (((id17_0) + id_60) + ((b18_0) + b_19) + ((phase19_0) + phase_81) + ((orig-s20_0) + orig-s_31)) + (add-binding!.1 + orig-s20_0 + #f + id17_0 + b18_0 + phase19_0)) + (if requires+provides_5 + (let-values () + (let-values (((requires+provides26_0) + requires+provides_5) + ((id27_0) + id_60) + ((phase28_0) + phase_81) + ((b29_0) + b_19) + ((as-transformer?30_0) + as-transformer?_5)) + (add-defined-or-required-id!.1 + as-transformer?30_0 + #f + requires+provides26_0 + id27_0 + phase28_0 + b29_0))) + (void)) + defined-sym_0)))))) + fold-var_7)))) + (values fold-var_183))))) + (if (not #f) + (for-loop_256 fold-var_238 rest_152) + fold-var_238))) + fold-var_82))))) + for-loop_256) + null + lst_279))))))))))))))))))) + (define-values + (no-extra-scopes?) + (lambda (id_61 all-scopes-stx_4 top-level-bind-scope_4 phase_82) + (begin + (let-values (((m-id_0) (datum->syntax$1 all-scopes-stx_4 (syntax-e$1 id_61)))) + (let-values (((or-part_179) (bound-identifier=?$1 id_61 m-id_0 phase_82))) + (if or-part_179 + or-part_179 + (if top-level-bind-scope_4 + (bound-identifier=?$1 id_61 (add-scope m-id_0 top-level-bind-scope_4) phase_82) + #f))))))) + (define-values + (defined-as-other?) + (lambda (prev-id_0 id_62 phase_83 top-level-bind-scope_5) + (begin + (if prev-id_0 + (if (not (bound-identifier=?$1 prev-id_0 id_62 phase_83)) + (let-values (((or-part_158) (not top-level-bind-scope_5))) + (if or-part_158 + or-part_158 + (not + (bound-identifier=?$1 + (remove-scope prev-id_0 top-level-bind-scope_5) + (remove-scope id_62 top-level-bind-scope_5) + phase_83)))) + #f) + #f)))) + (define-values + (select-defined-syms-and-bind!/ctx) + (lambda (tl-ids_0 ctx_11) + (begin + (let-values (((tl-ids31_0) tl-ids_0) + ((temp32_1) (root-expand-context-defined-syms ctx_11)) + ((temp33_2) (root-expand-context-self-mpi ctx_11)) + ((temp34_0) (expand-context-phase ctx_11)) + ((temp35_0) (root-expand-context-all-scopes-stx ctx_11)) + ((temp36_1) (root-expand-context-frame-id ctx_11)) + ((temp37_1) (root-expand-context-top-level-bind-scope ctx_11))) + (select-defined-syms-and-bind!.1 #f temp36_1 #f #f temp37_1 tl-ids31_0 temp32_1 temp33_2 temp34_0 temp35_0))))) + (define-values + (add-defined-sym!) + (lambda (defined-syms_9 phase_84 sym_66 id_63) + (begin + (let-values (((defined-syms-at-phase_1) + (let-values (((or-part_269) (hash-ref defined-syms_9 phase_84 #f))) + (if or-part_269 + or-part_269 + (let-values (((ht_137) (make-hasheq))) + (begin (hash-set! defined-syms_9 phase_84 ht_137) ht_137)))))) + (hash-set! defined-syms-at-phase_1 sym_66 id_63))))) + (define-values + (make-create-root-expand-context-from-module) + (lambda (requires_4 evaled-ld-h_0) + (begin + (lambda (ns_61 phase-shift_10 original-self_0 self_22) + (let-values (((root-ctx_4) + (let-values (((temp1_3) (namespace-mpi ns_61))) + (make-root-expand-context.1 #f null unsafe-undefined unsafe-undefined temp1_3)))) + (let-values (((s_175) (add-scopes empty-syntax (root-expand-context-module-scopes root-ctx_4)))) + (let-values ((() + (begin + (let-values (((lst_241) requires_4)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_241))) + ((letrec-values (((for-loop_257) + (lambda (lst_20) + (begin + 'for-loop + (if (pair? lst_20) + (let-values (((phase+reqs_0) (unsafe-car lst_20)) + ((rest_6) (unsafe-cdr lst_20))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((phase_36) + (car + phase+reqs_0))) + (begin + (let-values (((lst_280) + (cdr + phase+reqs_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_280))) + ((letrec-values (((for-loop_258) + (lambda (lst_23) + (begin + 'for-loop + (if (pair? + lst_23) + (let-values (((req_4) + (unsafe-car + lst_23)) + ((rest_19) + (unsafe-cdr + lst_23))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((mpi_52) + (module-path-index-shift + req_4 + original-self_0 + self_22))) + (let-values (((mpi2_1) + mpi_52) + ((s3_0) + s_175) + ((self4_3) + self_22) + ((s5_0) + s_175) + ((ns6_0) + ns_61) + ((temp7_4) + (phase+ + phase_36 + phase-shift_10)) + ((phase-shift8_0) + phase-shift_10) + ((temp9_2) + 'module)) + (perform-require!.1 + #f + #t + #f + #f + #f + #f + 'all + #t + temp7_4 + #f + phase-shift8_0 + #f + #f + unsafe-undefined + #t + temp9_2 + mpi2_1 + s3_0 + self4_3 + s5_0 + ns6_0)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_258 + rest_19) + (values)))) + (values)))))) + for-loop_258) + lst_280))) + (void)))) + (values))))) + (values))))) + (if (not #f) (for-loop_257 rest_6) (values)))) + (values)))))) + for-loop_257) + lst_241))) + (values)))) + (let-values () + (let-values (((defined-syms_10) (root-expand-context-defined-syms root-ctx_4))) + (begin + (let-values (((ht_27) evaled-ld-h_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_27))) + ((letrec-values (((for-loop_106) + (lambda (i_181) + (begin + 'for-loop + (if i_181 + (let-values (((phase_85 linklet_4) + (hash-iterate-key+value ht_27 i_181))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (let-values (((lst_63) + (linklet-export-variables$1 + linklet_4))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_63))) + ((letrec-values (((for-loop_20) + (lambda (lst_64) + (begin + 'for-loop + (if (pair? + lst_64) + (let-values (((sym_67) + (unsafe-car + lst_64)) + ((rest_29) + (unsafe-cdr + lst_64))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((id_64) + (datum->syntax$1 + s_175 + sym_67))) + (begin + (let-values (((id10_0) + id_64) + ((temp11_1) + (let-values (((self13_1) + self_22) + ((phase14_3) + phase_85) + ((sym15_1) + sym_67)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + self13_1 + phase14_3 + sym15_1))) + ((phase12_0) + phase_85)) + (add-binding!.1 + #f + #f + id10_0 + temp11_1 + phase12_0)) + (add-defined-sym! + defined-syms_10 + phase_85 + sym_67 + id_64)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_20 + rest_29) + (values)))) + (values)))))) + for-loop_20) + lst_63))) + (void))) + (values))))) + (values))))) + (if (not #f) + (for-loop_106 (hash-iterate-next ht_27 i_181)) + (values)))) + (values)))))) + for-loop_106) + (hash-iterate-first ht_27)))) + (void) + root-ctx_4)))))))))) + (define-values + (shift-to-inside-root-context) + (lambda (root-context_0) + (begin + (let-values (((outside-mpi_0) (root-expand-context-self-mpi root-context_0))) + (let-values (((inside-mpi_1) (make-self-module-path-index (module-path-index-resolved outside-mpi_0)))) + (let-values (((v_189) root-context_0)) + (let-values (((the-struct_4) v_189)) + (if (root-expand-context/outer? the-struct_4) + (let-values (((inner16_0) + (let-values (((the-struct_49) (root-expand-context/outer-inner v_189))) + (if (root-expand-context/inner? the-struct_49) + (let-values (((self-mpi17_0) inside-mpi_1) + ((all-scopes-stx18_0) + (let-values (((temp19_1) + (root-expand-context-all-scopes-stx root-context_0)) + ((outside-mpi20_0) outside-mpi_0) + ((inside-mpi21_0) inside-mpi_1)) + (syntax-module-path-index-shift.1 + #f + temp19_1 + outside-mpi20_0 + inside-mpi21_0 + #f)))) + (root-expand-context/inner2.1 + self-mpi17_0 + (root-expand-context/inner-module-scopes the-struct_49) + (root-expand-context/inner-top-level-bind-scope the-struct_49) + all-scopes-stx18_0 + (root-expand-context/inner-defined-syms the-struct_49) + (root-expand-context/inner-counter the-struct_49) + (root-expand-context/inner-lift-key the-struct_49))) + (raise-argument-error 'struct-copy "root-expand-context/inner?" the-struct_49))))) + (root-expand-context/outer1.1 + inner16_0 + (root-expand-context/outer-post-expansion the-struct_4) + (root-expand-context/outer-use-site-scopes the-struct_4) + (root-expand-context/outer-frame-id the-struct_4))) + (raise-argument-error 'struct-copy "root-expand-context/outer?" the-struct_4))))))))) + (define-values (initial-code-inspector) (current-code-inspector)) + (define-values + (check-require-access.1) + (lambda (skip-imports1_0 + linklet3_0 + import-module-uses4_0 + import-module-instances5_0 + insp6_0 + extra-inspector7_1 + extra-inspectorsss8_0) + (begin + 'check-require-access + (let-values (((linklet_5) linklet3_0)) + (let-values (((skip-num-imports_0) skip-imports1_0)) + (let-values (((import-module-uses_0) import-module-uses4_0)) + (let-values (((import-module-instances_0) import-module-instances5_0)) + (let-values (((insp_9) insp6_0)) + (let-values (((extra-inspector_5) extra-inspector7_1)) + (let-values (((extra-inspectorsss_4) extra-inspectorsss8_0)) + (let-values () + (begin + (let-values (((lst_104) (list-tail (linklet-import-variables$1 linklet_5) skip-num-imports_0)) + ((lst_169) import-module-uses_0) + ((lst_90) import-module-instances_0) + ((lst_191) + (let-values (((or-part_149) extra-inspectorsss_4)) + (if or-part_149 or-part_149 import-module-uses_0)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_104))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_169))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_90))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_191))) + ((letrec-values (((for-loop_20) + (lambda (lst_64 lst_279 lst_179 lst_281) + (begin + 'for-loop + (if (if (pair? lst_64) + (if (pair? lst_279) (if (pair? lst_179) (pair? lst_281) #f) #f) + #f) + (let-values (((import-syms_0) (unsafe-car lst_64)) + ((rest_153) (unsafe-cdr lst_64)) + ((mu_7) (unsafe-car lst_279)) + ((rest_92) (unsafe-cdr lst_279)) + ((mi_18) (unsafe-car lst_179)) + ((rest_10) (unsafe-cdr lst_179)) + ((extra-inspectorss_14) (unsafe-car lst_281)) + ((rest_9) (unsafe-cdr lst_281))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((m_15) + (module-instance-module + mi_18))) + (if (module-no-protected? + m_15) + (void) + (let-values () + (let-values (((access_2) + (let-values (((or-part_176) + (module-access + m_15))) + (if or-part_176 + or-part_176 + (module-compute-access! + m_15))))) + (begin + (let-values (((lst_282) + import-syms_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_282))) + ((letrec-values (((for-loop_22) + (lambda (lst_283) + (begin + 'for-loop + (if (pair? + lst_283) + (let-values (((import-sym_0) + (unsafe-car + lst_283)) + ((rest_154) + (unsafe-cdr + lst_283))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((a_39) + (hash-ref + (hash-ref + access_2 + (module-use-phase + mu_7) + '#hasheq()) + import-sym_0 + 'unexported))) + (if (let-values (((or-part_24) + (eq? + a_39 + 'unexported))) + (if or-part_24 + or-part_24 + (eq? + a_39 + 'protected))) + (let-values () + (let-values (((guard-insp_3) + (namespace-inspector + (module-instance-namespace + mi_18)))) + (if (let-values (((or-part_77) + (inspector-superior? + insp_9 + guard-insp_3))) + (if or-part_77 + or-part_77 + (let-values (((or-part_270) + (if extra-inspector_5 + (inspector-superior? + extra-inspector_5 + guard-insp_3) + #f))) + (if or-part_270 + or-part_270 + (if extra-inspectorsss_4 + (if extra-inspectorss_14 + (extra-inspectors-allow? + (hash-ref + extra-inspectorss_14 + import-sym_0 + #f) + guard-insp_3) + #f) + #f))))) + (void) + (let-values () + (error + 'link + (string-append + "access disallowed by code inspector to ~a variable\n" + " variable: ~s\n" + " from module: ~a") + a_39 + import-sym_0 + (1/module-path-index-resolve + (namespace-mpi + (module-instance-namespace + mi_18)))))))) + (void)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_22 + rest_154) + (values)))) + (values)))))) + for-loop_22) + lst_282))) + (void))))))) + (values))))) + (values))))) + (if (not #f) + (for-loop_20 rest_153 rest_92 rest_10 rest_9) + (values)))) + (values)))))) + for-loop_20) + lst_104 + lst_169 + lst_90 + lst_191))) + (void))))))))))))) + (define-values + (check-single-require-access) + (lambda (mi_19 phase_68 sym_68 insp_10) + (begin + (let-values (((m_16) (module-instance-module mi_19))) + (if (module-no-protected? m_16) + (let-values () #t) + (let-values () + (let-values (((access_3) + (let-values (((or-part_271) (module-access m_16))) + (if or-part_271 or-part_271 (module-compute-access! m_16))))) + (let-values (((a_40) (hash-ref (hash-ref access_3 phase_68 '#hasheq()) sym_68 'unexported))) + (if (let-values (((or-part_40) (eq? a_40 'unexported))) + (if or-part_40 or-part_40 (eq? a_40 'protected))) + (let-values () + (let-values (((guard-insp_4) (namespace-inspector (module-instance-namespace mi_19)))) + (let-values (((or-part_272) (if insp_10 (inspector-superior? insp_10 guard-insp_4) #f))) + (if or-part_272 or-part_272 (inspector-superior? (current-code-inspector) guard-insp_4))))) + (let-values () #t)))))))))) + (define-values (cell.1$3) (unsafe-make-place-local (make-weak-hasheq))) + (define-values (module-cache-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$3 (make-weak-hasheq))))) + (define-values + (make-module-cache-key) + (lambda (hash-code_6) + (begin + (if hash-code_6 + (string->symbol + (format + "~s" + (list + hash-code_6 + (path->directory-path + (let-values (((or-part_84) (current-load-relative-directory))) + (if or-part_84 or-part_84 (current-directory))))))) + #f)))) + (define-values + (module-cache-set!) + (lambda (key_83 proc_9) (begin (hash-set! (unsafe-place-local-ref cell.1$3) key_83 (make-ephemeron key_83 proc_9))))) + (define-values + (module-cache-ref) + (lambda (key_77) + (begin + (let-values (((e_82) (hash-ref (unsafe-place-local-ref cell.1$3) key_77 #f))) + (if e_82 (ephemeron-value e_82) #f))))) + (define-values (current-module-declare-as-predefined) (make-parameter #f #f 'current-module-declare-as-predefined)) + (define-values + (eval-module.1) + (lambda (namespace1_2 supermodule-name3_0 with-submodules?2_0 c7_0) + (begin + 'eval-module + (let-values (((c_38) c7_0)) + (let-values (((ns_62) (if (eq? namespace1_2 unsafe-undefined) (1/current-namespace) namespace1_2))) + (let-values (((with-submodules?_1) with-submodules?2_0)) + (let-values (((supermodule-name_1) supermodule-name3_0)) + (let-values () + (begin + (if log-performance? (let-values () (start-performance-region 'eval 'module)) (void)) + (begin0 + (let-values () + (let-values (((dh_0 h_2 data-instance_0 declaration-instance_0) + (compiled-module->dh+h+data-instance+declaration-instance c_38))) + (let-values (((syntax-literals-data-instance_0) + (if (compiled-in-memory? c_38) + (make-syntax-literal-data-instance-from-compiled-in-memory c_38) + (let-values (((l_51) (hash-ref h_2 'stx-data #f))) + (if l_51 + (let-values () + (instantiate-linklet$1 + (eval-linklet* l_51) + (list deserialize-instance data-instance_0))) + (if (eq? (hash-ref h_2 'module->namespace #f) 'empty) + (let-values () empty-syntax-literals-instance/empty-namespace) + (let-values () empty-syntax-literals-data-instance))))))) + (let-values (((decl_0) + (lambda (key_29) + (begin 'decl (1/instance-variable-value declaration-instance_0 key_29))))) + (let-values (((pre-submodule-names_0) (hash-ref h_2 'pre null))) + (let-values (((post-submodule-names_0) (hash-ref h_2 'post null))) + (let-values (((default-name_1) (hash-ref h_2 'name 'module))) + (let-values (((cache-key_0) + (make-module-cache-key + (if (null? pre-submodule-names_0) + (if (null? post-submodule-names_0) (hash-ref h_2 'hash-code #f) #f) + #f)))) + (let-values (((cross-phase-persistent?_1) + (hash-ref h_2 'cross-phase-persistent? #f))) + (let-values (((min-phase_2) (hash-ref h_2 'min-phase 0))) + (let-values (((max-phase_2) (hash-ref h_2 'max-phase 0))) + (let-values (((language-info_1) (hash-ref h_2 'language-info #f))) + (let-values (((phases-h_0) + (let-values (((start_47) min-phase_2) + ((end_33) (add1 max-phase_2)) + ((inc_27) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-range start_47 end_33 inc_27))) + ((letrec-values (((for-loop_20) + (lambda (table_8 pos_114) + (begin + 'for-loop + (if (< pos_114 end_33) + (let-values (((phase-level_21) + pos_114)) + (let-values (((table_188) + (let-values (((id*_9) + (hash-ref + h_2 + phase-level_21 + #f))) + (begin + #t + ((letrec-values (((for-loop_24) + (lambda (table_189) + (begin + 'for-loop + (let-values (((v_50) + id*_9)) + (let-values (((table_106) + (let-values (((table_107) + table_189)) + (if v_50 + (let-values (((table_108) + table_107)) + (let-values (((table_138) + (let-values () + (let-values (((key_60 + val_46) + (let-values () + (values + phase-level_21 + (eval-linklet* + v_50))))) + (hash-set + table_108 + key_60 + val_46))))) + (values + table_138))) + table_107)))) + table_106)))))) + for-loop_24) + table_8))))) + (if (not #f) + (for-loop_20 + table_188 + (+ pos_114 inc_27)) + table_188))) + table_8))))) + for-loop_20) + '#hash() + start_47))))) + (let-values (((syntax-literals-linklet_0) + (let-values (((l_52) (hash-ref h_2 'stx #f))) + (if l_52 (eval-linklet* l_52) #f)))) + (let-values (((extra-inspector_6) + (if (compiled-in-memory? c_38) + (compiled-in-memory-compile-time-inspector c_38) + #f))) + (let-values (((phase-to-link-extra-inspectorsss_1) + (if (compiled-in-memory? c_38) + (compiled-in-memory-phase-to-link-extra-inspectorsss + c_38) + '#hasheqv()))) + (let-values (((requires_5) (decl_0 'requires))) + (let-values (((provides_11) (decl_0 'provides))) + (let-values (((original-self_1) (decl_0 'self-mpi))) + (let-values (((phase-to-link-modules_0) + (decl_0 'phase-to-link-modules))) + (let-values (((create-root-expand-context-from-module_0) + (make-create-root-expand-context-from-module + requires_5 + phases-h_0))) + (let-values (((declare-submodules_0) + (if dh_0 + (lambda (ns_4 + names_0 + declare-name_0 + pre?_0) + (begin + 'declare-submodules + (if (compiled-in-memory? c_38) + (begin + (let-values (((lst_21) + (if pre?_0 + (compiled-in-memory-pre-compiled-in-memorys + c_38) + (compiled-in-memory-post-compiled-in-memorys + c_38)))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_21))) + ((letrec-values (((for-loop_14) + (lambda (lst_284) + (begin + 'for-loop + (if (pair? + lst_284) + (let-values (((c_39) + (unsafe-car + lst_284)) + ((rest_155) + (unsafe-cdr + lst_284))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((c10_0) + c_39) + ((ns11_0) + ns_4) + ((declare-name12_0) + declare-name_0)) + (eval-module.1 + ns11_0 + declare-name12_0 + #t + c10_0))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_14 + rest_155) + (values)))) + (values)))))) + for-loop_14) + lst_21))) + (void)) + (begin + (let-values (((lst_285) names_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_285))) + ((letrec-values (((for-loop_30) + (lambda (lst_93) + (begin + 'for-loop + (if (pair? + lst_93) + (let-values (((name_52) + (unsafe-car + lst_93)) + ((rest_156) + (unsafe-cdr + lst_93))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((sm-cd_0) + (hash-ref + dh_0 + name_52 + #f))) + (begin + (if sm-cd_0 + (void) + (let-values () + (error + "missing submodule declaration:" + name_52))) + (let-values (((sm-cd13_0) + sm-cd_0) + ((ns14_1) + ns_4) + ((declare-name15_0) + declare-name_0)) + (eval-module.1 + ns14_1 + declare-name15_0 + #t + sm-cd13_0))))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_30 + rest_156) + (values)))) + (values)))))) + for-loop_30) + lst_285))) + (void))))) + void))) + (let-values (((declare-this-module_0) + (lambda (ns_63) + (begin + 'declare-this-module + (let-values (((m_17) + (let-values (((temp20_3) + (1/current-module-declare-source)) + ((original-self21_0) + original-self_1) + ((requires22_0) + requires_5) + ((provides23_1) + provides_11) + ((language-info24_0) + language-info_1) + ((min-phase25_0) + min-phase_2) + ((max-phase26_0) + max-phase_2) + ((cross-phase-persistent?27_0) + cross-phase-persistent?_1) + ((temp28_4) + (current-module-declare-as-predefined)) + ((temp29_1) + (append + pre-submodule-names_0 + post-submodule-names_0)) + ((supermodule-name30_0) + supermodule-name_1) + ((temp31_0) + (lambda () + (get-all-variables + phases-h_0))) + ((temp32_2) + (lambda (phase-level_22 + ns_64 + insp_11) + (module-linklet-info2.1 + (hash-ref + phases-h_0 + phase-level_22 + #f) + (hash-ref + phase-to-link-modules_0 + phase-level_22 + #f) + original-self_1 + insp_11 + extra-inspector_6 + (hash-ref + phase-to-link-extra-inspectorsss_1 + phase-level_22 + #f)))) + ((temp33_3) + (lambda (bulk-binding-registry_16) + (force-syntax-deserialize + syntax-literals-data-instance_0 + bulk-binding-registry_16))) + ((temp34_1) + (lambda (data-box_2 + ns_65 + phase-shift_12 + self_23 + bulk-binding-registry_17 + insp_12) + (if (unbox + data-box_2) + (void) + (let-values () + (init-instance-data! + data-box_2 + cache-key_0 + ns_65 + syntax-literals-linklet_0 + data-instance_0 + syntax-literals-data-instance_0 + phase-shift_12 + original-self_1 + self_23 + bulk-binding-registry_17 + insp_12 + create-root-expand-context-from-module_0))))) + ((temp35_1) + (lambda (data-box_3 + ns_15 + phase-shift_13 + phase-level_23 + self_24 + bulk-binding-registry_18 + insp_13) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'eval + 'instantiate)) + (void)) + (begin0 + (let-values () + (let-values (((syntax-literals-instance_0) + (instance-data-syntax-literals-instance + (unbox + data-box_3)))) + (let-values (((phase-linklet_0) + (hash-ref + phases-h_0 + phase-level_23 + #f))) + (if phase-linklet_0 + (let-values () + (let-values (((module-uses_0) + (hash-ref + phase-to-link-modules_0 + phase-level_23))) + (let-values (((import-module-instances_1 + import-instances_0) + (let-values (((mis_1 + is_0) + (let-values (((lst_286) + module-uses_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_286))) + ((letrec-values (((for-loop_259) + (lambda (mis_2 + is_1 + lst_206) + (begin + 'for-loop + (if (pair? + lst_206) + (let-values (((mu_8) + (unsafe-car + lst_206)) + ((rest_157) + (unsafe-cdr + lst_206))) + (let-values (((mis_3 + is_2) + (let-values (((mis_4) + mis_2) + ((is_3) + is_1)) + (let-values (((mis_5 + is_4) + (let-values () + (let-values (((mis43_0 + is44_0) + (let-values () + (let-values (((ns45_0) + ns_15) + ((mu46_0) + mu_8) + ((original-self47_0) + original-self_1) + ((self48_0) + self_24) + ((temp49_0) + (phase+ + (phase- + phase-level_23 + (module-use-phase + mu_8)) + phase-shift_13))) + (namespace-module-use->module+linklet-instances.1 + temp49_0 + original-self47_0 + self48_0 + ns45_0 + mu46_0))))) + (values + (cons + mis43_0 + mis_4) + (cons + is44_0 + is_3)))))) + (values + mis_5 + is_4))))) + (if (not + #f) + (for-loop_259 + mis_3 + is_2 + rest_157) + (values + mis_3 + is_2)))) + (values + mis_2 + is_1)))))) + for-loop_259) + null + null + lst_286))))) + (values + (reverse$1 + mis_1) + (reverse$1 + is_0))))) + (let-values ((() + (begin + (let-values (((phase-linklet36_0) + phase-linklet_0) + ((temp37_2) + 2) + ((module-uses38_0) + module-uses_0) + ((import-module-instances39_0) + import-module-instances_1) + ((insp40_0) + insp_13) + ((extra-inspector41_0) + extra-inspector_6) + ((temp42_1) + (hash-ref + phase-to-link-extra-inspectorsss_1 + phase-level_23 + #f))) + (check-require-access.1 + temp37_2 + phase-linklet36_0 + module-uses38_0 + import-module-instances39_0 + insp40_0 + extra-inspector41_0 + temp42_1)) + (values)))) + (let-values (((module-body-instance-instance_0) + (let-values (((temp50_1) + (if (zero-phase? + phase-level_23) + (let-values () + (lambda (name_12 + val_64) + (begin + 'temp50 + (error + 'define-syntax + "should not happen at phase level 0")))) + (let-values () + (lambda (name_53 + val_65) + (begin + 'temp50 + (namespace-set-transformer! + ns_15 + (sub1 + phase-level_23) + name_53 + val_65))))))) + (make-module-body-instance-instance.1 + temp50_1)))) + (let-values (((instantiate-body_0) + (lambda () + (begin + 'instantiate-body + (instantiate-linklet$1 + phase-linklet_0 + (list* + syntax-literals-instance_0 + module-body-instance-instance_0 + import-instances_0) + (namespace->instance + ns_15 + phase-level_23)))))) + (if (zero-phase? + phase-level_23) + (let-values () + (if (zero-phase? + phase-shift_13) + (let-values () + (instantiate-body_0)) + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + ns_15) + (let-values () + (instantiate-body_0)))))) + (let-values () + (let-values (((ns-1_0) + (namespace->namespace-at-phase + ns_15 + (phase+ + phase-shift_13 + (sub1 + phase-level_23))))) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + ns_15) + (let-values () + (with-continuation-mark + current-expand-context + (promise1.1 + (lambda () + (let-values (((ns-151_0) + ns-1_0) + ((temp52_1) + #t)) + (make-expand-context.1 + #f + #f + temp52_1 + #f + #f + ns-151_0))) + #f) + (with-continuation-mark + current-module-code-inspector + insp_13 + (let-values () + (instantiate-body_0))))))))))))))) + (void))))) + (if log-performance? + (let-values () + (end-performance-region)) + (void))))))) + (make-module.1 + cross-phase-persistent?27_0 + temp33_3 + temp31_0 + temp35_1 + language-info24_0 + max-phase26_0 + min-phase25_0 + #f + temp32_2 + temp28_4 + temp34_1 + #f + provides23_1 + requires22_0 + original-self21_0 + temp20_3 + temp29_1 + supermodule-name30_0)))) + (let-values (((declare-name_1) + (substitute-module-declare-name + default-name_1))) + (begin + (if with-submodules?_1 + (let-values () + (declare-submodules_0 + ns_63 + pre-submodule-names_0 + declare-name_1 + #t)) + (void)) + (let-values (((ns16_0) ns_63) + ((m17_0) m_17) + ((declare-name18_0) + declare-name_1) + ((with-submodules?19_0) + with-submodules?_1)) + (declare-module!.1 + with-submodules?19_0 + ns16_0 + m17_0 + declare-name18_0)) + (if with-submodules?_1 + (let-values () + (declare-submodules_0 + ns_63 + post-submodule-names_0 + declare-name_1 + #f)) + (void))))))))) + (begin + (if cache-key_0 + (let-values () + (module-cache-set! + cache-key_0 + declare-this-module_0)) + (void)) + (declare-this-module_0 + ns_62))))))))))))))))))))))))) + (if log-performance? (let-values () (end-performance-region)) (void)))))))))))) + (define-values + (struct:instance-data instance-data9.1 instance-data? instance-data-syntax-literals-instance instance-data-cache-key) + (let-values (((struct:_60 make-_60 ?_60 -ref_60 -set!_60) + (let-values () + (let-values () + (make-struct-type 'instance-data #f 2 0 #f null (current-inspector) #f '(0 1) #f 'instance-data))))) + (values + struct:_60 + make-_60 + ?_60 + (make-struct-field-accessor -ref_60 0 'syntax-literals-instance) + (make-struct-field-accessor -ref_60 1 'cache-key)))) + (define-values + (init-instance-data!) + (lambda (data-box_4 + cache-key_1 + ns_66 + syntax-literals-linklet_1 + data-instance_1 + syntax-literals-data-instance_1 + phase-shift_14 + original-self_2 + self_25 + bulk-binding-registry_19 + insp_14 + create-root-expand-context-from-module_1) + (begin + (let-values ((() + (begin + (if (not (load-on-demand-enabled)) + (let-values () + (force-syntax-deserialize syntax-literals-data-instance_1 bulk-binding-registry_19)) + (void)) + (values)))) + (let-values (((inst_1) + (let-values (((ns54_0) ns_66) + ((phase-shift55_0) phase-shift_14) + ((self56_0) self_25) + ((insp57_0) insp_14) + ((bulk-binding-registry58_0) bulk-binding-registry_19) + ((temp59_0) + (lambda (name_54 val_66) (error "shouldn't get here for the root-ctx linklet")))) + (make-instance-instance.1 + bulk-binding-registry58_0 + insp57_0 + ns54_0 + phase-shift55_0 + self56_0 + temp59_0)))) + (let-values (((syntax-literals-instance_1) + (if syntax-literals-linklet_1 + (instantiate-linklet$1 + syntax-literals-linklet_1 + (list deserialize-instance data-instance_1 syntax-literals-data-instance_1 inst_1)) + empty-syntax-literals-instance))) + (let-values ((() + (begin + (set-box! data-box_4 (instance-data9.1 syntax-literals-instance_1 cache-key_1)) + (values)))) + (let-values (((get-encoded-root-expand-ctx_0) + (1/instance-variable-value syntax-literals-instance_1 'get-encoded-root-expand-ctx))) + (if (eq? get-encoded-root-expand-ctx_0 'empty) + (let-values () + (namespace-set-root-expand-ctx! + ns_66 + (promise1.1 + (lambda () + (shift-to-inside-root-context + (let-values (((self60_0) self_25)) + (make-root-expand-context.1 #f null unsafe-undefined unsafe-undefined self60_0)))) + #f))) + (if (procedure? get-encoded-root-expand-ctx_0) + (let-values () + (namespace-set-root-expand-ctx! + ns_66 + (promise1.1 + (lambda () + (shift-to-inside-root-context + (root-expand-context-decode-for-module (get-encoded-root-expand-ctx_0) self_25))) + #f))) + (let-values () + (namespace-set-root-expand-ctx! + ns_66 + (promise1.1 + (lambda () + (shift-to-inside-root-context + (create-root-expand-context-from-module_1 ns_66 phase-shift_14 original-self_2 self_25))) + #f))))))))))))) + (define-values + (force-syntax-deserialize) + (lambda (syntax-literals-data-instance_2 bulk-binding-registry_20) + (begin + (if (let-values (((or-part_273) (eq? syntax-literals-data-instance_2 empty-syntax-literals-data-instance))) + (if or-part_273 + or-part_273 + (eq? syntax-literals-data-instance_2 empty-syntax-literals-instance/empty-namespace))) + (void) + (let-values () + (let-values (((deserialize-syntax_0) + (1/instance-variable-value syntax-literals-data-instance_2 deserialize-syntax-id))) + (if deserialize-syntax_0 (let-values () (deserialize-syntax_0 bulk-binding-registry_20)) (void)))))))) + (define-values + (compiled-module->dh+h) + (lambda (c_40) + (begin + (let-values (((ld/h_0) (if (compiled-in-memory? c_40) (compiled-in-memory-linklet-directory c_40) c_40))) + (let-values (((dh_1) + (if (linklet-directory?$1 ld/h_0) + (let-values () (linklet-directory->hash$1 ld/h_0)) + (let-values () #f)))) + (let-values (((h_3) (1/linklet-bundle->hash (if dh_1 (hash-ref dh_1 #f) ld/h_0)))) (values dh_1 h_3))))))) + (define-values + (compiled-module->h) + (lambda (c_41) (begin (let-values (((dh_2 h_4) (compiled-module->dh+h c_41))) h_4)))) + (define-values + (compiled-module->dh+h+data-instance+declaration-instance) + (lambda (c_42) + (begin + (let-values (((dh_3 h_5) (compiled-module->dh+h c_42))) + (let-values (((data-instance_2) + (if (compiled-in-memory? c_42) + (make-data-instance-from-compiled-in-memory c_42) + (instantiate-linklet$1 (eval-linklet* (hash-ref h_5 'data)) (list deserialize-instance))))) + (let-values (((declaration-instance_1) + (if (if (compiled-in-memory? c_42) (compiled-in-memory-original-self c_42) #f) + (make-declaration-instance-from-compiled-in-memory c_42) + (instantiate-linklet$1 + (eval-linklet* (hash-ref h_5 'decl)) + (list deserialize-instance data-instance_2))))) + (values dh_3 h_5 data-instance_2 declaration-instance_1))))))) + (define-values + (compiled-module->declaration-instance) + (lambda (c_43) + (begin + (let-values (((dh_4 h_6 data-instance_3 declaration-instance_2) + (compiled-module->dh+h+data-instance+declaration-instance c_43))) + declaration-instance_2)))) + (define-values + (compiled-module->h+declaration-instance) + (lambda (c_44) + (begin + (let-values (((dh_5 h_7 data-instance_4 declaration-instance_3) + (compiled-module->dh+h+data-instance+declaration-instance c_44))) + (values h_7 declaration-instance_3))))) + (define-values + (make-data-instance-from-compiled-in-memory) + (lambda (cim_6) (begin (1/make-instance 'data #f 'constant mpi-vector-id (compiled-in-memory-mpis cim_6))))) + (define-values + (make-declaration-instance-from-compiled-in-memory) + (lambda (cim_7) + (begin + (1/make-instance + 'decl + #f + 'constant + 'self-mpi + (compiled-in-memory-original-self cim_7) + 'requires + (compiled-in-memory-requires cim_7) + 'provides + (compiled-in-memory-provides cim_7) + 'phase-to-link-modules + (compiled-in-memory-phase-to-link-module-uses cim_7))))) + (define-values + (make-syntax-literal-data-instance-from-compiled-in-memory) + (lambda (cim_8) + (begin + (1/make-instance + 'syntax-literal-data + #f + #f + deserialize-syntax-id + void + deserialized-syntax-vector-id + (compiled-in-memory-syntax-literals cim_8))))) + (define-values + (empty-syntax-literals-instance/empty-namespace) + (1/make-instance + 'empty-stx/empty-ns + #f + 'constant + get-syntax-literal!-id + (lambda (pos_115) #f) + 'get-encoded-root-expand-ctx + 'empty)) + (define-values + (get-all-variables) + (lambda (phases-h_1) + (begin + (let-values (((ht_138) phases-h_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_138))) + ((letrec-values (((for-loop_260) + (lambda (table_40 i_182) + (begin + 'for-loop + (if i_182 + (let-values (((phase_86 linklet_6) (hash-iterate-key+value ht_138 i_182))) + (let-values (((table_190) + (let-values (((table_191) table_40)) + (let-values (((table_42) + (let-values () + (let-values (((key_84 val_67) + (let-values () + (values + phase_86 + (linklet-export-variables$1 + linklet_6))))) + (hash-set table_191 key_84 val_67))))) + (values table_42))))) + (if (not #f) + (for-loop_260 table_190 (hash-iterate-next ht_138 i_182)) + table_190))) + table_40))))) + for-loop_260) + '#hash() + (hash-iterate-first ht_138))))))) + (define-values (eval-linklet*) (lambda (l_53) (begin (eval-linklet$1 (force-compile-linklet l_53))))) + (define-values + (check-provides-verbosity) + (lambda (who_0 verbosity_0) + (begin + (if (let-values (((or-part_2) (not verbosity_0))) (if or-part_2 or-part_2 (eq? verbosity_0 'defined-names))) + (void) + (let-values () (raise-argument-error who_0 "(or/c #f 'defined-names)" verbosity_0)))))) + (define-values + (provides->api-provides) + (lambda (provides_12 self_8 verbosity_1) + (begin + (let-values (((defined-names?_0) (eq? verbosity_1 'defined-names))) + (let-values (((extract_0) + (lambda (ok?_28) + (begin + 'extract + (let-values (((result-l_0) + (reverse$1 + (let-values (((ht_75) provides_12)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_75))) + ((letrec-values (((for-loop_13) + (lambda (fold-var_66 i_183) + (begin + 'for-loop + (if i_183 + (let-values (((phase_43 at-phase_11) + (hash-iterate-key+value + ht_75 + i_183))) + (let-values (((fold-var_239) + (let-values (((id*_10) + (reverse$1 + (let-values (((ht_68) + at-phase_11)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_68))) + ((letrec-values (((for-loop_83) + (lambda (fold-var_240 + i_86) + (begin + 'for-loop + (if i_86 + (let-values (((sym_69 + b/p_1) + (hash-iterate-key+value + ht_68 + i_86))) + (let-values (((fold-var_35) + (let-values (((fold-var_27) + fold-var_240)) + (if (ok?_28 + b/p_1) + (let-values (((fold-var_194) + fold-var_27)) + (let-values (((fold-var_77) + (let-values () + (cons + (let-values () + (let-values (((b_88) + (provided-as-binding + b/p_1))) + (list* + sym_69 + (if (eq? + self_8 + (module-binding-module + b_88)) + (let-values () + null) + (let-values () + (reverse$1 + (let-values (((lst_102) + (cons + b_88 + (module-binding-extra-nominal-bindings + b_88)))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_102))) + ((letrec-values (((for-loop_112) + (lambda (fold-var_30 + lst_103) + (begin + 'for-loop + (if (pair? + lst_103) + (let-values (((b_89) + (unsafe-car + lst_103)) + ((rest_158) + (unsafe-cdr + lst_103))) + (let-values (((fold-var_195) + (let-values (((fold-var_241) + fold-var_30)) + (let-values (((fold-var_181) + (let-values () + (cons + (let-values () + (if (if (eqv? + (module-binding-nominal-phase+space + b_89) + phase_43) + (eq? + (module-binding-nominal-sym + b_89) + sym_69) + #f) + (let-values () + (module-binding-nominal-module + b_89)) + (let-values () + (list + (module-binding-nominal-module + b_89) + (module-binding-phase + b_89) + (module-binding-nominal-sym + b_89) + (module-binding-nominal-phase+space + b_89))))) + fold-var_241)))) + (values + fold-var_181))))) + (if (not + #f) + (for-loop_112 + fold-var_195 + rest_158) + fold-var_195))) + fold-var_30))))) + for-loop_112) + null + lst_102)))))) + (if defined-names?_0 + (list + (module-binding-sym + b_88)) + null)))) + fold-var_194)))) + (values + fold-var_77))) + fold-var_27)))) + (if (not + #f) + (for-loop_83 + fold-var_35 + (hash-iterate-next + ht_68 + i_86)) + fold-var_35))) + fold-var_240))))) + for-loop_83) + null + (hash-iterate-first + ht_68))))))) + (begin + #t + ((letrec-values (((for-loop_20) + (lambda (fold-var_124) + (begin + 'for-loop + (let-values (((l_54) + id*_10)) + (let-values (((fold-var_81) + (let-values (((fold-var_82) + fold-var_124)) + (if (null? + l_54) + fold-var_82 + (let-values (((fold-var_182) + fold-var_82)) + (let-values (((fold-var_196) + (let-values () + (cons + (let-values () + (cons + phase_43 + (let-values (((l4_0) + l_54) + ((symbolapi-nonprovides) + (lambda (provides_13 all-vars_0) + (begin + (let-values (((result-l_1) + (reverse$1 + (let-values (((ht_77) all-vars_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_77))) + ((letrec-values (((for-loop_102) + (lambda (fold-var_68 i_92) + (begin + 'for-loop + (if i_92 + (let-values (((phase_29 vars_0) (hash-iterate-key+value ht_77 i_92))) + (let-values (((fold-var_237) + (let-values (((fold-var_101) fold-var_68)) + (let-values (((id*_11) + (let-values (((syms_19) + (hash-ref + provides_13 + phase_29 + '#hasheq()))) + (reverse$1 + (let-values (((lst_285) vars_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_285))) + ((letrec-values (((for-loop_30) + (lambda (fold-var_103 + lst_287) + (begin + 'for-loop + (if (pair? + lst_287) + (let-values (((var-sym_5) + (unsafe-car + lst_287)) + ((rest_159) + (unsafe-cdr + lst_287))) + (let-values (((fold-var_73) + (let-values (((fold-var_74) + fold-var_103)) + (if (hash-ref + syms_19 + var-sym_5 + #f) + fold-var_74 + (let-values (((fold-var_242) + fold-var_74)) + (let-values (((fold-var_234) + (let-values () + (cons + (let-values () + var-sym_5) + fold-var_242)))) + (values + fold-var_234))))))) + (if (not + #f) + (for-loop_30 + fold-var_73 + rest_159) + fold-var_73))) + fold-var_103))))) + for-loop_30) + null + lst_285))))))) + (begin + #t + ((letrec-values (((for-loop_261) + (lambda (fold-var_86) + (begin + 'for-loop + (let-values (((l_55) + id*_11)) + (let-values (((fold-var_88) + (let-values (((fold-var_235) + fold-var_86)) + (if (null? + l_55) + fold-var_235 + (let-values (((fold-var_106) + fold-var_235)) + (let-values (((fold-var_89) + (let-values () + (cons + (let-values () + (cons + phase_29 + (let-values (((l10_0) + l_55) + ((symbollinklet-directory-or-bundle c_45))) + (let-values (((or-part_31) + (if (linklet-directory?$1 ld_7) + (if (let-values (((b_21) (hash-ref (linklet-directory->hash$1 ld_7) #f #f))) + (if b_21 (hash-ref (1/linklet-bundle->hash b_21) 'decl #f) #f)) + #t + #f) + #f))) + (if or-part_31 + or-part_31 + (if (1/linklet-bundle? ld_7) (if (hash-ref (1/linklet-bundle->hash ld_7) 'decl #f) #t #f) #f))))))) + (define-values + (compiled->linklet-directory-or-bundle) + (lambda (c_46) (begin (if (compiled-in-memory? c_46) (compiled-in-memory-linklet-directory c_46) c_46)))) + (define-values + (normalize-to-linklet-directory) + (lambda (c_47) + (begin + (if (linklet-directory?$1 (compiled->linklet-directory-or-bundle c_47)) + (let-values () c_47) + (if (1/linklet-bundle? c_47) + (let-values () (1/hash->linklet-directory (hasheq #f c_47))) + (let-values () + (let-values (((the-struct_5) c_47)) + (if (compiled-in-memory? the-struct_5) + (let-values (((linklet-directory1_0) + (normalize-to-linklet-directory (compiled-in-memory-linklet-directory c_47)))) + (compiled-in-memory1.1 + linklet-directory1_0 + (compiled-in-memory-original-self the-struct_5) + (compiled-in-memory-requires the-struct_5) + (compiled-in-memory-provides the-struct_5) + (compiled-in-memory-phase-to-link-module-uses the-struct_5) + (compiled-in-memory-compile-time-inspector the-struct_5) + (compiled-in-memory-phase-to-link-extra-inspectorsss the-struct_5) + (compiled-in-memory-mpis the-struct_5) + (compiled-in-memory-syntax-literals the-struct_5) + (compiled-in-memory-pre-compiled-in-memorys the-struct_5) + (compiled-in-memory-post-compiled-in-memorys the-struct_5) + (compiled-in-memory-namespace-scopes the-struct_5) + (compiled-in-memory-purely-functional? the-struct_5))) + (raise-argument-error 'struct-copy "compiled-in-memory?" the-struct_5))))))))) + (define-values + (1/module-compiled-name) + (let-values () + (let-values () + (case-lambda + ((c_48) + (begin + 'module-compiled-name + (begin + (if (1/compiled-module-expression? c_48) + (void) + (let-values () (raise-argument-error 'module-compiled-name "compiled-module-expression?" c_48))) + (module-compiled-current-name c_48)))) + ((c_49 name_55) + (let-values ((() + (begin + (if (1/compiled-module-expression? c_49) + (void) + (let-values () + (raise-argument-error 'module-compiled-name "compiled-module-expression?" c_49))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_70) (symbol? name_55))) + (if or-part_70 + or-part_70 + (if (pair? name_55) (if (list? name_55) (andmap2 symbol? name_55) #f) #f))) + (void) + (let-values () + (raise-argument-error + 'module-compiled-name + "(or/c symbol? (cons/c symbol? (non-empty-listof symbol?)))" + name_55))) + (values)))) + (let-values (((i-name_0 prefix_6) + (if (symbol? name_55) + (values name_55 null) + (let-values (((r_40) (reverse$1 name_55))) (values (car r_40) (reverse$1 (cdr r_40))))))) + (change-module-name c_49 i-name_0 prefix_6))))))))) + (define-values + (module-compiled-current-name) + (lambda (c_47) + (begin + (let-values (((ld_0) (compiled->linklet-directory-or-bundle c_47))) + (let-values (((b_90) (if (1/linklet-bundle? ld_0) ld_0 (hash-ref (linklet-directory->hash$1 ld_0) #f)))) + (hash-ref (1/linklet-bundle->hash b_90) 'name)))))) + (define-values + (module-compiled-immediate-name) + (lambda (c_50) + (begin (let-values (((n_32) (module-compiled-current-name c_50))) (if (pair? n_32) (car (reverse$1 n_32)) n_32))))) + (define-values + (change-module-name) + (lambda (c_51 name_56 prefix_7) + (begin + (let-values (((full-name_0) (if (null? prefix_7) name_56 (append prefix_7 (list name_56))))) + (let-values (((next-prefix_0) (if (null? prefix_7) (list name_56) full-name_0))) + (let-values (((recur_0) + (lambda (sub-c_0 name_57) + (begin + 'recur + (if (equal? (module-compiled-current-name sub-c_0) (append next-prefix_0 (list name_57))) + sub-c_0 + (change-module-name sub-c_0 name_57 next-prefix_0)))))) + (if (compiled-in-memory? c_51) + (let-values () + (let-values (((change-submodule-name_0) + (lambda (sub-c_1) + (begin + 'change-submodule-name + (recur_0 sub-c_1 (module-compiled-immediate-name sub-c_1)))))) + (let-values (((pre-compiled-in-memorys_0) + (map2 change-submodule-name_0 (compiled-in-memory-pre-compiled-in-memorys c_51)))) + (let-values (((post-compiled-in-memorys_0) + (map2 change-submodule-name_0 (compiled-in-memory-post-compiled-in-memorys c_51)))) + (let-values (((the-struct_50) c_51)) + (if (compiled-in-memory? the-struct_50) + (let-values (((pre-compiled-in-memorys7_0) pre-compiled-in-memorys_0) + ((post-compiled-in-memorys8_0) post-compiled-in-memorys_0) + ((linklet-directory9_0) + (let-values (((temp10_2) + (update-one-name + (let-values (((ld_8) + (compiled->linklet-directory-or-bundle c_51))) + (if (1/linklet-bundle? ld_8) + ld_8 + (hash-ref (linklet-directory->hash$1 ld_8) #f))) + full-name_0)) + ((temp11_2) (symbol? full-name_0)) + ((temp12_4) + (append pre-compiled-in-memorys_0 post-compiled-in-memorys_0))) + (rebuild-linklet-directory.1 temp11_2 temp10_2 temp12_4)))) + (compiled-in-memory1.1 + linklet-directory9_0 + (compiled-in-memory-original-self the-struct_50) + (compiled-in-memory-requires the-struct_50) + (compiled-in-memory-provides the-struct_50) + (compiled-in-memory-phase-to-link-module-uses the-struct_50) + (compiled-in-memory-compile-time-inspector the-struct_50) + (compiled-in-memory-phase-to-link-extra-inspectorsss the-struct_50) + (compiled-in-memory-mpis the-struct_50) + (compiled-in-memory-syntax-literals the-struct_50) + pre-compiled-in-memorys7_0 + post-compiled-in-memorys8_0 + (compiled-in-memory-namespace-scopes the-struct_50) + (compiled-in-memory-purely-functional? the-struct_50))) + (raise-argument-error 'struct-copy "compiled-in-memory?" the-struct_50))))))) + (if (linklet-directory?$1 c_51) + (let-values () + (1/hash->linklet-directory + (let-values (((ht_28) (linklet-directory->hash$1 c_51))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_28))) + ((letrec-values (((for-loop_262) + (lambda (table_192 i_184) + (begin + 'for-loop + (if i_184 + (let-values (((key_85 val_68) (hash-iterate-key+value ht_28 i_184))) + (let-values (((table_193) + (let-values (((table_194) table_192)) + (let-values (((table_188) + (let-values () + (let-values (((key_38 val_69) + (let-values () + (values + key_85 + (if (not key_85) + (update-one-name + val_68 + full-name_0) + (recur_0 + val_68 + key_85)))))) + (hash-set + table_194 + key_38 + val_69))))) + (values table_188))))) + (if (not #f) + (for-loop_262 table_193 (hash-iterate-next ht_28 i_184)) + table_193))) + table_192))))) + for-loop_262) + '#hasheq() + (hash-iterate-first ht_28)))))) + (let-values () (update-one-name c_51 full-name_0)))))))))) + (define-values + (update-one-name) + (lambda (lb_0 name_58) (begin (1/hash->linklet-bundle (hash-set (1/linklet-bundle->hash lb_0) 'name name_58))))) + (define-values + (rebuild-linklet-directory.1) + (lambda (bundle-ok?1_0 main3_0 submods4_0) + (begin + 'rebuild-linklet-directory + (let-values (((main_0) main3_0)) + (let-values (((submods_0) submods4_0)) + (let-values (((bundle-ok?_0) bundle-ok?1_0)) + (let-values () + (if (if (null? submods_0) bundle-ok?_0 #f) + (let-values () main_0) + (let-values () + (1/hash->linklet-directory + (hash-set + (let-values (((lst_62) submods_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_62))) + ((letrec-values (((for-loop_203) + (lambda (ht_133 lst_283) + (begin + 'for-loop + (if (pair? lst_283) + (let-values (((submod_1) (unsafe-car lst_283)) + ((rest_154) (unsafe-cdr lst_283))) + (let-values (((ht_139) + (let-values (((ht_140) ht_133)) + (let-values (((ht_141) + (let-values () + (let-values (((name_59) + (module-compiled-immediate-name + submod_1))) + (if (hash-ref ht_140 name_59 #f) + (let-values () + (raise-arguments-error + 'module-compiled-submodules + "change would result in duplicate submodule name" + "name" + name_59)) + (let-values () + (hash-set + ht_140 + name_59 + (compiled->linklet-directory-or-bundle + submod_1)))))))) + (values ht_141))))) + (if (not #f) (for-loop_203 ht_139 rest_154) ht_139))) + ht_133))))) + for-loop_203) + '#hasheq() + lst_62))) + #f + main_0))))))))))) + (define-values + (1/module-compiled-submodules) + (let-values () + (let-values () + (case-lambda + ((c_48 non-star?_0) + (begin + 'module-compiled-submodules + (begin + (if (1/compiled-module-expression? c_48) + (void) + (let-values () (raise-argument-error 'module-compiled-submodules "compiled-module-expression?" c_48))) + (if (compiled-in-memory? c_48) + (let-values () + (if non-star?_0 + (compiled-in-memory-pre-compiled-in-memorys c_48) + (compiled-in-memory-post-compiled-in-memorys c_48))) + (let-values () + (if (linklet-directory?$1 c_48) + (let-values () + (let-values (((ht_99) (linklet-directory->hash$1 c_48))) + (let-values (((bh_0) (1/linklet-bundle->hash (hash-ref ht_99 #f)))) + (let-values (((names_1) (hash-ref bh_0 (if non-star?_0 'pre 'post) null))) + (reverse$1 + (let-values (((lst_85) names_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_85))) + ((letrec-values (((for-loop_104) + (lambda (fold-var_243 lst_86) + (begin + 'for-loop + (if (pair? lst_86) + (let-values (((name_60) (unsafe-car lst_86)) + ((rest_41) (unsafe-cdr lst_86))) + (let-values (((fold-var_66) + (let-values (((fold-var_67) fold-var_243)) + (let-values (((fold-var_244) + (let-values () + (cons + (let-values () + (hash-ref ht_99 name_60)) + fold-var_67)))) + (values fold-var_244))))) + (if (not #f) + (for-loop_104 fold-var_66 rest_41) + fold-var_66))) + fold-var_243))))) + for-loop_104) + null + lst_85)))))))) + (let-values () null))))))) + ((c_52 non-star?_1 submods_1) + (begin + (if (1/compiled-module-expression? c_52) + (void) + (let-values () (raise-argument-error 'module-compiled-submodules "compiled-module-expression?" c_52))) + (if (if (list? submods_1) (andmap2 1/compiled-module-expression? submods_1) #f) + (void) + (let-values () + (raise-argument-error 'module-compiled-submodules "(listof compiled-module-expression?)" submods_1))) + (if (if (null? submods_1) + (let-values (((or-part_58) (1/linklet-bundle? (compiled->linklet-directory-or-bundle c_52)))) + (if or-part_58 + or-part_58 + (if (compiled-in-memory? c_52) + (null? + (if non-star?_1 + (compiled-in-memory-pre-compiled-in-memorys c_52) + (compiled-in-memory-post-compiled-in-memorys c_52))) + #f))) + #f) + (let-values () c_52) + (if (if (compiled-in-memory? c_52) (andmap2 compiled-in-memory? submods_1) #f) + (let-values () + (let-values (((pre-compiled-in-memorys_1) + (if non-star?_1 submods_1 (compiled-in-memory-pre-compiled-in-memorys c_52)))) + (let-values (((post-compiled-in-memorys_1) + (if non-star?_1 (compiled-in-memory-post-compiled-in-memorys c_52) submods_1))) + (let-values (((n-c_0) (normalize-to-linklet-directory c_52))) + (fixup-submodule-names + (let-values (((the-struct_51) n-c_0)) + (if (compiled-in-memory? the-struct_51) + (let-values (((pre-compiled-in-memorys2_0) pre-compiled-in-memorys_1) + ((post-compiled-in-memorys3_0) post-compiled-in-memorys_1) + ((linklet-directory4_0) + (let-values (((temp5_3) + (reset-submodule-names + (hash-ref + (linklet-directory->hash$1 + (compiled->linklet-directory-or-bundle n-c_0)) + #f) + non-star?_1 + submods_1)) + ((temp6_0) (symbol? (module-compiled-current-name c_52))) + ((temp7_4) + (append pre-compiled-in-memorys_1 post-compiled-in-memorys_1))) + (rebuild-linklet-directory.1 temp6_0 temp5_3 temp7_4)))) + (compiled-in-memory1.1 + linklet-directory4_0 + (compiled-in-memory-original-self the-struct_51) + (compiled-in-memory-requires the-struct_51) + (compiled-in-memory-provides the-struct_51) + (compiled-in-memory-phase-to-link-module-uses the-struct_51) + (compiled-in-memory-compile-time-inspector the-struct_51) + (compiled-in-memory-phase-to-link-extra-inspectorsss the-struct_51) + (compiled-in-memory-mpis the-struct_51) + (compiled-in-memory-syntax-literals the-struct_51) + pre-compiled-in-memorys2_0 + post-compiled-in-memorys3_0 + (compiled-in-memory-namespace-scopes the-struct_51) + (compiled-in-memory-purely-functional? the-struct_51))) + (raise-argument-error 'struct-copy "compiled-in-memory?" the-struct_51)))))))) + (let-values () + (let-values (((n-c_1) (normalize-to-linklet-directory c_52))) + (fixup-submodule-names + (let-values (((temp8_3) + (reset-submodule-names + (hash-ref + (linklet-directory->hash$1 (compiled->linklet-directory-or-bundle n-c_1)) + #f) + non-star?_1 + submods_1)) + ((temp9_3) + (map2 + compiled->linklet-directory-or-bundle + (append + (if non-star?_1 submods_1 (1/module-compiled-submodules c_52 #t)) + (if non-star?_1 (1/module-compiled-submodules c_52 #f) submods_1))))) + (rebuild-linklet-directory.1 #f temp8_3 temp9_3))))))))))))) + (define-values + (fixup-submodule-names) + (lambda (c_53) (begin (1/module-compiled-name c_53 (1/module-compiled-name c_53))))) + (define-values + (reset-submodule-names) + (lambda (b_49 pre?_1 submods_2) + (begin + (1/hash->linklet-bundle + (hash-set + (1/linklet-bundle->hash b_49) + (if pre?_1 'pre 'post) + (let-values (((temp10_3) (map2 module-compiled-immediate-name submods_2)) ((symbolh c_7))) (hash-ref h_8 'language-info #f)))))))) + (define-values + (1/module-compiled-imports) + (lambda (c_45) + (begin + 'module-compiled-imports + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/compiled-module-expression? c_45) + (void) + (let-values () + (raise-argument-error 'module-compiled-imports "compiled-module-expression?" c_45))) + (values)))) + (let-values (((inst_2) (compiled-module->declaration-instance c_45))) + (1/instance-variable-value inst_2 'requires)))))))) + (define-values + (1/module-compiled-exports) + (let-values (((module-compiled-exports_0) + (lambda (c2_4 verbosity1_0) + (begin + 'module-compiled-exports + (let-values (((c_54) c2_4)) + (let-values (((verbosity_2) verbosity1_0)) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/compiled-module-expression? c_54) + (void) + (let-values () + (raise-argument-error + 'module-compiled-exports + "compiled-module-expression?" + c_54))) + (values)))) + (let-values ((() + (begin + (check-provides-verbosity 'module-compiled-exports verbosity_2) + (values)))) + (let-values (((inst_3) (compiled-module->declaration-instance c_54))) + (provides->api-provides + (1/instance-variable-value inst_3 'provides) + (1/instance-variable-value inst_3 'self-mpi) + verbosity_2))))))))))))) + (case-lambda + ((c_51) (begin 'module-compiled-exports (module-compiled-exports_0 c_51 #f))) + ((c_55 verbosity1_1) (module-compiled-exports_0 c_55 verbosity1_1))))) + (define-values + (1/module-compiled-indirect-exports) + (lambda (c_56) + (begin + 'module-compiled-indirect-exports + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/compiled-module-expression? c_56) + (void) + (let-values () + (raise-argument-error + 'module-compiled-indirect-exports + "compiled-module-expression?" + c_56))) + (values)))) + (let-values (((h_9 inst_4) (compiled-module->h+declaration-instance c_56))) + (let-values (((min-phase_3) (hash-ref h_9 'min-phase 0))) + (let-values (((max-phase_3) (hash-ref h_9 'max-phase 0))) + (variables->api-nonprovides + (1/instance-variable-value inst_4 'provides) + (let-values (((start_48) min-phase_3) ((end_34) (add1 max-phase_3)) ((inc_28) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_48 end_34 inc_28))) + ((letrec-values (((for-loop_218) + (lambda (table_195 pos_116) + (begin + 'for-loop + (if (< pos_116 end_34) + (let-values (((phase-level_24) pos_116)) + (let-values (((table_196) + (let-values (((table_197) table_195)) + (let-values (((table_198) + (let-values () + (let-values (((key_69 val_70) + (let-values () + (let-values (((linklet_7) + (hash-ref + h_9 + phase-level_24 + #f))) + (values + phase-level_24 + (if linklet_7 + (linklet-export-variables$1 + linklet_7) + null)))))) + (hash-set + table_197 + key_69 + val_70))))) + (values table_198))))) + (if (not #f) (for-loop_218 table_196 (+ pos_116 inc_28)) table_196))) + table_195))))) + for-loop_218) + '#hash() + start_48))))))))))))) + (define-values + (1/module-compiled-cross-phase-persistent?) + (lambda (c_57) + (begin + 'module-compiled-cross-phase-persistent? + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/compiled-module-expression? c_57) + (void) + (let-values () + (raise-argument-error + 'module-compiled-cross-phase-persistent? + "compiled-module-expression?" + c_57))) + (values)))) + (let-values (((h_10) (compiled-module->h c_57))) (hash-ref h_10 'cross-phase-persistent? #f)))))))) + (define-values + (compile-module.1) + (lambda (force-linklet-directory?1_0 + modules-being-compiled4_0 + need-compiled-submodule-rename?5_0 + serializable?2_0 + to-correlated-linklet?3_0 + p11_0 + cctx12_0) + (begin + 'compile-module + (let-values (((p_42) p11_0)) + (let-values (((cctx_14) cctx12_0)) + (let-values (((force-linklet-directory?_0) force-linklet-directory?1_0)) + (let-values (((serializable?_3) serializable?2_0)) + (let-values (((to-correlated-linklet?_3) to-correlated-linklet?3_0)) + (let-values (((modules-being-compiled_0) + (if (eq? modules-being-compiled4_0 unsafe-undefined) + (make-hasheq) + modules-being-compiled4_0))) + (let-values (((need-compiled-submodule-rename?_0) need-compiled-submodule-rename?5_0)) + (let-values () + (let-values (((full-module-name_1) + (let-values (((parent-full-name_0) (compile-context-full-module-name cctx_14)) + ((name_61) (syntax-e$1 (parsed-module-name-id p_42)))) + (if parent-full-name_0 + (append + (if (list? parent-full-name_0) parent-full-name_0 (list parent-full-name_0)) + (list name_61)) + name_61)))) + (let-values (((compiled-submodules_0) (parsed-module-compiled-submodules p_42))) + (let-values (((get-submodules_0) + (lambda (star?_0) + (begin + 'get-submodules + (reverse$1 + (let-values (((ht_120) compiled-submodules_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_120))) + ((letrec-values (((for-loop_206) + (lambda (fold-var_28 i_90) + (begin + 'for-loop + (if i_90 + (let-values (((name_62 star?+compiled_0) + (hash-iterate-key+value + ht_120 + i_90))) + (let-values (((fold-var_180) + (let-values (((fold-var_79) + fold-var_28)) + (if (eq? + star?_0 + (car star?+compiled_0)) + (let-values (((fold-var_195) + fold-var_79)) + (let-values (((fold-var_241) + (let-values () + (cons + (let-values () + (cons + name_62 + (if (if need-compiled-submodule-rename?_0 + (not + (parsed-module-compiled-module + p_42)) + #f) + (update-submodule-names + (cdr + star?+compiled_0) + name_62 + full-module-name_1) + (cdr + star?+compiled_0)))) + fold-var_195)))) + (values fold-var_241))) + fold-var_79)))) + (if (not #f) + (for-loop_206 + fold-var_180 + (hash-iterate-next ht_120 i_90)) + fold-var_180))) + fold-var_28))))) + for-loop_206) + null + (hash-iterate-first ht_120))))))))) + (let-values (((pre-submodules_0) + (let-values (((temp33_4) (get-submodules_0 #f)) + ((symbolnamespace?_0) #f)) + (let-values (((mpis_21) (make-module-path-index-table))) + (let-values (((body-cctx_0) + (let-values (((the-struct_52) cctx_17)) + (if (compile-context? the-struct_52) + (let-values (((phase49_1) 0) + ((self50_0) self_26) + ((module-self51_0) self_26) + ((full-module-name52_0) + full-module-name_2) + ((lazy-syntax-literals?53_0) #t)) + (compile-context1.1 + (compile-context-namespace the-struct_52) + phase49_1 + self50_0 + module-self51_0 + full-module-name52_0 + lazy-syntax-literals?53_0 + (compile-context-header the-struct_52))) + (raise-argument-error + 'struct-copy + "compile-context?" + the-struct_52))))) + (let-values (((cross-phase-persistent?_2) #f)) + (let-values (((unsafe?-box_1) (box #f))) + (let-values (((side-effects_0) (make-hasheqv))) + (let-values (((check-side-effects!_0) + (lambda (e_83 + expected-results_3 + phase_87 + required-reference?_1) + (begin + 'check-side-effects! + (if (hash-ref + side-effects_0 + phase_87 + #f) + (void) + (let-values () + (if (let-values (((e54_0) e_83) + ((expected-results55_0) + expected-results_3) + ((required-reference?56_0) + required-reference?_1)) + (any-side-effects?.1 + '#hasheq() + '#hasheq() + required-reference?56_0 + e54_0 + expected-results55_0)) + (let-values () + (hash-set! + side-effects_0 + phase_87 + #t)) + (void)))))))) + (let-values ((() + (begin + (if (if need-compiled-submodule-rename?_1 + modules-being-compiled_1 + #f) + (let-values () + (begin + (if (null? post-submodules_1) + (void) + (let-values () + (error + "internal error: have post submodules, but not already compiled"))) + (register-compiled-submodules + modules-being-compiled_1 + pre-submodules_1 + self_26))) + (void)) + (values)))) + (let-values (((body-linklets_2 + min-phase_4 + max-phase_4 + phase-to-link-module-uses_4 + phase-to-link-module-uses-expr_4 + phase-to-link-extra-inspectorsss_2 + syntax-literals_3 + root-ctx-pos_0) + (let-values (((bodys57_0) bodys_6) + ((body-cctx58_0) + body-cctx_0) + ((mpis59_0) mpis_21) + ((temp60_1) + (list + (list + get-syntax-literal!-id) + (list + set-transformer!-id))) + ((temp61_1) + (list + empty-syntax-literals-instance + empty-module-body-instance)) + ((temp62_1) '((void))) + ((temp63_0) '(0)) + ((encoded-root-expand-ctx-box64_0) + encoded-root-expand-ctx-box_1) + ((body-context-simple?65_0) + body-context-simple?_0) + ((check-side-effects!66_0) + check-side-effects!_0) + ((temp67_0) + (lambda (body_4 cctx_18) + (if (parsed-#%declare? + body_4) + (let-values () + (let-values (((ok?_29 + _73_0 + kw74_0) + (let-values (((s_453) + (parsed-s + body_4))) + (let-values (((orig-s_32) + s_453)) + (let-values (((_73_1 + kw74_1) + (let-values (((s_69) + (if (syntax?$1 + s_453) + (syntax-e$1 + s_453) + s_453))) + (if (pair? + s_69) + (let-values (((_75_0) + (let-values (((s_201) + (car + s_69))) + s_201)) + ((kw76_0) + (let-values (((s_454) + (cdr + s_69))) + (let-values (((s_91) + (if (syntax?$1 + s_454) + (syntax-e$1 + s_454) + s_454))) + (let-values (((flat-s_21) + (to-syntax-list.1 + s_91))) + (if (not + flat-s_21) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_32)) + (let-values () + flat-s_21))))))) + (values + _75_0 + kw76_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_32))))) + (values + #t + _73_1 + kw74_1)))))) + (begin + (let-values (((lst_288) + kw74_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_288))) + ((letrec-values (((for-loop_18) + (lambda (lst_289) + (begin + 'for-loop + (if (pair? + lst_289) + (let-values (((kw_0) + (unsafe-car + lst_289)) + ((rest_160) + (unsafe-cdr + lst_289))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (if (eq? + (syntax-e$1 + kw_0) + '#:cross-phase-persistent) + (let-values () + (set! cross-phase-persistent?_2 + #t)) + (void)) + (if (eq? + (syntax-e$1 + kw_0) + '#:empty-namespace) + (let-values () + (begin + (set! empty-result-for-module->namespace?_0 + #t) + (set-box! + encoded-root-expand-ctx-box_1 + #f))) + (void)) + (if (eq? + (syntax-e$1 + kw_0) + '#:unsafe) + (let-values () + (set-box! + unsafe?-box_1 + #t)) + (void)))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_18 + rest_160) + (values)))) + (values)))))) + for-loop_18) + lst_288))) + (void) + #f))) + (let-values () #f)))) + ((temp68_1) + (lambda (mod-name_17 + phase_53) + (let-values (((ht_142) + (if modules-being-compiled_1 + (hash-ref + modules-being-compiled_1 + mod-name_17 + #f) + #f))) + (if ht_142 + (hash-ref + ht_142 + phase_53 + #f) + #f)))) + ((serializable?69_0) + serializable?_4) + ((temp70_1) #t) + ((to-correlated-linklet?71_0) + to-correlated-linklet?_5) + ((unsafe?-box72_0) + unsafe?-box_1)) + (compile-forms.1 + temp61_1 + temp60_1 + temp62_1 + check-side-effects!66_0 + void + encoded-root-expand-ctx-box64_0 + temp63_0 + temp68_1 + temp70_1 + #t + temp67_0 + body-context-simple?65_0 + serializable?69_0 + to-correlated-linklet?71_0 + unsafe?-box72_0 + bodys57_0 + body-cctx58_0 + mpis59_0)))) + (let-values ((() + (begin + (if modules-being-compiled_1 + (let-values () + (hash-set! + modules-being-compiled_1 + (1/module-path-index-resolve + self_26) + (let-values (((ht_143) + body-linklets_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_143))) + ((letrec-values (((for-loop_263) + (lambda (table_199 + i_185) + (begin + 'for-loop + (if i_185 + (let-values (((phase_88 + linklet_8) + (hash-iterate-key+value + ht_143 + i_185))) + (let-values (((table_200) + (let-values (((table_201) + table_199)) + (let-values (((table_202) + (let-values () + (let-values (((key_86 + val_71) + (let-values () + (values + phase_88 + (module-linklet-info2.1 + linklet_8 + (hash-ref + phase-to-link-module-uses_4 + phase_88 + #f) + self_26 + #f + #f + (if phase-to-link-extra-inspectorsss_2 + (hash-ref + phase-to-link-extra-inspectorsss_2 + phase_88 + #f) + #f)))))) + (hash-set + table_201 + key_86 + val_71))))) + (values + table_202))))) + (if (not + #f) + (for-loop_263 + table_200 + (hash-iterate-next + ht_143 + i_185)) + table_200))) + table_199))))) + for-loop_263) + '#hasheq() + (hash-iterate-first + ht_143)))))) + (void)) + (values)))) + (let-values (((declaration-linklet_0) + (if serializable?_4 + ((lambda (s_80) + (if to-correlated-linklet?_5 + (make-correlated-linklet + s_80 + 'decl) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'module + 'linklet)) + (void)) + (begin0 + (let-values () + (1/compile-linklet + s_80 + 'decl)) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (generate-module-declaration-linklet + mpis_21 + self_26 + requires_6 + provides_14 + phase-to-link-module-uses-expr_4)) + #f))) + (let-values (((syntax-literals-linklet_2) + (if (not + (syntax-literals-empty? + syntax-literals_3)) + ((lambda (s_455) + (if to-correlated-linklet?_5 + (make-correlated-linklet + s_455 + 'syntax-literals) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'module + 'linklet)) + (void)) + (begin0 + (let-values () + (let-values (((linklet_9 + new-keys_1) + (1/compile-linklet + s_455 + 'syntax-literals + (vector + deserialize-instance + empty-top-syntax-literal-instance + empty-syntax-literals-data-instance + empty-instance-instance) + (lambda (inst_5) + (values + inst_5 + #f)) + (if serializable?_4 + '(serializable) + '())))) + linklet_9)) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (list* + 'linklet + (list + deserialize-imports + (list mpi-vector-id) + (list* + deserialized-syntax-vector-id + (if serializable?_4 + (list + deserialize-syntax-id) + '())) + instance-imports) + (list* + get-syntax-literal!-id + '(get-encoded-root-expand-ctx)) + (qq-append + (let-values (((syntax-literals77_0) + syntax-literals_3) + ((mpis78_0) + mpis_21) + ((self79_0) + self_26) + ((temp80_1) + (not + serializable?_4))) + (generate-lazy-syntax-literals!.1 + temp80_1 + syntax-literals77_0 + mpis78_0 + self79_0)) + (list + (list + 'define-values + '(get-encoded-root-expand-ctx) + (if root-ctx-pos_0 + (let-values () + (list + 'lambda + '() + (generate-lazy-syntax-literal-lookup + root-ctx-pos_0))) + (if empty-result-for-module->namespace?_0 + (let-values () ''empty) + (let-values () + ''#f)))))))) + #f))) + (let-values (((syntax-literals-data-linklet_0) + (if serializable?_4 + (if (not + (syntax-literals-empty? + syntax-literals_3)) + ((lambda (s_329) + (if to-correlated-linklet?_5 + (make-correlated-linklet + s_329 + 'syntax-literals-data) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'module + 'linklet)) + (void)) + (begin0 + (let-values () + (1/compile-linklet + s_329 + 'syntax-literals-data + #f + #f + '(serializable))) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (list* + 'linklet + (list + deserialize-imports + (list mpi-vector-id)) + (list + deserialized-syntax-vector-id + deserialize-syntax-id) + (list + 'define-values + (list + deserialized-syntax-vector-id) + (list* + 'make-vector + (syntax-literals-count + syntax-literals_3) + '(#f))) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'module + 'serialize)) + (void)) + (begin0 + (let-values () + (generate-lazy-syntax-literals-data! + syntax-literals_3 + mpis_21)) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + #f) + #f))) + (let-values (((data-linklet_0) + (if serializable?_4 + ((lambda (s_330) + (if to-correlated-linklet?_5 + (make-correlated-linklet + s_330 + 'data) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'compile + 'module + 'linklet)) + (void)) + (begin0 + (let-values () + (1/compile-linklet + s_330 + 'data)) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (generate-module-data-linklet + mpis_21)) + #f))) + (let-values (((bundle_1) + (let-values (((bundle_2) + (hash-set + body-linklets_2 + 'name + full-module-name_2))) + (let-values (((bundle_3) + (hash-set + bundle_2 + 'decl + (let-values (((or-part_113) + declaration-linklet_0)) + (if or-part_113 + or-part_113 + 'in-memory))))) + (let-values (((bundle_4) + (if data-linklet_0 + (hash-set + bundle_3 + 'data + data-linklet_0) + bundle_3))) + (let-values (((bundle_5) + (if syntax-literals-linklet_2 + (hash-set + bundle_4 + 'stx + syntax-literals-linklet_2) + bundle_4))) + (let-values (((bundle_6) + (if syntax-literals-data-linklet_0 + (hash-set + bundle_5 + 'stx-data + syntax-literals-data-linklet_0) + bundle_5))) + (let-values (((bundle_7) + (if (null? + pre-submodules_1) + bundle_6 + (hash-set + bundle_6 + 'pre + (map2 + car + pre-submodules_1))))) + (let-values (((bundle_8) + (if (null? + post-submodules_1) + bundle_7 + (hash-set + bundle_7 + 'post + (map2 + car + post-submodules_1))))) + (let-values (((bundle_9) + (if cross-phase-persistent?_2 + (hash-set + bundle_8 + 'cross-phase-persistent? + #t) + bundle_8))) + (let-values (((bundle_10) + (if language-info_2 + (hash-set + bundle_9 + 'language-info + language-info_2) + bundle_9))) + (let-values (((bundle_11) + (if (zero? + min-phase_4) + bundle_10 + (hash-set + bundle_10 + 'min-phase + min-phase_4)))) + (let-values (((bundle_12) + (if (zero? + max-phase_4) + bundle_11 + (hash-set + bundle_11 + 'max-phase + max-phase_4)))) + (let-values (((bundle_13) + (if (hash-count + side-effects_0) + (hash-set + bundle_12 + 'side-effects + (let-values (((temp81_2) + (hash-keys + side-effects_0)) + ((<82_0) + <)) + (sort.1 + #f + #f + temp81_2 + <82_0))) + bundle_12))) + (let-values (((bundle_14) + (if empty-result-for-module->namespace?_0 + (hash-set + bundle_13 + 'module->namespace + 'empty) + bundle_13))) + (let-values (((bundle_15) + (if (unbox + unsafe?-box_1) + (hash-set + bundle_14 + 'unsafe? + #t) + bundle_14))) + (1/hash->linklet-bundle + bundle_15))))))))))))))))) + (let-values (((ld_9) + (if (if (null? + pre-submodules_1) + (if (null? + post-submodules_1) + (not + force-linklet-directory?_1) + #f) + #f) + (let-values () bundle_1) + (let-values () + (let-values (((ht_144) + (let-values (((lst_290) + (append + pre-submodules_1 + post-submodules_1))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_290))) + ((letrec-values (((for-loop_264) + (lambda (ht_145 + lst_291) + (begin + 'for-loop + (if (pair? + lst_291) + (let-values (((sm_0) + (unsafe-car + lst_291)) + ((rest_161) + (unsafe-cdr + lst_291))) + (let-values (((ht_34) + (let-values (((ht_146) + ht_145)) + (let-values (((ht_130) + (let-values () + (hash-set + ht_146 + (car + sm_0) + (compiled-in-memory-linklet-directory + (cdr + sm_0)))))) + (values + ht_130))))) + (if (not + #f) + (for-loop_264 + ht_34 + rest_161) + ht_34))) + ht_145))))) + for-loop_264) + (hasheq + #f + bundle_1) + lst_290))))) + (1/hash->linklet-directory + ht_144)))))) + (compiled-in-memory1.1 + ld_9 + self_26 + requires_6 + provides_14 + phase-to-link-module-uses_4 + (current-code-inspector) + phase-to-link-extra-inspectorsss_2 + (mpis-as-vector mpis_21) + (syntax-literals-as-vector + syntax-literals_3) + (map2 cdr pre-submodules_1) + (map2 cdr post-submodules_1) + #f + #f)))))))))))))))))))))))))) + (if log-performance? (let-values () (end-performance-region)) (void)))))))))))))))))) + (define-values + (update-submodule-names) + (lambda (cim_9 name_64 full-module-name_3) + (begin + (change-module-name + cim_9 + name_64 + (if (symbol? full-module-name_3) (list full-module-name_3) (reverse$1 (cdr (reverse$1 full-module-name_3)))))))) + (define-values + (register-compiled-submodules) + (lambda (modules-being-compiled_2 pre-submodules_2 self_27) + (begin + (begin + (let-values (((lst_292) pre-submodules_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_292))) + ((letrec-values (((for-loop_265) + (lambda (lst_293) + (begin + 'for-loop + (if (pair? lst_293) + (let-values (((s_119) (unsafe-car lst_293)) ((rest_162) (unsafe-cdr lst_293))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((name_33) (car s_119))) + (let-values (((cim_10) (cdr s_119))) + (let-values (((phase-to-link-module-uses_5) + (compiled-in-memory-phase-to-link-module-uses + cim_10))) + (let-values (((ld_10) + (compiled-in-memory-linklet-directory + cim_10))) + (let-values (((sm-self_0) + (1/module-path-index-join + (list + 'submod + "." + name_33) + self_27))) + (let-values (((phase-to-extra-inspectorsss_0) + (compiled-in-memory-phase-to-link-extra-inspectorsss + cim_10))) + (hash-set! + modules-being-compiled_2 + (1/module-path-index-resolve + sm-self_0) + (let-values (((ht_44) + (1/linklet-bundle->hash + (if (linklet-directory?$1 + ld_10) + (hash-ref + (linklet-directory->hash$1 + ld_10) + #f) + ld_10)))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash ht_44))) + ((letrec-values (((for-loop_48) + (lambda (table_203 + i_186) + (begin + 'for-loop + (if i_186 + (let-values (((phase_89 + linklet_10) + (hash-iterate-key+value + ht_44 + i_186))) + (let-values (((table_116) + (let-values (((table_204) + table_203)) + (if (number? + phase_89) + (let-values (((table_205) + table_204)) + (let-values (((table_206) + (let-values () + (let-values (((key_87 + val_72) + (let-values () + (values + phase_89 + (module-linklet-info2.1 + linklet_10 + (hash-ref + phase-to-link-module-uses_5 + phase_89 + #f) + (compiled-in-memory-original-self + cim_10) + #f + (compiled-in-memory-compile-time-inspector + cim_10) + (if phase-to-extra-inspectorsss_0 + (hash-ref + phase-to-extra-inspectorsss_0 + phase_89 + #f) + #f)))))) + (hash-set + table_205 + key_87 + val_72))))) + (values + table_206))) + table_204)))) + (if (not + #f) + (for-loop_48 + table_116 + (hash-iterate-next + ht_44 + i_186)) + table_116))) + table_203))))) + for-loop_48) + '#hasheq() + (hash-iterate-first + ht_44)))))))))))) + (values))))) + (values))))) + (if (not #f) (for-loop_265 rest_162) (values)))) + (values)))))) + for-loop_265) + lst_292))) + (void))))) + (define-values + (filter-language-info) + (lambda (li_1) + (begin + (if (vector? li_1) + (if (= 3 (vector-length li_1)) + (if (1/module-path? (vector-ref li_1 0)) (if (symbol? (vector-ref li_1 1)) li_1 #f) #f) + #f) + #f)))) + (define-values + (1/compiled-expression-recompile) + (lambda (c_7) + (begin + 'compiled-expression-recompile + (let-values ((() + (begin + (if (1/compiled-expression? c_7) + (void) + (let-values () + (raise-argument-error 'compiled-expression-recompile "compiled-expression?" c_7))) + (values)))) + (let-values (((target-machine_0) (current-compile-target-machine))) + (if (not target-machine_0) + (let-values () c_7) + (if (let-values (((or-part_2) (1/linklet-bundle? c_7))) (if or-part_2 or-part_2 (linklet-directory?$1 c_7))) + (let-values () + (let-values (((ns_67) (1/current-namespace))) + (let-values (((bundles_5) (extract-linklet-bundles c_7 '() '#hash()))) + (let-values (((recompileds_0) (make-hash))) + (letrec-values (((force-recompile-bundle_0) + (lambda (k_49) + (begin + 'force-recompile-bundle + (begin + (if (hash-ref recompileds_0 k_49 #f) + (void) + (let-values () + (let-values ((() + (begin + (hash-set! recompileds_0 k_49 'in-process) + (values)))) + (let-values (((b_23) (hash-ref bundles_5 k_49 #f))) + (begin + (if b_23 + (void) + (let-values () + (raise-arguments-error + 'compiled-expression-recompile + "cannot find submodule" + "submodule path" + k_49))) + (hash-set! + recompileds_0 + k_49 + (recompile-bundle + b_23 + force-recompile-bundle_0 + ns_67 + target-machine_0))))))) + (hash-ref recompileds_0 k_49)))))) + (begin + (let-values (((ht_74) bundles_5)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_74))) + ((letrec-values (((for-loop_266) + (lambda (i_187) + (begin + 'for-loop + (if i_187 + (let-values (((k_50) (hash-iterate-key ht_74 i_187))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (force-recompile-bundle_0 + k_50)) + (values))))) + (values))))) + (if (not #f) + (for-loop_266 (hash-iterate-next ht_74 i_187)) + (values)))) + (values)))))) + for-loop_266) + (hash-iterate-first ht_74)))) + (void) + (replace-linklet-bundles c_7 '() recompileds_0))))))) + (let-values () (1/compiled-expression-recompile (compiled-in-memory-linklet-directory c_7)))))))))) + (define-values + (extract-linklet-bundles) + (lambda (c_51 rev-path_0 accum_8) + (begin + (if (1/linklet-bundle? c_51) + (let-values () (hash-set accum_8 (reverse$1 rev-path_0) c_51)) + (if (linklet-directory?$1 c_51) + (let-values () + (let-values (((ht_147) (linklet-directory->hash$1 c_51))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_147))) + ((letrec-values (((for-loop_55) + (lambda (accum_9 i_178) + (begin + 'for-loop + (if i_178 + (let-values (((k_51 v_31) (hash-iterate-key+value ht_147 i_178))) + (let-values (((accum_10) + (let-values (((accum_11) accum_9)) + (let-values (((accum_2) + (let-values () + (if (symbol? k_51) + (let-values () + (extract-linklet-bundles + v_31 + (cons k_51 rev-path_0) + accum_11)) + (if (not k_51) + (let-values () + (extract-linklet-bundles + v_31 + rev-path_0 + accum_11)) + (let-values () accum_11)))))) + (values accum_2))))) + (if (not #f) + (for-loop_55 accum_10 (hash-iterate-next ht_147 i_178)) + accum_10))) + accum_9))))) + for-loop_55) + accum_8 + (hash-iterate-first ht_147))))) + (let-values () accum_8)))))) + (define-values + (replace-linklet-bundles) + (lambda (c_59 rev-path_1 recompileds_1) + (begin + (if (1/linklet-bundle? c_59) + (let-values () (recompiled-bundle (hash-ref recompileds_1 (reverse$1 rev-path_1)))) + (if (linklet-directory?$1 c_59) + (let-values () + (1/hash->linklet-directory + (let-values (((ht_69) (linklet-directory->hash$1 c_59))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_69))) + ((letrec-values (((for-loop_84) + (lambda (table_197 i_87) + (begin + 'for-loop + (if i_87 + (let-values (((k_22 v_76) (hash-iterate-key+value ht_69 i_87))) + (let-values (((table_207) + (let-values (((table_208) table_197)) + (let-values (((table_192) + (let-values () + (let-values (((key_88 val_73) + (let-values () + (values + k_22 + (if (symbol? k_22) + (let-values () + (replace-linklet-bundles + v_76 + (cons k_22 rev-path_1) + recompileds_1)) + (if (not k_22) + (let-values () + (replace-linklet-bundles + v_76 + rev-path_1 + recompileds_1)) + (void))))))) + (hash-set table_208 key_88 val_73))))) + (values table_192))))) + (if (not #f) + (for-loop_84 table_207 (hash-iterate-next ht_69 i_87)) + table_207))) + table_197))))) + for-loop_84) + '#hasheq() + (hash-iterate-first ht_69)))))) + (let-values () c_59)))))) + (define-values + (struct:recompiled recompiled1.1 recompiled? recompiled-bundle recompiled-phase-to-link-module-uses recompiled-self) + (let-values (((struct:_12 make-_12 ?_12 -ref_12 -set!_12) + (let-values () + (let-values () + (make-struct-type + 'recompiled + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'recompiled))))) + (values + struct:_12 + make-_12 + ?_12 + (make-struct-field-accessor -ref_12 0 'bundle) + (make-struct-field-accessor -ref_12 1 'phase-to-link-module-uses) + (make-struct-field-accessor -ref_12 2 'self)))) + (define-values + (recompile-bundle) + (lambda (b_91 get-submodule-recompiled_0 ns_68 target-machine_1) + (begin + (let-values (((orig-h_0) (1/linklet-bundle->hash b_91))) + (let-values (((h_11) + (let-values (((ht_148) orig-h_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_148))) + ((letrec-values (((for-loop_267) + (lambda (table_111 i_188) + (begin + 'for-loop + (if i_188 + (let-values (((k_52 v_88) (hash-iterate-key+value ht_148 i_188))) + (let-values (((table_209) + (let-values (((table_210) table_111)) + (let-values (((table_211) + (let-values () + (let-values (((key_14 val_74) + (let-values () + (if (if (not + (exact-integer? + k_52)) + (correlated-linklet? + v_88) + #f) + (let-values () + (values + k_52 + (force-compile-linklet + v_88))) + (let-values () + (values + k_52 + v_88)))))) + (hash-set + table_210 + key_14 + val_74))))) + (values table_211))))) + (if (not #f) + (for-loop_267 table_209 (hash-iterate-next ht_148 i_188)) + table_209))) + table_111))))) + for-loop_267) + '#hasheq() + (hash-iterate-first ht_148)))))) + (let-values (((can-eval-compiled?_0) (eq? target-machine_1 (system-type 'target-machine)))) + (let-values (((eval-metadata-linklet_0) + (lambda (key_89) + (begin + 'eval-metadata-linklet + (if can-eval-compiled?_0 + (eval-linklet$1 (hash-ref h_11 key_89)) + (eval-correlated-linklet (hash-ref orig-h_0 key_89))))))) + (let-values (((data-instance_5) + (instantiate-linklet$1 (eval-metadata-linklet_0 'data) (list deserialize-instance)))) + (let-values (((declaration-instance_4) + (instantiate-linklet$1 + (eval-metadata-linklet_0 'decl) + (list deserialize-instance data-instance_5)))) + (let-values (((decl_1) + (lambda (key_90) + (begin 'decl (1/instance-variable-value declaration-instance_4 key_90))))) + (let-values (((mpis_22) (make-module-path-index-table))) + (let-values ((() + (begin + (let-values (((vec_76 len_54) + (let-values (((vec_77) + (1/instance-variable-value + data-instance_5 + mpi-vector-id))) + (begin + (check-vector vec_77) + (values vec_77 (unsafe-vector-length vec_77)))))) + (begin + #f + ((letrec-values (((for-loop_31) + (lambda (pos_117) + (begin + 'for-loop + (if (unsafe-fx< pos_117 len_54) + (let-values (((mpi_32) + (unsafe-vector-ref vec_76 pos_117))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (add-module-path-index! + mpis_22 + mpi_32)) + (values))))) + (values))))) + (if (not #f) + (for-loop_31 (unsafe-fx+ 1 pos_117)) + (values)))) + (values)))))) + for-loop_31) + 0))) + (values)))) + (let-values () + (let-values (((self_28) (decl_1 'self-mpi))) + (let-values (((phase-to-link-modules_1) (decl_1 'phase-to-link-modules))) + (let-values (((unsafe?_1) (hash-ref orig-h_0 'unsafe? #f))) + (let-values (((find-submodule_0) + (lambda (mod-name_18 phase_90) + (begin + 'find-submodule + (let-values (((find-l_0) (1/resolved-module-path-name mod-name_18))) + (let-values (((self-l_0) + (1/resolved-module-path-name + (1/module-path-index-resolve self_28)))) + (let-values (((root-of_0) + (lambda (l_56) + (begin + 'root-of + (if (pair? l_56) (car l_56) l_56))))) + (if (equal? (root-of_0 find-l_0) (root-of_0 self-l_0)) + (let-values () + (let-values (((r_42) + (get-submodule-recompiled_0 + (if (pair? find-l_0) (cdr find-l_0) '())))) + (let-values ((() + (begin + (if (eq? r_42 'in-process) + (let-values () + (raise-arguments-error + 'compiled-expression-recompile + "cycle in linklet imports")) + (void)) + (values)))) + (let-values (((b_92) (recompiled-bundle r_42))) + (let-values (((linklet_11) + (let-values (((or-part_42) + (hash-ref + (1/linklet-bundle->hash + b_92) + phase_90 + #f))) + (if or-part_42 + or-part_42 + (raise-arguments-error + 'compiled-expression-recompile + "cannot find submodule at phase" + "submodule" + mod-name_18 + "phase" + phase_90))))) + (module-linklet-info2.1 + linklet_11 + (hash-ref + (recompiled-phase-to-link-module-uses r_42) + phase_90 + #f) + (recompiled-self r_42) + #f + (current-code-inspector) + #f)))))) + (let-values () #f))))))))) + (let-values (((body-linklets+module-use*s_1) + (let-values (((ht_149) h_11)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_149))) + ((letrec-values (((for-loop_192) + (lambda (table_18 i_120) + (begin + 'for-loop + (if i_120 + (let-values (((phase_91 body-linklet_2) + (hash-iterate-key+value + ht_149 + i_120))) + (let-values (((table_212) + (let-values (((table_19) + table_18)) + (if (exact-integer? + phase_91) + (let-values (((table_213) + table_19)) + (let-values (((table_144) + (let-values () + (let-values (((key_91 + val_75) + (let-values () + (let-values (((module-use*s_2) + (module-uses-add-extra-inspectorsss + (hash-ref + phase-to-link-modules_1 + phase_91) + #f))) + (let-values (((linklet_12 + new-module-use*s_2) + (let-values (((temp3_2) + (if (correlated-linklet? + body-linklet_2) + (correlated-linklet-expr + body-linklet_2) + body-linklet_2)) + ((temp4_1) + (if (correlated-linklet? + body-linklet_2) + 1/compile-linklet + recompile-linklet$1)) + ((temp5_4) + (list + (list + get-syntax-literal!-id) + (list + set-transformer!-id))) + ((temp6_1) + (list + empty-syntax-literals-instance + empty-module-body-instance)) + ((find-submodule7_0) + find-submodule_0) + ((temp8_4) + #t) + ((temp9_4) + #t) + ((module-use*s10_0) + module-use*s_2) + ((temp11_3) + #t) + ((unsafe?12_0) + unsafe?_1) + ((temp13_4) + #t) + ((ns14_2) + ns_68)) + (compile-module-linklet.1 + temp6_1 + temp5_4 + temp4_1 + find-submodule7_0 + temp13_4 + temp9_4 + module-use*s10_0 + ns14_2 + temp11_3 + temp8_4 + unsafe?12_0 + temp3_2)))) + (values + phase_91 + (cons + linklet_12 + new-module-use*s_2))))))) + (hash-set + table_213 + key_91 + val_75))))) + (values table_144))) + table_19)))) + (if (not #f) + (for-loop_192 + table_212 + (hash-iterate-next ht_149 i_120)) + table_212))) + table_18))))) + for-loop_192) + '#hash() + (hash-iterate-first ht_149)))))) + (let-values (((h/new-body-linklets_0) + (let-values (((ht_150) body-linklets+module-use*s_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_150))) + ((letrec-values (((for-loop_268) + (lambda (h_12 i_189) + (begin + 'for-loop + (if i_189 + (let-values (((phase_92 l+mu*s_3) + (hash-iterate-key+value + ht_150 + i_189))) + (let-values (((h_13) + (let-values (((h_14) + h_12)) + (let-values (((h_15) + (let-values () + (hash-set + h_14 + phase_92 + (car + l+mu*s_3))))) + (values h_15))))) + (if (not #f) + (for-loop_268 + h_13 + (hash-iterate-next ht_150 i_189)) + h_13))) + h_12))))) + for-loop_268) + h_11 + (hash-iterate-first ht_150)))))) + (let-values (((phase-to-link-module-uses_6) + (let-values (((ht_129) body-linklets+module-use*s_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_129))) + ((letrec-values (((for-loop_222) + (lambda (table_28 i_168) + (begin + 'for-loop + (if i_168 + (let-values (((phase_93 l+mu*s_4) + (hash-iterate-key+value + ht_129 + i_168))) + (let-values (((table_31) + (let-values (((table_214) + table_28)) + (let-values (((table_215) + (let-values () + (let-values (((key_92 + val_76) + (let-values () + (values + phase_93 + (module-uses-strip-extra-inspectorsss + (cdr + l+mu*s_4)))))) + (hash-set + table_214 + key_92 + val_76))))) + (values + table_215))))) + (if (not #f) + (for-loop_222 + table_31 + (hash-iterate-next ht_129 i_168)) + table_31))) + table_28))))) + for-loop_222) + '#hasheq() + (hash-iterate-first ht_129)))))) + (let-values (((phase-to-link-module-uses-expr_5) + (serialize-phase-to-link-module-uses + phase-to-link-module-uses_6 + mpis_22))) + (let-values (((data-linklet_1) + (1/compile-linklet + (generate-module-data-linklet mpis_22) + 'data))) + (let-values (((declaration-linklet_1) + (1/compile-linklet + (generate-module-declaration-linklet + mpis_22 + self_28 + (decl_1 'requires) + (decl_1 'provides) + phase-to-link-module-uses-expr_5) + 'decl))) + (let-values (((new-bundle_0) + (1/hash->linklet-bundle + (let-values (((h_16) h/new-body-linklets_0)) + (let-values (((h_17) + (hash-set h_16 'data data-linklet_1))) + (let-values (((h_18) + (hash-set + h_17 + 'decl + declaration-linklet_1))) + h_18)))))) + (recompiled1.1 + new-bundle_0 + phase-to-link-module-uses_6 + self_28))))))))))))))))))))))))) + (define-values + (create-compiled-in-memorys-using-shared-data) + (lambda (tops_0 data-linklet_2 ns_61) + (begin + (let-values (((data-instance_6) + (instantiate-linklet$1 + (force-compile-linklet data-linklet_2) + (list + deserialize-instance + (let-values (((ns1_1) ns_61) + ((temp2_3) (namespace-phase ns_61)) + ((temp3_3) (namespace-mpi ns_61)) + ((temp4_2) (namespace-bulk-binding-registry ns_61)) + ((temp5_5) (current-code-inspector))) + (make-eager-instance-instance.1 temp4_2 temp2_3 temp5_5 ns1_1 temp3_3)))))) + (let-values (((data_1) (lambda (key_28) (begin 'data (1/instance-variable-value data-instance_6 key_28))))) + (let-values (((mpi-vector_0) (data_1 mpi-vector-id))) + (let-values (((mpi-vector-trees_0) (data_1 'mpi-vector-trees))) + (let-values (((phase-to-link-modules-vector_0) (data_1 'phase-to-link-modules-vector))) + (let-values (((phase-to-link-modules-trees_0) (data_1 'phase-to-link-modules-trees))) + (let-values (((syntax-literals_4) (data_1 'syntax-literals))) + (let-values (((syntax-literals-trees_1) (data_1 'syntax-literals-trees))) + (let-values (((namespace-scopes_0) (extract-namespace-scopes ns_61))) + (letrec-values (((construct-compiled-in-memory_0) + (lambda (ld_11 + mpi-vector-tree_0 + phase-to-link-modules-tree_0 + syntax-literals-tree_0) + (begin + 'construct-compiled-in-memory + (let-values (((is-module?_0) + (let-values (((or-part_6) (1/linklet-bundle? ld_11))) + (if or-part_6 + or-part_6 + (let-values (((b_93) + (hash-ref + (linklet-directory->hash$1 ld_11) + #f + #f))) + (if b_93 + (hash-ref (1/linklet-bundle->hash b_93) 'decl #f) + #f)))))) + (let-values (((mpi-pos-vec_0) (vector-ref mpi-vector-tree_0 0))) + (let-values (((syntax-literals-spec_0) + (vector-ref syntax-literals-tree_0 0))) + (let-values (((pres_0) + (if is-module?_0 + (extract-submodules ld_11 'pre) + (compiled-top->compiled-tops ld_11)))) + (let-values (((posts_0) + (if is-module?_0 + (extract-submodules ld_11 'post) + null))) + (let-values (((map-construct-compiled-in-memory_0) + (lambda (l_57 vec-pos_0) + (begin + 'map-construct-compiled-in-memory + (reverse$1 + (let-values (((lst_169) l_57) + ((lst_90) + (vector-ref + mpi-vector-tree_0 + vec-pos_0)) + ((lst_191) + (vector-ref + phase-to-link-modules-tree_0 + vec-pos_0)) + ((lst_63) + (vector-ref + syntax-literals-tree_0 + vec-pos_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_169))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_90))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_191))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_63))) + ((letrec-values (((for-loop_20) + (lambda (fold-var_124 + lst_279 + lst_179 + lst_281 + lst_27) + (begin + 'for-loop + (if (if (pair? + lst_279) + (if (pair? + lst_179) + (if (pair? + lst_281) + (pair? + lst_27) + #f) + #f) + #f) + (let-values (((sub-ld_0) + (unsafe-car + lst_279)) + ((rest_152) + (unsafe-cdr + lst_279)) + ((mpi-vector-tree_1) + (unsafe-car + lst_179)) + ((rest_163) + (unsafe-cdr + lst_179)) + ((phase-to-link-modules-tree_1) + (unsafe-car + lst_281)) + ((rest_164) + (unsafe-cdr + lst_281)) + ((syntax-literals-tree_1) + (unsafe-car + lst_27)) + ((rest_51) + (unsafe-cdr + lst_27))) + (let-values (((fold-var_9) + (let-values (((fold-var_10) + fold-var_124)) + (let-values (((fold-var_11) + (let-values () + (cons + (let-values () + (construct-compiled-in-memory_0 + sub-ld_0 + mpi-vector-tree_1 + phase-to-link-modules-tree_1 + syntax-literals-tree_1)) + fold-var_10)))) + (values + fold-var_11))))) + (if (not #f) + (for-loop_20 + fold-var_9 + rest_152 + rest_163 + rest_164 + rest_51) + fold-var_9))) + fold-var_124))))) + for-loop_20) + null + lst_169 + lst_90 + lst_191 + lst_63)))))))) + (compiled-in-memory1.1 + ld_11 + #f + #f + #f + (vector-ref + phase-to-link-modules-vector_0 + (vector-ref phase-to-link-modules-tree_0 0)) + #f + '#hasheqv() + (let-values (((len_55) (vector-length mpi-pos-vec_0))) + (begin + (if (exact-nonnegative-integer? len_55) + (void) + (let-values () + (raise-argument-error + 'for/vector + "exact-nonnegative-integer?" + len_55))) + (let-values (((v_190) (make-vector len_55 0))) + (begin + (if (zero? len_55) + (void) + (let-values () + (let-values (((vec_78 len_56) + (let-values (((vec_79) + mpi-pos-vec_0)) + (begin + (check-vector vec_79) + (values + vec_79 + (unsafe-vector-length + vec_79)))))) + (begin + #f + ((letrec-values (((for-loop_107) + (lambda (i_190 pos_118) + (begin + 'for-loop + (if (unsafe-fx< + pos_118 + len_56) + (let-values (((pos_119) + (unsafe-vector-ref + vec_78 + pos_118))) + (let-values (((i_191) + (let-values (((i_192) + i_190)) + (let-values (((i_112) + (let-values () + (begin + (unsafe-vector*-set! + v_190 + i_192 + (let-values () + (vector-ref + mpi-vector_0 + pos_119))) + (unsafe-fx+ + 1 + i_192))))) + (values + i_112))))) + (if (if (not + ((lambda x_15 + (unsafe-fx= + i_191 + len_55)) + pos_119)) + (not #f) + #f) + (for-loop_107 + i_191 + (unsafe-fx+ + 1 + pos_118)) + i_191))) + i_190))))) + for-loop_107) + 0 + 0))))) + v_190)))) + (let-values (((len_57) (cdr syntax-literals-spec_0))) + (begin + (if (exact-nonnegative-integer? len_57) + (void) + (let-values () + (raise-argument-error + 'for/vector + "exact-nonnegative-integer?" + len_57))) + (let-values (((v_36) (make-vector len_57 0))) + (begin + (if (zero? len_57) + (void) + (let-values () + (let-values (((start_18) 0) + ((end_35) + (cdr syntax-literals-spec_0)) + ((inc_29) 1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range start_18 end_35 inc_29))) + ((letrec-values (((for-loop_269) + (lambda (i_47 pos_105) + (begin + 'for-loop + (if (< pos_105 end_35) + (let-values (((i_93) + pos_105)) + (let-values (((i_193) + (let-values (((i_194) + i_47)) + (let-values (((i_20) + (let-values () + (begin + (unsafe-vector*-set! + v_36 + i_194 + (let-values () + (if syntax-literals_4 + (vector-ref + syntax-literals_4 + (+ + (car + syntax-literals-spec_0) + i_93)) + #f))) + (unsafe-fx+ + 1 + i_194))))) + (values + i_20))))) + (if (if (not + ((lambda x_79 + (unsafe-fx= + i_193 + len_57)) + i_93)) + (not #f) + #f) + (for-loop_269 + i_193 + (+ + pos_105 + inc_29)) + i_193))) + i_47))))) + for-loop_269) + 0 + start_18))))) + v_36)))) + (map-construct-compiled-in-memory_0 pres_0 1) + (map-construct-compiled-in-memory_0 posts_0 2) + namespace-scopes_0 + #f))))))))))) + (map2 + construct-compiled-in-memory_0 + tops_0 + mpi-vector-trees_0 + phase-to-link-modules-trees_0 + syntax-literals-trees_1)))))))))))))) + (define-values + (extract-submodules) + (lambda (ld_12 names-key_0) + (begin + (if (1/linklet-bundle? ld_12) + (let-values () null) + (let-values () + (let-values (((h_19) (linklet-directory->hash$1 ld_12))) + (let-values (((mod_3) (hash-ref h_19 #f #f))) + (let-values ((() (begin (if mod_3 (void) (let-values () (error "missing main module"))) (values)))) + (let-values (((mh_0) (1/linklet-bundle->hash mod_3))) + (let-values (((names_2) (hash-ref mh_0 names-key_0 null))) + (reverse$1 + (let-values (((lst_294) names_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_294))) + ((letrec-values (((for-loop_270) + (lambda (fold-var_20 lst_200) + (begin + 'for-loop + (if (pair? lst_200) + (let-values (((name_65) (unsafe-car lst_200)) + ((rest_104) (unsafe-cdr lst_200))) + (let-values (((fold-var_17) + (let-values (((fold-var_18) fold-var_20)) + (let-values (((fold-var_184) + (let-values () + (cons + (let-values () + (hash-ref + h_19 + name_65 + (lambda () + (error + "missing submodule declaration:" + name_65)))) + fold-var_18)))) + (values fold-var_184))))) + (if (not #f) (for-loop_270 fold-var_17 rest_104) fold-var_17))) + fold-var_20))))) + for-loop_270) + null + lst_294)))))))))))))) + (define-values + (eval-single-top) + (lambda (c_7 ns_43) + (begin (let-values (((c11_0) c_7) ((ns12_1) ns_43) ((temp13_5) #t)) (eval-one-top.1 temp13_5 c11_0 ns12_1 #t))))) + (define-values + (compiled-multiple-top?) + (lambda (c_60) + (begin + (let-values (((ld_13) (if (compiled-in-memory? c_60) (compiled-in-memory-linklet-directory c_60) c_60))) + (if (linklet-directory?$1 ld_13) (not (hash-ref (linklet-directory->hash$1 ld_13) #f #f)) #f))))) + (define-values + (eval-top) + (let-values (((eval-top_0) + (lambda (c3_1 ns4_1 eval-compiled1_0 as-tail?2_0) + (begin + 'eval-top + (let-values (((c_51) c3_1)) + (let-values (((ns_69) ns4_1)) + (let-values (((eval-compiled_0) + (if (eq? eval-compiled1_0 unsafe-undefined) eval-top eval-compiled1_0))) + (let-values (((as-tail?_0) as-tail?2_0)) + (let-values () + (if (compiled-multiple-top? c_51) + (eval-multiple-tops c_51 ns_69 eval-compiled_0 as-tail?_0) + (let-values (((c14_0) c_51) ((ns15_0) ns_69) ((as-tail?16_0) as-tail?_0)) + (eval-one-top.1 #f c14_0 ns15_0 as-tail?16_0)))))))))))) + (case-lambda + ((c_61 ns_70) (begin (eval-top_0 c_61 ns_70 unsafe-undefined #t))) + ((c_62 ns_71 eval-compiled_1 as-tail?2_1) (eval-top_0 c_62 ns_71 eval-compiled_1 as-tail?2_1)) + ((c_63 ns_1 eval-compiled1_1) (eval-top_0 c_63 ns_1 eval-compiled1_1 #t))))) + (define-values + (eval-multiple-tops) + (lambda (c_64 ns_72 eval-compiled_2 as-tail?_1) + (begin + (let-values (((eval-compiled-parts_0) + (lambda (l_58) + (begin + 'eval-compiled-parts + ((letrec-values (((loop_99) + (lambda (l_59) + (begin + 'loop + (if (null? l_59) + (let-values () void) + (if (null? (cdr l_59)) + (let-values () (eval-compiled_2 (car l_59) ns_72 as-tail?_1)) + (let-values () + (begin + (eval-compiled_2 (car l_59) ns_72 #f) + (loop_99 (cdr l_59)))))))))) + loop_99) + l_58))))) + (if (compiled-in-memory? c_64) + (let-values () (eval-compiled-parts_0 (compiled-in-memory-pre-compiled-in-memorys c_64))) + (let-values (((c1_28) (hash-ref (linklet-directory->hash$1 c_64) 'data #f))) + (if c1_28 + ((lambda (data-ld_0) + (eval-compiled-parts_0 + (create-compiled-in-memorys-using-shared-data + (compiled-top->compiled-tops c_64) + (hash-ref (1/linklet-bundle->hash (hash-ref (linklet-directory->hash$1 data-ld_0) #f)) 0) + ns_72))) + c1_28) + (let-values () (eval-compiled-parts_0 (compiled-top->compiled-tops c_64)))))))))) + (define-values + (eval-one-top.1) + (lambda (single-expression?5_0 c8_0 ns9_0 as-tail?7_0) + (begin + 'eval-one-top + (let-values (((c_65) c8_0)) + (let-values (((ns_73) ns9_0)) + (let-values (((as-tail?_2) as-tail?7_0)) + (let-values (((single-expression?_1) single-expression?5_0)) + (let-values () + (begin + (if log-performance? + (let-values () (start-performance-region 'eval (if single-expression?_1 'transformer 'top))) + (void)) + (begin0 + (let-values () + (let-values (((ld_14) + (if (compiled-in-memory? c_65) (compiled-in-memory-linklet-directory c_65) c_65))) + (let-values (((h_20) (1/linklet-bundle->hash (hash-ref (linklet-directory->hash$1 ld_14) #f)))) + (let-values (((link-instance_0) + (if (compiled-in-memory? c_65) + (link-instance-from-compiled-in-memory + c_65 + (if (not single-expression?_1) ns_73 #f)) + (instantiate-linklet$1 + (force-compile-linklet (hash-ref h_20 'link)) + (list + deserialize-instance + (let-values (((ns17_0) ns_73) + ((temp18_5) (namespace-phase ns_73)) + ((temp19_2) (namespace-mpi ns_73)) + ((temp20_4) (namespace-bulk-binding-registry ns_73)) + ((temp21_8) (current-code-inspector))) + (make-eager-instance-instance.1 + temp20_4 + temp18_5 + temp21_8 + ns17_0 + temp19_2))))))) + (let-values (((orig-phase_1) (hash-ref h_20 'original-phase))) + (let-values (((max-phase_5) (hash-ref h_20 'max-phase))) + (let-values (((phase-shift_15) (phase- (namespace-phase ns_73) orig-phase_1))) + (let-values (((extra-inspector_7) + (if (compiled-in-memory? c_65) + (compiled-in-memory-compile-time-inspector c_65) + #f))) + (let-values (((phase-to-link-extra-inspectorsss_3) + (if (compiled-in-memory? c_65) + (compiled-in-memory-phase-to-link-extra-inspectorsss c_65) + '#hasheqv()))) + (let-values (((phase-to-link-modules_2) + (if (compiled-in-memory? c_65) + (compiled-in-memory-phase-to-link-module-uses c_65) + (1/instance-variable-value + link-instance_0 + 'phase-to-link-modules)))) + (let-values (((thunk_4) + (let-values (((start_49) max-phase_5) + ((end_36) (sub1 orig-phase_1)) + ((inc_30) -1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_49 end_36 inc_30))) + ((letrec-values (((for-loop_271) + (lambda (prev-thunk_0 pos_120) + (begin + 'for-loop + (if (> pos_120 end_36) + (let-values (((phase_37) pos_120)) + (let-values (((prev-thunk_1) + (let-values (((prev-thunk_2) + prev-thunk_0)) + (let-values (((prev-thunk_3) + (let-values () + (let-values ((() + (begin + (prev-thunk_2 + #f) + (values)))) + (let-values (((module-uses_1) + (hash-ref + phase-to-link-modules_2 + phase_37 + null))) + (let-values (((import-module-instances_2 + import-instances_1) + (let-values (((mis_6 + is_5) + (let-values (((lst_9) + module-uses_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_9))) + ((letrec-values (((for-loop_1) + (lambda (mis_7 + is_6 + lst_196) + (begin + 'for-loop + (if (pair? + lst_196) + (let-values (((mu_9) + (unsafe-car + lst_196)) + ((rest_102) + (unsafe-cdr + lst_196))) + (let-values (((mis_8 + is_7) + (let-values (((mis_9) + mis_7) + ((is_8) + is_6)) + (let-values (((mis_10 + is_9) + (let-values () + (let-values (((mis22_0 + is23_0) + (let-values () + (let-values (((ns24_0) + ns_73) + ((mu25_0) + mu_9) + ((temp26_3) + (phase- + (phase+ + phase_37 + phase-shift_15) + (module-use-phase + mu_9)))) + (namespace-module-use->module+linklet-instances.1 + temp26_3 + #f + #f + ns24_0 + mu25_0))))) + (values + (cons + mis22_0 + mis_9) + (cons + is23_0 + is_8)))))) + (values + mis_10 + is_9))))) + (if (not + #f) + (for-loop_1 + mis_8 + is_7 + rest_102) + (values + mis_8 + is_7)))) + (values + mis_7 + is_6)))))) + for-loop_1) + null + null + lst_9))))) + (values + (reverse$1 + mis_6) + (reverse$1 + is_5))))) + (let-values (((phase-ns_0) + (namespace->namespace-at-phase + ns_73 + (phase+ + phase_37 + phase-shift_15)))) + (let-values (((inst_6) + (if single-expression?_1 + link-instance_0 + (let-values (((phase-ns27_0) + phase-ns_0) + ((phase-shift28_1) + phase-shift_15) + ((temp29_2) + (namespace-mpi + ns_73)) + ((temp30_1) + (namespace-inspector + ns_73)) + ((temp31_1) + (namespace-bulk-binding-registry + ns_73)) + ((temp32_3) + (lambda (name_66 + val_75) + (namespace-set-transformer! + ns_73 + (phase+ + (sub1 + phase_37) + phase-shift_15) + name_66 + val_75)))) + (make-instance-instance.1 + temp31_1 + temp30_1 + phase-ns27_0 + phase-shift28_1 + temp29_2 + temp32_3))))) + (let-values (((linklet_13) + (force-compile-linklet + (hash-ref + h_20 + phase_37 + #f)))) + (if linklet_13 + (let-values () + (let-values ((() + (begin + (let-values (((linklet33_0) + linklet_13) + ((temp34_2) + 3) + ((module-uses35_0) + module-uses_1) + ((import-module-instances36_0) + import-module-instances_2) + ((temp37_3) + (current-code-inspector)) + ((extra-inspector38_0) + extra-inspector_7) + ((temp39_1) + (hash-ref + phase-to-link-extra-inspectorsss_3 + phase_37 + #f))) + (check-require-access.1 + temp34_2 + linklet33_0 + module-uses35_0 + import-module-instances36_0 + temp37_3 + extra-inspector38_0 + temp39_1)) + (values)))) + (let-values (((instantiate_0) + (lambda (tail?_46) + (begin + 'instantiate + (instantiate-linklet$1 + linklet_13 + (list* + top-level-instance + link-instance_0 + inst_6 + import-instances_1) + (namespace->instance + ns_73 + (phase- + (phase+ + phase_37 + phase-shift_15) + (namespace-0-phase + ns_73))) + (not + tail?_46)))))) + (if (zero-phase? + phase_37) + (let-values () + instantiate_0) + (if single-expression?_1 + (let-values () + (lambda (tail?_47) + (begin + 'prev-thunk + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + phase-ns_0) + (let-values () + (instantiate_0 + tail?_47)))))) + (let-values () + (let-values (((ns-1_1) + (namespace->namespace-at-phase + phase-ns_0 + (sub1 + phase_37)))) + (lambda (tail?_48) + (begin + 'prev-thunk + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + phase-ns_0) + (let-values () + (with-continuation-mark + current-expand-context + (let-values (((ns-140_0) + ns-1_1)) + (make-expand-context.1 + #f + #f + #f + #f + #f + ns-140_0)) + (let-values () + (instantiate_0 + tail?_48)))))))))))))) + (let-values () + void))))))))))) + (values + prev-thunk_3))))) + (if (not #f) + (for-loop_271 + prev-thunk_1 + (+ pos_120 inc_30)) + prev-thunk_1))) + prev-thunk_0))))) + for-loop_271) + void + start_49))))) + (thunk_4 as-tail?_2)))))))))))) + (if log-performance? (let-values () (end-performance-region)) (void)))))))))))) + (define-values + (link-instance-from-compiled-in-memory) + (lambda (cim_11 to-ns_0) + (begin + (let-values (((orig-syntax-literals_0) (compiled-in-memory-syntax-literals cim_11))) + (let-values (((syntax-literals_5) + (if (not to-ns_0) + (let-values () orig-syntax-literals_0) + (if (namespace-scopes=? + (compiled-in-memory-namespace-scopes cim_11) + (extract-namespace-scopes to-ns_0)) + (let-values () orig-syntax-literals_0) + (let-values () + (let-values (((len_58) (vector-length orig-syntax-literals_0))) + (begin + (if (exact-nonnegative-integer? len_58) + (void) + (let-values () + (raise-argument-error 'for/vector "exact-nonnegative-integer?" len_58))) + (let-values (((v_191) (make-vector len_58 0))) + (begin + (if (zero? len_58) + (void) + (let-values () + (let-values (((vec_80 len_59) + (let-values (((vec_81) orig-syntax-literals_0)) + (begin + (check-vector vec_81) + (values vec_81 (unsafe-vector-length vec_81)))))) + (begin + #f + ((letrec-values (((for-loop_272) + (lambda (i_195 pos_121) + (begin + 'for-loop + (if (unsafe-fx< pos_121 len_59) + (let-values (((s_319) + (unsafe-vector-ref vec_80 pos_121))) + (let-values (((i_196) + (let-values (((i_197) i_195)) + (let-values (((i_198) + (let-values () + (begin + (unsafe-vector*-set! + v_191 + i_197 + (let-values () + (swap-top-level-scopes + s_319 + (compiled-in-memory-namespace-scopes + cim_11) + to-ns_0))) + (unsafe-fx+ + 1 + i_197))))) + (values i_198))))) + (if (if (not + ((lambda x_80 + (unsafe-fx= i_196 len_58)) + s_319)) + (not #f) + #f) + (for-loop_272 i_196 (unsafe-fx+ 1 pos_121)) + i_196))) + i_195))))) + for-loop_272) + 0 + 0))))) + v_191))))))))) + (1/make-instance + 'link + #f + 'constant + mpi-vector-id + (compiled-in-memory-mpis cim_11) + syntax-literals-id + syntax-literals_5)))))) + (define-values (not-available) (gensym 'not-available)) + (define-values (get-not-available) (lambda () (begin not-available))) + (define-values + (can-direct-eval?) + (lambda (p_20 ns_43 self-mpi_3) + (begin + (if (parsed-app? p_20) + (let-values () + (if (can-direct-eval? (parsed-app-rator p_20) ns_43 self-mpi_3) + (let-values (((lst_100) (parsed-app-rands p_20))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_100))) + ((letrec-values (((for-loop_111) + (lambda (result_121 lst_85) + (begin + 'for-loop + (if (pair? lst_85) + (let-values (((r_40) (unsafe-car lst_85)) ((rest_48) (unsafe-cdr lst_85))) + (let-values (((result_85) + (let-values () + (let-values (((result_122) + (let-values () + (let-values () + (can-direct-eval? r_40 ns_43 self-mpi_3))))) + (values result_122))))) + (if (if (not ((lambda x_81 (not result_85)) r_40)) (not #f) #f) + (for-loop_111 result_85 rest_48) + result_85))) + result_121))))) + for-loop_111) + #t + lst_100))) + #f)) + (if (parsed-id? p_20) + (let-values () (not (eq? (get-id-value p_20 ns_43 self-mpi_3) not-available))) + (if (parsed-quote? p_20) + (let-values () #t) + (if (parsed-quote-syntax? p_20) (let-values () #t) (let-values () #f)))))))) + (define-values + (direct-eval) + (lambda (p_46 ns_69 self-mpi_4) + (begin + (if (parsed-app? p_46) + (let-values () + (apply + (direct-eval (parsed-app-rator p_46) ns_69 self-mpi_4) + (reverse$1 + (let-values (((lst_44) (parsed-app-rands p_46))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_44))) + ((letrec-values (((for-loop_55) + (lambda (fold-var_32 lst_23) + (begin + 'for-loop + (if (pair? lst_23) + (let-values (((r_43) (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_35) + (let-values () + (cons + (let-values () + (direct-eval r_43 ns_69 self-mpi_4)) + fold-var_34)))) + (values fold-var_35))))) + (if (not #f) (for-loop_55 fold-var_33 rest_19) fold-var_33))) + fold-var_32))))) + for-loop_55) + null + lst_44)))))) + (if (parsed-id? p_46) + (let-values () (get-id-value p_46 ns_69 self-mpi_4)) + (if (parsed-quote? p_46) + (let-values () (parsed-quote-datum p_46)) + (if (parsed-quote-syntax? p_46) (let-values () (parsed-quote-syntax-datum p_46)) (let-values () #f)))))))) + (define-values + (get-id-value) + (lambda (p_47 ns_74 self-mpi_5) + (begin + (let-values (((b_88) (parsed-id-binding p_47))) + (if (parsed-primitive-id? p_47) + (let-values () (hash-ref (1/primitive-table '#%kernel) (module-binding-sym b_88) get-not-available)) + (if (let-values (((or-part_5) (parsed-top-id? p_47))) + (if or-part_5 + or-part_5 + (let-values (((or-part_6) (not b_88))) + (if or-part_6 or-part_6 (eq? self-mpi_5 (module-binding-module b_88)))))) + (let-values () + (namespace-get-variable + ns_74 + (if b_88 (module-binding-phase b_88) (namespace-phase ns_74)) + (if b_88 (module-binding-sym b_88) (syntax-e$1 (parsed-s p_47))) + get-not-available)) + (let-values () + (let-values (((mi_20) + (let-values (((ns1_2) ns_74) + ((temp2_4) (1/module-path-index-resolve (module-binding-module b_88))) + ((temp3_4) (phase- (namespace-phase ns_74) (module-binding-phase b_88)))) + (namespace->module-instance.1 #f #f void ns1_2 temp2_4 temp3_4)))) + (if (not mi_20) + (let-values () not-available) + (if (check-single-require-access + mi_20 + (module-binding-phase b_88) + (module-binding-sym b_88) + (module-binding-extra-inspector b_88)) + (let-values () + (namespace-get-variable + (module-instance-namespace mi_20) + (module-binding-phase b_88) + (module-binding-sym b_88) + get-not-available)) + (let-values () not-available))))))))))) + (define-values (runtime-scope) (new-multi-scope)) + (define-values (runtime-stx) (add-scope empty-syntax runtime-scope)) + (define-values (runtime-module-name) (1/make-resolved-module-path '#%runtime)) + (define-values (runtime-mpi) (1/module-path-index-join ''#%runtime #f)) + (define-values + (add-runtime-primitive!) + (lambda (sym_70) + (begin + (let-values (((temp1_4) (syntax-scope-set runtime-stx 0)) + ((sym2_0) sym_70) + ((temp3_5) + (let-values (((runtime-mpi4_0) runtime-mpi) ((temp5_6) 0) ((sym6_1) sym_70)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + runtime-mpi4_0 + temp5_6 + sym6_1)))) + (add-binding-in-scopes!.1 #f temp1_4 sym2_0 temp3_5))))) + (void + (begin + (add-runtime-primitive! 'values) + (add-runtime-primitive! 'cons) + (add-runtime-primitive! 'list) + (add-runtime-primitive! 'make-struct-type) + (add-runtime-primitive! 'make-struct-type-property) + (add-runtime-primitive! 'gensym) + (add-runtime-primitive! 'string->uninterned-symbol))) + (define-values + (runtime-instances) + '(#%kernel #%paramz #%foreign #%unsafe #%flfxnum #%extfl #%network #%place #%futures)) + (define-values (box-cons!) (lambda (b_17 v_55) (begin (set-box! b_17 (cons v_55 (unbox b_17)))))) + (define-values (box-clear!) (lambda (b_22) (begin (begin0 (reverse$1 (unbox b_22)) (set-box! b_22 null))))) + (define-values + (struct:lift-context lift-context1.1 lift-context? lift-context-convert lift-context-lifts lift-context-module*-ok?) + (let-values (((struct:_61 make-_61 ?_61 -ref_61 -set!_61) + (let-values () + (let-values () + (make-struct-type + 'lift-context + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'lift-context))))) + (values + struct:_61 + make-_61 + ?_61 + (make-struct-field-accessor -ref_61 0 'convert) + (make-struct-field-accessor -ref_61 1 'lifts) + (make-struct-field-accessor -ref_61 2 'module*-ok?)))) + (define-values + (struct:lifted-bind lifted-bind2.1 lifted-bind? lifted-bind-ids lifted-bind-keys lifted-bind-rhs) + (let-values (((struct:_34 make-_34 ?_34 -ref_34 -set!_34) + (let-values () + (let-values () + (make-struct-type + 'lifted-bind + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'lifted-bind))))) + (values + struct:_34 + make-_34 + ?_34 + (make-struct-field-accessor -ref_34 0 'ids) + (make-struct-field-accessor -ref_34 1 'keys) + (make-struct-field-accessor -ref_34 2 'rhs)))) + (define-values + (make-lift-context.1) + (lambda (module*-ok?3_0 convert5_0) + (begin + 'make-lift-context + (let-values (((convert_0) convert5_0)) + (let-values (((module*-ok?_0) module*-ok?3_0)) + (let-values () (lift-context1.1 convert_0 (box null) module*-ok?_0))))))) + (define-values + (add-lifted!) + (lambda (lifts_1 ids_17 rhs_12 phase_22) + (begin + (let-values (((lifted-ids_0 lifted_0) ((lift-context-convert lifts_1) ids_17 rhs_12 phase_22))) + (begin (box-cons! (lift-context-lifts lifts_1) lifted_0) lifted-ids_0))))) + (define-values (get-and-clear-lifts!) (lambda (lifts_2) (begin (box-clear! (lift-context-lifts lifts_2))))) + (define-values + (make-local-lift) + (lambda (lift-env_1 counter_3 local-sym_1) + (begin + (lambda (ids_18 rhs_13 phase_94) + (let-values (((keys_2) + (reverse$1 + (let-values (((lst_239) ids_18)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_239))) + ((letrec-values (((for-loop_273) + (lambda (fold-var_10 lst_282) + (begin + 'for-loop + (if (pair? lst_282) + (let-values (((id_65) (unsafe-car lst_282)) + ((rest_165) (unsafe-cdr lst_282))) + (let-values (((fold-var_245) + (let-values (((fold-var_246) fold-var_10)) + (let-values (((fold-var_68) + (let-values () + (cons + (let-values () + (let-values (((key_93) + (let-values (((id29_2) + id_65) + ((phase30_0) + phase_94) + ((counter31_0) + counter_3) + ((local-sym32_0) + local-sym_1)) + (add-local-binding!.1 + #f + #f + local-sym32_0 + id29_2 + phase30_0 + counter31_0)))) + (begin + (set-box! + lift-env_1 + (env-extend + (unbox lift-env_1) + key_93 + variable)) + key_93))) + fold-var_246)))) + (values fold-var_68))))) + (if (not #f) (for-loop_273 fold-var_245 rest_165) fold-var_245))) + fold-var_10))))) + for-loop_273) + null + lst_239)))))) + (values ids_18 (lifted-bind2.1 ids_18 keys_2 rhs_13))))))) + (define-values + (make-top-level-lift) + (lambda (ctx_12) + (begin + (lambda (ids_19 rhs_14 phase_37) + (let-values (((post-scope_0) + (post-expansion-scope + (root-expand-context-post-expansion + (namespace-get-root-expand-ctx (expand-context-namespace ctx_12)))))) + (let-values (((tl-ids_1) + (reverse$1 + (let-values (((lst_94) ids_19)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_94))) + ((letrec-values (((for-loop_274) + (lambda (fold-var_242 lst_295) + (begin + 'for-loop + (if (pair? lst_295) + (let-values (((id_66) (unsafe-car lst_295)) + ((rest_166) (unsafe-cdr lst_295))) + (let-values (((fold-var_87) + (let-values (((fold-var_88) fold-var_242)) + (let-values (((fold-var_235) + (let-values () + (cons + (let-values () + (add-scope + id_66 + post-scope_0)) + fold-var_88)))) + (values fold-var_235))))) + (if (not #f) (for-loop_274 fold-var_87 rest_166) fold-var_87))) + fold-var_242))))) + for-loop_274) + null + lst_94)))))) + (let-values (((syms_20) (select-defined-syms-and-bind!/ctx tl-ids_1 ctx_12))) + (values tl-ids_1 (lifted-bind2.1 tl-ids_1 syms_20 rhs_14))))))))) + (define-values + (wrap-lifts-as-let) + (lambda (lifts_3 body_1 phase_95) + (begin + (datum->syntax$1 + #f + (let-values (((lst_196) (reverse$1 lifts_3))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_196))) + ((letrec-values (((for-loop_239) + (lambda (body_5 lst_199) + (begin + 'for-loop + (if (pair? lst_199) + (let-values (((lift_0) (unsafe-car lst_199)) ((rest_167) (unsafe-cdr lst_199))) + (let-values (((body_6) + (let-values (((body_7) body_5)) + (let-values (((body_8) + (let-values () + (begin + (if (lifted-bind? lift_0) + (void) + (let-values () + (error "non-bindings in `lift-context`"))) + (list + (datum->syntax$1 + (syntax-shift-phase-level$1 core-stx phase_95) + 'let-values) + (list + (list + (lifted-bind-ids lift_0) + (lifted-bind-rhs lift_0))) + body_7))))) + (values body_8))))) + (if (not #f) (for-loop_239 body_6 rest_167) body_6))) + body_5))))) + for-loop_239) + body_1 + lst_196))))))) + (define-values + (wrap-lifts-as-begin.1) + (lambda (adjust-body8_0 adjust-form7_0 lifts11_0 body12_0 phase13_0) + (begin + 'wrap-lifts-as-begin + (let-values (((lifts_4) lifts11_0)) + (let-values (((body_2) body12_0)) + (let-values (((phase_91) phase13_0)) + (let-values (((adjust-form_0) (if (eq? adjust-form7_0 unsafe-undefined) values adjust-form7_0))) + (let-values (((adjust-body_0) (if (eq? adjust-body8_0 unsafe-undefined) values adjust-body8_0))) + (let-values () + (datum->syntax$1 + #f + (cons + (datum->syntax$1 (syntax-shift-phase-level$1 core-stx phase_91) 'begin) + (append + (reverse$1 + (let-values (((lst_16) lifts_4)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_16))) + ((letrec-values (((for-loop_86) + (lambda (fold-var_44 lst_65) + (begin + 'for-loop + (if (pair? lst_65) + (let-values (((lift_1) (unsafe-car lst_65)) + ((rest_30) (unsafe-cdr lst_65))) + (let-values (((fold-var_45) + (let-values (((fold-var_46) fold-var_44)) + (let-values (((fold-var_47) + (let-values () + (cons + (let-values () + (adjust-form_0 + (if (lifted-bind? lift_1) + (let-values () + (datum->syntax$1 + #f + (list + (datum->syntax$1 + (syntax-shift-phase-level$1 + core-stx + phase_91) + 'define-values) + (lifted-bind-ids lift_1) + (lifted-bind-rhs + lift_1)))) + (let-values () lift_1)))) + fold-var_46)))) + (values fold-var_47))))) + (if (not #f) (for-loop_86 fold-var_45 rest_30) fold-var_45))) + fold-var_44))))) + for-loop_86) + null + lst_16)))) + (list (adjust-body_0 body_2)))))))))))))) + (define-values + (get-lifts-as-lists) + (lambda (lifts_5) + (begin + (reverse$1 + (let-values (((lst_209) lifts_5)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_209))) + ((letrec-values (((for-loop_5) + (lambda (fold-var_201 lst_170) + (begin + 'for-loop + (if (pair? lst_170) + (let-values (((lift_2) (unsafe-car lst_170)) ((rest_110) (unsafe-cdr lst_170))) + (let-values (((fold-var_202) + (let-values (((fold-var_203) fold-var_201)) + (let-values (((fold-var_204) + (let-values () + (cons + (let-values () + (list + (lifted-bind-ids lift_2) + (lifted-bind-keys lift_2) + (lifted-bind-rhs lift_2))) + fold-var_203)))) + (values fold-var_204))))) + (if (not #f) (for-loop_5 fold-var_202 rest_110) fold-var_202))) + fold-var_201))))) + for-loop_5) + null + lst_209))))))) + (define-values + (struct:module-lift-context + module-lift-context15.1 + module-lift-context? + module-lift-context-wrt-phase + module-lift-context-lifts + module-lift-context-module*-ok?) + (let-values (((struct:_62 make-_62 ?_62 -ref_62 -set!_62) + (let-values () + (let-values () + (make-struct-type + 'module-lift-context + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'module-lift-context))))) + (values + struct:_62 + make-_62 + ?_62 + (make-struct-field-accessor -ref_62 0 'wrt-phase) + (make-struct-field-accessor -ref_62 1 'lifts) + (make-struct-field-accessor -ref_62 2 'module*-ok?)))) + (define-values + (make-module-lift-context) + (lambda (phase_96 module*-ok?_1) (begin (module-lift-context15.1 phase_96 (box null) module*-ok?_1)))) + (define-values + (get-and-clear-module-lifts!) + (lambda (module-lifts_1) (begin (box-clear! (module-lift-context-lifts module-lifts_1))))) + (define-values + (add-lifted-module!) + (lambda (module-lifts_2 s_456 phase_97) + (begin + (begin + (if (let-values (((or-part_64) + (if (module-lift-context? module-lifts_2) + (module-lift-context-module*-ok? module-lifts_2) + #f))) + (if or-part_64 + or-part_64 + (if (lift-context? module-lifts_2) (lift-context-module*-ok? module-lifts_2) #f))) + (void) + (let-values () + (let-values (((tmp_33) (core-form-sym s_456 phase_97))) + (if (equal? tmp_33 'module) + (let-values () (void)) + (if (equal? tmp_33 'module*) + (let-values () + (raise-arguments-error + 'syntax-local-lift-module + "cannot lift `module*' to a top-level context" + "syntax" + s_456)) + (let-values () + (raise-arguments-error 'syntax-local-lift-module "not a `module' declaration" "syntax" s_456))))))) + (if (module-lift-context? module-lifts_2) + (let-values () (box-cons! (module-lift-context-lifts module-lifts_2) s_456)) + (if (lift-context? module-lifts_2) + (let-values () (box-cons! (lift-context-lifts module-lifts_2) s_456)) + (let-values () (error "internal error: unrecognized lift-context type for module lift")))))))) + (define-values + (struct:require-lift-context + require-lift-context16.1 + require-lift-context? + require-lift-context-do-require + require-lift-context-wrt-phase + require-lift-context-requires) + (let-values (((struct:_63 make-_63 ?_63 -ref_63 -set!_63) + (let-values () + (let-values () + (make-struct-type + 'require-lift-context + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'require-lift-context))))) + (values + struct:_63 + make-_63 + ?_63 + (make-struct-field-accessor -ref_63 0 'do-require) + (make-struct-field-accessor -ref_63 1 'wrt-phase) + (make-struct-field-accessor -ref_63 2 'requires)))) + (define-values + (make-require-lift-context) + (let-values (((make-require-lift-context_0) + (lambda (wrt-phase18_0 do-require19_0 initial-lifts17_0) + (begin + 'make-require-lift-context + (let-values (((wrt-phase_0) wrt-phase18_0)) + (let-values (((do-require_0) do-require19_0)) + (let-values (((initial-lifts_0) initial-lifts17_0)) + (let-values () + (require-lift-context16.1 do-require_0 wrt-phase_0 (box initial-lifts_0)))))))))) + (case-lambda + ((wrt-phase_1 do-require_1) (begin (make-require-lift-context_0 wrt-phase_1 do-require_1 null))) + ((wrt-phase_2 do-require_2 initial-lifts17_1) + (make-require-lift-context_0 wrt-phase_2 do-require_2 initial-lifts17_1))))) + (define-values + (get-require-lifts) + (lambda (require-lifts_1) (begin (unbox (require-lift-context-requires require-lifts_1))))) + (define-values + (get-and-clear-require-lifts!) + (lambda (require-lifts_2) (begin (box-clear! (require-lift-context-requires require-lifts_2))))) + (define-values + (add-lifted-require!) + (lambda (require-lifts_3 s_198 phase_98) + (begin + (begin + ((require-lift-context-do-require require-lifts_3) s_198 phase_98) + (box-cons! (require-lift-context-requires require-lifts_3) s_198))))) + (define-values + (struct:to-module-lift-context + to-module-lift-context20.1 + to-module-lift-context? + to-module-lift-context-wrt-phase + to-module-lift-context-provides + to-module-lift-context-end-as-expressions? + to-module-lift-context-ends) + (let-values (((struct:_64 make-_64 ?_64 -ref_64 -set!_64) + (let-values () + (let-values () + (make-struct-type + 'to-module-lift-context + #f + 4 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3) + #f + 'to-module-lift-context))))) + (values + struct:_64 + make-_64 + ?_64 + (make-struct-field-accessor -ref_64 0 'wrt-phase) + (make-struct-field-accessor -ref_64 1 'provides) + (make-struct-field-accessor -ref_64 2 'end-as-expressions?) + (make-struct-field-accessor -ref_64 3 'ends)))) + (define-values + (make-to-module-lift-context.1) + (lambda (end-as-expressions?22_0 shared-module-ends21_0 phase25_0) + (begin + 'make-to-module-lift-context + (let-values (((phase_99) phase25_0)) + (let-values (((ends_0) shared-module-ends21_0)) + (let-values (((end-as-expressions?_0) end-as-expressions?22_0)) + (let-values () (to-module-lift-context20.1 phase_99 (box null) end-as-expressions?_0 ends_0)))))))) + (define-values (make-shared-module-ends) (lambda () (begin (box null)))) + (define-values + (get-and-clear-end-lifts!) + (lambda (to-module-lifts_1) (begin (box-clear! (to-module-lift-context-ends to-module-lifts_1))))) + (define-values + (get-and-clear-provide-lifts!) + (lambda (to-module-lifts_2) (begin (box-clear! (to-module-lift-context-provides to-module-lifts_2))))) + (define-values + (add-lifted-to-module-provide!) + (lambda (to-module-lifts_3 s_70 phase_100) + (begin (box-cons! (to-module-lift-context-provides to-module-lifts_3) s_70)))) + (define-values + (add-lifted-to-module-end!) + (lambda (to-module-lifts_4 s_457 phase_71) (begin (box-cons! (to-module-lift-context-ends to-module-lifts_4) s_457)))) + (define-values + (struct:already-expanded already-expanded1.1 already-expanded? already-expanded-s already-expanded-binding-layer) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'expanded-syntax + #f + 2 + 0 + #f + null + (current-inspector) + #f + '(0 1) + #f + 'already-expanded))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 's) + (make-struct-field-accessor -ref_2 1 'binding-layer)))) + (define-values + (1/prop:liberal-define-context has-liberal-define-context-property? liberal-define-context-value) + (make-struct-type-property 'liberal-define-context)) + (define-values + (struct:liberal-define-context make-liberal-define-context 1/liberal-define-context?) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'liberal-define-context + #f + 0 + 0 + #f + (list (cons 1/prop:liberal-define-context #t)) + (current-inspector) + #f + '() + #f + 'make-liberal-define-context))))) + (values struct:_2 make-_2 ?_2))) + (define-values + (1/prop:expansion-contexts expansion-contexts? expansion-contexts-ref) + (make-struct-type-property + 'expansion-contexts + (lambda (v_28 info_0) + (begin + (if (if (list? v_28) + (let-values (((lst_82) v_28)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_82))) + ((letrec-values (((for-loop_98) + (lambda (result_83 lst_83) + (begin + 'for-loop + (if (pair? lst_83) + (let-values (((s_307) (unsafe-car lst_83)) ((rest_39) (unsafe-cdr lst_83))) + (let-values (((result_58) + (let-values () + (let-values (((result_123) + (let-values () + (let-values () + (memq + s_307 + '(expression + top-level + module + module-begin + definition-context)))))) + (values result_123))))) + (if (if (not ((lambda x_82 (not result_58)) s_307)) (not #f) #f) + (for-loop_98 result_58 rest_39) + result_58))) + result_83))))) + for-loop_98) + #t + lst_82))) + #f) + (void) + (let-values () + (raise-argument-error + 'guard-for-prop:expansion-contexts + "(listof (or/c 'expression 'top-level 'module 'module-begin 'definition-context))" + v_28))) + v_28)))) + (define-values + (not-in-this-expand-context?) + (lambda (t_19 ctx_13) + (begin + (if (expansion-contexts? t_19) + (not (memq (context->symbol (expand-context-context ctx_13)) (expansion-contexts-ref t_19))) + #f)))) + (define-values (context->symbol) (lambda (context_5) (begin (if (symbol? context_5) context_5 'definition-context)))) + (define-values + (avoid-current-expand-context) + (lambda (s_48 t_14 ctx_14) + (begin + (let-values (((wrap_1) + (lambda (sym_71) + (begin + 'wrap + (datum->syntax$1 + #f + (list + (syntax-shift-phase-level$1 (datum->syntax$1 core-stx sym_71) (expand-context-phase ctx_14)) + s_48)))))) + (let-values (((fail_0) + (lambda () + (begin + 'fail + (raise-syntax-error$1 + #f + (format + "not allowed in context\n expansion context: ~a" + (context->symbol (expand-context-context ctx_14))) + s_48))))) + (let-values (((tmp_34) (context->symbol (expand-context-context ctx_14)))) + (if (equal? tmp_34 'module-begin) + (let-values () (wrap_1 'begin)) + (if (if (equal? tmp_34 'module) #t (if (equal? tmp_34 'top-level) #t (equal? tmp_34 'definition-context))) + (let-values () (if (memq 'expression (expansion-contexts-ref t_14)) (wrap_1 '#%expression) (fail_0))) + (let-values () (fail_0)))))))))) + (define-values + (struct:reference-record + reference-record1.1 + reference-record? + reference-record-already-bound + reference-record-reference-before-bound + reference-record-all-referenced? + set-reference-record-already-bound! + set-reference-record-reference-before-bound! + set-reference-record-all-referenced?!) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'reference-record + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + #f + #f + '() + #f + 'reference-record))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'already-bound) + (make-struct-field-accessor -ref_2 1 'reference-before-bound) + (make-struct-field-accessor -ref_2 2 'all-referenced?) + (make-struct-field-mutator -set!_2 0 'already-bound) + (make-struct-field-mutator -set!_2 1 'reference-before-bound) + (make-struct-field-mutator -set!_2 2 'all-referenced?)))) + (define-values (make-reference-record) (lambda () (begin (reference-record1.1 (seteq) (seteq) #f)))) + (define-values + (reference-record-used!) + (lambda (rr_0 key_94) + (begin + (if (set-member? (reference-record-already-bound rr_0) key_94) + (void) + (let-values () + (set-reference-record-reference-before-bound! + rr_0 + (set-add (reference-record-reference-before-bound rr_0) key_94))))))) + (define-values + (reference-records-all-used!) + (lambda (rrs_0) + (begin + (begin + (let-values (((lst_86) rrs_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_86))) + ((letrec-values (((for-loop_266) + (lambda (lst_241) + (begin + 'for-loop + (if (pair? lst_241) + (let-values (((rr_1) (unsafe-car lst_241)) ((rest_168) (unsafe-cdr lst_241))) + (let-values () + (let-values (((next-k-proc_0) + (lambda () (begin 'next-k-proc (for-loop_266 rest_168))))) + (let-values () + (if (reference-record-all-referenced? rr_1) + (values) + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (set-reference-record-all-referenced?! rr_1 #t)) + (values))))) + (next-k-proc_0)))))))) + (values)))))) + for-loop_266) + lst_86))) + (void))))) + (define-values + (reference-record-bound!) + (lambda (rr_2 keys_3) + (begin + (begin + (set-reference-record-already-bound! + rr_2 + (let-values (((lst_280) keys_3)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_280))) + ((letrec-values (((for-loop_258) + (lambda (ab_3 lst_296) + (begin + 'for-loop + (if (pair? lst_296) + (let-values (((key_83) (unsafe-car lst_296)) ((rest_169) (unsafe-cdr lst_296))) + (let-values (((ab_4) + (let-values (((ab_5) ab_3)) + (let-values (((ab_6) (let-values () (set-add ab_5 key_83)))) + (values ab_6))))) + (if (not #f) (for-loop_258 ab_4 rest_169) ab_4))) + ab_3))))) + for-loop_258) + (reference-record-already-bound rr_2) + lst_280)))) + (set-reference-record-reference-before-bound! + rr_2 + (let-values (((lst_297) keys_3)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_297))) + ((letrec-values (((for-loop_100) + (lambda (rbb_0 lst_102) + (begin + 'for-loop + (if (pair? lst_102) + (let-values (((key_95) (unsafe-car lst_102)) ((rest_170) (unsafe-cdr lst_102))) + (let-values (((rbb_1) + (let-values (((rbb_2) rbb_0)) + (let-values (((rbb_3) (let-values () (set-remove rbb_2 key_95)))) + (values rbb_3))))) + (if (not #f) (for-loop_100 rbb_1 rest_170) rbb_1))) + rbb_0))))) + for-loop_100) + (reference-record-reference-before-bound rr_2) + lst_297)))))))) + (define-values + (reference-record-forward-references?) + (lambda (rr_3) + (begin + (let-values (((or-part_148) (reference-record-all-referenced? rr_3))) + (if or-part_148 or-part_148 (positive? (set-count (reference-record-reference-before-bound rr_3)))))))) + (define-values + (reference-record-clear!) + (lambda (rr_4) + (begin + (begin (set-reference-record-already-bound! rr_4 #f) (set-reference-record-reference-before-bound! rr_4 #f))))) + (define-values + (call-expand-observe) + (lambda (obs_0 key_96 . args_6) + (begin + (begin + (let-values (((c1_29) (hash-ref key->arity key_96 #f))) + (if c1_29 + ((lambda (arity_2) + (if (let-values (((or-part_274) (eq? arity_2 'any))) + (if or-part_274 or-part_274 (eqv? (length args_6) arity_2))) + (void) + (let-values () (error 'call-expand-observe "wrong arity for ~s: ~e" key_96 args_6)))) + c1_29) + (let-values () (error 'call-expand-observe "bad key: ~s" key_96)))) + (obs_0 key_96 (if (null? args_6) (let-values () #f) (let-values () (apply list* args_6)))))))) + (define-values + (key->arity) + '#hash((block->letrec . 3) + (block->list . 0) + (block-renames . 2) + (enter-begin-for-syntax . 0) + (enter-bind . 0) + (enter-block . 1) + (enter-list . 1) + (enter-local . 1) + (enter-macro . 2) + (enter-prim . 1) + (exit-begin-for-syntax . 0) + (exit-bind . 0) + (exit-case . 1) + (exit-list . 1) + (exit-local . 1) + (exit-local-bind . 0) + (exit-macro . 2) + (exit-prim . 1) + (exit-prim/return . 1) + (finish-block . 1) + (lambda-renames . 2) + (letX-renames . 5) + (letlift-loop . 1) + (lift-end-decl . 3) + (lift-expr . 3) + (lift-loop . 1) + (lift-module . 2) + (lift-provide . 1) + (lift-require . 3) + (local-bind . 1) + (local-post . 1) + (local-pre . 1) + (local-value . 1) + (local-value-result . 1) + (macro-post-x . 2) + (macro-pre-x . 1) + (module-body . 1) + (module-end-lifts . 1) + (module-lift-end-loop . 1) + (module-lift-loop . 1) + (module-pass1-case . 1) + (module-pass1-lifts . 3) + (module-pass2-lifts . 3) + (next . 0) + (next-group . 0) + (opaque-expr . 1) + (phase-up . 0) + (prepare-env . 0) + (prim-#%app . 1) + (prim-#%datum . 1) + (prim-#%expression . 1) + (prim-#%stratified . 1) + (prim-#%top . 1) + (prim-#%variable-reference . 1) + (prim-begin . 1) + (prim-begin-for-syntax . 1) + (prim-begin0 . 1) + (prim-case-lambda . 1) + (prim-declare . 1) + (prim-define-syntaxes . 1) + (prim-define-values . 1) + (prim-if . 1) + (prim-lambda . 1) + (prim-let-values . 1) + (prim-letrec-syntaxes+values . 1) + (prim-letrec-values . 1) + (prim-module . 1) + (prim-module-begin . 1) + (prim-provide . 1) + (prim-quote . 1) + (prim-quote-syntax . 1) + (prim-require . 1) + (prim-set! . 1) + (prim-stop . 1) + (prim-submodule . 1) + (prim-submodule* . 1) + (prim-with-continuation-mark . 1) + (rename-list . 1) + (rename-one . 1) + (rename-transformer . 1) + (resolve . 1) + (return . 1) + (splice . 1) + (start . 0) + (start-top . 0) + (stop/return . 1) + (tag . 1) + (tag/context . 1) + (tag2 . 2) + (track-syntax . 3) + (variable . 2) + (visit . 1))) + (define-values + (rebuild.1) + (lambda (track?1_0 orig-s3_0 new4_0) + (begin + 'rebuild + (let-values (((orig-s_33) orig-s3_0)) + (let-values (((new_3) new4_0)) + (let-values (((track?_0) track?1_0)) + (let-values () (datum->syntax$1 orig-s_33 new_3 orig-s_33 (if track?_0 orig-s_33 #f))))))))) + (define-values + (struct:expanded+parsed expanded+parsed1.1 expanded+parsed? expanded+parsed-s expanded+parsed-parsed) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'expanded+parsed + #f + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'expanded+parsed))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 's) + (make-struct-field-accessor -ref_2 1 'parsed)))) + (define-values + (struct:semi-parsed-define-values + semi-parsed-define-values2.1 + semi-parsed-define-values? + semi-parsed-define-values-s + semi-parsed-define-values-syms + semi-parsed-define-values-ids + semi-parsed-define-values-rhs) + (let-values (((struct:_3 make-_3 ?_3 -ref_3 -set!_3) + (let-values () + (let-values () + (make-struct-type + 'semi-parsed-define-values + #f + 4 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3) + #f + 'semi-parsed-define-values))))) + (values + struct:_3 + make-_3 + ?_3 + (make-struct-field-accessor -ref_3 0 's) + (make-struct-field-accessor -ref_3 1 'syms) + (make-struct-field-accessor -ref_3 2 'ids) + (make-struct-field-accessor -ref_3 3 'rhs)))) + (define-values + (struct:semi-parsed-begin-for-syntax + semi-parsed-begin-for-syntax3.1 + semi-parsed-begin-for-syntax? + semi-parsed-begin-for-syntax-s + semi-parsed-begin-for-syntax-body) + (let-values (((struct:_6 make-_6 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () + (make-struct-type + 'semi-parsed-begin-for-syntax + #f + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'semi-parsed-begin-for-syntax))))) + (values + struct:_6 + make-_6 + ?_6 + (make-struct-field-accessor -ref_6 0 's) + (make-struct-field-accessor -ref_6 1 'body)))) + (define-values (extract-syntax) (lambda (s_4) (begin (if (expanded+parsed? s_4) (expanded+parsed-s s_4) s_4)))) + (define-values + (parsed-only) + (lambda (l_60) + (begin + (reverse$1 + (let-values (((lst_296) l_60)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_296))) + ((letrec-values (((for-loop_275) + (lambda (fold-var_33 lst_189) + (begin + 'for-loop + (if (pair? lst_189) + (let-values (((i_199) (unsafe-car lst_189)) ((rest_171) (unsafe-cdr lst_189))) + (let-values (((fold-var_194) + (let-values (((fold-var_77) fold-var_33)) + (if (let-values (((or-part_4) (parsed? i_199))) + (if or-part_4 + or-part_4 + (let-values (((or-part_5) (expanded+parsed? i_199))) + (if or-part_5 + or-part_5 + (semi-parsed-begin-for-syntax? i_199))))) + (let-values (((fold-var_29) fold-var_77)) + (let-values (((fold-var_30) + (let-values () + (cons + (let-values () + (if (expanded+parsed? i_199) + (let-values () + (expanded+parsed-parsed i_199)) + (if (semi-parsed-begin-for-syntax? i_199) + (let-values () + (parsed-begin-for-syntax21.1 + (semi-parsed-begin-for-syntax-s + i_199) + (parsed-only + (semi-parsed-begin-for-syntax-body + i_199)))) + (let-values () i_199)))) + fold-var_29)))) + (values fold-var_30))) + fold-var_77)))) + (if (not #f) (for-loop_275 fold-var_194 rest_171) fold-var_194))) + fold-var_33))))) + for-loop_275) + null + lst_296))))))) + (define-values + (syntax-only) + (lambda (l_57) + (begin + (reverse$1 + (let-values (((lst_104) l_57)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_104))) + ((letrec-values (((for-loop_276) + (lambda (fold-var_195 lst_191) + (begin + 'for-loop + (if (pair? lst_191) + (let-values (((i_184) (unsafe-car lst_191)) ((rest_43) (unsafe-cdr lst_191))) + (let-values (((fold-var_124) + (let-values (((fold-var_80) fold-var_195)) + (if (let-values (((or-part_99) (syntax?$1 i_184))) + (if or-part_99 + or-part_99 + (let-values (((or-part_103) (expanded+parsed? i_184))) + (if or-part_103 + or-part_103 + (semi-parsed-begin-for-syntax? i_184))))) + (let-values (((fold-var_182) fold-var_80)) + (let-values (((fold-var_196) + (let-values () + (cons + (let-values () + (if (expanded+parsed? i_184) + (let-values () (expanded+parsed-s i_184)) + (if (semi-parsed-begin-for-syntax? i_184) + (let-values () + (let-values (((s_84) + (semi-parsed-begin-for-syntax-s + i_184))) + (let-values (((nested-bodys_0) + (semi-parsed-begin-for-syntax-body + i_184))) + (let-values (((ok?_30 + begin-for-syntax7_0 + _8_0) + (let-values (((s_458) + s_84)) + (let-values (((orig-s_34) + s_458)) + (let-values (((begin-for-syntax7_1 + _8_1) + (let-values (((s_459) + (if (syntax?$1 + s_458) + (syntax-e$1 + s_458) + s_458))) + (if (pair? + s_459) + (let-values (((begin-for-syntax9_0) + (let-values (((s_163) + (car + s_459))) + s_163)) + ((_10_0) + (let-values (((s_79) + (cdr + s_459))) + (let-values (((s_460) + (if (syntax?$1 + s_79) + (syntax-e$1 + s_79) + s_79))) + (let-values (((flat-s_22) + (to-syntax-list.1 + s_460))) + (if (not + flat-s_22) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_34)) + (let-values () + flat-s_22))))))) + (values + begin-for-syntax9_0 + _10_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_34))))) + (values + #t + begin-for-syntax7_1 + _8_1)))))) + (let-values (((s11_0) s_84) + ((temp12_5) + (list* + begin-for-syntax7_0 + (syntax-only + nested-bodys_0)))) + (rebuild.1 + #t + s11_0 + temp12_5)))))) + (let-values () i_184)))) + fold-var_182)))) + (values fold-var_196))) + fold-var_80)))) + (if (not #f) (for-loop_276 fold-var_124 rest_43) fold-var_124))) + fold-var_195))))) + for-loop_276) + null + lst_104))))))) + (define-values (implicit-made-explicit-properties) (hasheq 'implicit-made-explicit #t)) + (define-values + (original-implicit-made-explicit-properties) + (hash-set implicit-made-explicit-properties original-property-sym #t)) + (define-values + (raise-bindings-arity-error) + (lambda (who_0 ids_1 vals_3) + (begin + (apply + raise-result-arity-error + who_0 + (length ids_1) + (if (null? ids_1) + (let-values () "") + (let-values () + (format "\n in: definition of ~a~a" (syntax-e$1 (car ids_1)) (if (pair? (cdr ids_1)) " ..." "")))) + vals_3)))) + (define-values + (expand.1) + (lambda (alternate-id1_0 fail-non-transformer2_0 s5_1 ctx6_0) + (begin + 'expand + (let-values (((s_461) s5_1)) + (let-values (((ctx_15) ctx6_0)) + (let-values (((alternate-id_0) alternate-id1_0)) + (let-values (((fail-non-transformer_0) fail-non-transformer2_0)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_1) (expand-context-observer ctx_15))) + (if obs_1 + (let-values () (let-values () (call-expand-observe obs_1 'visit s_461))) + (void))) + (values)))) + (let-values (((content_20) (syntax-content s_461))) + (if (symbol? content_20) + (let-values () (expand-identifier s_461 ctx_15 alternate-id_0)) + (if (if (pair? content_20) (syntax-identifier? (car content_20)) #f) + (let-values () + (let-values (((s109_0) s_461) + ((ctx110_0) ctx_15) + ((alternate-id111_0) alternate-id_0) + ((fail-non-transformer112_0) fail-non-transformer_0)) + (expand-id-application-form.1 fail-non-transformer112_0 s109_0 ctx110_0 alternate-id111_0))) + (if (let-values (((or-part_275) (pair? content_20))) + (if or-part_275 or-part_275 (null? content_20))) + (let-values () (expand-implicit '#%app s_461 ctx_15 #f)) + (if (already-expanded? content_20) + (let-values () (expand-already-expanded s_461 ctx_15)) + (let-values () (expand-implicit '#%datum s_461 ctx_15 #f)))))))))))))))) + (define-values + (expand-identifier) + (lambda (s_94 ctx_16 alternate-id_1) + (begin + (let-values (((id_67) (let-values (((or-part_237) alternate-id_1)) (if or-part_237 or-part_237 s_94)))) + (if (if (not (free-id-set-empty? (expand-context-stops ctx_16))) + (free-id-set-member? (expand-context-stops ctx_16) (expand-context-phase ctx_16) id_67) + #f) + (let-values () + (begin + (let-values (((obs_2) (expand-context-observer ctx_16))) + (if obs_2 + (let-values () + (let-values () + (begin (call-expand-observe obs_2 'resolve id_67) (call-expand-observe obs_2 'stop/return s_94)))) + (void))) + s_94)) + (let-values () + (let-values (((binding_17) + (let-values (((id113_0) id_67) + ((temp114_1) (expand-context-phase ctx_16)) + ((temp115_0) 'ambiguous) + ((temp116_0) #t)) + (resolve+shift.1 temp115_0 #f null temp116_0 #f id113_0 temp114_1)))) + (begin + (let-values (((obs_3) (expand-context-observer ctx_16))) + (if obs_3 (let-values () (let-values () (call-expand-observe obs_3 'resolve id_67))) (void))) + (if (eq? binding_17 'ambiguous) + (let-values () (raise-ambiguous-error id_67 ctx_16)) + (if (not binding_17) + (let-values () (expand-implicit '#%top (substitute-alternate-id s_94 alternate-id_1) ctx_16 s_94)) + (let-values () + (let-values (((t_20 primitive?_2 insp-of-t_0 protected?_4) + (let-values (((binding125_0) binding_17) + ((ctx126_0) ctx_16) + ((id127_0) id_67) + ((temp128_2) (if alternate-id_1 s_94 #f)) + ((temp129_2) (expand-context-in-local-expand? ctx_16))) + (lookup.1 temp128_2 temp129_2 binding125_0 ctx126_0 id127_0)))) + (let-values (((t117_0) t_20) + ((insp-of-t118_0) insp-of-t_0) + ((s119_0) s_94) + ((id120_0) id_67) + ((ctx121_0) ctx_16) + ((binding122_0) binding_17) + ((primitive?123_0) primitive?_2) + ((protected?124_0) protected?_4)) + (dispatch.1 + #f + t117_0 + insp-of-t118_0 + s119_0 + id120_0 + ctx121_0 + binding122_0 + primitive?123_0 + protected?124_0)))))))))))))) + (define-values + (expand-id-application-form.1) + (lambda (fail-non-transformer8_0 s10_0 ctx11_0 alternate-id12_0) + (begin + 'expand-id-application-form + (let-values (((s_462) s10_0)) + (let-values (((ctx_17) ctx11_0)) + (let-values (((alternate-id_2) alternate-id12_0)) + (let-values (((fail-non-transformer_1) fail-non-transformer8_0)) + (let-values () + (let-values (((id_8) + (let-values (((or-part_159) alternate-id_2)) + (if or-part_159 or-part_159 (car (syntax-e$1 s_462)))))) + (if (if (not (free-id-set-empty? (expand-context-stops ctx_17))) + (free-id-set-member? (expand-context-stops ctx_17) (expand-context-phase ctx_17) id_8) + #f) + (let-values () + (begin + (let-values (((obs_4) (expand-context-observer ctx_17))) + (if obs_4 + (let-values () + (let-values () + (begin + (call-expand-observe obs_4 'resolve id_8) + (call-expand-observe obs_4 'stop/return s_462)))) + (void))) + s_462)) + (let-values () + (let-values (((binding_18) + (let-values (((id130_0) id_8) + ((temp131_1) (expand-context-phase ctx_17)) + ((temp132_1) 'ambiguous) + ((temp133_0) #t)) + (resolve+shift.1 temp132_1 #f null temp133_0 #f id130_0 temp131_1)))) + (begin + (let-values (((obs_5) (expand-context-observer ctx_17))) + (if obs_5 (let-values () (let-values () (call-expand-observe obs_5 'resolve id_8))) (void))) + (if (eq? binding_18 'ambiguous) + (let-values () + (begin + (if fail-non-transformer_1 (let-values () (fail-non-transformer_1)) (void)) + (raise-ambiguous-error id_8 ctx_17))) + (if (not binding_18) + (let-values () + (begin + (if fail-non-transformer_1 (let-values () (fail-non-transformer_1)) (void)) + (expand-implicit '#%app (substitute-alternate-id s_462 alternate-id_2) ctx_17 id_8))) + (let-values () + (let-values (((t_21 primitive?_3 insp-of-t_1 protected?_5) + (let-values (((binding134_0) binding_18) + ((ctx135_0) ctx_17) + ((id136_0) id_8) + ((temp137_0) (if alternate-id_2 (car (syntax-e$1 s_462)) #f)) + ((temp138_0) (expand-context-in-local-expand? ctx_17))) + (lookup.1 temp137_0 temp138_0 binding134_0 ctx135_0 id136_0)))) + (if (variable? t_21) + (let-values () + (begin + (if fail-non-transformer_1 (let-values () (fail-non-transformer_1)) (void)) + (expand-implicit + '#%app + (substitute-alternate-id s_462 alternate-id_2) + ctx_17 + id_8))) + (let-values () + (let-values (((t139_0) t_21) + ((insp-of-t140_0) insp-of-t_1) + ((s141_0) s_462) + ((id142_0) id_8) + ((ctx143_0) ctx_17) + ((binding144_0) binding_18) + ((primitive?145_0) primitive?_3) + ((protected?146_0) protected?_5) + ((fail-non-transformer147_0) fail-non-transformer_1)) + (dispatch.1 + fail-non-transformer147_0 + t139_0 + insp-of-t140_0 + s141_0 + id142_0 + ctx143_0 + binding144_0 + primitive?145_0 + protected?146_0))))))))))))))))))))) + (define-values + (expand-implicit) + (lambda (sym_52 s_319 ctx_18 trigger-id_1) + (begin + (if (expand-context-only-immediate? ctx_18) + (let-values () + (begin + (let-values (((obs_6) (expand-context-observer ctx_18))) + (if obs_6 (let-values () (let-values () (call-expand-observe obs_6 'stop/return s_319))) (void))) + s_319)) + (let-values () + (let-values (((id_68) (datum->syntax$1 s_319 sym_52))) + (if (if (not (free-id-set-empty? (expand-context-stops ctx_18))) + (free-id-set-member? (expand-context-stops ctx_18) (expand-context-phase ctx_18) id_68) + #f) + (let-values () + (begin + (let-values (((obs_7) (expand-context-observer ctx_18))) + (if obs_7 + (let-values () + (let-values () + (begin + (call-expand-observe obs_7 'resolve id_68) + (call-expand-observe obs_7 'stop/return s_319)))) + (void))) + s_319)) + (let-values () + (let-values (((b_94) + (let-values (((id148_0) id_68) + ((temp149_2) (expand-context-phase ctx_18)) + ((temp150_0) 'ambiguous) + ((temp151_1) #t)) + (resolve+shift.1 temp150_0 #f null temp151_1 #f id148_0 temp149_2)))) + (begin + (let-values (((obs_8) (expand-context-observer ctx_18))) + (if obs_8 (let-values () (let-values () (call-expand-observe obs_8 'resolve id_68))) (void))) + (if (eq? b_94 'ambiguous) + (let-values () (raise-ambiguous-error id_68 ctx_18)) + (let-values () + (let-values (((t_22 primitive?_4 insp-of-t_2 protected?_6) + (if b_94 + (let-values (((b152_0) b_94) ((ctx153_0) ctx_18) ((id154_0) id_68)) + (lookup.1 #f #f b152_0 ctx153_0 id154_0)) + (values #f #f #f #f)))) + (if (transformer? t_22) + (let-values () + (let-values (((fail-non-transformer_2) + (if (1/rename-transformer? t_22) + (lambda () + (begin + 'fail-non-transformer + (raise-syntax-implicit-error s_319 sym_52 trigger-id_1 ctx_18))) + #f))) + (let-values (((t155_0) t_22) + ((insp-of-t156_0) insp-of-t_2) + ((temp157_1) (make-explicit ctx_18 sym_52 s_319)) + ((id158_0) id_68) + ((ctx159_0) ctx_18) + ((b160_0) b_94) + ((fail-non-transformer161_0) fail-non-transformer_2)) + (dispatch-transformer.1 + fail-non-transformer161_0 + t155_0 + insp-of-t156_0 + temp157_1 + id158_0 + ctx159_0 + b160_0)))) + (if (core-form? t_22) + (let-values () + (if (if (eq? sym_52 '#%top) + (if (eq? (core-form-name t_22) '#%top) + (expand-context-in-local-expand? ctx_18) + #f) + #f) + (let-values () (dispatch-implicit-#%top-core-form t_22 s_319 ctx_18)) + (let-values () (dispatch-core-form t_22 (make-explicit ctx_18 sym_52 s_319) ctx_18)))) + (let-values () + (let-values (((tl-id_0) + (if (eq? sym_52 '#%top) + (if (root-expand-context-top-level-bind-scope ctx_18) + (add-scope s_319 (root-expand-context-top-level-bind-scope ctx_18)) + #f) + #f))) + (let-values (((tl-b_0) + (if tl-id_0 + (let-values (((tl-id162_0) tl-id_0) + ((temp163_1) (expand-context-phase ctx_18))) + (resolve.1 #f #f null #f tl-id162_0 temp163_1)) + #f))) + (if tl-b_0 + (let-values () + (if (if (expand-context-to-parsed? ctx_18) + (free-id-set-empty? (expand-context-stops ctx_18)) + #f) + (parsed-id2.1 tl-id_0 tl-b_0 #f) + (begin + (let-values (((obs_9) (expand-context-observer ctx_18))) + (if obs_9 + (let-values () + (let-values () + (begin + (call-expand-observe obs_9 'variable tl-id_0) + (call-expand-observe obs_9 'return tl-id_0)))) + (void))) + tl-id_0))) + (let-values () + (raise-syntax-implicit-error + s_319 + sym_52 + trigger-id_1 + ctx_18))))))))))))))))))))) + (define-values + (expand-already-expanded) + (lambda (s_90 ctx_19) + (begin + (let-values (((ae_0) (syntax-e$1 s_90))) + (let-values (((exp-s_0) (already-expanded-s ae_0))) + (begin + (if (let-values (((or-part_65) (syntax-any-macro-scopes? s_90))) + (if or-part_65 + or-part_65 + (let-values (((or-part_111) + (not + (eq? (expand-context-binding-layer ctx_19) (already-expanded-binding-layer ae_0))))) + (if or-part_111 + or-part_111 + (if (parsed? exp-s_0) + (not + (if (expand-context-to-parsed? ctx_19) + (free-id-set-empty? (expand-context-stops ctx_19)) + #f)) + #f))))) + (let-values () + (raise-syntax-error$1 + #f + (string-append + "expanded syntax not in its original lexical context;\n" + " extra bindings or scopes in the current context") + (if (not (parsed? exp-s_0)) exp-s_0 #f))) + (void)) + (if (expand-context-only-immediate? ctx_19) + (let-values () + (begin + (let-values (((obs_10) (expand-context-observer ctx_19))) + (if obs_10 (let-values () (let-values () (call-expand-observe obs_10 'stop/return s_90))) (void))) + s_90)) + (if (parsed? exp-s_0) + (let-values () exp-s_0) + (let-values () + (let-values (((result-s_1) (syntax-track-origin$1 exp-s_0 s_90))) + (begin + (let-values (((obs_11) (expand-context-observer ctx_19))) + (if obs_11 + (let-values () (let-values () (call-expand-observe obs_11 'opaque-expr result-s_1))) + (void))) + (if (if (expand-context-to-parsed? ctx_19) (free-id-set-empty? (expand-context-stops ctx_19)) #f) + (let-values (((result-s164_0) result-s_1) ((ctx165_0) ctx_19)) + (expand.1 #f #f result-s164_0 ctx165_0)) + result-s_1)))))))))))) + (define-values + (make-explicit) + (lambda (ctx_20 sym_72 s_463) + (begin + (let-values (((insp_14) (current-module-code-inspector))) + (let-values (((sym-s_0) + (immediate-datum->syntax + s_463 + sym_72 + s_463 + (if (syntax-has-property? s_463 original-property-sym) + original-implicit-made-explicit-properties + implicit-made-explicit-properties) + insp_14))) + (let-values (((new-s_0) + (immediate-datum->syntax s_463 (cons sym-s_0 s_463) s_463 (syntax-props s_463) insp_14))) + (begin + (let-values (((obs_12) (expand-context-observer ctx_20))) + (if obs_12 (let-values () (let-values () (call-expand-observe obs_12 'tag2 new-s_0 s_463))) (void))) + new-s_0))))))) + (define-values + (dispatch.1) + (lambda (fail-non-transformer14_0 t16_0 insp-of-t17_0 s18_0 id19_0 ctx20_0 binding21_1 primitive?22_0 protected?23_0) + (begin + 'dispatch + (let-values (((t_23) t16_0)) + (let-values (((insp-of-t_3) insp-of-t17_0)) + (let-values (((s_464) s18_0)) + (let-values (((id_69) id19_0)) + (let-values (((ctx_21) ctx20_0)) + (let-values (((binding_19) binding21_1)) + (let-values (((primitive?_5) primitive?22_0)) + (let-values (((protected?_7) protected?23_0)) + (let-values (((fail-non-transformer_3) fail-non-transformer14_0)) + (let-values () + (if (core-form? t_23) + (let-values () (dispatch-core-form t_23 s_464 ctx_21)) + (if (transformer? t_23) + (let-values () + (let-values (((t166_0) t_23) + ((insp-of-t167_0) insp-of-t_3) + ((s168_0) s_464) + ((id169_0) id_69) + ((ctx170_0) ctx_21) + ((binding171_0) binding_19) + ((fail-non-transformer172_0) fail-non-transformer_3)) + (dispatch-transformer.1 + fail-non-transformer172_0 + t166_0 + insp-of-t167_0 + s168_0 + id169_0 + ctx170_0 + binding171_0))) + (if (variable? t_23) + (let-values () + (dispatch-variable t_23 s_464 id_69 ctx_21 binding_19 primitive?_5 protected?_7)) + (let-values () + (raise-syntax-error$1 + #f + "illegal use of syntax" + s_464 + #f + null + (format + "\n value at phase ~s: ~e" + (add1 (expand-context-phase ctx_21)) + t_23))))))))))))))))))) + (define-values + (dispatch-core-form) + (lambda (t_24 s_465 ctx_22) + (begin + (if (expand-context-only-immediate? ctx_22) + (let-values () + (begin + (let-values (((obs_13) (expand-context-observer ctx_22))) + (if obs_13 (let-values () (let-values () (call-expand-observe obs_13 'stop/return s_465))) (void))) + s_465)) + (if (expand-context-observer ctx_22) + (let-values () + (let-values ((() + (begin + (let-values (((obs_14) (expand-context-observer ctx_22))) + (if obs_14 + (let-values () (let-values () (call-expand-observe obs_14 'enter-prim s_465))) + (void))) + (values)))) + (let-values (((result-s_2) ((core-form-expander t_24) s_465 ctx_22))) + (begin + (let-values (((obs_15) (expand-context-observer ctx_22))) + (if obs_15 + (let-values () + (let-values () (call-expand-observe obs_15 'exit-prim/return (extract-syntax result-s_2)))) + (void))) + result-s_2)))) + (let-values () ((core-form-expander t_24) s_465 ctx_22))))))) + (define-values + (dispatch-implicit-#%top-core-form) + (lambda (t_25 s_107 ctx_23) + (begin + (let-values ((() + (begin + (let-values (((obs_16) (expand-context-observer ctx_23))) + (if obs_16 + (let-values () (let-values () (call-expand-observe obs_16 'enter-prim s_107))) + (void))) + (values)))) + (let-values (((result-s_3) ((core-form-expander t_25) s_107 ctx_23 #t))) + (begin + (let-values (((obs_17) (expand-context-observer ctx_23))) + (if obs_17 + (let-values () (let-values () (call-expand-observe obs_17 'exit-prim/return result-s_3))) + (void))) + result-s_3)))))) + (define-values + (dispatch-transformer.1) + (lambda (fail-non-transformer25_0 t27_0 insp-of-t28_0 s29_0 id30_1 ctx31_0 binding32_0) + (begin + 'dispatch-transformer + (let-values (((t_26) t27_0)) + (let-values (((insp-of-t_4) insp-of-t28_0)) + (let-values (((s_214) s29_0)) + (let-values (((id_70) id30_1)) + (let-values (((ctx_24) ctx31_0)) + (let-values (((binding_20) binding32_0)) + (let-values (((fail-non-transformer_4) fail-non-transformer25_0)) + (let-values () + (if (not-in-this-expand-context? t_26 ctx_24) + (let-values () + (let-values (((adj-s_0) + (avoid-current-expand-context + (substitute-alternate-id s_214 id_70) + t_26 + ctx_24))) + (begin + (let-values (((obs_18) (expand-context-observer ctx_24))) + (if obs_18 + (let-values () (let-values () (call-expand-observe obs_18 'tag/context adj-s_0))) + (void))) + (let-values (((adj-s173_0) adj-s_0) ((ctx174_0) ctx_24)) + (expand.1 #f #f adj-s173_0 ctx174_0))))) + (if (if (expand-context-parsing-expanded? ctx_24) (not (1/rename-transformer? t_26)) #f) + (let-values () + (raise-syntax-error$1 + #f + "encountered a macro binding in form that should be fully expanded" + s_214)) + (if (1/rename-transformer? t_26) + (let-values () + (if (expand-context-just-once? ctx_24) + (let-values () s_214) + (let-values () + (let-values (((alt-id_0) (apply-rename-transformer t_26 id_70 ctx_24))) + (begin + (let-values (((obs_19) (expand-context-observer ctx_24))) + (if obs_19 + (let-values () + (let-values () (call-expand-observe obs_19 'rename-transformer alt-id_0))) + (void))) + (let-values (((s175_0) s_214) + ((ctx176_0) ctx_24) + ((alt-id177_0) alt-id_0) + ((fail-non-transformer178_0) fail-non-transformer_4)) + (expand.1 alt-id177_0 fail-non-transformer178_0 s175_0 ctx176_0))))))) + (let-values () + (let-values (((exp-s_1 re-ctx_0) + (let-values (((t179_0) t_26) + ((insp-of-t180_0) insp-of-t_4) + ((s181_0) s_214) + ((id182_0) id_70) + ((ctx183_0) ctx_24) + ((binding184_0) binding_20)) + (apply-transformer.1 + #f + t179_0 + insp-of-t180_0 + s181_0 + id182_0 + ctx183_0 + binding184_0)))) + (if (expand-context-just-once? ctx_24) + (let-values () exp-s_1) + (let-values () + (let-values (((exp-s185_0) exp-s_1) ((re-ctx186_0) re-ctx_0)) + (expand.1 #f #f exp-s185_0 re-ctx186_0)))))))))))))))))))) + (define-values + (dispatch-variable) + (lambda (t_27 s_466 id_71 ctx_25 binding_21 primitive?_6 protected?_8) + (begin + (if (expand-context-only-immediate? ctx_25) + (let-values () + (begin + (let-values (((obs_20) (expand-context-observer ctx_25))) + (if obs_20 (let-values () (let-values () (call-expand-observe obs_20 'stop/return id_71))) (void))) + id_71)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_21) (expand-context-observer ctx_25))) + (if obs_21 + (let-values () (let-values () (call-expand-observe obs_21 'variable s_466 id_71))) + (void))) + (values)))) + (let-values ((() (begin (register-variable-referenced-if-local! binding_21 ctx_25) (values)))) + (let-values (((result-s_4) + (let-values (((id187_1) id_71) + ((t188_0) t_27) + ((temp189_0) + (free-id-set-empty-or-just-module*? (expand-context-stops ctx_25)))) + (substitute-variable.1 temp189_0 id187_1 t188_0)))) + (if (if (expand-context-to-parsed? ctx_25) (free-id-set-empty? (expand-context-stops ctx_25)) #f) + (let-values () + (let-values (((prop-s_0) (keep-properties-only~ result-s_4))) + (let-values (((insp_15) (syntax-inspector result-s_4))) + (if primitive?_6 + (parsed-primitive-id3.1 prop-s_0 binding_21 insp_15) + (parsed-id2.1 prop-s_0 binding_21 insp_15))))) + (let-values () + (let-values (((protected-result-s_0) + (if protected?_8 (syntax-property$1 result-s_4 'protected #t) result-s_4))) + (begin + (let-values (((obs_22) (expand-context-observer ctx_25))) + (if obs_22 + (let-values () (let-values () (call-expand-observe obs_22 'return protected-result-s_0))) + (void))) + protected-result-s_0)))))))))))) + (define-values + (apply-transformer.1) + (lambda (origin-id34_0 t36_0 insp-of-t37_0 s38_1 id39_0 ctx40_0 binding41_0) + (begin + 'apply-transformer + (let-values (((t_28) t36_0)) + (let-values (((insp-of-t_5) insp-of-t37_0)) + (let-values (((s_337) s38_1)) + (let-values (((id_72) id39_0)) + (let-values (((ctx_26) ctx40_0)) + (let-values (((binding_22) binding41_0)) + (let-values (((origin-id_0) origin-id34_0)) + (let-values () + (begin + (if log-performance? (let-values () (start-performance-region 'expand '_ 'macro)) (void)) + (begin0 + (let-values () + (let-values ((() + (begin + (let-values (((obs_23) (expand-context-observer ctx_26))) + (if obs_23 + (let-values () + (let-values () (call-expand-observe obs_23 'enter-macro s_337 s_337))) + (void))) + (values)))) + (let-values (((intro-scope_0) (new-scope 'macro))) + (let-values (((intro-s_0) (flip-scope s_337 intro-scope_0))) + (let-values (((use-scopes_0) (maybe-create-use-site-scope ctx_26 binding_22))) + (let-values (((use-s_0) (add-scopes intro-s_0 use-scopes_0))) + (let-values (((def-ctx-scopes_1) (box null))) + (let-values (((transformed-s_0) + (apply-transformer-in-context$1 + t_28 + use-s_0 + ctx_26 + insp-of-t_5 + intro-scope_0 + use-scopes_0 + def-ctx-scopes_1 + id_72))) + (let-values (((result-s_5) (flip-scope transformed-s_0 intro-scope_0))) + (let-values (((post-s_0) (maybe-add-post-expansion result-s_5 ctx_26))) + (let-values (((tracked-s_0) + (syntax-track-origin$1 + post-s_0 + use-s_0 + (let-values (((or-part_276) origin-id_0)) + (if or-part_276 + or-part_276 + (if (syntax-identifier? s_337) + s_337 + (car (syntax-e$1 s_337)))))))) + (begin + (let-values (((obs_24) (expand-context-observer ctx_26))) + (if obs_24 + (let-values () + (let-values () + (call-expand-observe + obs_24 + 'exit-macro + tracked-s_0 + post-s_0))) + (void))) + (values + tracked-s_0 + (accumulate-def-ctx-scopes ctx_26 def-ctx-scopes_1)))))))))))))) + (if log-performance? (let-values () (end-performance-region)) (void))))))))))))))) + (define-values + (apply-transformer-in-context$1) + (lambda (t_29 use-s_1 ctx_27 insp-of-t_6 intro-scope_1 use-scopes_1 def-ctx-scopes_2 id_37) + (begin + 'apply-transformer-in-context + (let-values ((() + (begin + (let-values (((obs_25) (expand-context-observer ctx_27))) + (if obs_25 + (let-values () (let-values () (call-expand-observe obs_25 'macro-pre-x use-s_1))) + (void))) + (values)))) + (let-values (((confine-def-ctx-scopes?_0) + (not + (let-values (((or-part_277) (expand-context-only-immediate? ctx_27))) + (if or-part_277 + or-part_277 + (not (free-id-set-empty-or-just-module*? (expand-context-stops ctx_27)))))))) + (let-values (((accum-ctx_0) + (if (if confine-def-ctx-scopes?_0 + (if (expand-context-def-ctx-scopes ctx_27) + (not (null? (unbox (expand-context-def-ctx-scopes ctx_27)))) + #f) + #f) + (accumulate-def-ctx-scopes ctx_27 (expand-context-def-ctx-scopes ctx_27)) + ctx_27))) + (let-values (((m-ctx_0) + (let-values (((v_192) accum-ctx_0)) + (let-values (((the-struct_53) v_192)) + (if (expand-context/outer? the-struct_53) + (let-values (((current-introduction-scopes190_0) (list intro-scope_1)) + ((current-use-scopes191_0) use-scopes_1) + ((def-ctx-scopes192_0) + (if confine-def-ctx-scopes?_0 + def-ctx-scopes_2 + (expand-context-def-ctx-scopes ctx_27))) + ((inner193_0) (root-expand-context/outer-inner v_192))) + (expand-context/outer1.1 + inner193_0 + (root-expand-context/outer-post-expansion the-struct_53) + (root-expand-context/outer-use-site-scopes the-struct_53) + (root-expand-context/outer-frame-id the-struct_53) + (expand-context/outer-context the-struct_53) + (expand-context/outer-env the-struct_53) + (expand-context/outer-scopes the-struct_53) + def-ctx-scopes192_0 + (expand-context/outer-binding-layer the-struct_53) + (expand-context/outer-reference-records the-struct_53) + (expand-context/outer-only-immediate? the-struct_53) + (expand-context/outer-need-eventually-defined the-struct_53) + current-introduction-scopes190_0 + current-use-scopes191_0 + (expand-context/outer-name the-struct_53))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_53)))))) + (let-values (((transformed-s_1) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + (namespace->namespace-at-phase + (expand-context-namespace ctx_27) + (add1 (expand-context-phase ctx_27)))) + (let-values () + (with-continuation-mark + current-expand-context + m-ctx_0 + (with-continuation-mark + current-module-code-inspector + insp-of-t_6 + (let-values () + (call-with-continuation-barrier + (lambda () ((transformer->procedure t_29) use-s_1)))))))))) + (begin + (let-values (((obs_26) (expand-context-observer ctx_27))) + (if obs_26 + (let-values () (let-values () (call-expand-observe obs_26 'macro-post-x transformed-s_1 use-s_1))) + (void))) + (if (syntax?$1 transformed-s_1) + (void) + (let-values () + (raise-arguments-error + (syntax-e$1 id_37) + "received value from syntax expander was not syntax" + "received" + transformed-s_1))) + transformed-s_1))))))))) + (define-values + (maybe-create-use-site-scope) + (lambda (ctx_28 binding_23) + (begin + (if (if (root-expand-context-use-site-scopes ctx_28) + (let-values (((or-part_278) (not binding_23))) + (if or-part_278 + or-part_278 + (matching-frame? (root-expand-context-frame-id ctx_28) (binding-frame-id binding_23)))) + #f) + (let-values () + (let-values (((sc_32) (new-scope 'use-site))) + (let-values (((b_95) (root-expand-context-use-site-scopes ctx_28))) + (let-values ((() (begin (set-box! b_95 (cons sc_32 (unbox b_95))) (values)))) + (let-values (((def-ctx-b_0) (expand-context-def-ctx-scopes ctx_28))) + (begin + (if def-ctx-b_0 (let-values () (set-box! def-ctx-b_0 (cons sc_32 (unbox def-ctx-b_0)))) (void)) + (list sc_32))))))) + (let-values () null))))) + (define-values + (matching-frame?) + (lambda (current-frame-id_0 bind-frame-id_0) + (begin + (if current-frame-id_0 + (let-values (((or-part_279) (eq? current-frame-id_0 bind-frame-id_0))) + (if or-part_279 or-part_279 (eq? current-frame-id_0 'all))) + #f)))) + (define-values + (maybe-add-post-expansion) + (lambda (s_355 ctx_29) (begin (apply-post-expansion (root-expand-context-post-expansion ctx_29) s_355)))) + (define-values + (accumulate-def-ctx-scopes) + (lambda (ctx_30 def-ctx-scopes_3) + (begin + (if (null? (unbox def-ctx-scopes_3)) + ctx_30 + (let-values (((v_193) ctx_30)) + (let-values (((the-struct_54) v_193)) + (if (expand-context/outer? the-struct_54) + (let-values (((scopes194_0) (append (unbox def-ctx-scopes_3) (expand-context-scopes ctx_30))) + ((inner195_0) (root-expand-context/outer-inner v_193))) + (expand-context/outer1.1 + inner195_0 + (root-expand-context/outer-post-expansion the-struct_54) + (root-expand-context/outer-use-site-scopes the-struct_54) + (root-expand-context/outer-frame-id the-struct_54) + (expand-context/outer-context the-struct_54) + (expand-context/outer-env the-struct_54) + scopes194_0 + (expand-context/outer-def-ctx-scopes the-struct_54) + (expand-context/outer-binding-layer the-struct_54) + (expand-context/outer-reference-records the-struct_54) + (expand-context/outer-only-immediate? the-struct_54) + (expand-context/outer-need-eventually-defined the-struct_54) + (expand-context/outer-current-introduction-scopes the-struct_54) + (expand-context/outer-current-use-scopes the-struct_54) + (expand-context/outer-name the-struct_54))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_54)))))))) + (define-values + (apply-rename-transformer) + (lambda (t_30 id_73 ctx_31) + (begin + (let-values (((target-id_0) (rename-transformer-target-in-context t_30 ctx_31))) + (let-values (((intro-scope_2) (new-scope 'macro))) + (let-values (((intro-id_0) (add-scope target-id_0 intro-scope_2))) + (syntax-track-origin$1 (transfer-srcloc intro-id_0 id_73) id_73 id_73))))))) + (define-values + (lookup.1) + (lambda (in43_0 out-of-context-as-variable?44_0 b47_0 ctx48_0 id49_0) + (begin + 'lookup + (let-values (((b_96) b47_0)) + (let-values (((ctx_32) ctx48_0)) + (let-values (((id_74) id49_0)) + (let-values (((in-s_7) in43_0)) + (let-values (((out-of-context-as-variable?_1) out-of-context-as-variable?44_0)) + (let-values () + (let-values (((b196_0) b_96) + ((temp197_0) (expand-context-env ctx_32)) + ((temp198_0) (expand-context-lift-envs ctx_32)) + ((temp199_1) (expand-context-namespace ctx_32)) + ((temp200_1) (expand-context-phase ctx_32)) + ((id201_0) id_74) + ((in-s202_0) in-s_7) + ((out-of-context-as-variable?203_0) out-of-context-as-variable?_1)) + (binding-lookup.1 + in-s202_0 + out-of-context-as-variable?203_0 + b196_0 + temp197_0 + temp198_0 + temp199_1 + temp200_1 + id201_0))))))))))) + (define-values + (substitute-alternate-id) + (lambda (s_467 alternate-id_3) + (begin + (if (not alternate-id_3) + (let-values () s_467) + (if (syntax-identifier? s_467) + (let-values () (syntax-track-origin$1 alternate-id_3 s_467)) + (let-values () + (syntax-track-origin$1 + (datum->syntax$1 s_467 (cons alternate-id_3 (cdr (syntax-e$1 s_467))) s_467) + s_467))))))) + (define-values + (register-variable-referenced-if-local!) + (lambda (binding_24 ctx_33) + (begin + (if (if (local-binding? binding_24) + (if (reference-record? (binding-frame-id binding_24)) (not (expand-context-parsing-expanded? ctx_33)) #f) + #f) + (let-values () (reference-record-used! (binding-frame-id binding_24) (local-binding-key binding_24))) + (void))))) + (define-values + (expand/capture-lifts.1) + (lambda (always-wrap?54_0 begin-form?52_0 expand-lifts?51_0 lift-key53_0 s59_0 ctx60_0) + (begin + 'expand/capture-lifts + (let-values (((s_468) s59_0)) + (let-values (((ctx_34) ctx60_0)) + (let-values (((expand-lifts?_0) expand-lifts?51_0)) + (let-values (((begin-form?_0) begin-form?52_0)) + (let-values (((lift-key_2) (if (eq? lift-key53_0 unsafe-undefined) (generate-lift-key) lift-key53_0))) + (let-values (((always-wrap?_0) always-wrap?54_0)) + (let-values () + (let-values (((context_6) (expand-context-context ctx_34))) + (let-values (((phase_101) (expand-context-phase ctx_34))) + (let-values (((local?_0) (not begin-form?_0))) + ((letrec-values (((loop_100) + (lambda (s_469 always-wrap?_1 ctx_35) + (begin + 'loop + (let-values (((lift-env_2) (if local?_0 (box empty-env) #f))) + (let-values (((lift-ctx_0) + (let-values (((temp204_0) + (if local?_0 + (make-local-lift + lift-env_2 + (root-expand-context-counter ctx_35) + (if (expand-context-normalize-locals? + ctx_35) + 'lift + #f)) + (make-top-level-lift ctx_35))) + ((temp205_0) + (if (not local?_0) + (eq? context_6 'module) + #f))) + (make-lift-context.1 temp205_0 temp204_0)))) + (let-values (((capture-ctx_0) + (let-values (((v_194) ctx_35)) + (let-values (((the-struct_55) v_194)) + (if (expand-context/outer? the-struct_55) + (let-values (((inner206_0) + (let-values (((the-struct_56) + (root-expand-context/outer-inner + v_194))) + (if (expand-context/inner? + the-struct_56) + (let-values (((lift-key207_0) + lift-key_2) + ((lifts208_0) + lift-ctx_0) + ((lift-envs209_0) + (if local?_0 + (cons + lift-env_2 + (expand-context-lift-envs + ctx_35)) + (expand-context-lift-envs + ctx_35))) + ((module-lifts210_0) + (if (let-values (((or-part_280) + local?_0)) + (if or-part_280 + or-part_280 + (not + (memq + context_6 + '(top-level + module))))) + (expand-context-module-lifts + ctx_35) + lift-ctx_0))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_56) + (root-expand-context/inner-module-scopes + the-struct_56) + (root-expand-context/inner-top-level-bind-scope + the-struct_56) + (root-expand-context/inner-all-scopes-stx + the-struct_56) + (root-expand-context/inner-defined-syms + the-struct_56) + (root-expand-context/inner-counter + the-struct_56) + lift-key207_0 + (expand-context/inner-to-parsed? + the-struct_56) + (expand-context/inner-phase + the-struct_56) + (expand-context/inner-namespace + the-struct_56) + (expand-context/inner-just-once? + the-struct_56) + (expand-context/inner-module-begin-k + the-struct_56) + (expand-context/inner-allow-unbound? + the-struct_56) + (expand-context/inner-in-local-expand? + the-struct_56) + (expand-context/inner-keep-#%expression? + the-struct_56) + (expand-context/inner-stops + the-struct_56) + (expand-context/inner-declared-submodule-names + the-struct_56) + lifts208_0 + lift-envs209_0 + module-lifts210_0 + (expand-context/inner-require-lifts + the-struct_56) + (expand-context/inner-to-module-lifts + the-struct_56) + (expand-context/inner-requires+provides + the-struct_56) + (expand-context/inner-observer + the-struct_56) + (expand-context/inner-for-serializable? + the-struct_56) + (expand-context/inner-to-correlated-linklet? + the-struct_56) + (expand-context/inner-normalize-locals? + the-struct_56) + (expand-context/inner-parsing-expanded? + the-struct_56) + (expand-context/inner-skip-visit-available? + the-struct_56))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_56))))) + (expand-context/outer1.1 + inner206_0 + (root-expand-context/outer-post-expansion + the-struct_55) + (root-expand-context/outer-use-site-scopes + the-struct_55) + (root-expand-context/outer-frame-id + the-struct_55) + (expand-context/outer-context the-struct_55) + (expand-context/outer-env the-struct_55) + (expand-context/outer-scopes the-struct_55) + (expand-context/outer-def-ctx-scopes + the-struct_55) + (expand-context/outer-binding-layer + the-struct_55) + (expand-context/outer-reference-records + the-struct_55) + (expand-context/outer-only-immediate? + the-struct_55) + (expand-context/outer-need-eventually-defined + the-struct_55) + (expand-context/outer-current-introduction-scopes + the-struct_55) + (expand-context/outer-current-use-scopes + the-struct_55) + (expand-context/outer-name the-struct_55))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_55)))))) + (let-values (((rebuild-s_0) (keep-properties-only s_469))) + (let-values (((exp-s_2) + (let-values (((s211_0) s_469) + ((capture-ctx212_0) capture-ctx_0)) + (expand.1 #f #f s211_0 capture-ctx212_0)))) + (let-values (((lifts_6) + (get-and-clear-lifts! + (expand-context-lifts capture-ctx_0)))) + (let-values (((with-lifts-s_0) + (if (let-values (((or-part_281) + (pair? lifts_6))) + (if or-part_281 + or-part_281 + always-wrap?_1)) + (let-values () + (if (expand-context-to-parsed? ctx_35) + (let-values () + (begin + (if expand-lifts?_0 + (void) + (let-values () + (error + "internal error: to-parsed mode without expanding lifts"))) + (wrap-lifts-as-parsed-let + lifts_6 + exp-s_2 + rebuild-s_0 + ctx_35 + (lambda (rhs_15 rhs-ctx_0) + (loop_100 + rhs_15 + #f + rhs-ctx_0))))) + (let-values () + (if begin-form?_0 + (let-values (((lifts213_0) lifts_6) + ((exp-s214_0) exp-s_2) + ((phase215_0) + phase_101)) + (wrap-lifts-as-begin.1 + unsafe-undefined + unsafe-undefined + lifts213_0 + exp-s214_0 + phase215_0)) + (wrap-lifts-as-let + lifts_6 + exp-s_2 + phase_101))))) + (let-values () exp-s_2)))) + (if (let-values (((or-part_282) (not expand-lifts?_0))) + (if or-part_282 + or-part_282 + (let-values (((or-part_283) (null? lifts_6))) + (if or-part_283 + or-part_283 + (expand-context-to-parsed? ctx_35))))) + (let-values () with-lifts-s_0) + (let-values () + (begin + (let-values (((obs_27) + (expand-context-observer ctx_35))) + (if obs_27 + (let-values () + (let-values () + (call-expand-observe + obs_27 + 'letlift-loop + with-lifts-s_0))) + (void))) + (loop_100 with-lifts-s_0 #f ctx_35))))))))))))))) + loop_100) + s_468 + always-wrap?_0 + ctx_34)))))))))))))) + (define-values + (expand-transformer.1) + (lambda (always-wrap?66_0 begin-form?63_0 context62_0 expand-lifts?64_0 keep-stops?67_0 lift-key65_0 s74_0 ctx75_0) + (begin + 'expand-transformer + (let-values (((s_470) s74_0)) + (let-values (((ctx_36) ctx75_0)) + (let-values (((context_7) context62_0)) + (let-values (((begin-form?_1) begin-form?63_0)) + (let-values (((expand-lifts?_1) expand-lifts?64_0)) + (let-values (((lift-key_3) (if (eq? lift-key65_0 unsafe-undefined) (generate-lift-key) lift-key65_0))) + (let-values (((always-wrap?_2) always-wrap?66_0)) + (let-values (((keep-stops?_0) keep-stops?67_0)) + (let-values () + (begin + (if log-performance? (let-values () (start-performance-region 'expand 'transformer)) (void)) + (begin0 + (let-values () + (let-values (((trans-ctx_0) + (let-values (((ctx222_0) ctx_36) + ((context223_0) context_7) + ((keep-stops?224_0) keep-stops?_0)) + (context->transformer-context.1 keep-stops?224_0 ctx222_0 context223_0)))) + (let-values (((s216_0) s_470) + ((trans-ctx217_0) trans-ctx_0) + ((expand-lifts?218_0) expand-lifts?_1) + ((begin-form?219_0) begin-form?_1) + ((lift-key220_0) lift-key_3) + ((always-wrap?221_0) always-wrap?_2)) + (expand/capture-lifts.1 + always-wrap?221_0 + begin-form?219_0 + expand-lifts?218_0 + lift-key220_0 + s216_0 + trans-ctx217_0)))) + (if log-performance? (let-values () (end-performance-region)) (void)))))))))))))))) + (define-values + (context->transformer-context.1) + (lambda (keep-stops?77_0 ctx80_0 context79_0) + (begin + 'context->transformer-context + (let-values (((ctx_37) ctx80_0)) + (let-values (((context_8) context79_0)) + (let-values (((keep-stops?_1) keep-stops?77_0)) + (let-values () + (let-values (((phase_102) (add1 (expand-context-phase ctx_37)))) + (let-values (((ns_36) (namespace->namespace-at-phase (expand-context-namespace ctx_37) phase_102))) + (begin + (namespace-visit-available-modules! ns_36 phase_102) + (let-values (((v_195) ctx_37)) + (let-values (((the-struct_57) v_195)) + (if (expand-context/outer? the-struct_57) + (let-values (((context225_0) context_8) + ((scopes226_0) null) + ((env227_0) empty-env) + ((only-immediate?228_0) + (if keep-stops?_1 (expand-context-only-immediate? ctx_37) #f)) + ((def-ctx-scopes229_0) #f) + ((post-expansion230_0) #f) + ((inner231_0) + (let-values (((the-struct_58) (root-expand-context/outer-inner v_195))) + (if (expand-context/inner? the-struct_58) + (let-values (((phase232_0) phase_102) + ((namespace233_0) ns_36) + ((stops234_0) + (if keep-stops?_1 + (expand-context-stops ctx_37) + empty-free-id-set))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi the-struct_58) + (root-expand-context/inner-module-scopes the-struct_58) + (root-expand-context/inner-top-level-bind-scope the-struct_58) + (root-expand-context/inner-all-scopes-stx the-struct_58) + (root-expand-context/inner-defined-syms the-struct_58) + (root-expand-context/inner-counter the-struct_58) + (root-expand-context/inner-lift-key the-struct_58) + (expand-context/inner-to-parsed? the-struct_58) + phase232_0 + namespace233_0 + (expand-context/inner-just-once? the-struct_58) + (expand-context/inner-module-begin-k the-struct_58) + (expand-context/inner-allow-unbound? the-struct_58) + (expand-context/inner-in-local-expand? the-struct_58) + (expand-context/inner-keep-#%expression? the-struct_58) + stops234_0 + (expand-context/inner-declared-submodule-names the-struct_58) + (expand-context/inner-lifts the-struct_58) + (expand-context/inner-lift-envs the-struct_58) + (expand-context/inner-module-lifts the-struct_58) + (expand-context/inner-require-lifts the-struct_58) + (expand-context/inner-to-module-lifts the-struct_58) + (expand-context/inner-requires+provides the-struct_58) + (expand-context/inner-observer the-struct_58) + (expand-context/inner-for-serializable? the-struct_58) + (expand-context/inner-to-correlated-linklet? the-struct_58) + (expand-context/inner-normalize-locals? the-struct_58) + (expand-context/inner-parsing-expanded? the-struct_58) + (expand-context/inner-skip-visit-available? the-struct_58))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_58))))) + (expand-context/outer1.1 + inner231_0 + post-expansion230_0 + (root-expand-context/outer-use-site-scopes the-struct_57) + (root-expand-context/outer-frame-id the-struct_57) + context225_0 + env227_0 + scopes226_0 + def-ctx-scopes229_0 + (expand-context/outer-binding-layer the-struct_57) + (expand-context/outer-reference-records the-struct_57) + only-immediate?228_0 + (expand-context/outer-need-eventually-defined the-struct_57) + (expand-context/outer-current-introduction-scopes the-struct_57) + (expand-context/outer-current-use-scopes the-struct_57) + (expand-context/outer-name the-struct_57))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_57)))))))))))))) + (define-values + (expand+eval-for-syntaxes-binding.1) + (lambda (log-next?82_0 wrap83_0 who86_0 rhs87_0 ids88_0 ctx89_0) + (begin + 'expand+eval-for-syntaxes-binding + (let-values (((who_16) who86_0)) + (let-values (((rhs_16) rhs87_0)) + (let-values (((ids_20) ids88_0)) + (let-values (((ctx_38) ctx89_0)) + (let-values (((log-next?_0) log-next?82_0)) + (let-values (((wrap_2) wrap83_0)) + (let-values () + (let-values (((exp-rhs_0) + (let-values (((rhs235_0) rhs_16) ((temp236_0) (as-named-context ctx_38 ids_20))) + (expand-transformer.1 + #f + #f + 'expression + #t + #f + unsafe-undefined + rhs235_0 + temp236_0)))) + (let-values (((phase_103) (add1 (expand-context-phase ctx_38)))) + (let-values (((parsed-rhs_0) + (if (expand-context-to-parsed? ctx_38) + exp-rhs_0 + (let-values (((exp-rhs237_0) exp-rhs_0) + ((temp238_1) + (let-values (((temp239_0) (as-to-parsed-context ctx_38))) + (context->transformer-context.1 #f temp239_0 'expression)))) + (expand.1 #f #f exp-rhs237_0 temp238_1))))) + (begin + (if log-next?_0 + (let-values () + (let-values (((obs_28) (expand-context-observer ctx_38))) + (if obs_28 + (let-values () (let-values () (call-expand-observe obs_28 'next))) + (void)))) + (void)) + (values + exp-rhs_0 + parsed-rhs_0 + (let-values (((who240_0) who_16) + ((ids241_0) ids_20) + ((parsed-rhs242_0) parsed-rhs_0) + ((phase243_0) phase_103) + ((temp244_0) + (namespace->namespace-at-phase (expand-context-namespace ctx_38) phase_103)) + ((ctx245_0) ctx_38) + ((wrap246_0) wrap_2)) + (eval-for-bindings.1 + wrap246_0 + who240_0 + ids241_0 + parsed-rhs242_0 + phase243_0 + temp244_0 + ctx245_0))))))))))))))))) + (define-values + (eval-for-syntaxes-binding) + (lambda (who_17 rhs_17 ids_21 ctx_39) + (begin + (let-values (((exp-rhs_1 parsed-rhs_1 vals_4) + (let-values (((who247_0) who_17) ((rhs248_0) rhs_17) ((ids249_0) ids_21) ((ctx250_0) ctx_39)) + (expand+eval-for-syntaxes-binding.1 #t #f who247_0 rhs248_0 ids249_0 ctx250_0)))) + vals_4)))) + (define-values + (eval-for-bindings.1) + (lambda (wrap91_0 who93_0 ids94_0 p95_0 phase96_0 ns97_0 ctx98_0) + (begin + 'eval-for-bindings + (let-values (((who_18) who93_0)) + (let-values (((ids_22) ids94_0)) + (let-values (((p_48) p95_0)) + (let-values (((phase_104) phase96_0)) + (let-values (((ns_75) ns97_0)) + (let-values (((ctx_40) ctx98_0)) + (let-values (((wrap_3) wrap91_0)) + (let-values () + (let-values (((compiled_0) + (if (can-direct-eval? p_48 ns_75 (root-expand-context-self-mpi ctx_40)) + #f + (compile-single + p_48 + (let-values (((ns251_0) ns_75) ((phase252_0) phase_104)) + (make-compile-context.1 + #f + unsafe-undefined + #f + ns251_0 + phase252_0 + unsafe-undefined)))))) + (let-values (((vals_5) + (call-with-values + (lambda () + (call-with-continuation-barrier + (lambda () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + ns_75 + eval-jit-enabled + #f) + (let-values () + (with-continuation-mark + current-expand-context + ctx_40 + (let-values () + (if compiled_0 + (if wrap_3 + (wrap_3 (lambda () (eval-single-top compiled_0 ns_75))) + (eval-single-top compiled_0 ns_75)) + (let-values (((self-mpi_6) (root-expand-context-self-mpi ctx_40))) + (if wrap_3 + (wrap_3 (lambda () (direct-eval p_48 ns_75 self-mpi_6))) + (direct-eval p_48 ns_75 self-mpi_6))))))))))) + list))) + (begin + (if (let-values (((or-part_284) wrap_3)) + (if or-part_284 or-part_284 (= (length vals_5) (length ids_22)))) + (void) + (let-values () (raise-bindings-arity-error who_18 ids_22 vals_5))) + vals_5)))))))))))))) + (define-values (keep-properties-only) (lambda (s_471) (begin (datum->syntax$1 #f 'props s_471 s_471)))) + (define-values (keep-properties-only~) (lambda (s_472) (begin #f))) + (define-values + (keep-as-needed.1) + (lambda (for-track?100_0 keep-for-error?102_0 keep-for-parsed?101_0 ctx106_0 s107_0) + (begin + 'keep-as-needed + (let-values (((ctx_41) ctx106_0)) + (let-values (((s_473) s107_0)) + (let-values (((for-track?_0) for-track?100_0)) + (let-values (((keep-for-parsed?_0) keep-for-parsed?101_0)) + (let-values (((keep-for-error?_0) keep-for-error?102_0)) + (let-values () + (let-values (((d_39) (syntax-e$1 s_473))) + (let-values (((keep-e_0) + (if (symbol? d_39) + (let-values () d_39) + (if (if (pair? d_39) (syntax-identifier? (car d_39)) #f) + (let-values () (syntax-e$1 (car d_39))) + (let-values () #f))))) + (if (expand-context-to-parsed? ctx_41) + (let-values () + (if (let-values (((or-part_285) keep-for-parsed?_0)) + (if or-part_285 or-part_285 keep-for-error?_0)) + (datum->syntax$1 #f keep-e_0 s_473 s_473) + #f)) + (if (if for-track?_0 (if (pair? d_39) keep-e_0 #f) #f) + (let-values () (datum->syntax$1 #f (list (car d_39)) s_473 s_473)) + (let-values () (datum->syntax$1 s_473 keep-e_0 s_473 s_473))))))))))))))) + (define-values + (attach-disappeared-transformer-bindings) + (lambda (s_474 trans-idss_0) + (begin + (if (null? trans-idss_0) + (let-values () s_474) + (let-values () + (syntax-property$1 + s_474 + 'disappeared-binding + (append + (apply append trans-idss_0) + (let-values (((or-part_286) (syntax-property$1 s_474 'disappeared-binding))) + (if or-part_286 or-part_286 null))))))))) + (define-values + (increment-binding-layer) + (lambda (ids_23 ctx_42 layer-val_0) + (begin + (if ((letrec-values (((loop_101) + (lambda (ids_24) + (begin + 'loop + (let-values (((or-part_287) (identifier? ids_24))) + (if or-part_287 + or-part_287 + (if (pair? ids_24) + (let-values (((or-part_288) (loop_101 (car ids_24)))) + (if or-part_288 or-part_288 (loop_101 (cdr ids_24)))) + #f))))))) + loop_101) + ids_23) + layer-val_0 + (expand-context-binding-layer ctx_42))))) + (define-values + (wrap-lifts-as-parsed-let) + (lambda (lifts_7 exp-s_3 rebuild-s_1 ctx_43 parse-rhs_0) + (begin + (let-values (((idss+keyss+rhss_0) (get-lifts-as-lists lifts_7))) + ((letrec-values (((lets-loop_0) + (lambda (idss+keyss+rhss_1 rhs-ctx_1) + (begin + 'lets-loop + (if (null? idss+keyss+rhss_1) + (let-values () exp-s_3) + (let-values () + (let-values (((ids_25) (caar idss+keyss+rhss_1))) + (let-values (((keys_4) (cadar idss+keyss+rhss_1))) + (let-values (((rhs_18) (caddar idss+keyss+rhss_1))) + (let-values (((exp-rhs_2) (parse-rhs_0 rhs_18 rhs-ctx_1))) + (parsed-let-values17.1 + rebuild-s_1 + (list ids_25) + (list (list keys_4 exp-rhs_2)) + (list + (lets-loop_0 + (cdr idss+keyss+rhss_1) + (let-values (((v_196) rhs-ctx_1)) + (let-values (((the-struct_59) v_196)) + (if (expand-context/outer? the-struct_59) + (let-values (((env253_0) + (let-values (((lst_265) ids_25) ((lst_298) keys_4)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_265))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_298))) + ((letrec-values (((for-loop_277) + (lambda (env_4 lst_299 lst_300) + (begin + 'for-loop + (if (if (pair? lst_299) + (pair? lst_300) + #f) + (let-values (((id_75) + (unsafe-car + lst_299)) + ((rest_172) + (unsafe-cdr + lst_299)) + ((key_97) + (unsafe-car + lst_300)) + ((rest_173) + (unsafe-cdr + lst_300))) + (let-values (((env_5) + (let-values (((env_6) + env_4)) + (let-values (((env_7) + (let-values () + (env-extend + env_6 + key_97 + (local-variable1.1 + id_75))))) + (values + env_7))))) + (if (not #f) + (for-loop_277 + env_5 + rest_172 + rest_173) + env_5))) + env_4))))) + for-loop_277) + (expand-context-env rhs-ctx_1) + lst_265 + lst_298)))) + ((inner254_0) (root-expand-context/outer-inner v_196))) + (expand-context/outer1.1 + inner254_0 + (root-expand-context/outer-post-expansion the-struct_59) + (root-expand-context/outer-use-site-scopes the-struct_59) + (root-expand-context/outer-frame-id the-struct_59) + (expand-context/outer-context the-struct_59) + env253_0 + (expand-context/outer-scopes the-struct_59) + (expand-context/outer-def-ctx-scopes the-struct_59) + (expand-context/outer-binding-layer the-struct_59) + (expand-context/outer-reference-records the-struct_59) + (expand-context/outer-only-immediate? the-struct_59) + (expand-context/outer-need-eventually-defined the-struct_59) + (expand-context/outer-current-introduction-scopes the-struct_59) + (expand-context/outer-current-use-scopes the-struct_59) + (expand-context/outer-name the-struct_59))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_59))))))))))))))))) + lets-loop_0) + idss+keyss+rhss_0 + ctx_43))))) + (define-values + (rename-transformer-target-in-context) + (lambda (t_31 ctx_44) + (begin (with-continuation-mark current-expand-context ctx_44 (let-values () (1/rename-transformer-target t_31)))))) + (define-values + (maybe-install-free=id-in-context!) + (lambda (val_77 id_76 phase_105 ctx_45) + (begin + (if (1/rename-transformer? val_77) + (let-values () + (with-continuation-mark + current-expand-context + ctx_45 + (let-values () (maybe-install-free=id! val_77 id_76 phase_105)))) + (void))))) + (define-values + (transfer-srcloc) + (lambda (new-s_1 old-s_0) + (begin + (let-values (((srcloc_9) (1/syntax-srcloc old-s_0))) + (if srcloc_9 + (let-values (((the-struct_60) new-s_1)) + (if (syntax?$1 the-struct_60) + (let-values (((srcloc255_0) srcloc_9)) + (syntax2.1 + (syntax-content* the-struct_60) + (syntax-scopes the-struct_60) + (syntax-shifted-multi-scopes the-struct_60) + (syntax-mpi-shifts the-struct_60) + srcloc255_0 + (syntax-props the-struct_60) + (syntax-inspector the-struct_60))) + (raise-argument-error 'struct-copy "syntax?" the-struct_60))) + new-s_1))))) + (define-values + (stop-ids->all-stop-ids) + (lambda (stop-ids_0 phase_45) + (begin + (if (null? stop-ids_0) + (let-values () stop-ids_0) + (let-values () + (let-values (((p-core-stx_0) (syntax-shift-phase-level$1 core-stx phase_45))) + (if (if (= 1 (length stop-ids_0)) + (free-identifier=?$1 (car stop-ids_0) (datum->syntax$1 p-core-stx_0 'module*) phase_45 phase_45) + #f) + (let-values () stop-ids_0) + (let-values () + (append + stop-ids_0 + (reverse$1 + (let-values (((lst_100) auto-stop-syms)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_100))) + ((letrec-values (((for-loop_111) + (lambda (fold-var_98 lst_85) + (begin + 'for-loop + (if (pair? lst_85) + (let-values (((sym_51) (unsafe-car lst_85)) + ((rest_48) (unsafe-cdr lst_85))) + (let-values (((fold-var_99) + (let-values (((fold-var_100) fold-var_98)) + (let-values (((fold-var_65) + (let-values () + (cons + (let-values () + (datum->syntax$1 + p-core-stx_0 + sym_51)) + fold-var_100)))) + (values fold-var_65))))) + (if (not #f) (for-loop_111 fold-var_99 rest_48) fold-var_99))) + fold-var_98))))) + for-loop_111) + null + lst_100))))))))))))) + (define-values + (auto-stop-syms) + '(begin + quote + set! + lambda + case-lambda + let-values + letrec-values + if + begin0 + with-continuation-mark + letrec-syntaxes+values + #%app + #%expression + #%top + #%variable-reference)) + (define-values + (module-expand-stop-ids) + (lambda (phase_1) + (begin + (let-values (((p-core-stx_1) (syntax-shift-phase-level$1 core-stx phase_1))) + (reverse$1 + (let-values (((lst_99) module-stop-syms)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_99))) + ((letrec-values (((for-loop_110) + (lambda (fold-var_239 lst_280) + (begin + 'for-loop + (if (pair? lst_280) + (let-values (((sym_18) (unsafe-car lst_280)) ((rest_174) (unsafe-cdr lst_280))) + (let-values (((fold-var_240) + (let-values (((fold-var_247) fold-var_239)) + (let-values (((fold-var_33) + (let-values () + (cons + (let-values () + (datum->syntax$1 p-core-stx_1 sym_18)) + fold-var_247)))) + (values fold-var_33))))) + (if (not #f) (for-loop_110 fold-var_240 rest_174) fold-var_240))) + fold-var_239))))) + for-loop_110) + null + lst_99)))))))) + (define-values + (module-stop-syms) + (append + auto-stop-syms + '(define-values define-syntaxes begin-for-syntax #%require #%provide module module* #%declare #%stratified-body))) + (define-values + (struct:internal-definition-context + internal-definition-context1.1 + 1/internal-definition-context? + internal-definition-context-frame-id + internal-definition-context-outside-edge + internal-definition-context-inside-edge + internal-definition-context-add-scope? + internal-definition-context-env-mixins + internal-definition-context-use-site-scopes + internal-definition-context-parent-ctx) + (let-values (((struct:_34 make-_34 ?_34 -ref_34 -set!_34) + (let-values () + (let-values () + (make-struct-type + 'internal-definition-context + #f + 7 + 0 + #f + null + (current-inspector) + #f + '(0 1 2 3 4 5 6) + #f + 'internal-definition-context))))) + (values + struct:_34 + make-_34 + ?_34 + (make-struct-field-accessor -ref_34 0 'frame-id) + (make-struct-field-accessor -ref_34 1 'outside-edge) + (make-struct-field-accessor -ref_34 2 'inside-edge) + (make-struct-field-accessor -ref_34 3 'add-scope?) + (make-struct-field-accessor -ref_34 4 'env-mixins) + (make-struct-field-accessor -ref_34 5 'use-site-scopes) + (make-struct-field-accessor -ref_34 6 'parent-ctx)))) + (define-values + (struct:env-mixin env-mixin2.1 env-mixin? env-mixin-id env-mixin-sym env-mixin-value env-mixin-cache) + (let-values (((struct:_31 make-_31 ?_31 -ref_31 -set!_31) + (let-values () + (let-values () + (make-struct-type 'env-mixin #f 4 0 #f null (current-inspector) #f '(0 1 2 3) #f 'env-mixin))))) + (values + struct:_31 + make-_31 + ?_31 + (make-struct-field-accessor -ref_31 0 'id) + (make-struct-field-accessor -ref_31 1 'sym) + (make-struct-field-accessor -ref_31 2 'value) + (make-struct-field-accessor -ref_31 3 'cache)))) + (define-values + (1/syntax-local-make-definition-context) + (let-values (((syntax-local-make-definition-context_0) + (lambda (parent-ctx3_0 add-scope?4_0) + (begin + 'syntax-local-make-definition-context + (let-values (((parent-ctx_0) parent-ctx3_0)) + (let-values (((add-scope?_0) add-scope?4_0)) + (let-values () + (let-values ((() + (begin + (if (let-values (((or-part_149) (not parent-ctx_0))) + (if or-part_149 + or-part_149 + (1/internal-definition-context? parent-ctx_0))) + (void) + (let-values () + (raise-argument-error + 'syntax-local-make-definition-context + "(or/c #f internal-definition-context?)" + parent-ctx_0))) + (values)))) + (let-values (((ctx_46) + (let-values (((temp37_4) 'syntax-local-make-definition-context)) + (get-current-expand-context.1 #f temp37_4)))) + (let-values (((frame-id_7) + (let-values (((or-part_89) + (if parent-ctx_0 + (internal-definition-context-frame-id parent-ctx_0) + #f))) + (if or-part_89 + or-part_89 + (let-values (((or-part_90) + (if (not + (eq? 'expression (expand-context-context ctx_46))) + (root-expand-context-frame-id ctx_46) + #f))) + (if or-part_90 or-part_90 (gensym))))))) + (let-values (((outside-edge_0) (new-scope 'intdef-outside))) + (let-values (((inside-edge_0) (new-scope 'intdef))) + (let-values (((def-ctx-scopes_4) (expand-context-def-ctx-scopes ctx_46))) + (let-values ((() + (begin + (if def-ctx-scopes_4 + (let-values () + (set-box! + def-ctx-scopes_4 + (cons + inside-edge_0 + (cons outside-edge_0 (unbox def-ctx-scopes_4))))) + (void)) + (values)))) + (let-values (((use-site-scopes_2) (box '()))) + (internal-definition-context1.1 + frame-id_7 + outside-edge_0 + inside-edge_0 + add-scope?_0 + (box null) + use-site-scopes_2 + parent-ctx_0)))))))))))))))) + (case-lambda + (() (begin 'syntax-local-make-definition-context (syntax-local-make-definition-context_0 #f #t))) + ((parent-ctx_1 add-scope?4_1) (syntax-local-make-definition-context_0 parent-ctx_1 add-scope?4_1)) + ((parent-ctx3_1) (syntax-local-make-definition-context_0 parent-ctx3_1 #t))))) + (define-values + (1/syntax-local-bind-syntaxes) + (let-values (((syntax-local-bind-syntaxes_0) + (lambda (ids6_0 s7_0 intdef8_0 extra-intdefs5_0) + (begin + 'syntax-local-bind-syntaxes + (let-values (((ids_26) ids6_0)) + (let-values (((s_180) s7_0)) + (let-values (((intdef_0) intdef8_0)) + (let-values (((extra-intdefs_0) extra-intdefs5_0)) + (let-values () + (let-values ((() + (begin + (if (if (list? ids_26) (andmap2 identifier? ids_26) #f) + (void) + (let-values () + (raise-argument-error + 'syntax-local-bind-syntaxes + "(listof identifier?)" + ids_26))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_270) (not s_180))) + (if or-part_270 or-part_270 (syntax?$1 s_180))) + (void) + (let-values () + (raise-argument-error + 'syntax-local-bind-syntaxes + "(or/c syntax? #f)" + s_180))) + (values)))) + (let-values ((() + (begin + (if (1/internal-definition-context? intdef_0) + (void) + (let-values () + (raise-argument-error + 'syntax-local-bind-syntaxes + "internal-definition-context?" + intdef_0))) + (values)))) + (let-values ((() + (begin + (if (intdefs? extra-intdefs_0) + (void) + (let-values () + (raise-argument-error + 'syntax-local-bind-syntaxes + intdefs?-string + extra-intdefs_0))) + (values)))) + (let-values (((ctx_47) + (let-values (((temp38_1) 'local-expand)) + (get-current-expand-context.1 #f temp38_1)))) + (let-values ((() + (begin + (let-values (((obs_29) (expand-context-observer ctx_47))) + (if obs_29 + (let-values () + (let-values () + (call-expand-observe obs_29 'local-bind ids_26))) + (void))) + (values)))) + (let-values (((phase_78) (expand-context-phase ctx_47))) + (let-values (((all-intdefs_0) + (if (null? extra-intdefs_0) + intdef_0 + (if (list? extra-intdefs_0) + (cons intdef_0 extra-intdefs_0) + (list intdef_0 extra-intdefs_0))))) + (let-values (((intdef-ids_0) + (reverse$1 + (let-values (((lst_301) ids_26)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_301))) + ((letrec-values (((for-loop_278) + (lambda (fold-var_102 lst_93) + (begin + 'for-loop + (if (pair? lst_93) + (let-values (((id_77) + (unsafe-car + lst_93)) + ((rest_156) + (unsafe-cdr + lst_93))) + (let-values (((fold-var_72) + (let-values (((fold-var_73) + fold-var_102)) + (let-values (((fold-var_74) + (let-values () + (cons + (let-values () + (let-values (((pre-id_0) + (remove-intdef-use-site-scopes + (flip-introduction-scopes + id_77 + ctx_47) + intdef_0))) + (let-values (((temp39_2) + (let-values (((pre-id41_0) + pre-id_0) + ((intdef42_0) + intdef_0) + ((temp43_1) + #t)) + (add-intdef-scopes.1 + unsafe-undefined + temp43_1 + pre-id41_0 + intdef42_0))) + ((extra-intdefs40_0) + extra-intdefs_0)) + (add-intdef-scopes.1 + unsafe-undefined + #f + temp39_2 + extra-intdefs40_0)))) + fold-var_73)))) + (values + fold-var_74))))) + (if (not #f) + (for-loop_278 + fold-var_72 + rest_156) + fold-var_72))) + fold-var_102))))) + for-loop_278) + null + lst_301)))))) + (let-values ((() + (begin + (let-values (((obs_30) + (expand-context-observer ctx_47))) + (if obs_30 + (let-values () + (let-values () + (call-expand-observe + obs_30 + 'rename-list + intdef-ids_0))) + (void))) + (values)))) + (let-values (((counter_4) (root-expand-context-counter ctx_47))) + (let-values (((local-sym_2) + (if (expand-context-normalize-locals? ctx_47) + 'loc + #f))) + (let-values (((syms_21) + (reverse$1 + (let-values (((lst_109) intdef-ids_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_109))) + ((letrec-values (((for-loop_31) + (lambda (fold-var_19 lst_29) + (begin + 'for-loop + (if (pair? lst_29) + (let-values (((intdef-id_0) + (unsafe-car + lst_29)) + ((rest_175) + (unsafe-cdr + lst_29))) + (let-values (((fold-var_20) + (let-values (((fold-var_21) + fold-var_19)) + (let-values (((fold-var_76) + (let-values () + (cons + (let-values () + (let-values (((intdef-id44_0) + intdef-id_0) + ((phase45_0) + phase_78) + ((counter46_0) + counter_4) + ((temp47_2) + (internal-definition-context-frame-id + intdef_0)) + ((local-sym48_0) + local-sym_2)) + (add-local-binding!.1 + temp47_2 + #f + local-sym48_0 + intdef-id44_0 + phase45_0 + counter46_0))) + fold-var_21)))) + (values + fold-var_76))))) + (if (not #f) + (for-loop_31 + fold-var_20 + rest_175) + fold-var_20))) + fold-var_19))))) + for-loop_31) + null + lst_109)))))) + (let-values (((local-ctx_0) + (if s_180 + (let-values () + (let-values (((tmp-env_0) + (let-values (((lst_201) syms_21) + ((lst_15) + intdef-ids_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_201))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_15))) + ((letrec-values (((for-loop_59) + (lambda (env_8 + lst_302 + lst_16) + (begin + 'for-loop + (if (if (pair? + lst_302) + (pair? + lst_16) + #f) + (let-values (((sym_57) + (unsafe-car + lst_302)) + ((rest_106) + (unsafe-cdr + lst_302)) + ((intdef-id_1) + (unsafe-car + lst_16)) + ((rest_176) + (unsafe-cdr + lst_16))) + (let-values (((env_9) + (let-values (((env_10) + env_8)) + (let-values (((env_11) + (let-values () + (env-extend + env_10 + sym_57 + (local-variable1.1 + intdef-id_1))))) + (values + env_11))))) + (if (not + #f) + (for-loop_59 + env_9 + rest_106 + rest_176) + env_9))) + env_8))))) + for-loop_59) + (expand-context-env ctx_47) + lst_201 + lst_15))))) + (let-values (((temp49_1) + (let-values (((v_166) ctx_47)) + (let-values (((the-struct_61) + v_166)) + (if (expand-context/outer? + the-struct_61) + (let-values (((env52_0) + tmp-env_0) + ((inner53_0) + (root-expand-context/outer-inner + v_166))) + (expand-context/outer1.1 + inner53_0 + (root-expand-context/outer-post-expansion + the-struct_61) + (root-expand-context/outer-use-site-scopes + the-struct_61) + (root-expand-context/outer-frame-id + the-struct_61) + (expand-context/outer-context + the-struct_61) + env52_0 + (expand-context/outer-scopes + the-struct_61) + (expand-context/outer-def-ctx-scopes + the-struct_61) + (expand-context/outer-binding-layer + the-struct_61) + (expand-context/outer-reference-records + the-struct_61) + (expand-context/outer-only-immediate? + the-struct_61) + (expand-context/outer-need-eventually-defined + the-struct_61) + (expand-context/outer-current-introduction-scopes + the-struct_61) + (expand-context/outer-current-use-scopes + the-struct_61) + (expand-context/outer-name + the-struct_61))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_61))))) + ((temp50_2) 'expression) + ((all-intdefs51_0) + all-intdefs_0)) + (make-local-expand-context.1 + temp50_2 + all-intdefs51_0 + #t + unsafe-undefined + #f + #f + #f + temp49_1)))) + #f))) + (let-values (((vals_6) + (if s_180 + (let-values () + (let-values (((input-s_0) + (flip-introduction-scopes + (let-values (((s54_0) s_180) + ((all-intdefs55_0) + all-intdefs_0)) + (add-intdef-scopes.1 + unsafe-undefined + #f + s54_0 + all-intdefs55_0)) + ctx_47))) + (let-values ((() + (begin + (let-values (((obs_5) + (expand-context-observer + ctx_47))) + (if obs_5 + (let-values () + (let-values () + (call-expand-observe + obs_5 + 'enter-bind))) + (void))) + (values)))) + (let-values (((vals_7) + (eval-for-syntaxes-binding + 'syntax-local-bind-syntaxes + input-s_0 + ids_26 + local-ctx_0))) + (begin + (let-values (((obs_31) + (expand-context-observer + ctx_47))) + (if obs_31 + (let-values () + (let-values () + (call-expand-observe + obs_31 + 'exit-bind))) + (void))) + vals_7))))) + (let-values () + (reverse$1 + (let-values (((lst_205) intdef-ids_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_205))) + ((letrec-values (((for-loop_279) + (lambda (fold-var_248 + lst_303) + (begin + 'for-loop + (if (pair? + lst_303) + (let-values (((intdef-id_2) + (unsafe-car + lst_303)) + ((rest_177) + (unsafe-cdr + lst_303))) + (let-values (((fold-var_249) + (let-values (((fold-var_250) + fold-var_248)) + (let-values (((fold-var_251) + (let-values () + (cons + (let-values () + (local-variable1.1 + intdef-id_2)) + fold-var_250)))) + (values + fold-var_251))))) + (if (not + #f) + (for-loop_279 + fold-var_249 + rest_177) + fold-var_249))) + fold-var_248))))) + for-loop_279) + null + lst_205)))))))) + (let-values (((env-mixins_0) + (internal-definition-context-env-mixins + intdef_0))) + (begin + (set-box! + env-mixins_0 + (append + (reverse$1 + (let-values (((lst_111) intdef-ids_0) + ((lst_304) syms_21) + ((lst_305) vals_6)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_111))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_304))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_305))) + ((letrec-values (((for-loop_133) + (lambda (fold-var_252 + lst_182 + lst_183 + lst_170) + (begin + 'for-loop + (if (if (pair? lst_182) + (if (pair? lst_183) + (pair? lst_170) + #f) + #f) + (let-values (((intdef-id_3) + (unsafe-car + lst_182)) + ((rest_110) + (unsafe-cdr + lst_182)) + ((sym_73) + (unsafe-car + lst_183)) + ((rest_178) + (unsafe-cdr + lst_183)) + ((val_78) + (unsafe-car + lst_170)) + ((rest_86) + (unsafe-cdr + lst_170))) + (let-values (((fold-var_253) + (let-values (((fold-var_189) + fold-var_252)) + (let-values (((fold-var_190) + (let-values () + (cons + (let-values () + (begin + (if local-ctx_0 + (let-values () + (maybe-install-free=id-in-context! + val_78 + intdef-id_3 + phase_78 + local-ctx_0)) + (void)) + (env-mixin2.1 + intdef-id_3 + sym_73 + val_78 + (make-weak-hasheq)))) + fold-var_189)))) + (values + fold-var_190))))) + (if (not #f) + (for-loop_133 + fold-var_253 + rest_110 + rest_178 + rest_86) + fold-var_253))) + fold-var_252))))) + for-loop_133) + null + lst_111 + lst_304 + lst_305)))) + (unbox env-mixins_0))) + (let-values (((obs_32) + (expand-context-observer ctx_47))) + (if obs_32 + (let-values () + (let-values () + (call-expand-observe obs_32 'exit-local-bind))) + (void))) + (reverse$1 + (let-values (((lst_186) intdef-ids_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_186))) + ((letrec-values (((for-loop_11) + (lambda (fold-var_4 lst_306) + (begin + 'for-loop + (if (pair? lst_306) + (let-values (((id_78) + (unsafe-car + lst_306)) + ((rest_179) + (unsafe-cdr + lst_306))) + (let-values (((fold-var_3) + (let-values (((fold-var_5) + fold-var_4)) + (let-values (((fold-var_6) + (let-values () + (cons + (let-values () + (flip-introduction-scopes + id_78 + ctx_47)) + fold-var_5)))) + (values + fold-var_6))))) + (if (not #f) + (for-loop_11 + fold-var_3 + rest_179) + fold-var_3))) + fold-var_4))))) + for-loop_11) + null + lst_186)))))))))))))))))))))))))))))) + (case-lambda + ((ids_11 s_475 intdef_1) + (begin 'syntax-local-bind-syntaxes (syntax-local-bind-syntaxes_0 ids_11 s_475 intdef_1 '()))) + ((ids_27 s_61 intdef_2 extra-intdefs5_1) (syntax-local-bind-syntaxes_0 ids_27 s_61 intdef_2 extra-intdefs5_1))))) + (define-values + (1/internal-definition-context-binding-identifiers) + (lambda (intdef_3) + (begin + 'internal-definition-context-binding-identifiers + (begin + (if (1/internal-definition-context? intdef_3) + (void) + (let-values () + (raise-argument-error + 'internal-definition-context-binding-identifiers + "internal-definition-context?" + intdef_3))) + (reverse$1 + (let-values (((lst_174) (unbox (internal-definition-context-env-mixins intdef_3)))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_174))) + ((letrec-values (((for-loop_280) + (lambda (fold-var_254 lst_13) + (begin + 'for-loop + (if (pair? lst_13) + (let-values (((env-mixin_0) (unsafe-car lst_13)) ((rest_180) (unsafe-cdr lst_13))) + (let-values (((fold-var_39) + (let-values (((fold-var_255) fold-var_254)) + (let-values (((fold-var_256) + (let-values () + (cons + (let-values () (env-mixin-id env-mixin_0)) + fold-var_255)))) + (values fold-var_256))))) + (if (not #f) (for-loop_280 fold-var_39 rest_180) fold-var_39))) + fold-var_254))))) + for-loop_280) + null + lst_174)))))))) + (define-values + (1/internal-definition-context-introduce) + (let-values (((internal-definition-context-introduce_0) + (lambda (intdef10_0 s11_1 mode9_0) + (begin + 'internal-definition-context-introduce + (let-values (((intdef_4) intdef10_0)) + (let-values (((s_199) s11_1)) + (let-values (((mode_12) mode9_0)) + (let-values () + (let-values ((() + (begin + (if (1/internal-definition-context? intdef_4) + (void) + (let-values () + (raise-argument-error + 'internal-definition-context-introduce + "internal-definition-context?" + intdef_4))) + (values)))) + (let-values ((() + (begin + (if (syntax?$1 s_199) + (void) + (let-values () + (raise-argument-error + 'internal-definition-context-introduce + "syntax?" + s_199))) + (values)))) + (let-values (((new-s_2) + (let-values (((s56_0) s_199) + ((intdef57_0) intdef_4) + ((temp58_0) #t) + ((temp59_1) + (let-values (((tmp_35) mode_12)) + (if (equal? tmp_35 'add) + (let-values () add-scope) + (if (equal? tmp_35 'remove) + (let-values () remove-scope) + (if (equal? tmp_35 'flip) + (let-values () flip-scope) + (let-values () + (raise-argument-error + 'internal-definition-context-introduce + "(or/c 'add 'remove 'flip)" + mode_12)))))))) + (add-intdef-scopes.1 temp59_1 temp58_0 s56_0 intdef57_0)))) + (let-values (((ctx_48) + (let-values (((temp60_2) #t)) + (get-current-expand-context.1 temp60_2 'unexpected)))) + (begin + (if ctx_48 + (let-values () + (let-values (((obs_33) (expand-context-observer ctx_48))) + (if obs_33 + (let-values () + (let-values () + (call-expand-observe + obs_33 + 'track-syntax + 'internal-definition-context-introduce + new-s_2 + s_199))) + (void)))) + (void)) + new-s_2))))))))))))) + (case-lambda + ((intdef_5 s_476) + (begin 'internal-definition-context-introduce (internal-definition-context-introduce_0 intdef_5 s_476 'flip))) + ((intdef_6 s_100 mode9_1) (internal-definition-context-introduce_0 intdef_6 s_100 mode9_1))))) + (define-values + (1/internal-definition-context-seal) + (lambda (intdef_7) + (begin + 'internal-definition-context-seal + (begin + (if (1/internal-definition-context? intdef_7) + (void) + (let-values () + (raise-argument-error 'internal-definition-context-seal "internal-definition-context?" intdef_7))) + (void))))) + (define-values + (1/identifier-remove-from-definition-context) + (lambda (id_79 intdef_8) + (begin + 'identifier-remove-from-definition-context + (begin + (if (identifier? id_79) + (void) + (let-values () (raise-argument-error 'identifier-remove-from-definition-context "identifier?" id_79))) + (if (let-values (((or-part_289) (1/internal-definition-context? intdef_8))) + (if or-part_289 or-part_289 (if (list? intdef_8) (andmap2 1/internal-definition-context? intdef_8) #f))) + (void) + (let-values () + (raise-argument-error + 'identifier-remove-from-definition-context + "(or/c internal-definition-context? (listof internal-definition-context?))" + intdef_8))) + (let-values (((x_83) + (let-values (((a_41) intdef_8)) + (if (list? a_41) + (let-values () (reverse$1 a_41)) + (if (not a_41) (let-values () null) (let-values () (list a_41))))))) + (begin + #t + ((letrec-values (((for-loop_281) + (lambda (id_80 a_42) + (begin + 'for-loop + (if (pair? a_42) + (let-values (((intdef_9) (car a_42))) + (let-values (((id_81) + (let-values (((id_82) id_80)) + (let-values (((id_83) + (let-values () + (1/internal-definition-context-introduce + intdef_9 + id_82 + 'remove)))) + (values id_83))))) + (if (not #f) (for-loop_281 id_81 (cdr a_42)) id_81))) + id_80))))) + for-loop_281) + id_79 + x_83))))))) + (define-values + (1/internal-definition-context-add-scopes) + (lambda (intdef_10 s_477) + (begin + 'internal-definition-context-add-scopes + (begin + (if (syntax?$1 s_477) + (void) + (let-values () (raise-argument-error 'internal-definition-context-add-scopes "syntax?" s_477))) + (if (1/internal-definition-context? intdef_10) + (void) + (let-values () + (raise-argument-error 'internal-definition-context-add-scopes "internal-definition-context?" intdef_10))) + (add-scope + (add-scope s_477 (internal-definition-context-inside-edge intdef_10)) + (internal-definition-context-outside-edge intdef_10)))))) + (define-values + (1/internal-definition-context-splice-binding-identifier) + (lambda (intdef_11 id_84) + (begin + 'internal-definition-context-splice-binding-identifier + (begin + (if (identifier? id_84) + (void) + (let-values () + (raise-argument-error 'internal-definition-context-splice-binding-identifier "identifier?" id_84))) + (if (1/internal-definition-context? intdef_11) + (void) + (let-values () + (raise-argument-error + 'internal-definition-context-splice-binding-identifier + "internal-definition-context?" + intdef_11))) + (remove-intdef-use-site-scopes + (remove-scope + (remove-scope id_84 (internal-definition-context-inside-edge intdef_11)) + (internal-definition-context-outside-edge intdef_11)) + intdef_11))))) + (define-values + (intdefs?) + (lambda (x_84) + (begin + (let-values (((or-part_290) (1/internal-definition-context? x_84))) + (if or-part_290 or-part_290 (if (list? x_84) (andmap2 1/internal-definition-context? x_84) #f)))))) + (define-values (intdefs?-string) "(or/c internal-definition-context? (listof internal-definition-context?))") + (define-values + (intdefs-or-false?) + (lambda (x_66) (begin (let-values (((or-part_226) (not x_66))) (if or-part_226 or-part_226 (intdefs? x_66)))))) + (define-values + (intdefs-or-false?-string) + "(or/c internal-definition-context? (listof internal-definition-context?) #f)") + (define-values + (add-intdef-bindings) + (lambda (env_12 intdefs_0) + (begin + (let-values (((x_27) + (let-values (((a_43) intdefs_0)) + (if (list? a_43) + (let-values () (reverse$1 a_43)) + (if (not a_43) (let-values () null) (let-values () (list a_43))))))) + (begin + #t + ((letrec-values (((for-loop_282) + (lambda (env_13 a_44) + (begin + 'for-loop + (if (pair? a_44) + (let-values (((intdef_12) (car a_44))) + (let-values (((env_14) + (let-values (((env_15) env_13)) + (let-values (((env_16) + (let-values () + (let-values (((parent-ctx_2) + (internal-definition-context-parent-ctx + intdef_12))) + (let-values (((parent-env_0) + (if parent-ctx_2 + (add-intdef-bindings + env_15 + parent-ctx_2) + env_15))) + (let-values (((env-mixins_1) + (unbox + (internal-definition-context-env-mixins + intdef_12)))) + ((letrec-values (((loop_102) + (lambda (env_17 + env-mixins_2) + (begin + 'loop + (if (null? env-mixins_2) + (let-values () env_17) + (let-values () + (let-values (((env-mixin_1) + (car + env-mixins_2))) + (let-values (((or-part_97) + (hash-ref + (env-mixin-cache + env-mixin_1) + env_17 + #f))) + (if or-part_97 + or-part_97 + (let-values (((new-env_0) + (env-extend + (loop_102 + env_17 + (cdr + env-mixins_2)) + (env-mixin-sym + env-mixin_1) + (env-mixin-value + env-mixin_1)))) + (begin + (hash-set! + (env-mixin-cache + env-mixin_1) + env_17 + new-env_0) + new-env_0))))))))))) + loop_102) + parent-env_0 + env-mixins_1))))))) + (values env_16))))) + (if (not #f) (for-loop_282 env_14 (cdr a_44)) env_14))) + env_13))))) + for-loop_282) + env_12 + x_27)))))) + (define-values + (add-intdef-scopes.1) + (lambda (action13_0 always?12_0 s16_0 intdefs17_0) + (begin + 'add-intdef-scopes + (let-values (((s_330) s16_0)) + (let-values (((intdefs_1) intdefs17_0)) + (let-values (((always?_0) always?12_0)) + (let-values (((action_0) (if (eq? action13_0 unsafe-undefined) add-scope action13_0))) + (let-values () + (let-values (((x_85) + (let-values (((a_45) intdefs_1)) + (if (list? a_45) + (let-values () (reverse$1 a_45)) + (if (not a_45) (let-values () null) (let-values () (list a_45))))))) + (begin + #t + ((letrec-values (((for-loop_228) + (lambda (s_76 a_46) + (begin + 'for-loop + (if (pair? a_46) + (let-values (((intdef_13) (car a_46))) + (let-values (((s_478) + (let-values (((s_479) s_76)) + (if (let-values (((or-part_291) always?_0)) + (if or-part_291 + or-part_291 + (internal-definition-context-add-scope? + intdef_13))) + (let-values (((s_205) s_479)) + (let-values (((s_480) + (let-values () + (action_0 + s_205 + (internal-definition-context-inside-edge + intdef_13))))) + (values s_480))) + s_479)))) + (if (not #f) (for-loop_228 s_478 (cdr a_46)) s_478))) + s_76))))) + for-loop_228) + s_330 + x_85))))))))))) + (define-values + (make-local-expand-context.1) + (lambda (context19_0 + intdefs21_0 + keep-#%expression?25_0 + phase20_0 + stop-ids22_0 + to-parsed-ok?23_0 + track-to-be-defined?24_0 + ctx33_0) + (begin + 'make-local-expand-context + (let-values (((ctx_49) ctx33_0)) + (let-values (((context_9) context19_0)) + (let-values (((phase_106) (if (eq? phase20_0 unsafe-undefined) (expand-context-phase ctx_49) phase20_0))) + (let-values (((intdefs_2) intdefs21_0)) + (let-values (((stop-ids_1) stop-ids22_0)) + (let-values (((to-parsed-ok?_0) to-parsed-ok?23_0)) + (let-values (((track-to-be-defined?_0) track-to-be-defined?24_0)) + (let-values (((keep-#%expression?_1) keep-#%expression?25_0)) + (let-values () + (let-values (((same-kind?_0) + (let-values (((or-part_292) (eq? context_9 (expand-context-context ctx_49)))) + (if or-part_292 + or-part_292 + (if (list? context_9) (list? (expand-context-context ctx_49)) #f))))) + (let-values (((all-stop-ids_0) + (if stop-ids_1 (stop-ids->all-stop-ids stop-ids_1 phase_106) #f))) + (let-values (((def-ctx-scopes_5) + (if (expand-context-def-ctx-scopes ctx_49) + (unbox (expand-context-def-ctx-scopes ctx_49)) + null))) + (let-values (((v_197) ctx_49)) + (let-values (((the-struct_62) v_197)) + (if (expand-context/outer? the-struct_62) + (let-values (((context61_0) context_9) + ((env62_0) (add-intdef-bindings (expand-context-env ctx_49) intdefs_2)) + ((use-site-scopes63_0) + (if (let-values (((or-part_293) (eq? context_9 'module))) + (if or-part_293 + or-part_293 + (let-values (((or-part_167) (eq? context_9 'module-begin))) + (if or-part_167 or-part_167 (list? context_9))))) + (if (1/internal-definition-context? intdefs_2) + (internal-definition-context-use-site-scopes intdefs_2) + (let-values (((or-part_294) + (root-expand-context-use-site-scopes ctx_49))) + (if or-part_294 or-part_294 (box null)))) + #f)) + ((frame-id64_0) + (if (1/internal-definition-context? intdefs_2) + (let-values () (internal-definition-context-frame-id intdefs_2)) + (if (not intdefs_2) + (let-values () (root-expand-context-frame-id ctx_49)) + (if (list? intdefs_2) + (let-values () + (let-values (((x_86) + (let-values (((a_47) intdefs_2)) + (if (list? a_47) + (let-values () (reverse$1 a_47)) + (if (not a_47) + (let-values () null) + (let-values () (list a_47))))))) + (begin + #t + ((letrec-values (((for-loop_283) + (lambda (frame-id_8 a_48) + (begin + 'for-loop + (if (pair? a_48) + (let-values (((intdef_14) + (car a_48))) + (let-values (((frame-id_9) + (let-values (((frame-id_10) + frame-id_8)) + (let-values (((frame-id_11) + (let-values () + (let-values (((i-frame-id_0) + (internal-definition-context-frame-id + intdef_14))) + (if (if frame-id_10 + (if i-frame-id_0 + (not + (eq? + frame-id_10 + i-frame-id_0)) + #f) + #f) + (let-values () + 'all) + (let-values () + (let-values (((or-part_295) + frame-id_10)) + (if or-part_295 + or-part_295 + i-frame-id_0)))))))) + (values + frame-id_11))))) + (if (not #f) + (for-loop_283 + frame-id_9 + (cdr a_48)) + frame-id_9))) + frame-id_8))))) + for-loop_283) + (if (not + (eq? 'expression (expand-context-context ctx_49))) + (root-expand-context-frame-id ctx_49) + #f) + x_86)))) + (void))))) + ((post-expansion65_0) + (let-values (((pe_2) + (if same-kind?_0 + (if (let-values (((or-part_296) (pair? context_9))) + (if or-part_296 + or-part_296 + (memq + context_9 + '(module module-begin top-level)))) + (root-expand-context-post-expansion ctx_49) + #f) + #f))) + (if (if intdefs_2 (not (null? intdefs_2)) #f) + (let-values () + (lambda (s_481) + (begin + 'post-expansion65 + (let-values (((temp71_0) (apply-post-expansion pe_2 s_481)) + ((intdefs72_0) intdefs_2)) + (add-intdef-scopes.1 + unsafe-undefined + #f + temp71_0 + intdefs72_0))))) + (let-values () pe_2)))) + ((scopes66_0) (append def-ctx-scopes_5 (expand-context-scopes ctx_49))) + ((only-immediate?67_0) (not stop-ids_1)) + ((current-introduction-scopes68_0) null) + ((need-eventually-defined69_0) + (let-values (((ht_151) + (expand-context-need-eventually-defined ctx_49))) + (if track-to-be-defined?_0 + (let-values () ht_151) + (if ht_151 (let-values () (make-hasheqv)) (let-values () #f))))) + ((inner70_0) + (let-values (((the-struct_63) + (root-expand-context/outer-inner v_197))) + (if (expand-context/inner? the-struct_63) + (let-values (((to-parsed?73_0) + (if to-parsed-ok?_0 + (expand-context-to-parsed? ctx_49) + #f)) + ((just-once?74_0) #f) + ((in-local-expand?75_0) #t) + ((keep-#%expression?76_0) keep-#%expression?_1) + ((stops77_0) + (free-id-set + phase_106 + (let-values (((or-part_297) all-stop-ids_0)) + (if or-part_297 or-part_297 null))))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi the-struct_63) + (root-expand-context/inner-module-scopes the-struct_63) + (root-expand-context/inner-top-level-bind-scope the-struct_63) + (root-expand-context/inner-all-scopes-stx the-struct_63) + (root-expand-context/inner-defined-syms the-struct_63) + (root-expand-context/inner-counter the-struct_63) + (root-expand-context/inner-lift-key the-struct_63) + to-parsed?73_0 + (expand-context/inner-phase the-struct_63) + (expand-context/inner-namespace the-struct_63) + just-once?74_0 + (expand-context/inner-module-begin-k the-struct_63) + (expand-context/inner-allow-unbound? the-struct_63) + in-local-expand?75_0 + keep-#%expression?76_0 + stops77_0 + (expand-context/inner-declared-submodule-names the-struct_63) + (expand-context/inner-lifts the-struct_63) + (expand-context/inner-lift-envs the-struct_63) + (expand-context/inner-module-lifts the-struct_63) + (expand-context/inner-require-lifts the-struct_63) + (expand-context/inner-to-module-lifts the-struct_63) + (expand-context/inner-requires+provides the-struct_63) + (expand-context/inner-observer the-struct_63) + (expand-context/inner-for-serializable? the-struct_63) + (expand-context/inner-to-correlated-linklet? the-struct_63) + (expand-context/inner-normalize-locals? the-struct_63) + (expand-context/inner-parsing-expanded? the-struct_63) + (expand-context/inner-skip-visit-available? the-struct_63))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_63))))) + (expand-context/outer1.1 + inner70_0 + post-expansion65_0 + use-site-scopes63_0 + frame-id64_0 + context61_0 + env62_0 + scopes66_0 + (expand-context/outer-def-ctx-scopes the-struct_62) + (expand-context/outer-binding-layer the-struct_62) + (expand-context/outer-reference-records the-struct_62) + only-immediate?67_0 + need-eventually-defined69_0 + current-introduction-scopes68_0 + (expand-context/outer-current-use-scopes the-struct_62) + (expand-context/outer-name the-struct_62))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_62))))))))))))))))))) + (define-values + (flip-introduction-scopes) + (lambda (s_132 ctx_50) (begin (flip-scopes s_132 (expand-context-current-introduction-scopes ctx_50))))) + (define-values + (flip-introduction-and-use-scopes) + (lambda (s_337 ctx_51) + (begin (flip-scopes (flip-introduction-scopes s_337 ctx_51) (expand-context-current-use-scopes ctx_51))))) + (define-values + (remove-intdef-use-site-scopes) + (lambda (s_221 intdef_15) + (begin + (let-values (((use-sites_1) (internal-definition-context-use-site-scopes intdef_15))) + (if (syntax?$1 s_221) + (remove-scopes s_221 (unbox use-sites_1)) + (reverse$1 + (let-values (((lst_307) s_221)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_307))) + ((letrec-values (((for-loop_284) + (lambda (fold-var_257 lst_308) + (begin + 'for-loop + (if (pair? lst_308) + (let-values (((id_85) (unsafe-car lst_308)) ((rest_181) (unsafe-cdr lst_308))) + (let-values (((fold-var_258) + (let-values (((fold-var_259) fold-var_257)) + (let-values (((fold-var_260) + (let-values () + (cons + (let-values () + (remove-scopes id_85 (unbox use-sites_1))) + fold-var_259)))) + (values fold-var_260))))) + (if (not #f) (for-loop_284 fold-var_258 rest_181) fold-var_258))) + fold-var_257))))) + for-loop_284) + null + lst_307))))))))) + (define-values + (1/syntax-transforming?) + (lambda () + (begin + 'syntax-transforming? + (if (let-values (((temp45_0) #t)) (get-current-expand-context.1 temp45_0 'unexpected)) #t #f)))) + (define-values + (1/syntax-transforming-with-lifts?) + (lambda () + (begin + 'syntax-transforming-with-lifts? + (let-values (((ctx_52) (let-values (((temp46_0) #t)) (get-current-expand-context.1 temp46_0 'unexpected)))) + (if ctx_52 (if (expand-context-lifts ctx_52) #t #f) #f))))) + (define-values + (1/syntax-transforming-module-expression?) + (lambda () + (begin + 'syntax-transforming-module-expression? + (let-values (((ctx_53) (let-values (((temp47_3) #t)) (get-current-expand-context.1 temp47_3 'unexpected)))) + (if ctx_53 (if (expand-context-to-module-lifts ctx_53) #t #f) #f))))) + (define-values + (1/syntax-local-transforming-module-provides?) + (lambda () + (begin + 'syntax-local-transforming-module-provides? + (let-values (((ctx_54) (let-values (((temp48_1) #t)) (get-current-expand-context.1 temp48_1 'unexpected)))) + (if ctx_54 (if (expand-context-requires+provides ctx_54) #t #f) #f))))) + (define-values + (1/syntax-local-context) + (lambda () + (begin + 'syntax-local-context + (let-values (((ctx_55) + (let-values (((temp49_2) 'syntax-local-context)) (get-current-expand-context.1 #f temp49_2)))) + (expand-context-context ctx_55))))) + (define-values + (1/syntax-local-introduce) + (lambda (s_176) + (begin + 'syntax-local-introduce + (let-values () + (let-values () + (let-values ((() + (begin + (if (syntax?$1 s_176) + (void) + (let-values () (raise-argument-error 'syntax-local-introduce "syntax?" s_176))) + (values)))) + (let-values (((ctx_56) + (let-values (((temp51_2) 'syntax-local-introduce)) + (get-current-expand-context.1 #f temp51_2)))) + (let-values (((new-s_3) (flip-introduction-and-use-scopes s_176 ctx_56))) + (begin + (let-values (((obs_34) (expand-context-observer ctx_56))) + (if obs_34 + (let-values () + (let-values () + (call-expand-observe obs_34 'track-syntax 'syntax-local-introduce new-s_3 s_176))) + (void))) + new-s_3))))))))) + (define-values + (1/syntax-local-identifier-as-binding) + (let-values (((syntax-local-identifier-as-binding_0) + (lambda (id2_1 intdef1_0) + (begin + 'syntax-local-identifier-as-binding + (let-values (((id_86) id2_1)) + (let-values (((intdef_16) intdef1_0)) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (identifier? id_86) + (void) + (let-values () + (raise-argument-error + 'syntax-local-identifier-as-binding + "identifier?" + id_86))) + (values)))) + (let-values ((() + (begin + (if intdef_16 + (let-values () + (if (1/internal-definition-context? intdef_16) + (void) + (let-values () + (raise-argument-error + 'syntax-local-identifier-as-binding + "internal-definition-context?" + intdef_16)))) + (void)) + (values)))) + (let-values (((ctx_15) + (let-values (((temp53_0) 'syntax-local-identifier-as-binding)) + (get-current-expand-context.1 #f temp53_0)))) + (let-values (((new-id_0) + (if intdef_16 + (remove-intdef-use-site-scopes id_86 intdef_16) + (remove-use-site-scopes id_86 ctx_15)))) + (begin + (let-values (((obs_35) (expand-context-observer ctx_15))) + (if obs_35 + (let-values () + (let-values () + (call-expand-observe + obs_35 + 'track-syntax + 'syntax-local-identifier-as-binding + new-id_0 + id_86))) + (void))) + new-id_0)))))))))))))) + (case-lambda + ((id_5) (begin 'syntax-local-identifier-as-binding (syntax-local-identifier-as-binding_0 id_5 #f))) + ((id_87 intdef1_1) (syntax-local-identifier-as-binding_0 id_87 intdef1_1))))) + (define-values + (1/syntax-local-phase-level) + (lambda () + (begin + 'syntax-local-phase-level + (let-values (((ctx_57) (let-values (((temp54_1) #t)) (get-current-expand-context.1 temp54_1 'unexpected)))) + (if ctx_57 (expand-context-phase ctx_57) 0))))) + (define-values + (1/syntax-local-name) + (lambda () + (begin + 'syntax-local-name + (let-values () + (let-values () + (let-values (((ctx_58) + (let-values (((who56_1) 'syntax-local-name)) (get-current-expand-context.1 #f who56_1)))) + (let-values (((id_88) (expand-context-name ctx_58))) + (if id_88 (datum->syntax$1 #f (syntax-e$1 id_88) id_88) #f)))))))) + (define-values + (1/make-syntax-introducer) + (let-values (((make-syntax-introducer_0) + (lambda (as-use-site?3_0) + (begin + 'make-syntax-introducer + (let-values (((as-use-site?_0) as-use-site?3_0)) + (let-values () (do-make-syntax-introducer (new-scope (if as-use-site?_0 'use-site 'macro))))))))) + (case-lambda + (() (begin 'make-syntax-introducer (make-syntax-introducer_0 #f))) + ((as-use-site?3_1) (make-syntax-introducer_0 as-use-site?3_1))))) + (define-values + (1/make-interned-syntax-introducer) + (lambda (sym-key_0) + (begin + 'make-interned-syntax-introducer + (let-values () + (let-values () + (begin + (if ((lambda (v_164) (if (symbol? v_164) (symbol-interned? v_164) #f)) sym-key_0) + (void) + (let-values () + (raise-argument-error 'make-interned-syntax-introducer "(and/c symbol? symbol-interned?)" sym-key_0))) + (do-make-syntax-introducer (make-interned-scope sym-key_0)))))))) + (define-values + (do-make-syntax-introducer) + (lambda (sc_33) + (begin + (let-values (((do-make-syntax-introducer_0) + (lambda (s59_1 mode58_0) + (begin + 'do-make-syntax-introducer + (let-values (((s_312) s59_1)) + (let-values (((mode_13) mode58_0)) + (let-values () + (let-values ((() + (begin + (if (syntax?$1 s_312) + (void) + (let-values () + (raise-argument-error 'syntax-introducer "syntax?" s_312))) + (values)))) + (let-values (((new-s_4) + (let-values (((tmp_36) mode_13)) + (if (equal? tmp_36 'add) + (let-values () (add-scope s_312 sc_33)) + (if (equal? tmp_36 'remove) + (let-values () (remove-scope s_312 sc_33)) + (if (equal? tmp_36 'flip) + (let-values () (flip-scope s_312 sc_33)) + (let-values () + (raise-argument-error + 'syntax-introducer + "(or/c 'add 'remove 'flip)" + mode_13)))))))) + (let-values (((ctx_59) + (let-values (((temp60_3) #t)) + (get-current-expand-context.1 temp60_3 'unexpected)))) + (begin + (if ctx_59 + (let-values () + (let-values (((obs_36) (expand-context-observer ctx_59))) + (if obs_36 + (let-values () + (let-values () + (call-expand-observe obs_36 'track-syntax mode_13 new-s_4 s_312))) + (void)))) + (void)) + new-s_4))))))))))) + (case-lambda + ((s_94) (begin 'do-make-syntax-introducer (do-make-syntax-introducer_0 s_94 'flip))) + ((s_162 mode58_1) (do-make-syntax-introducer_0 s_162 mode58_1))))))) + (define-values + (1/make-syntax-delta-introducer) + (let-values (((make-syntax-delta-introducer_0) + (lambda (ext-s5_0 base-s6_0 phase4_0) + (begin + 'make-syntax-delta-introducer + (let-values (((ext-s_0) ext-s5_0)) + (let-values (((base-s_0) base-s6_0)) + (let-values (((phase_107) + (if (eq? phase4_0 unsafe-undefined) (1/syntax-local-phase-level) phase4_0))) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (syntax?$1 ext-s_0) + (void) + (let-values () + (raise-argument-error + 'make-syntax-delta-introducer + "syntax?" + ext-s_0))) + (values)))) + (let-values ((() + (begin + (if ((lambda (x_87) + (let-values (((or-part_222) (not x_87))) + (if or-part_222 or-part_222 (syntax?$1 x_87)))) + base-s_0) + (void) + (let-values () + (raise-argument-error + 'make-syntax-delta-introducer + "(or/c syntax? #f)" + base-s_0))) + (values)))) + (let-values ((() + (begin + (if (phase? phase_107) + (void) + (let-values () + (raise-argument-error + 'make-syntax-delta-introducer + phase?-string + phase_107))) + (values)))) + (let-values (((ext-scs_0) (syntax-scope-set ext-s_0 phase_107))) + (let-values (((base-scs_0) + (syntax-scope-set + (let-values (((or-part_29) base-s_0)) + (if or-part_29 or-part_29 empty-syntax)) + phase_107))) + (let-values (((use-base-scs_0) + (if (subset? base-scs_0 ext-scs_0) + base-scs_0 + (let-values (((or-part_138) + (if (identifier? base-s_0) + (let-values (((base-s62_0) base-s_0) + ((phase63_2) phase_107) + ((temp64_0) #t)) + (resolve.1 + #f + #f + null + temp64_0 + base-s62_0 + phase63_2)) + #f))) + (if or-part_138 or-part_138 (seteq)))))) + (let-values (((delta-scs_0) + (set->list (set-subtract ext-scs_0 use-base-scs_0)))) + (let-values (((maybe-taint_0) + (if (syntax-clean? ext-s_0) values syntax-taint$1))) + (let-values (((shifts_5) (syntax-mpi-shifts ext-s_0))) + (let-values (((make-syntax-delta-introducer_1) + (lambda (s66_0 mode65_0) + (begin + 'make-syntax-delta-introducer + (let-values (((s_38) s66_0)) + (let-values (((mode_14) mode65_0)) + (let-values () + (let-values ((() + (begin + (if (syntax?$1 s_38) + (void) + (let-values () + (raise-argument-error + 'syntax-introducer + "syntax?" + s_38))) + (values)))) + (let-values (((new-s_5) + (maybe-taint_0 + (let-values (((tmp_37) + mode_14)) + (if (equal? tmp_37 'add) + (let-values () + (let-values (((temp67_1) + (add-scopes + s_38 + delta-scs_0)) + ((shifts68_0) + shifts_5) + ((temp69_0) + #t)) + (syntax-add-shifts.1 + temp69_0 + temp67_1 + shifts68_0 + #f))) + (if (equal? + tmp_37 + 'remove) + (let-values () + (remove-scopes + s_38 + delta-scs_0)) + (if (equal? + tmp_37 + 'flip) + (let-values () + (let-values (((temp70_2) + (flip-scopes + s_38 + delta-scs_0)) + ((shifts71_0) + shifts_5) + ((temp72_1) + #t)) + (syntax-add-shifts.1 + temp72_1 + temp70_2 + shifts71_0 + #f))) + (let-values () + (raise-argument-error + 'syntax-introducer + "(or/c 'add 'remove 'flip)" + mode_14))))))))) + (let-values (((ctx_60) + (let-values (((temp73_0) + #t)) + (get-current-expand-context.1 + temp73_0 + 'unexpected)))) + (begin + (if ctx_60 + (let-values () + (let-values (((obs_37) + (expand-context-observer + ctx_60))) + (if obs_37 + (let-values () + (let-values () + (call-expand-observe + obs_37 + 'track-syntax + mode_14 + new-s_5 + s_38))) + (void)))) + (void)) + new-s_5))))))))))) + (case-lambda + ((s_482) + (begin + 'make-syntax-delta-introducer + (make-syntax-delta-introducer_1 s_482 'add))) + ((s_483 mode65_1) + (make-syntax-delta-introducer_1 + s_483 + mode65_1))))))))))))))))))))))) + (case-lambda + ((ext-s_1 base-s_1) + (begin 'make-syntax-delta-introducer (make-syntax-delta-introducer_0 ext-s_1 base-s_1 unsafe-undefined))) + ((ext-s_2 base-s_2 phase4_1) (make-syntax-delta-introducer_0 ext-s_2 base-s_2 phase4_1))))) + (define-values + (1/syntax-local-make-delta-introducer) + (lambda (id-stx_1) + (begin + 'syntax-local-make-delta-introducer + (let-values () + (let-values () + (begin + (if (identifier? id-stx_1) + (void) + (let-values () (raise-argument-error 'syntax-local-make-delta-introducer "identifier?" id-stx_1))) + (raise + (exn:fail:unsupported + "syntax-local-make-delta-introducer: not supported anymore" + (current-continuation-marks))))))))) + (define-values + (do-syntax-local-value.1) + (lambda (immediate?7_0 who9_0 id10_1 intdefs11_0 failure-thunk12_0) + (begin + 'do-syntax-local-value + (let-values (((who_19) who9_0)) + (let-values (((id_89) id10_1)) + (let-values (((intdefs_3) intdefs11_0)) + (let-values (((failure-thunk_0) failure-thunk12_0)) + (let-values (((immediate?_1) immediate?7_0)) + (let-values () + (let-values ((() + (begin + (if (identifier? id_89) + (void) + (let-values () (raise-argument-error who_19 "identifier?" id_89))) + (values)))) + (let-values ((() + (begin + (if ((lambda (x_49) + (let-values (((or-part_43) (not x_49))) + (if or-part_43 + or-part_43 + ((lambda (p_49) + (if (procedure? p_49) (procedure-arity-includes? p_49 0) #f)) + x_49)))) + failure-thunk_0) + (void) + (let-values () + (raise-argument-error + who_19 + "(or/c #f (procedure-arity-includes/c 0))" + failure-thunk_0))) + (values)))) + (let-values ((() + (begin + (if (intdefs-or-false? intdefs_3) + (void) + (let-values () + (raise-argument-error who_19 intdefs-or-false?-string intdefs_3))) + (values)))) + (let-values (((current-ctx_0) + (let-values (((who75_0) who_19)) (get-current-expand-context.1 #f who75_0)))) + (let-values (((ctx_61) + (if intdefs_3 + (let-values (((v_198) current-ctx_0)) + (let-values (((the-struct_64) v_198)) + (if (expand-context/outer? the-struct_64) + (let-values (((env76_0) + (add-intdef-bindings + (expand-context-env current-ctx_0) + intdefs_3)) + ((inner77_0) (root-expand-context/outer-inner v_198))) + (expand-context/outer1.1 + inner77_0 + (root-expand-context/outer-post-expansion the-struct_64) + (root-expand-context/outer-use-site-scopes the-struct_64) + (root-expand-context/outer-frame-id the-struct_64) + (expand-context/outer-context the-struct_64) + env76_0 + (expand-context/outer-scopes the-struct_64) + (expand-context/outer-def-ctx-scopes the-struct_64) + (expand-context/outer-binding-layer the-struct_64) + (expand-context/outer-reference-records the-struct_64) + (expand-context/outer-only-immediate? the-struct_64) + (expand-context/outer-need-eventually-defined the-struct_64) + (expand-context/outer-current-introduction-scopes the-struct_64) + (expand-context/outer-current-use-scopes the-struct_64) + (expand-context/outer-name the-struct_64))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_64)))) + current-ctx_0))) + (let-values ((() + (begin + (let-values (((obs_38) (expand-context-observer ctx_61))) + (if obs_38 + (let-values () + (let-values () (call-expand-observe obs_38 'local-value id_89))) + (void))) + (values)))) + (let-values (((phase_108) (expand-context-phase ctx_61))) + ((letrec-values (((loop_103) + (lambda (id_18) + (begin + 'loop + (let-values (((b_97) + (if immediate?_1 + (let-values (((id78_0) id_18) + ((phase79_0) phase_108) + ((temp80_2) #t)) + (resolve+shift.1 + #f + #f + null + temp80_2 + #f + id78_0 + phase79_0)) + (resolve+shift/extra-inspector + id_18 + phase_108 + (expand-context-namespace ctx_61))))) + (begin + (let-values (((obs_39) (expand-context-observer ctx_61))) + (if obs_39 + (let-values () + (let-values () + (call-expand-observe obs_39 'resolve id_18))) + (void))) + (if (not b_97) + (let-values () + (begin + (let-values (((obs_40) + (expand-context-observer ctx_61))) + (if obs_40 + (let-values () + (let-values () + (call-expand-observe + obs_40 + 'local-value-result + #f))) + (void))) + (if failure-thunk_0 + (failure-thunk_0) + (error who_19 "unbound identifier: ~v" id_18)))) + (let-values () + (let-values (((v_199 primitive?_7 insp_16 protected?_9) + (let-values (((b81_0) b_97) + ((ctx82_0) ctx_61) + ((id83_0) id_18) + ((temp84_1) #t)) + (lookup.1 + #f + temp84_1 + b81_0 + ctx82_0 + id83_0)))) + (if (let-values (((or-part_298) (variable? v_199))) + (if or-part_298 or-part_298 (core-form? v_199))) + (let-values () + (begin + (let-values (((obs_41) + (expand-context-observer ctx_61))) + (if obs_41 + (let-values () + (let-values () + (call-expand-observe + obs_41 + 'local-value-result + #f))) + (void))) + (if failure-thunk_0 + (failure-thunk_0) + (error + who_19 + "identifier is not bound to syntax: ~v" + id_18)))) + (let-values () + (begin + (let-values (((obs_42) + (expand-context-observer ctx_61))) + (if obs_42 + (let-values () + (if (not + (if (1/rename-transformer? v_199) + (not immediate?_1) + #f)) + (let-values () + (call-expand-observe + obs_42 + 'local-value-result + #t)) + (void))) + (void))) + (if (1/rename-transformer? v_199) + (let-values () + (if immediate?_1 + (values + v_199 + (rename-transformer-target-in-context + v_199 + ctx_61)) + (loop_103 + (rename-transformer-target-in-context + v_199 + ctx_61)))) + (if immediate?_1 + (let-values () (values v_199 #f)) + (let-values () v_199))))))))))))))) + loop_103) + (flip-introduction-scopes id_89 ctx_61)))))))))))))))))) + (define-values + (1/syntax-local-value) + (let-values (((syntax-local-value_0) + (lambda (id16_0 failure-thunk14_0 intdef15_0) + (begin + 'syntax-local-value + (let-values (((id_90) id16_0)) + (let-values (((failure-thunk_1) failure-thunk14_0)) + (let-values (((intdef_5) intdef15_0)) + (let-values () + (let-values (((temp85_1) 'syntax-local-value) + ((temp86_1) #f) + ((id87_0) id_90) + ((intdef88_0) intdef_5) + ((failure-thunk89_0) failure-thunk_1)) + (do-syntax-local-value.1 temp86_1 temp85_1 id87_0 intdef88_0 failure-thunk89_0)))))))))) + (case-lambda + ((id_91) (begin 'syntax-local-value (syntax-local-value_0 id_91 #f #f))) + ((id_92 failure-thunk_2 intdef15_1) (syntax-local-value_0 id_92 failure-thunk_2 intdef15_1)) + ((id_93 failure-thunk14_1) (syntax-local-value_0 id_93 failure-thunk14_1 #f))))) + (define-values + (1/syntax-local-value/immediate) + (let-values (((syntax-local-value/immediate_0) + (lambda (id19_1 failure-thunk17_0 intdef18_0) + (begin + 'syntax-local-value/immediate + (let-values (((id_83) id19_1)) + (let-values (((failure-thunk_3) failure-thunk17_0)) + (let-values (((intdef_17) intdef18_0)) + (let-values () + (let-values (((temp90_1) 'syntax-local-value/immediate) + ((temp91_1) #t) + ((id92_0) id_83) + ((intdef93_0) intdef_17) + ((failure-thunk94_0) failure-thunk_3)) + (do-syntax-local-value.1 temp91_1 temp90_1 id92_0 intdef93_0 failure-thunk94_0)))))))))) + (case-lambda + ((id_94) (begin 'syntax-local-value/immediate (syntax-local-value/immediate_0 id_94 #f #f))) + ((id_69 failure-thunk_4 intdef18_1) (syntax-local-value/immediate_0 id_69 failure-thunk_4 intdef18_1)) + ((id_95 failure-thunk17_1) (syntax-local-value/immediate_0 id_95 failure-thunk17_1 #f))))) + (define-values + (do-lift-values-expression) + (lambda (who_20 n_33 s_484) + (begin + (let-values ((() + (begin + (if (syntax?$1 s_484) (void) (let-values () (raise-argument-error who_20 "syntax?" s_484))) + (values)))) + (let-values ((() + (begin + (if (exact-nonnegative-integer? n_33) + (void) + (let-values () (raise-argument-error who_20 "exact-nonnegative-integer?" n_33))) + (values)))) + (let-values (((ctx_62) (let-values (((who95_0) who_20)) (get-current-expand-context.1 #f who95_0)))) + (let-values (((lifts_8) (expand-context-lifts ctx_62))) + (let-values ((() + (begin + (if lifts_8 (void) (let-values () (raise-arguments-error who_20 "no lift target"))) + (values)))) + (let-values (((counter_5) (root-expand-context-counter ctx_62))) + (let-values (((ids_28) + (reverse$1 + (let-values (((start_50) 0) ((end_37) n_33) ((inc_31) 1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_50 end_37 inc_31))) + ((letrec-values (((for-loop_40) + (lambda (fold-var_261 pos_122) + (begin + 'for-loop + (if (< pos_122 end_37) + (let-values () + (let-values (((fold-var_43) + (let-values (((fold-var_262) fold-var_261)) + (let-values (((fold-var_263) + (let-values () + (cons + (let-values () + (let-values ((() + (begin + (set-box! + counter_5 + (add1 + (unbox + counter_5))) + (values)))) + (let-values (((name_67) + (string->unreadable-symbol + (format + "lifted/~a" + (unbox + counter_5))))) + (add-scope + (datum->syntax$1 + #f + name_67) + (new-scope + 'macro))))) + fold-var_262)))) + (values fold-var_263))))) + (if (not #f) + (for-loop_40 fold-var_43 (+ pos_122 inc_31)) + fold-var_43))) + fold-var_261))))) + for-loop_40) + null + start_50)))))) + (let-values (((added-s_0) (flip-introduction-scopes s_484 ctx_62))) + (begin + (let-values (((obs_43) (expand-context-observer ctx_62))) + (if obs_43 + (let-values () + (let-values () (call-expand-observe obs_43 'lift-expr ids_28 s_484 added-s_0))) + (void))) + (map2 + (lambda (id_96) (flip-introduction-scopes id_96 ctx_62)) + (add-lifted! lifts_8 ids_28 added-s_0 (expand-context-phase ctx_62))))))))))))))) + (define-values + (1/syntax-local-lift-expression) + (lambda (s_485) + (begin + 'syntax-local-lift-expression + (let-values () (let-values () (car (do-lift-values-expression 'syntax-local-lift-expression 1 s_485))))))) + (define-values + (1/syntax-local-lift-values-expression) + (lambda (n_34 s_76) + (begin + 'syntax-local-lift-values-expression + (let-values () (let-values () (do-lift-values-expression 'syntax-local-lift-values-expression n_34 s_76)))))) + (define-values + (1/syntax-local-lift-context) + (lambda () + (begin + 'syntax-local-lift-context + (let-values () + (let-values () + (let-values (((ctx_63) + (let-values (((who99_0) 'syntax-local-lift-context)) + (get-current-expand-context.1 #f who99_0)))) + (root-expand-context-lift-key ctx_63))))))) + (define-values + (1/syntax-local-lift-module) + (lambda (s_486) + (begin + 'syntax-local-lift-module + (let-values () + (let-values () + (let-values ((() + (begin + (if (syntax?$1 s_486) + (void) + (let-values () (raise-argument-error 'syntax-local-lift-module "syntax?" s_486))) + (values)))) + (let-values (((ctx_64) + (let-values (((who101_0) 'syntax-local-lift-module)) + (get-current-expand-context.1 #f who101_0)))) + (let-values (((phase_109) (expand-context-phase ctx_64))) + (let-values (((tmp_38) (core-form-sym s_486 phase_109))) + (if (if (equal? tmp_38 'module) #t (equal? tmp_38 'module*)) + (let-values () + (let-values (((lifts_9) (expand-context-module-lifts ctx_64))) + (let-values ((() + (begin + (if lifts_9 + (void) + (let-values () + (raise-arguments-error + 'syntax-local-lift-module + "not currently transforming within a module declaration or top level" + "form to lift" + s_486))) + (values)))) + (let-values (((added-s_1) (flip-introduction-scopes s_486 ctx_64))) + (begin + (add-lifted-module! lifts_9 added-s_1 phase_109) + (let-values (((obs_44) (expand-context-observer ctx_64))) + (if obs_44 + (let-values () + (let-values () (call-expand-observe obs_44 'lift-module s_486 added-s_1))) + (void)))))))) + (let-values () + (raise-arguments-error + 'syntax-local-lift-module + "not a module form" + "given form" + s_486)))))))))))) + (define-values + (do-local-lift-to-module.1) + (lambda (add-lifted!25_0 + get-lift-ctx24_0 + get-wrt-phase26_0 + intro?22_0 + log-tag20_0 + more-checks23_0 + no-target-msg21_0 + post-wrap29_0 + pre-wrap27_0 + shift-wrap28_0 + who40_0 + s41_0) + (begin + 'do-local-lift-to-module + (let-values (((who_21) who40_0)) + (let-values (((s_78) s41_0)) + (let-values (((log-tag_0) log-tag20_0)) + (let-values (((no-target-msg_0) no-target-msg21_0)) + (let-values (((intro?_0) intro?22_0)) + (let-values (((more-checks_0) more-checks23_0)) + (let-values (((get-lift-ctx_0) get-lift-ctx24_0)) + (let-values (((add-lifted!_0) add-lifted!25_0)) + (let-values (((get-wrt-phase_0) get-wrt-phase26_0)) + (let-values (((pre-wrap_0) + (if (eq? pre-wrap27_0 unsafe-undefined) + (lambda (s_112 phase_110 lift-ctx_1) (begin 'pre-wrap s_112)) + pre-wrap27_0))) + (let-values (((shift-wrap_0) + (if (eq? shift-wrap28_0 unsafe-undefined) + (lambda (s_487 phase_111 lift-ctx_2) (begin 'shift-wrap s_487)) + shift-wrap28_0))) + (let-values (((post-wrap_0) + (if (eq? post-wrap29_0 unsafe-undefined) + (lambda (s_212 phase_112 lift-ctx_3) (begin 'post-wrap s_212)) + post-wrap29_0))) + (let-values () + (let-values ((() + (begin + (if (syntax?$1 s_78) + (void) + (let-values () (raise-argument-error who_21 "syntax?" s_78))) + (values)))) + (let-values ((() (begin (more-checks_0) (values)))) + (let-values (((ctx_65) + (let-values (((who102_0) who_21)) + (get-current-expand-context.1 #f who102_0)))) + (let-values (((lift-ctx_4) (get-lift-ctx_0 ctx_65))) + (let-values ((() + (begin + (if lift-ctx_4 + (void) + (let-values () + (raise-arguments-error + who_21 + no-target-msg_0 + "form to lift" + s_78))) + (values)))) + (let-values (((phase_113) (expand-context-phase ctx_65))) + (let-values (((wrt-phase_3) (get-wrt-phase_0 lift-ctx_4))) + (let-values (((added-s_2) + (if intro?_0 (flip-introduction-scopes s_78 ctx_65) s_78))) + (let-values (((pre-s_0) (pre-wrap_0 added-s_2 phase_113 lift-ctx_4))) + (let-values (((shift-s_0) + (let-values (((start_51) phase_113) + ((end_38) wrt-phase_3) + ((inc_32) -1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range start_51 end_38 inc_32))) + ((letrec-values (((for-loop_285) + (lambda (s_116 pos_123) + (begin + 'for-loop + (if (> pos_123 end_38) + (let-values (((phase_114) + pos_123)) + (let-values (((s_488) + (let-values (((s_119) + s_116)) + (let-values (((s_489) + (let-values () + (shift-wrap_0 + s_119 + (sub1 + phase_114) + lift-ctx_4)))) + (values + s_489))))) + (if (not #f) + (for-loop_285 + s_488 + (+ pos_123 inc_32)) + s_488))) + s_116))))) + for-loop_285) + pre-s_0 + start_51))))) + (let-values (((post-s_1) + (post-wrap_0 shift-s_0 wrt-phase_3 lift-ctx_4))) + (begin + (if log-tag_0 + (let-values () + (let-values (((obs_45) (expand-context-observer ctx_65))) + (if obs_45 + (let-values () + (let-values () + (call-expand-observe + obs_45 + log-tag_0 + s_78 + added-s_2 + post-s_1))) + (void)))) + (void)) + (add-lifted!_0 lift-ctx_4 post-s_1 wrt-phase_3) + (values ctx_65 post-s_1))))))))))))))))))))))))))))) + (define-values + (1/syntax-local-lift-require) + (lambda (s_490 use-s_2) + (begin + 'syntax-local-lift-require + (let-values () + (let-values () + (let-values (((sc_34) (new-scope 'lifted-require))) + (let-values (((ctx_66 added-s_3) + (let-values (((who104_0) 'syntax-local-lift-require) + ((temp105_0) (datum->syntax$1 #f s_490)) + ((temp106_1) "could not find target context") + ((temp107_1) #f) + ((temp108_0) + (lambda () + (if (syntax?$1 use-s_2) + (void) + (let-values () + (raise-argument-error 'syntax-local-lift-require "syntax?" use-s_2))))) + ((expand-context-require-lifts109_0) expand-context-require-lifts) + ((require-lift-context-wrt-phase110_0) require-lift-context-wrt-phase) + ((add-lifted-require!111_0) add-lifted-require!) + ((temp112_0) + (lambda (s_223 phase_115 require-lift-ctx_0) + (require-spec-shift-for-syntax s_223))) + ((temp113_1) + (lambda (s_491 phase_54 require-lift-ctx_1) + (wrap-form '#%require (add-scope s_491 sc_34) phase_54)))) + (do-local-lift-to-module.1 + add-lifted-require!111_0 + expand-context-require-lifts109_0 + require-lift-context-wrt-phase110_0 + temp107_1 + #f + temp108_0 + temp106_1 + temp113_1 + unsafe-undefined + temp112_0 + who104_0 + temp105_0)))) + (let-values ((() + (begin + (with-continuation-mark + current-expand-context + #f + (let-values () + (namespace-visit-available-modules! + (expand-context-namespace ctx_66) + (expand-context-phase ctx_66)))) + (values)))) + (let-values (((result-s_6) (add-scope use-s_2 sc_34))) + (begin + (let-values (((obs_23) (expand-context-observer ctx_66))) + (if obs_23 + (let-values () + (let-values () (call-expand-observe obs_23 'lift-require added-s_3 use-s_2 result-s_6))) + (void))) + result-s_6)))))))))) + (define-values + (1/syntax-local-lift-provide) + (lambda (s_492) + (begin + 'syntax-local-lift-provide + (let-values () + (let-values () + (let-values (((ctx_67 result-s_7) + (let-values (((who115_0) 'syntax-local-lift-provide) + ((s116_0) s_492) + ((temp117_0) "not expanding in a module run-time body") + ((expand-context-to-module-lifts118_0) expand-context-to-module-lifts) + ((to-module-lift-context-wrt-phase119_0) to-module-lift-context-wrt-phase) + ((add-lifted-to-module-provide!120_0) add-lifted-to-module-provide!) + ((temp121_0) + (lambda (s_493 phase_116 to-module-lift-ctx_0) (wrap-form 'for-syntax s_493 #f))) + ((temp122_0) + (lambda (s_224 phase_117 to-module-lift-ctx_1) + (wrap-form '#%provide s_224 phase_117)))) + (do-local-lift-to-module.1 + add-lifted-to-module-provide!120_0 + expand-context-to-module-lifts118_0 + to-module-lift-context-wrt-phase119_0 + #t + #f + void + temp117_0 + temp122_0 + unsafe-undefined + temp121_0 + who115_0 + s116_0)))) + (let-values (((obs_46) (expand-context-observer ctx_67))) + (if obs_46 + (let-values () (let-values () (call-expand-observe obs_46 'lift-provide result-s_7))) + (void))))))))) + (define-values + (1/syntax-local-lift-module-end-declaration) + (lambda (s_494) + (begin + 'syntax-local-lift-module-end-declaration + (let-values () + (let-values () + (let-values (((ctx_68 also-s_0) + (let-values (((who124_0) 'syntax-local-lift-module-end-declaration) + ((s125_0) s_494) + ((temp126_1) 'lift-end-decl) + ((temp127_0) + "not currently transforming an expression within a module declaration") + ((expand-context-to-module-lifts128_0) expand-context-to-module-lifts) + ((temp129_3) (lambda (lift-ctx_5) 0)) + ((add-lifted-to-module-end!130_0) add-lifted-to-module-end!) + ((temp131_2) + (lambda (orig-s_35 phase_118 to-module-lift-ctx_2) + (if (to-module-lift-context-end-as-expressions? to-module-lift-ctx_2) + (wrap-form '#%expression orig-s_35 phase_118) + orig-s_35))) + ((temp132_2) + (lambda (s_495 phase_119 to-module-lift-ctx_3) + (wrap-form 'begin-for-syntax s_495 phase_119)))) + (do-local-lift-to-module.1 + add-lifted-to-module-end!130_0 + expand-context-to-module-lifts128_0 + temp129_3 + #t + temp126_1 + void + temp127_0 + unsafe-undefined + temp131_2 + temp132_2 + who124_0 + s125_0)))) + (void))))))) + (define-values + (wrap-form) + (lambda (sym_74 s_186 phase_55) + (begin + (datum->syntax$1 + #f + (list (datum->syntax$1 (if phase_55 (syntax-shift-phase-level$1 core-stx phase_55) #f) sym_74) s_186))))) + (define-values + (1/syntax-local-module-defined-identifiers) + (lambda () + (begin + 'syntax-local-module-defined-identifiers + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/syntax-local-transforming-module-provides?) + (void) + (let-values () + (raise-arguments-error + 'syntax-local-module-defined-identifiers + "not currently transforming module provides"))) + (values)))) + (let-values (((ctx_69) + (let-values (((temp134_0) 'syntax-local-module-defined-identifiers)) + (get-current-expand-context.1 #f temp134_0)))) + (requireds->phase-ht (extract-module-definitions (expand-context-requires+provides ctx_69)))))))))) + (define-values + (1/syntax-local-module-required-identifiers) + (lambda (mod-path_8 phase+space-shift_10) + (begin + 'syntax-local-module-required-identifiers + (let-values () + (let-values () + (let-values ((() + (begin + (if (let-values (((or-part_299) (not mod-path_8))) + (if or-part_299 or-part_299 (1/module-path? mod-path_8))) + (void) + (let-values () + (raise-argument-error + 'syntax-local-module-required-identifiers + "(or/c module-path? #f)" + mod-path_8))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_300) (eq? phase+space-shift_10 #t))) + (if or-part_300 or-part_300 (phase+space-shift? phase+space-shift_10))) + (void) + (let-values () + (raise-argument-error + 'syntax-local-module-required-identifiers + (format "(or/c ~a #t)" phase+space-shift?-string) + phase+space-shift_10))) + (values)))) + (let-values ((() + (begin + (if (1/syntax-local-transforming-module-provides?) + (void) + (let-values () + (raise-arguments-error + 'syntax-local-module-required-identifiers + "not currently transforming module provides"))) + (values)))) + (let-values (((ctx_70) + (let-values (((temp136_1) 'syntax-local-module-required-identifiers)) + (get-current-expand-context.1 #f temp136_1)))) + (let-values (((requires+provides_6) (expand-context-requires+provides ctx_70))) + (let-values (((mpi_53) (if mod-path_8 (module-path->mpi/context mod-path_8 ctx_70) #f))) + (let-values (((requireds_0) + (extract-all-module-requires + requires+provides_6 + mpi_53 + (if (eq? phase+space-shift_10 #t) + 'all + (intern-phase+space-shift phase+space-shift_10))))) + (if requireds_0 + (reverse$1 + (let-values (((ht_152) (requireds->phase-ht requireds_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_152))) + ((letrec-values (((for-loop_286) + (lambda (fold-var_136 i_13) + (begin + 'for-loop + (if i_13 + (let-values (((phase+space-shift_11 ids_29) + (hash-iterate-key+value ht_152 i_13))) + (let-values (((fold-var_264) + (let-values (((fold-var_265) fold-var_136)) + (let-values (((fold-var_266) + (let-values () + (cons + (let-values () + (cons + phase+space-shift_11 + ids_29)) + fold-var_265)))) + (values fold-var_266))))) + (if (not #f) + (for-loop_286 fold-var_264 (hash-iterate-next ht_152 i_13)) + fold-var_264))) + fold-var_136))))) + for-loop_286) + null + (hash-iterate-first ht_152))))) + #f))))))))))))) + (define-values + (requireds->phase-ht) + (lambda (requireds_1) + (begin + (let-values (((lst_309) requireds_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_309))) + ((letrec-values (((for-loop_287) + (lambda (ht_0 lst_310) + (begin + 'for-loop + (if (pair? lst_310) + (let-values (((r_44) (unsafe-car lst_310)) ((rest_182) (unsafe-cdr lst_310))) + (let-values (((ht_153) + (let-values (((ht_1) ht_0)) + (let-values (((ht_52) + (let-values () + (hash-update + ht_1 + (required-phase+space r_44) + (lambda (l_61) (cons (required-id r_44) l_61)) + null)))) + (values ht_52))))) + (if (not #f) (for-loop_287 ht_153 rest_182) ht_153))) + ht_0))))) + for-loop_287) + (hasheqv) + lst_309)))))) + (define-values + (1/syntax-local-module-exports) + (lambda (mod-path_9) + (begin + 'syntax-local-module-exports + (let-values () + (let-values () + (let-values ((() + (begin + (if (let-values (((or-part_301) (1/module-path? mod-path_9))) + (if or-part_301 + or-part_301 + (if (syntax?$1 mod-path_9) (1/module-path? (syntax->datum$1 mod-path_9)) #f))) + (void) + (let-values () + (raise-argument-error + 'syntax-local-module-exports + (string-append + "(or/c module-path?\n" + " (and/c syntax?\n" + " (lambda (stx)\n" + " (module-path? (syntax->datum stx)))))") + mod-path_9))) + (values)))) + (let-values (((ctx_71) + (let-values (((temp138_1) 'syntax-local-module-exports)) + (get-current-expand-context.1 #f temp138_1)))) + (let-values (((ns_76) (expand-context-namespace ctx_71))) + (let-values (((mod-name_19) + (1/module-path-index-resolve + (module-path->mpi/context + (if (syntax?$1 mod-path_9) (syntax->datum$1 mod-path_9) mod-path_9) + ctx_71) + #t))) + (let-values (((m_19) (namespace->module ns_76 mod-name_19))) + (begin + (if m_19 + (void) + (let-values () (raise-unknown-module-error 'syntax-local-module-exports mod-name_19))) + (reverse$1 + (let-values (((ht_4) (module-provides m_19))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_4))) + ((letrec-values (((for-loop_288) + (lambda (fold-var_267 i_200) + (begin + 'for-loop + (if i_200 + (let-values (((phase_120 syms_22) + (hash-iterate-key+value ht_4 i_200))) + (let-values (((fold-var_268) + (let-values (((fold-var_269) fold-var_267)) + (let-values (((fold-var_270) + (let-values () + (cons + (let-values () + (cons + phase_120 + (reverse$1 + (let-values (((ht_154) + syms_22)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash-keys + ht_154))) + ((letrec-values (((for-loop_289) + (lambda (fold-var_271 + i_201) + (begin + 'for-loop + (if i_201 + (let-values (((sym_75) + (hash-iterate-key + ht_154 + i_201))) + (let-values (((fold-var_272) + (let-values (((fold-var_273) + fold-var_271)) + (let-values (((fold-var_274) + (let-values () + (cons + (let-values () + sym_75) + fold-var_273)))) + (values + fold-var_274))))) + (if (not + #f) + (for-loop_289 + fold-var_272 + (hash-iterate-next + ht_154 + i_201)) + fold-var_272))) + fold-var_271))))) + for-loop_289) + null + (hash-iterate-first + ht_154))))))) + fold-var_269)))) + (values fold-var_270))))) + (if (not #f) + (for-loop_288 fold-var_268 (hash-iterate-next ht_4 i_200)) + fold-var_268))) + fold-var_267))))) + for-loop_288) + null + (hash-iterate-first ht_4)))))))))))))))) + (define-values + (1/syntax-local-submodules) + (lambda () + (begin + 'syntax-local-submodules + (let-values () + (let-values () + (let-values (((ctx_72) + (let-values (((who140_0) 'syntax-local-submodules)) + (get-current-expand-context.1 #f who140_0)))) + (let-values (((submods_3) (expand-context-declared-submodule-names ctx_72))) + (reverse$1 + (let-values (((ht_155) submods_3)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_155))) + ((letrec-values (((for-loop_290) + (lambda (fold-var_275 i_202) + (begin + 'for-loop + (if i_202 + (let-values (((name_68 kind_8) (hash-iterate-key+value ht_155 i_202))) + (let-values (((fold-var_276) + (let-values (((fold-var_277) fold-var_275)) + (if (eq? kind_8 'module) + (let-values (((fold-var_278) fold-var_277)) + (let-values (((fold-var_279) + (let-values () + (cons + (let-values () name_68) + fold-var_278)))) + (values fold-var_279))) + fold-var_277)))) + (if (not #f) + (for-loop_290 fold-var_276 (hash-iterate-next ht_155 i_202)) + fold-var_276))) + fold-var_275))))) + for-loop_290) + null + (hash-iterate-first ht_155)))))))))))) + (define-values + (1/syntax-local-module-interned-scope-symbols) + (lambda () + (begin + 'syntax-local-module-interned-scope-symbols + (let-values () + (let-values () + (begin + (void + (let-values (((who142_0) 'syntax-local-module-interned-scope-symbols)) + (get-current-expand-context.1 #f who142_0))) + (interned-scope-symbols))))))) + (define-values + (syntax-local-expand-observer) + (lambda () + (begin + (let-values () + (let-values () + (let-values (((ctx_73) + (let-values (((temp144_2) 'syntax-local-expand-observer)) + (get-current-expand-context.1 #f temp144_2)))) + (expand-context-observer ctx_73))))))) + (define-values + (1/syntax-local-get-shadower) + (let-values (((syntax-local-get-shadower_0) + (lambda (id44_0 only-generated?43_0) + (begin + 'syntax-local-get-shadower + (let-values (((id_97) id44_0)) + (let-values () + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (identifier? id_97) + (void) + (let-values () + (raise-argument-error + 'syntax-local-get-shadower + "identifier?" + id_97))) + (values)))) + (let-values (((ctx_74) + (let-values (((who146_0) 'syntax-local-get-shadower)) + (get-current-expand-context.1 #f who146_0)))) + (let-values (((new-id_1) (add-scopes id_97 (expand-context-scopes ctx_74)))) + (if (syntax-clean? id_97) new-id_1 (syntax-taint$1 new-id_1)))))))))))))) + (case-lambda + ((id_98) (begin 'syntax-local-get-shadower (syntax-local-get-shadower_0 id_98 #f))) + ((id_41 only-generated?43_1) (syntax-local-get-shadower_0 id_41 only-generated?43_1))))) + (define-values + (1/syntax-source) + (lambda (s_48) + (begin + 'syntax-source + (let-values ((() + (begin + (if (syntax?$1 s_48) (void) (let-values () (raise-argument-error 'syntax-source "syntax?" s_48))) + (values)))) + (let-values (((srcloc_10) (1/syntax-srcloc s_48))) (if srcloc_10 (srcloc-source srcloc_10) #f)))))) + (define-values + (1/syntax-line) + (lambda (s_496) + (begin + 'syntax-line + (let-values ((() + (begin + (if (syntax?$1 s_496) (void) (let-values () (raise-argument-error 'syntax-line "syntax?" s_496))) + (values)))) + (let-values (((srcloc_11) (1/syntax-srcloc s_496))) (if srcloc_11 (srcloc-line srcloc_11) #f)))))) + (define-values + (1/syntax-column) + (lambda (s_47) + (begin + 'syntax-column + (let-values ((() + (begin + (if (syntax?$1 s_47) (void) (let-values () (raise-argument-error 'syntax-column "syntax?" s_47))) + (values)))) + (let-values (((srcloc_12) (1/syntax-srcloc s_47))) (if srcloc_12 (srcloc-column srcloc_12) #f)))))) + (define-values + (1/syntax-position) + (lambda (s_5) + (begin + 'syntax-position + (let-values ((() + (begin + (if (syntax?$1 s_5) (void) (let-values () (raise-argument-error 'syntax-position "syntax?" s_5))) + (values)))) + (let-values (((srcloc_13) (1/syntax-srcloc s_5))) (if srcloc_13 (srcloc-position srcloc_13) #f)))))) + (define-values + (1/syntax-span) + (lambda (s_176) + (begin + 'syntax-span + (let-values ((() + (begin + (if (syntax?$1 s_176) (void) (let-values () (raise-argument-error 'syntax-span "syntax?" s_176))) + (values)))) + (let-values (((srcloc_14) (1/syntax-srcloc s_176))) (if srcloc_14 (srcloc-span srcloc_14) #f)))))) + (define-values + (encoded-srcloc?) + (lambda (v_162) + (begin + (let-values (((or-part_144) + (if (list? v_162) (if (= (length v_162) 5) (srcloc-vector? (list->vector v_162)) #f) #f))) + (if or-part_144 + or-part_144 + (if (vector? v_162) (if (= (vector-length v_162) 5) (srcloc-vector? v_162) #f) #f)))))) + (define-values + (srcloc-vector?) + (lambda (v_32) + (begin + (if (let-values (((or-part_4) (not (vector-ref v_32 1)))) + (if or-part_4 or-part_4 (exact-positive-integer? (vector-ref v_32 1)))) + (if (let-values (((or-part_5) (not (vector-ref v_32 2)))) + (if or-part_5 or-part_5 (exact-nonnegative-integer? (vector-ref v_32 2)))) + (if (let-values (((or-part_6) (not (vector-ref v_32 3)))) + (if or-part_6 or-part_6 (exact-positive-integer? (vector-ref v_32 3)))) + (let-values (((or-part_7) (not (vector-ref v_32 4)))) + (if or-part_7 or-part_7 (exact-nonnegative-integer? (vector-ref v_32 4)))) + #f) + #f) + #f)))) + (define-values + (to-srcloc-stx) + (lambda (v_66) + (begin + (if (srcloc? v_66) + (let-values () + (let-values (((the-struct_65) empty-syntax)) + (if (syntax?$1 the-struct_65) + (let-values (((srcloc1_4) v_66)) + (syntax2.1 + (syntax-content* the-struct_65) + (syntax-scopes the-struct_65) + (syntax-shifted-multi-scopes the-struct_65) + (syntax-mpi-shifts the-struct_65) + srcloc1_4 + (syntax-props the-struct_65) + (syntax-inspector the-struct_65))) + (raise-argument-error 'struct-copy "syntax?" the-struct_65)))) + (if (pair? v_66) + (let-values () (to-srcloc-stx (list->vector v_66))) + (if (vector? v_66) + (let-values () + (let-values (((the-struct_66) empty-syntax)) + (if (syntax?$1 the-struct_66) + (let-values (((srcloc2_0) + (srcloc + (vector-ref v_66 0) + (vector-ref v_66 1) + (vector-ref v_66 2) + (vector-ref v_66 3) + (vector-ref v_66 4)))) + (syntax2.1 + (syntax-content* the-struct_66) + (syntax-scopes the-struct_66) + (syntax-shifted-multi-scopes the-struct_66) + (syntax-mpi-shifts the-struct_66) + srcloc2_0 + (syntax-props the-struct_66) + (syntax-inspector the-struct_66))) + (raise-argument-error 'struct-copy "syntax?" the-struct_66)))) + (let-values () v_66))))))) + (define-values + (1/syntax-e) + (lambda (s_0) + (begin + 'syntax-e + (let-values () + (let-values () + (begin + (if (syntax?$1 s_0) (void) (let-values () (raise-argument-error 'syntax-e "syntax?" s_0))) + (syntax-e$1 s_0))))))) + (define-values + (1/syntax->datum) + (lambda (s_10) + (begin + 'syntax->datum + (let-values () + (let-values () + (begin + (if (syntax?$1 s_10) (void) (let-values () (raise-argument-error 'syntax->datum "syntax?" s_10))) + (syntax->datum$1 s_10))))))) + (define-values (maybe-syntax->datum) (lambda (s_11) (begin (if (syntax?$1 s_11) (syntax->datum$1 s_11) s_11)))) + (define-values + (1/datum->syntax) + (let-values (((datum->syntax_1) + (lambda (stx-c4_0 s5_2 stx-l1_0 stx-p2_0 ignored3_0) + (begin + 'datum->syntax + (let-values (((stx-c_5) stx-c4_0)) + (let-values (((s_13) s5_2)) + (let-values (((stx-l_3) stx-l1_0)) + (let-values (((stx-p_1) stx-p2_0)) + (let-values () + (let-values () + (let-values () + (let-values () + (begin + (if (let-values (((or-part_83) (not stx-c_5))) + (if or-part_83 or-part_83 (syntax?$1 stx-c_5))) + (void) + (let-values () + (raise-argument-error 'datum->syntax "(or/c #f syntax?)" stx-c_5))) + (if (let-values (((or-part_58) (not stx-l_3))) + (if or-part_58 + or-part_58 + (let-values (((or-part_34) (syntax?$1 stx-l_3))) + (if or-part_34 + or-part_34 + (let-values (((or-part_84) (srcloc? stx-l_3))) + (if or-part_84 or-part_84 (encoded-srcloc? stx-l_3))))))) + (void) + (let-values () + (raise-argument-error + 'datum->syntax + (string-append + "(or/c #f syntax?\n" + " srcloc?\n" + " (list/c any/c\n" + " (or/c exact-positive-integer? #f)\n" + " (or/c exact-nonnegative-integer? #f)\n" + " (or/c exact-positive-integer? #f)\n" + " (or/c exact-nonnegative-integer? #f))\n" + " (vector/c any/c\n" + " (or/c exact-positive-integer? #f)\n" + " (or/c exact-nonnegative-integer? #f)\n" + " (or/c exact-positive-integer? #f)\n" + " (or/c exact-nonnegative-integer? #f)))") + stx-l_3))) + (if (let-values (((or-part_73) (not stx-p_1))) + (if or-part_73 or-part_73 (syntax?$1 stx-p_1))) + (void) + (let-values () + (raise-argument-error 'datum->syntax "(or/c #f syntax?)" stx-p_1))) + (datum->syntax$1 stx-c_5 s_13 (to-srcloc-stx stx-l_3) stx-p_1)))))))))))))) + (case-lambda + ((stx-c_6 s_176) (begin 'datum->syntax (datum->syntax_1 stx-c_6 s_176 #f #f #f))) + ((stx-c_7 s_497 stx-l_4 stx-p_2 ignored3_1) (datum->syntax_1 stx-c_7 s_497 stx-l_4 stx-p_2 ignored3_1)) + ((stx-c_8 s_498 stx-l_5 stx-p2_1) (datum->syntax_1 stx-c_8 s_498 stx-l_5 stx-p2_1 #f)) + ((stx-c_9 s_461 stx-l1_1) (datum->syntax_1 stx-c_9 s_461 stx-l1_1 #f #f))))) + (define-values + (1/syntax-binding-set) + (lambda () (begin 'syntax-binding-set (let-values () (let-values () (syntax-binding-set1.1 null)))))) + (define-values + (1/syntax-binding-set-extend) + (let-values (((syntax-binding-set-extend_0) + (lambda (bs13_0 + as-sym14_0 + as-phase15_0 + mpi16_0 + sym6_2 + phase7_1 + nominal-mpi8_0 + nominal-phase+space9_0 + nominal-sym10_0 + nominal-require-phase+space-shift11_0 + insp12_0) + (begin + 'syntax-binding-set-extend + (let-values (((bs_4) bs13_0)) + (let-values (((as-sym_1) as-sym14_0)) + (let-values (((as-phase_1) as-phase15_0)) + (let-values (((mpi_54) mpi16_0)) + (let-values (((sym_60) (if (eq? sym6_2 unsafe-undefined) as-sym_1 sym6_2))) + (let-values (((phase_78) (if (eq? phase7_1 unsafe-undefined) as-phase_1 phase7_1))) + (let-values (((nominal-mpi_1) + (if (eq? nominal-mpi8_0 unsafe-undefined) mpi_54 nominal-mpi8_0))) + (let-values (((nominal-phase+space_4) + (if (eq? nominal-phase+space9_0 unsafe-undefined) + phase_78 + nominal-phase+space9_0))) + (let-values (((nominal-sym_5) + (if (eq? nominal-sym10_0 unsafe-undefined) sym_60 nominal-sym10_0))) + (let-values (((nominal-require-phase+space-shift_5) + nominal-require-phase+space-shift11_0)) + (let-values (((insp_17) insp12_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (1/syntax-binding-set? bs_4) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "syntax-binding-set?" + bs_4))) + (if (symbol? as-sym_1) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "symbol?" + as-sym_1))) + (if (phase? as-phase_1) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + phase?-string + as-phase_1))) + (if (1/module-path-index? mpi_54) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "module-path-index?" + mpi_54))) + (if (symbol? sym_60) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "symbol?" + sym_60))) + (if (phase? phase_78) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + phase?-string + phase_78))) + (if (1/module-path-index? nominal-mpi_1) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "module-path-index?" + nominal-mpi_1))) + (if (phase+space? nominal-phase+space_4) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + phase+space?-string + nominal-phase+space_4))) + (if (symbol? nominal-sym_5) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "symbol?" + nominal-sym_5))) + (if (phase+space-shift? nominal-require-phase+space-shift_5) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + phase+space-shift?-string + nominal-require-phase+space-shift_5))) + (if ((lambda (x_88) + (let-values (((or-part_77) (not x_88))) + (if or-part_77 or-part_77 (inspector? x_88)))) + insp_17) + (void) + (let-values () + (raise-argument-error + 'syntax-binding-set-extend + "(or/c inspector? #f)" + insp_17))) + (syntax-binding-set-extend$1 + bs_4 + as-sym_1 + as-phase_1 + mpi_54 + sym_60 + phase_78 + nominal-mpi_1 + (intern-phase+space nominal-phase+space_4) + nominal-sym_5 + (intern-phase+space-shift nominal-require-phase+space-shift_5) + insp_17)))))))))))))))))))) + (case-lambda + ((bs_5 as-sym_2 as-phase_2 mpi_55) + (begin + 'syntax-binding-set-extend + (syntax-binding-set-extend_0 + bs_5 + as-sym_2 + as-phase_2 + mpi_55 + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + 0 + #f))) + ((bs_6 + as-sym_3 + as-phase_3 + mpi_56 + sym_76 + phase_121 + nominal-mpi_2 + nominal-phase+space_5 + nominal-sym_6 + nominal-require-phase+space-shift_6 + insp12_1) + (syntax-binding-set-extend_0 + bs_6 + as-sym_3 + as-phase_3 + mpi_56 + sym_76 + phase_121 + nominal-mpi_2 + nominal-phase+space_5 + nominal-sym_6 + nominal-require-phase+space-shift_6 + insp12_1)) + ((bs_7 + as-sym_4 + as-phase_4 + mpi_57 + sym_77 + phase_122 + nominal-mpi_3 + nominal-phase+space_6 + nominal-sym_7 + nominal-require-phase+space-shift11_1) + (syntax-binding-set-extend_0 + bs_7 + as-sym_4 + as-phase_4 + mpi_57 + sym_77 + phase_122 + nominal-mpi_3 + nominal-phase+space_6 + nominal-sym_7 + nominal-require-phase+space-shift11_1 + #f)) + ((bs_8 as-sym_5 as-phase_5 mpi_58 sym_78 phase_123 nominal-mpi_4 nominal-phase+space_7 nominal-sym10_1) + (syntax-binding-set-extend_0 + bs_8 + as-sym_5 + as-phase_5 + mpi_58 + sym_78 + phase_123 + nominal-mpi_4 + nominal-phase+space_7 + nominal-sym10_1 + 0 + #f)) + ((bs_9 as-sym_6 as-phase_6 mpi_59 sym_1 phase_124 nominal-mpi_5 nominal-phase+space9_1) + (syntax-binding-set-extend_0 + bs_9 + as-sym_6 + as-phase_6 + mpi_59 + sym_1 + phase_124 + nominal-mpi_5 + nominal-phase+space9_1 + unsafe-undefined + 0 + #f)) + ((bs_10 as-sym_7 as-phase_7 mpi_60 sym_58 phase_125 nominal-mpi8_1) + (syntax-binding-set-extend_0 + bs_10 + as-sym_7 + as-phase_7 + mpi_60 + sym_58 + phase_125 + nominal-mpi8_1 + unsafe-undefined + unsafe-undefined + 0 + #f)) + ((bs_11 as-sym_8 as-phase_8 mpi_1 sym_79 phase7_2) + (syntax-binding-set-extend_0 + bs_11 + as-sym_8 + as-phase_8 + mpi_1 + sym_79 + phase7_2 + unsafe-undefined + unsafe-undefined + unsafe-undefined + 0 + #f)) + ((bs_12 as-sym_9 as-phase_9 mpi_4 sym6_3) + (syntax-binding-set-extend_0 + bs_12 + as-sym_9 + as-phase_9 + mpi_4 + sym6_3 + unsafe-undefined + unsafe-undefined + unsafe-undefined + unsafe-undefined + 0 + #f))))) + (define-values + (1/syntax-binding-set->syntax) + (lambda (bs_13 datum_3) + (begin + 'syntax-binding-set->syntax + (let-values () + (let-values () + (begin + (if (1/syntax-binding-set? bs_13) + (void) + (let-values () (raise-argument-error 'syntax-binding-set->syntax "syntax-binding-set?" bs_13))) + (syntax-binding-set->syntax$1 bs_13 datum_3))))))) + (define-values + (1/syntax->list) + (lambda (s_174) + (begin + 'syntax->list + (let-values () + (let-values () + (begin + (if (syntax?$1 s_174) (void) (let-values () (raise-argument-error 'syntax->list "syntax?" s_174))) + (syntax->list$1 s_174))))))) + (define-values + (1/syntax-original?) + (lambda (s_499) + (begin + 'syntax-original? + (let-values () + (let-values () + (begin + (if (syntax?$1 s_499) (void) (let-values () (raise-argument-error 'syntax-original? "syntax?" s_499))) + (if (syntax-property$1 s_499 original-property-sym) (not (syntax-any-macro-scopes? s_499)) #f))))))) + (define-values + (1/bound-identifier=?) + (let-values (((bound-identifier=?_0) + (lambda (a18_0 b19_0 phase17_1) + (begin + 'bound-identifier=? + (let-values (((a_49) a18_0)) + (let-values (((b_98) b19_0)) + (let-values (((phase_126) + (if (eq? phase17_1 unsafe-undefined) (1/syntax-local-phase-level) phase17_1))) + (let-values () + (let-values () + (let-values () + (begin + (if (identifier? a_49) + (void) + (let-values () (raise-argument-error 'bound-identifier=? "identifier?" a_49))) + (if (identifier? b_98) + (void) + (let-values () (raise-argument-error 'bound-identifier=? "identifier?" b_98))) + (if (phase? phase_126) + (void) + (let-values () (raise-argument-error 'bound-identifier=? phase?-string phase_126))) + (bound-identifier=?$1 a_49 b_98 phase_126)))))))))))) + (case-lambda + ((a_50 b_99) (begin 'bound-identifier=? (bound-identifier=?_0 a_50 b_99 unsafe-undefined))) + ((a_51 b_100 phase17_2) (bound-identifier=?_0 a_51 b_100 phase17_2))))) + (define-values + (1/free-identifier=?) + (let-values (((free-identifier=?_0) + (lambda (a22_0 b23_0 a-phase20_0 b-phase21_0) + (begin + 'free-identifier=? + (let-values (((a_52) a22_0)) + (let-values (((b_101) b23_0)) + (let-values (((a-phase_1) + (if (eq? a-phase20_0 unsafe-undefined) (1/syntax-local-phase-level) a-phase20_0))) + (let-values (((b-phase_1) (if (eq? b-phase21_0 unsafe-undefined) a-phase_1 b-phase21_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (identifier? a_52) + (void) + (let-values () (raise-argument-error 'free-identifier=? "identifier?" a_52))) + (if (identifier? b_101) + (void) + (let-values () (raise-argument-error 'free-identifier=? "identifier?" b_101))) + (if (phase? a-phase_1) + (void) + (let-values () (raise-argument-error 'free-identifier=? phase?-string a-phase_1))) + (if (phase? b-phase_1) + (void) + (let-values () (raise-argument-error 'free-identifier=? phase?-string b-phase_1))) + (free-identifier=?$1 a_52 b_101 a-phase_1 b-phase_1))))))))))))) + (case-lambda + ((a_53 b_102) (begin 'free-identifier=? (free-identifier=?_0 a_53 b_102 unsafe-undefined unsafe-undefined))) + ((a_54 b_97 a-phase_2 b-phase21_1) (free-identifier=?_0 a_54 b_97 a-phase_2 b-phase21_1)) + ((a_55 b_103 a-phase20_1) (free-identifier=?_0 a_55 b_103 a-phase20_1 unsafe-undefined))))) + (define-values + (1/free-transformer-identifier=?) + (lambda (a_56 b_104) + (begin + 'free-transformer-identifier=? + (let-values () + (let-values () + (let-values ((() + (begin + (if (identifier? a_56) + (void) + (let-values () (raise-argument-error 'free-transformer-identifier=? "identifier?" a_56))) + (values)))) + (let-values ((() + (begin + (if (identifier? b_104) + (void) + (let-values () (raise-argument-error 'free-transformer-identifier=? "identifier?" b_104))) + (values)))) + (let-values (((phase_87) (add1 (1/syntax-local-phase-level)))) + (free-identifier=?$1 a_56 b_104 phase_87 phase_87))))))))) + (define-values + (1/free-template-identifier=?) + (lambda (a_57 b_40) + (begin + 'free-template-identifier=? + (let-values () + (let-values () + (let-values ((() + (begin + (if (identifier? a_57) + (void) + (let-values () (raise-argument-error 'free-template-identifier=? "identifier?" a_57))) + (values)))) + (let-values ((() + (begin + (if (identifier? b_40) + (void) + (let-values () (raise-argument-error 'free-template-identifier=? "identifier?" b_40))) + (values)))) + (let-values (((phase_127) (sub1 (1/syntax-local-phase-level)))) + (free-identifier=?$1 a_57 b_40 phase_127 phase_127))))))))) + (define-values + (1/free-label-identifier=?) + (lambda (a_58 b_105) + (begin + 'free-label-identifier=? + (let-values () + (let-values () + (begin + (if (identifier? a_58) + (void) + (let-values () (raise-argument-error 'free-label-identifier=? "identifier?" a_58))) + (if (identifier? b_105) + (void) + (let-values () (raise-argument-error 'free-label-identifier=? "identifier?" b_105))) + (free-identifier=?$1 a_58 b_105 #f #f))))))) + (define-values + (1/identifier-binding) + (let-values (((identifier-binding_1) + (lambda (id26_1 phase24_0 top-level-symbol?25_0) + (begin + 'identifier-binding + (let-values (((id_99) id26_1)) + (let-values (((phase_128) + (if (eq? phase24_0 unsafe-undefined) (1/syntax-local-phase-level) phase24_0))) + (let-values (((top-level-symbol?_1) top-level-symbol?25_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (identifier? id_99) + (void) + (let-values () (raise-argument-error 'identifier-binding "identifier?" id_99))) + (if (phase? phase_128) + (void) + (let-values () (raise-argument-error 'identifier-binding phase?-string phase_128))) + (identifier-binding$1 id_99 phase_128 top-level-symbol?_1)))))))))))) + (case-lambda + ((id_100) (begin 'identifier-binding (identifier-binding_1 id_100 unsafe-undefined #f))) + ((id_101 phase_129 top-level-symbol?25_1) (identifier-binding_1 id_101 phase_129 top-level-symbol?25_1)) + ((id_102 phase24_1) (identifier-binding_1 id_102 phase24_1 #f))))) + (define-values + (1/identifier-transformer-binding) + (let-values (((identifier-transformer-binding_0) + (lambda (id28_0 phase27_0) + (begin + 'identifier-transformer-binding + (let-values (((id_103) id28_0)) + (let-values (((phase_130) + (if (eq? phase27_0 unsafe-undefined) (1/syntax-local-phase-level) phase27_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (identifier? id_103) + (void) + (let-values () + (raise-argument-error 'identifier-transformer-binding "identifier?" id_103))) + (identifier-binding$1 id_103 (if phase_130 (add1 phase_130) #f)))))))))))) + (case-lambda + ((id_104) (begin 'identifier-transformer-binding (identifier-transformer-binding_0 id_104 unsafe-undefined))) + ((id_105 phase27_1) (identifier-transformer-binding_0 id_105 phase27_1))))) + (define-values + (1/identifier-template-binding) + (lambda (id_106) + (begin + 'identifier-template-binding + (let-values () + (let-values () + (begin + (if (identifier? id_106) + (void) + (let-values () (raise-argument-error 'identifier-template-binding "identifier?" id_106))) + (identifier-binding$1 id_106 (sub1 (1/syntax-local-phase-level))))))))) + (define-values + (1/identifier-label-binding) + (lambda (id_107) + (begin + 'identifier-label-binding + (let-values () + (let-values () + (begin + (if (identifier? id_107) + (void) + (let-values () (raise-argument-error 'identifier-label-binding "identifier?" id_107))) + (identifier-binding$1 id_107 #f))))))) + (define-values + (1/identifier-binding-symbol) + (let-values (((identifier-binding-symbol_0) + (lambda (id30_2 phase29_0) + (begin + 'identifier-binding-symbol + (let-values (((id_79) id30_2)) + (let-values (((phase_131) + (if (eq? phase29_0 unsafe-undefined) (1/syntax-local-phase-level) phase29_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (identifier? id_79) + (void) + (let-values () (raise-argument-error 'identifier-binding-symbol "identifier?" id_79))) + (if (phase? phase_131) + (void) + (let-values () + (raise-argument-error 'identifier-binding-symbol phase?-string phase_131))) + (identifier-binding-symbol$1 id_79 phase_131))))))))))) + (case-lambda + ((id_108) (begin 'identifier-binding-symbol (identifier-binding-symbol_0 id_108 unsafe-undefined))) + ((id_20 phase29_1) (identifier-binding-symbol_0 id_20 phase29_1))))) + (define-values + (1/identifier-prune-lexical-context) + (let-values (((identifier-prune-lexical-context_0) + (lambda (id32_0 syms31_0) + (begin + 'identifier-prune-lexical-context + (let-values (((id_81) id32_0)) + (let-values (((syms_23) syms31_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (identifier? id_81) + (void) + (let-values () + (raise-argument-error 'identifier-prune-lexical-context "identifier?" id_81))) + (if (if (list? syms_23) (andmap2 symbol? syms_23) #f) + (void) + (let-values () + (raise-argument-error + 'identifier-prune-lexical-context + "(listof symbol?)" + syms_23))) + id_81)))))))))) + (case-lambda + ((id_109) (begin 'identifier-prune-lexical-context (identifier-prune-lexical-context_0 id_109 null))) + ((id_110 syms31_1) (identifier-prune-lexical-context_0 id_110 syms31_1))))) + (define-values + (1/syntax-debug-info) + (let-values (((syntax-debug-info_0) + (lambda (s35_0 phase33_1 all-bindings?34_0) + (begin + 'syntax-debug-info + (let-values (((s_500) s35_0)) + (let-values (((phase_53) + (if (eq? phase33_1 unsafe-undefined) (1/syntax-local-phase-level) phase33_1))) + (let-values (((all-bindings?_1) all-bindings?34_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (syntax?$1 s_500) + (void) + (let-values () (raise-argument-error 'syntax-debug-info "syntax?" s_500))) + (if (phase? phase_53) + (void) + (let-values () (raise-argument-error 'syntax-debug-info phase?-string phase_53))) + (syntax-debug-info$1 s_500 phase_53 all-bindings?_1)))))))))))) + (case-lambda + ((s_71) (begin 'syntax-debug-info (syntax-debug-info_0 s_71 unsafe-undefined #f))) + ((s_501 phase_132 all-bindings?34_1) (syntax-debug-info_0 s_501 phase_132 all-bindings?34_1)) + ((s_502 phase33_2) (syntax-debug-info_0 s_502 phase33_2 #f))))) + (define-values + (1/syntax-shift-phase-level) + (lambda (s_202 phase_133) + (begin + 'syntax-shift-phase-level + (let-values () + (let-values () + (begin + (if (syntax?$1 s_202) + (void) + (let-values () (raise-argument-error 'syntax-shift-phase-level "syntax?" s_202))) + (if (phase? phase_133) + (void) + (let-values () (raise-argument-error 'syntax-shift-phase-level phase?-string phase_133))) + (syntax-shift-phase-level$1 s_202 phase_133))))))) + (define-values + (1/syntax-track-origin) + (lambda (new-stx_8 old-stx_4 id_111) + (begin + 'syntax-track-origin + (let-values () + (let-values () + (let-values ((() + (begin + (if (syntax?$1 new-stx_8) + (void) + (let-values () (raise-argument-error 'syntax-track-origin "syntax?" new-stx_8))) + (values)))) + (let-values ((() + (begin + (if (syntax?$1 old-stx_4) + (void) + (let-values () (raise-argument-error 'syntax-track-origin "syntax?" old-stx_4))) + (values)))) + (let-values ((() + (begin + (if (identifier? id_111) + (void) + (let-values () (raise-argument-error 'syntax-track-origin "identifier?" id_111))) + (values)))) + (let-values (((s_45) (syntax-track-origin$1 new-stx_8 old-stx_4 id_111))) + (let-values (((ctx_75) + (let-values (((temp58_1) #t)) (get-current-expand-context.1 temp58_1 'unexpected)))) + (begin + (if ctx_75 + (let-values () + (let-values (((obs_47) (expand-context-observer ctx_75))) + (if obs_47 + (let-values () + (let-values () (call-expand-observe obs_47 'track-syntax 'track-origin new-stx_8 s_45))) + (void)))) + (void)) + s_45))))))))))) + (define-values + (1/namespace-attach-module) + (let-values (((namespace-attach-module_0) + (lambda (src-namespace2_0 mod-path3_1 dest-namespace1_0) + (begin + 'namespace-attach-module + (let-values (((src-namespace_0) src-namespace2_0)) + (let-values (((mod-path_10) mod-path3_1)) + (let-values (((dest-namespace_0) + (if (eq? dest-namespace1_0 unsafe-undefined) + (1/current-namespace) + dest-namespace1_0))) + (let-values () + (let-values () + (let-values () + (let-values (((who15_0) 'namespace-attach-module) + ((src-namespace16_0) src-namespace_0) + ((mod-path17_0) mod-path_10) + ((dest-namespace18_0) dest-namespace_0) + ((temp19_3) #t)) + (do-attach-module.1 + temp19_3 + who15_0 + src-namespace16_0 + mod-path17_0 + dest-namespace18_0)))))))))))) + (case-lambda + ((src-namespace_1 mod-path_11) + (begin 'namespace-attach-module (namespace-attach-module_0 src-namespace_1 mod-path_11 unsafe-undefined))) + ((src-namespace_2 mod-path_12 dest-namespace1_1) + (namespace-attach-module_0 src-namespace_2 mod-path_12 dest-namespace1_1))))) + (define-values + (1/namespace-attach-module-declaration) + (let-values (((namespace-attach-module-declaration_0) + (lambda (src-namespace5_0 mod-path6_1 dest-namespace4_0) + (begin + 'namespace-attach-module-declaration + (let-values (((src-namespace_3) src-namespace5_0)) + (let-values (((mod-path_13) mod-path6_1)) + (let-values (((dest-namespace_1) + (if (eq? dest-namespace4_0 unsafe-undefined) + (1/current-namespace) + dest-namespace4_0))) + (let-values () + (let-values () + (let-values () + (let-values (((who21_0) 'namespace-attach-module-declaration) + ((src-namespace22_0) src-namespace_3) + ((mod-path23_0) mod-path_13) + ((dest-namespace24_0) dest-namespace_1) + ((temp25_2) #f)) + (do-attach-module.1 + temp25_2 + who21_0 + src-namespace22_0 + mod-path23_0 + dest-namespace24_0)))))))))))) + (case-lambda + ((src-namespace_4 mod-path_14) + (begin + 'namespace-attach-module-declaration + (namespace-attach-module-declaration_0 src-namespace_4 mod-path_14 unsafe-undefined))) + ((src-namespace_5 mod-path_15 dest-namespace4_1) + (namespace-attach-module-declaration_0 src-namespace_5 mod-path_15 dest-namespace4_1))))) + (define-values + (do-attach-module.1) + (lambda (attach-instances?7_0 who9_1 src-namespace10_0 mod-path11_0 dest-namespace12_0) + (begin + 'do-attach-module + (let-values (((who_22) who9_1)) + (let-values (((src-namespace_6) src-namespace10_0)) + (let-values (((mod-path_16) mod-path11_0)) + (let-values (((dest-namespace_2) dest-namespace12_0)) + (let-values (((attach-instances?_0) attach-instances?7_0)) + (let-values () + (let-values ((() + (begin + (if (1/namespace? src-namespace_6) + (void) + (let-values () (raise-argument-error who_22 "namespace?" src-namespace_6))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_175) (1/module-path? mod-path_16))) + (if or-part_175 or-part_175 (1/resolved-module-path? mod-path_16))) + (void) + (let-values () + (raise-argument-error + who_22 + "(or/c module-path? resolved-module-path?)" + mod-path_16))) + (values)))) + (let-values ((() + (begin + (if (1/namespace? dest-namespace_2) + (void) + (let-values () (raise-argument-error who_22 "namespace?" dest-namespace_2))) + (values)))) + (let-values (((phase_134) (namespace-phase src-namespace_6))) + (let-values ((() + (begin + (if (eqv? phase_134 (namespace-phase dest-namespace_2)) + (void) + (let-values () + (raise-arguments-error + who_22 + "source and destination namespace phases do not match" + "source phase" + phase_134 + "destination phase" + (namespace-phase dest-namespace_2)))) + (values)))) + (let-values (((todo_0) (make-hasheq))) + (let-values (((missing_0) '#:missing)) + (let-values ((() + (begin + ((letrec-values (((loop_104) + (lambda (mpi_61 + phase_135 + attach-instances?_1 + attach-phase_0) + (begin + 'loop + (let-values (((mod-name_20) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + src-namespace_6) + (let-values () + (1/module-path-index-resolve + mpi_61))))) + (let-values (((attach-this-instance?_0) + (if attach-instances?_1 + (eqv? phase_135 attach-phase_0) + #f))) + (let-values (((m-ns_11) + (hash-ref + (hash-ref + todo_0 + mod-name_20 + '#hasheqv()) + phase_135 + missing_0))) + (if (let-values (((or-part_76) + (eq? missing_0 m-ns_11))) + (if or-part_76 + or-part_76 + (if attach-this-instance?_0 + (not m-ns_11) + #f))) + (let-values () + (let-values (((m_20) + (namespace->module + src-namespace_6 + mod-name_20))) + (begin + (if m_20 + (void) + (let-values () + (raise-arguments-error + who_22 + "module not declared (in the source namespace)" + "module name" + mod-name_20))) + (if (if (module-cross-phase-persistent? + m_20) + (if (not + (label-phase? phase_135)) + (not + (zero-phase? phase_135)) + #f) + #f) + (let-values () + (loop_104 + mpi_61 + 0 + attach-instances?_1 + 0)) + (let-values () + (let-values (((already-m_0) + (namespace->module + dest-namespace_2 + mod-name_20))) + (let-values ((() + (begin + (if (if already-m_0 + (not + (eq? + already-m_0 + m_20)) + #f) + (let-values () + (raise-arguments-error + who_22 + "a different declaration is already in the destination namespace" + "module name" + mod-name_20)) + (void)) + (values)))) + (let-values (((m-ns_12 + already?_0) + (if (let-values (((or-part_8) + attach-this-instance?_0)) + (if or-part_8 + or-part_8 + (module-cross-phase-persistent? + m_20))) + (let-values () + (let-values (((m-ns_13) + (let-values (((src-namespace26_0) + src-namespace_6) + ((mod-name27_0) + mod-name_20) + ((phase28_1) + phase_135)) + (namespace->module-namespace.1 + #f + #f + void + src-namespace26_0 + mod-name27_0 + phase28_1)))) + (let-values ((() + (begin + (if m-ns_13 + (void) + (let-values () + (raise-arguments-error + who_22 + "module not instantiated (in the source namespace)" + "module name" + mod-name_20))) + (values)))) + (let-values (((already-m-ns_0) + (if already-m_0 + (let-values (((dest-namespace29_0) + dest-namespace_2) + ((mod-name30_0) + mod-name_20) + ((phase31_1) + phase_135)) + (namespace->module-namespace.1 + #f + #f + void + dest-namespace29_0 + mod-name30_0 + phase31_1)) + #f))) + (begin + (if (if already-m-ns_0 + (if (not + (eq? + m-ns_13 + already-m-ns_0)) + (not + (namespace-same-instance? + m-ns_13 + already-m-ns_0)) + #f) + #f) + (let-values () + (raise-arguments-error + who_22 + "a different instance is already in the destination namespace" + "module name" + mod-name_20)) + (void)) + (values + m-ns_13 + (if already-m-ns_0 + #t + #f))))))) + (let-values () + (begin + (if (if (label-phase? + phase_135) + (not + (let-values (((src-namespace32_0) + src-namespace_6) + ((mod-name33_0) + mod-name_20) + ((phase34_1) + phase_135)) + (namespace->module-namespace.1 + #f + #f + void + src-namespace32_0 + mod-name33_0 + phase34_1))) + #f) + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + src-namespace_6) + (let-values () + (let-values (((src-namespace35_0) + src-namespace_6) + ((mpi36_0) + mpi_61) + ((phase37_0) + phase_135)) + (namespace-module-instantiate!.1 + #f + #t + unsafe-undefined + '#hasheq() + null + #f + src-namespace35_0 + mpi36_0 + phase37_0))))) + (void)) + (values + #f + (if already-m_0 + #t + #f))))))) + (begin + (hash-update! + todo_0 + mod-name_20 + (lambda (ht_156) + (hash-set + ht_156 + phase_135 + m-ns_12)) + '#hasheqv()) + (if already?_0 + (void) + (let-values () + (begin + (let-values (((lst_195) + (module-requires + m_20))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_195))) + ((letrec-values (((for-loop_221) + (lambda (lst_10) + (begin + 'for-loop + (if (pair? + lst_10) + (let-values (((phase+reqs_1) + (unsafe-car + lst_10)) + ((rest_1) + (unsafe-cdr + lst_10))) + (let-values ((() + (let-values (((lst_294) + (cdr + phase+reqs_1))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_294))) + ((letrec-values (((for-loop_270) + (lambda (lst_30) + (begin + 'for-loop + (if (pair? + lst_30) + (let-values (((req_5) + (unsafe-car + lst_30)) + ((rest_11) + (unsafe-cdr + lst_30))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_104 + (module-path-index-shift + req_5 + (module-self + m_20) + mpi_61) + (phase+ + phase_135 + (car + phase+reqs_1)) + attach-instances?_1 + attach-phase_0)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_270 + rest_11) + (values)))) + (values)))))) + for-loop_270) + lst_294))))) + (if (not + #f) + (for-loop_221 + rest_1) + (values)))) + (values)))))) + for-loop_221) + lst_195))) + (void) + (let-values (((lst_180) + (module-submodule-names + m_20))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_180))) + ((letrec-values (((for-loop_291) + (lambda (lst_311) + (begin + 'for-loop + (if (pair? + lst_311) + (let-values (((submod-name_0) + (unsafe-car + lst_311)) + ((rest_183) + (unsafe-cdr + lst_311))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (loop_104 + (1/module-path-index-join + (list + 'submod + "." + submod-name_0) + mpi_61) + #f + #f + attach-phase_0)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_291 + rest_183) + (values)))) + (values)))))) + for-loop_291) + lst_180))) + (void) + (if (module-supermodule-name + m_20) + (let-values () + (loop_104 + (1/module-path-index-join + '(submod + "..") + mpi_61) + #f + #f + attach-phase_0)) + (void)))))))))))))) + (void))))))))) + loop_104) + (1/module-path-index-join + (if (1/resolved-module-path? mod-path_16) + (resolved-module-path->module-path mod-path_16) + mod-path_16) + #f) + phase_134 + attach-instances?_0 + phase_134) + (values)))) + (let-values ((() + (begin + (let-values (((ht_149) todo_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_149))) + ((letrec-values (((for-loop_192) + (lambda (i_34) + (begin + 'for-loop + (if i_34 + (let-values (((mod-name_21 phases_0) + (hash-iterate-key+value + ht_149 + i_34))) + (let-values ((() + (let-values (((ht_30) + phases_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_30))) + ((letrec-values (((for-loop_33) + (lambda (i_83) + (begin + 'for-loop + (if i_83 + (let-values (((phase_26 + m-ns_14) + (hash-iterate-key+value + ht_30 + i_83))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((m_21) + (namespace->module + src-namespace_6 + mod-name_21))) + (begin + (module-force-bulk-binding! + m_21 + src-namespace_6) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + dest-namespace_2) + (let-values () + (let-values (((dest-namespace38_0) + dest-namespace_2) + ((m39_0) + m_21) + ((mod-name40_0) + mod-name_21)) + (declare-module!.1 + #t + dest-namespace38_0 + m39_0 + mod-name40_0)))) + (if m-ns_14 + (let-values () + (begin + (namespace-record-module-instance-attached! + src-namespace_6 + mod-name_21 + phase_26) + (let-values (((or-part_108) + (let-values (((dest-namespace41_0) + dest-namespace_2) + ((mod-name42_0) + mod-name_21) + ((phase43_0) + phase_26)) + (namespace->module-namespace.1 + #f + #f + void + dest-namespace41_0 + mod-name42_0 + phase43_0)))) + (if or-part_108 + or-part_108 + (namespace-install-module-namespace! + dest-namespace_2 + mod-name_21 + phase_26 + m_21 + m-ns_14))))) + (void))))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_33 + (hash-iterate-next + ht_30 + i_83)) + (values)))) + (values)))))) + for-loop_33) + (hash-iterate-first + ht_30)))))) + (if (not #f) + (for-loop_192 + (hash-iterate-next ht_149 i_34)) + (values)))) + (values)))))) + for-loop_192) + (hash-iterate-first ht_149)))) + (values)))) + (let-values () + (let-values (((mnr_0) (1/current-module-name-resolver))) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + dest-namespace_2) + (let-values () + (begin + (let-values (((ht_119) todo_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_119))) + ((letrec-values (((for-loop_205) + (lambda (i_203) + (begin + 'for-loop + (if i_203 + (let-values (((mod-name_22) + (hash-iterate-key ht_119 i_203))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (mnr_0 + mod-name_22 + src-namespace_6)) + (values))))) + (values))))) + (if (not #f) + (for-loop_205 + (hash-iterate-next ht_119 i_203)) + (values)))) + (values)))))) + for-loop_205) + (hash-iterate-first ht_119)))) + (void)))))))))))))))))))))))) + (define-values + (1/make-empty-namespace) + (lambda () + (begin + 'make-empty-namespace + (let-values (((current-ns_0) (1/current-namespace))) + (let-values (((phase_45) (namespace-phase current-ns_0))) + (let-values (((ns_61) (namespace->namespace-at-phase (make-namespace) phase_45))) + (begin + (1/namespace-attach-module current-ns_0 ''#%kernel ns_61) + (namespace-primitive-module-visit! ns_61 '#%kernel) + ns_61))))))) + (define-values + (1/namespace-syntax-introduce) + (let-values (((namespace-syntax-introduce_0) + (lambda (s2_7 ns1_3) + (begin + 'namespace-syntax-introduce + (let-values (((s_307) s2_7)) + (let-values (((ns_56) (if (eq? ns1_3 unsafe-undefined) (1/current-namespace) ns1_3))) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (syntax?$1 s_307) + (void) + (let-values () + (raise-argument-error 'namespace-syntax-introduce "syntax?" s_307))) + (values)))) + (let-values ((() + (begin + (if (1/namespace? ns_56) + (void) + (let-values () + (raise-argument-error + 'namespace-syntax-introduce + "namespace?" + ns_56))) + (values)))) + (let-values (((root-ctx_5) (namespace-get-root-expand-ctx ns_56))) + (let-values (((post-scope_1) + (post-expansion-scope + (root-expand-context-post-expansion root-ctx_5)))) + (let-values (((other-namespace-scopes_0) + (reverse$1 + (let-values (((ht_157) + (syntax-scope-set + (root-expand-context-all-scopes-stx root-ctx_5) + 0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-immutable-hash-keys ht_157))) + ((letrec-values (((for-loop_110) + (lambda (fold-var_239 i_204) + (begin + 'for-loop + (if i_204 + (let-values (((sc_35) + (unsafe-immutable-hash-iterate-key + ht_157 + i_204))) + (let-values (((fold-var_280) + (let-values (((fold-var_240) + fold-var_239)) + (if (equal? + sc_35 + post-scope_1) + fold-var_240 + (let-values (((fold-var_247) + fold-var_240)) + (let-values (((fold-var_33) + (let-values () + (cons + (let-values () + sc_35) + fold-var_247)))) + (values + fold-var_33))))))) + (if (not #f) + (for-loop_110 + fold-var_280 + (unsafe-immutable-hash-iterate-next + ht_157 + i_204)) + fold-var_280))) + fold-var_239))))) + for-loop_110) + null + (unsafe-immutable-hash-iterate-first ht_157))))))) + (let-values (((add-ns-scopes_0) + (lambda (s_176) + (begin + 'add-ns-scopes + (let-values (((temp40_1) + (add-scopes + (push-scope s_176 post-scope_1) + other-namespace-scopes_0)) + ((temp41_2) + (root-expand-context-all-scopes-stx root-ctx_5)) + ((temp42_2) + (let-values (((or-part_5) + (namespace-declaration-inspector + ns_56))) + (if or-part_5 + or-part_5 + (current-code-inspector)))) + ((temp43_2) #t)) + (syntax-transfer-shifts.1 + temp43_2 + temp40_1 + temp41_2 + temp42_2)))))) + (let-values (((maybe-module-id_0) + (if (pair? (1/syntax-e s_307)) + (if (identifier? (car (1/syntax-e s_307))) + (add-ns-scopes_0 (car (1/syntax-e s_307))) + #f) + #f))) + (if (if maybe-module-id_0 + (1/free-identifier=? + maybe-module-id_0 + (1/namespace-module-identifier ns_56) + (namespace-phase ns_56)) + #f) + (let-values () + (1/datum->syntax + s_307 + (cons maybe-module-id_0 (cdr (1/syntax-e s_307))) + s_307 + s_307)) + (let-values () (add-ns-scopes_0 s_307))))))))))))))))))) + (case-lambda + ((s_498) (begin 'namespace-syntax-introduce (namespace-syntax-introduce_0 s_498 unsafe-undefined))) + ((s_503 ns1_2) (namespace-syntax-introduce_0 s_503 ns1_2))))) + (define-values + (namespace-datum-introduce) + (lambda (s_50) (begin (1/namespace-syntax-introduce (1/datum->syntax #f s_50))))) + (define-values + (1/namespace-module-identifier) + (let-values (((namespace-module-identifier_0) + (lambda (where3_0) + (begin + 'namespace-module-identifier + (let-values (((where_1) (if (eq? where3_0 unsafe-undefined) (1/current-namespace) where3_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (let-values (((or-part_88) (1/namespace? where_1))) + (if or-part_88 or-part_88 (phase? where_1))) + (void) + (let-values () + (raise-argument-error + 'namespace-module-identifier + (string-append "(or/c namespace? " phase?-string ")") + where_1))) + (1/datum->syntax + (1/syntax-shift-phase-level + core-stx + (if (1/namespace? where_1) (namespace-phase where_1) where_1)) + 'module)))))))))) + (case-lambda + (() (begin 'namespace-module-identifier (namespace-module-identifier_0 unsafe-undefined))) + ((where3_1) (namespace-module-identifier_0 where3_1))))) + (define-values + (1/namespace-symbol->identifier) + (lambda (sym_67) + (begin + 'namespace-symbol->identifier + (let-values () + (let-values () + (begin + (if (symbol? sym_67) + (void) + (let-values () (raise-argument-error 'namespace-symbol->identifier "symbol?" sym_67))) + (1/namespace-syntax-introduce (1/datum->syntax #f sym_67)))))))) + (define-values + (do-namespace-require.1) + (lambda (copy-variable-as-constant?7_0 + copy-variable-phase-level6_0 + run?4_0 + skip-variable-phase-level8_0 + visit?5_0 + who14_1 + req15_0 + ns16_1) + (begin + 'do-namespace-require + (let-values (((run?_3) run?4_0)) + (let-values (((visit?_3) visit?5_0)) + (let-values (((who_23) who14_1)) + (let-values (((req_6) req15_0)) + (let-values (((ns_4) ns16_1)) + (let-values (((copy-variable-phase-level_2) copy-variable-phase-level6_0)) + (let-values (((copy-variable-as-constant?_2) copy-variable-as-constant?7_0)) + (let-values (((skip-variable-phase-level_2) skip-variable-phase-level8_0)) + (let-values () + (let-values ((() + (begin + (if (1/namespace? ns_4) + (void) + (let-values () (raise-argument-error who_23 "namespace?" ns_4))) + (values)))) + (let-values (((ctx-stx_0) + (add-scopes + empty-syntax + (root-expand-context-module-scopes (namespace-get-root-expand-ctx ns_4))))) + (if (let-values (((or-part_150) (1/module-path-index? req_6))) + (if or-part_150 or-part_150 (1/module-path? req_6))) + (let-values () + (let-values (((temp46_1) + (if (1/module-path-index? req_6) + req_6 + (1/module-path-index-join req_6 #f))) + ((temp47_4) #f) + ((temp48_2) #f) + ((ctx-stx49_0) ctx-stx_0) + ((ns50_0) ns_4) + ((run?51_0) run?_3) + ((visit?52_0) visit?_3) + ((temp53_1) (namespace-phase ns_4)) + ((temp54_2) (namespace-phase ns_4)) + ((copy-variable-phase-level55_0) copy-variable-phase-level_2) + ((copy-variable-as-constant?56_0) copy-variable-as-constant?_2) + ((skip-variable-phase-level57_0) skip-variable-phase-level_2) + ((who58_0) who_23)) + (perform-require!.1 + #f + #t + #f + copy-variable-as-constant?56_0 + copy-variable-phase-level55_0 + #f + 'all + #t + temp53_1 + #f + temp54_2 + run?51_0 + skip-variable-phase-level57_0 + unsafe-undefined + visit?52_0 + who58_0 + temp46_1 + temp47_4 + temp48_2 + ctx-stx49_0 + ns50_0))) + (let-values () + (let-values (((run?59_0) run?_3) + ((visit?60_0) visit?_3) + ((temp61_2) (list (1/datum->syntax ctx-stx_0 req_6))) + ((temp62_2) #f) + ((ns63_0) ns_4) + ((temp64_1) (namespace-phase ns_4)) + ((temp65_1) + (let-values (((temp70_3) #f)) (make-requires+provides.1 #f temp70_3))) + ((copy-variable-phase-level66_0) copy-variable-phase-level_2) + ((copy-variable-as-constant?67_0) copy-variable-as-constant?_2) + ((skip-variable-phase-level68_0) skip-variable-phase-level_2) + ((who69_0) who_23)) + (parse-and-perform-requires!.1 + copy-variable-as-constant?67_0 + copy-variable-phase-level66_0 + '#hasheq() + #f + unsafe-undefined + run?59_0 + #f + skip-variable-phase-level68_0 + visit?60_0 + who69_0 + temp61_2 + temp62_2 + ns63_0 + temp64_1 + temp65_1)))))))))))))))))) + (define-values + (1/namespace-require) + (let-values (((namespace-require_0) + (lambda (req19_0 ns18_0) + (begin + 'namespace-require + (let-values (((req_7) req19_0)) + (let-values (((ns_77) (if (eq? ns18_0 unsafe-undefined) (1/current-namespace) ns18_0))) + (let-values () + (let-values () + (let-values () + (let-values (((who72_0) 'namespace-require) ((req73_0) req_7) ((ns74_0) ns_77)) + (do-namespace-require.1 #f #f #t #f #f who72_0 req73_0 ns74_0))))))))))) + (case-lambda + ((req_8) (begin 'namespace-require (namespace-require_0 req_8 unsafe-undefined))) + ((req_9 ns18_1) (namespace-require_0 req_9 ns18_1))))) + (define-values + (1/namespace-require/expansion-time) + (let-values (((namespace-require/expansion-time_0) + (lambda (req21_0 ns20_0) + (begin + 'namespace-require/expansion-time + (let-values (((req_10) req21_0)) + (let-values (((ns_78) (if (eq? ns20_0 unsafe-undefined) (1/current-namespace) ns20_0))) + (let-values () + (let-values () + (let-values () + (let-values (((temp76_0) #f) + ((temp77_0) #t) + ((who78_0) 'namespace-require/expansion-time) + ((req79_0) req_10) + ((ns80_0) ns_78)) + (do-namespace-require.1 #f #f temp76_0 #f temp77_0 who78_0 req79_0 ns80_0))))))))))) + (case-lambda + ((req_11) (begin 'namespace-require/expansion-time (namespace-require/expansion-time_0 req_11 unsafe-undefined))) + ((req_12 ns20_1) (namespace-require/expansion-time_0 req_12 ns20_1))))) + (define-values + (1/namespace-require/constant) + (let-values (((namespace-require/constant_0) + (lambda (req23_0 ns22_0) + (begin + 'namespace-require/constant + (let-values (((req_13) req23_0)) + (let-values (((ns_79) (if (eq? ns22_0 unsafe-undefined) (1/current-namespace) ns22_0))) + (let-values () + (let-values () + (let-values () + (let-values (((who82_0) 'namespace-require/constant) + ((req83_0) req_13) + ((ns84_0) ns_79) + ((temp85_2) 0) + ((temp86_2) #t)) + (do-namespace-require.1 temp86_2 temp85_2 #t #f #f who82_0 req83_0 ns84_0))))))))))) + (case-lambda + ((req_14) (begin 'namespace-require/constant (namespace-require/constant_0 req_14 unsafe-undefined))) + ((req_15 ns22_1) (namespace-require/constant_0 req_15 ns22_1))))) + (define-values + (1/namespace-require/copy) + (let-values (((namespace-require/copy_0) + (lambda (req25_0 ns24_1) + (begin + 'namespace-require/copy + (let-values (((req_16) req25_0)) + (let-values (((ns_80) (if (eq? ns24_1 unsafe-undefined) (1/current-namespace) ns24_1))) + (let-values () + (let-values () + (let-values () + (let-values (((who88_0) 'namespace-require/copy) + ((req89_0) req_16) + ((ns90_0) ns_80) + ((temp91_2) 0) + ((temp92_1) 0)) + (do-namespace-require.1 #f temp91_2 #t temp92_1 #f who88_0 req89_0 ns90_0))))))))))) + (case-lambda + ((req_17) (begin 'namespace-require/copy (namespace-require/copy_0 req_17 unsafe-undefined))) + ((req_18 ns24_2) (namespace-require/copy_0 req_18 ns24_2))))) + (define-values + (1/namespace-variable-value) + (let-values (((namespace-variable-value_0) + (lambda (sym29_0 use-mapping?26_0 failure-thunk27_0 ns28_0) + (begin + 'namespace-variable-value + (let-values (((sym_80) sym29_0)) + (let-values (((use-mapping?_0) use-mapping?26_0)) + (let-values (((failure-thunk_5) failure-thunk27_0)) + (let-values (((ns_81) (if (eq? ns28_0 unsafe-undefined) (1/current-namespace) ns28_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (symbol? sym_80) + (void) + (let-values () (raise-argument-error 'namespace-variable-value "symbol?" sym_80))) + (if (let-values (((or-part_229) (not failure-thunk_5))) + (if or-part_229 + or-part_229 + (if (procedure? failure-thunk_5) + (procedure-arity-includes? failure-thunk_5 0) + #f))) + (void) + (let-values () + (raise-argument-error + 'namespace-variable-value + "(or/c #f (procedure-arity-includes/c 0))" + failure-thunk_5))) + (if (1/namespace? ns_81) + (void) + (let-values () + (raise-argument-error 'namespace-variable-value "namespace?" ns_81))) + ((call/ec + (lambda (escape_0) + (let-values (((var-ns_0 var-phase-level_0 var-sym_6) + (if use-mapping?_0 + (let-values () + (let-values (((id_79) (1/datum->syntax #f sym_80))) + (let-values (((b_106) + (resolve+shift/extra-inspector + (1/namespace-syntax-introduce id_79 ns_81) + (namespace-phase ns_81) + ns_81))) + (let-values ((() + (begin + (if b_106 + (let-values () + (namespace-visit-available-modules! + ns_81)) + (void)) + (values)))) + (let-values (((v_200 + primitive?_8 + extra-inspector_8 + protected?_10) + (if b_106 + (let-values (((b94_0) b_106) + ((empty-env95_0) empty-env) + ((null96_0) null) + ((ns97_1) ns_81) + ((temp98_0) + (namespace-phase ns_81)) + ((id99_0) id_79)) + (binding-lookup.1 + #f + #f + b94_0 + empty-env95_0 + null96_0 + ns97_1 + temp98_0 + id99_0)) + (values variable #f #f #f)))) + (begin + (if (variable? v_200) + (void) + (let-values () + (escape_0 + (let-values (((or-part_196) failure-thunk_5)) + (if or-part_196 + or-part_196 + (lambda () + (raise + (make-exn:fail:syntax$1 + (format + (string-append + "namespace-variable-value: bound to syntax\n" + " in: ~s") + sym_80) + (current-continuation-marks) + null)))))))) + (if (module-binding? b_106) + (values + (if (top-level-module-path-index? + (module-binding-module b_106)) + ns_81 + (module-instance-namespace + (binding->module-instance + b_106 + ns_81 + (namespace-phase ns_81) + id_79))) + (module-binding-phase b_106) + (module-binding-sym b_106)) + (values + ns_81 + (namespace-phase ns_81) + sym_80)))))))) + (let-values () (values ns_81 (namespace-phase ns_81) sym_80))))) + (let-values (((val_79) + (namespace-get-variable + var-ns_0 + var-phase-level_0 + var-sym_6 + (lambda () + (escape_0 + (let-values (((or-part_302) failure-thunk_5)) + (if or-part_302 + or-part_302 + (raise + (exn:fail:contract:variable + (format + (string-append + "namespace-variable-value: given name is not defined\n" + " name: ~s") + sym_80) + (current-continuation-marks) + sym_80))))))))) + (lambda () val_79)))))))))))))))))) + (case-lambda + ((sym_81) (begin 'namespace-variable-value (namespace-variable-value_0 sym_81 #t #f unsafe-undefined))) + ((sym_82 use-mapping?_1 failure-thunk_6 ns28_1) + (namespace-variable-value_0 sym_82 use-mapping?_1 failure-thunk_6 ns28_1)) + ((sym_83 use-mapping?_2 failure-thunk27_1) + (namespace-variable-value_0 sym_83 use-mapping?_2 failure-thunk27_1 unsafe-undefined)) + ((sym_84 use-mapping?26_1) (namespace-variable-value_0 sym_84 use-mapping?26_1 #f unsafe-undefined))))) + (define-values + (1/namespace-set-variable-value!) + (let-values (((namespace-set-variable-value!_0) + (lambda (sym33_0 val34_0 map?30_0 ns31_0 as-constant?32_0) + (begin + 'namespace-set-variable-value! + (let-values (((sym_85) sym33_0)) + (let-values (((val_80) val34_0)) + (let-values (((map?_0) map?30_0)) + (let-values (((ns_82) (if (eq? ns31_0 unsafe-undefined) (1/current-namespace) ns31_0))) + (let-values (((as-constant?_2) as-constant?32_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (symbol? sym_85) + (void) + (let-values () + (raise-argument-error 'namespace-set-variable-value! "symbol?" sym_85))) + (if (1/namespace? ns_82) + (void) + (let-values () + (raise-argument-error 'namespace-set-variable-value! "namespace?" ns_82))) + (namespace-set-variable! + ns_82 + (namespace-phase ns_82) + sym_85 + val_80 + as-constant?_2) + (if map?_0 + (let-values () + (let-values ((() + (begin + (namespace-unset-transformer! + ns_82 + (namespace-phase ns_82) + sym_85) + (values)))) + (let-values (((id_112) (1/datum->syntax #f sym_85))) + (let-values (((temp101_0) (1/namespace-syntax-introduce id_112 ns_82)) + ((temp102_1) + (let-values (((temp104_0) (namespace-mpi ns_82)) + ((temp105_1) (namespace-phase ns_82)) + ((sym106_0) sym_85)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + temp104_0 + temp105_1 + sym106_0))) + ((temp103_1) (namespace-phase ns_82))) + (add-binding!.1 #f #f temp101_0 temp102_1 temp103_1))))) + (void))))))))))))))) + (case-lambda + ((sym_86 val_81) + (begin 'namespace-set-variable-value! (namespace-set-variable-value!_0 sym_86 val_81 #f unsafe-undefined #f))) + ((sym_87 val_82 map?_1 ns_23 as-constant?32_1) + (namespace-set-variable-value!_0 sym_87 val_82 map?_1 ns_23 as-constant?32_1)) + ((sym_88 val_83 map?_2 ns31_1) (namespace-set-variable-value!_0 sym_88 val_83 map?_2 ns31_1 #f)) + ((sym_89 val_84 map?30_1) (namespace-set-variable-value!_0 sym_89 val_84 map?30_1 unsafe-undefined #f))))) + (define-values + (1/namespace-undefine-variable!) + (let-values (((namespace-undefine-variable!_0) + (lambda (sym36_0 ns35_0) + (begin + 'namespace-undefine-variable! + (let-values (((sym_90) sym36_0)) + (let-values (((ns_83) (if (eq? ns35_0 unsafe-undefined) (1/current-namespace) ns35_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (symbol? sym_90) + (void) + (let-values () (raise-argument-error 'namespace-undefine-variable! "symbol?" sym_90))) + (if (1/namespace? ns_83) + (void) + (let-values () + (raise-argument-error 'namespace-undefine-variable! "namespace?" ns_83))) + (namespace-unset-variable! ns_83 (namespace-phase ns_83) sym_90))))))))))) + (case-lambda + ((sym_91) (begin 'namespace-undefine-variable! (namespace-undefine-variable!_0 sym_91 unsafe-undefined))) + ((sym_92 ns35_1) (namespace-undefine-variable!_0 sym_92 ns35_1))))) + (define-values + (1/namespace-mapped-symbols) + (let-values (((namespace-mapped-symbols_0) + (lambda (ns37_0) + (begin + 'namespace-mapped-symbols + (let-values (((ns_84) (if (eq? ns37_0 unsafe-undefined) (1/current-namespace) ns37_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (1/namespace? ns_84) + (void) + (let-values () (raise-argument-error 'namespace-mapped-symbols "namespace?" ns_84))) + (set->list + (set-union + (syntax-mapped-names + (root-expand-context-all-scopes-stx (namespace-get-root-expand-ctx ns_84)) + (namespace-phase ns_84)) + (list->set (1/instance-variable-names (namespace->instance ns_84 0)))))))))))))) + (case-lambda + (() (begin 'namespace-mapped-symbols (namespace-mapped-symbols_0 unsafe-undefined))) + ((ns37_1) (namespace-mapped-symbols_0 ns37_1))))) + (define-values + (1/namespace-base-phase) + (let-values (((namespace-base-phase_0) + (lambda (ns38_0) + (begin + 'namespace-base-phase + (let-values (((ns_85) (if (eq? ns38_0 unsafe-undefined) (1/current-namespace) ns38_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (1/namespace? ns_85) + (void) + (let-values () (raise-argument-error 'namespace-base-phase "namespace?" ns_85))) + (namespace-phase ns_85)))))))))) + (case-lambda + (() (begin 'namespace-base-phase (namespace-base-phase_0 unsafe-undefined))) + ((ns38_1) (namespace-base-phase_0 ns38_1))))) + (define-values + (1/namespace-call-with-registry-lock) + (lambda (ns_86 thunk_5) + (begin + 'namespace-call-with-registry-lock + (let-values () + (let-values () + (begin + (if (1/namespace? ns_86) + (void) + (let-values () (raise-argument-error 'namespace-call-with-registry-lock "namespace?" ns_86))) + (if ((lambda (p_50) (if (procedure? p_50) (procedure-arity-includes? p_50 0) #f)) thunk_5) + (void) + (let-values () + (raise-argument-error 'namespace-call-with-registry-lock "(procedure-arity-includes/c 0)" thunk_5))) + (registry-call-with-lock (namespace-module-registry$1 ns_86) thunk_5))))))) + (define-values + (1/eval) + (let-values (((eval_0) + (lambda (s3_1 ns1_4 compile2_0) + (begin + 'eval + (let-values (((s_504) s3_1)) + (let-values (((ns_87) (if (eq? ns1_4 unsafe-undefined) (1/current-namespace) ns1_4))) + (let-values (((compile_2) + (if (eq? compile2_0 unsafe-undefined) + (lambda (s_505 ns_88) (begin 'compile (1/compile s_505 ns_88 #f))) + compile2_0))) + (let-values () + (if (let-values (((or-part_5) (compiled-in-memory? s_504))) + (if or-part_5 + or-part_5 + (let-values (((or-part_6) (linklet-directory?$1 s_504))) + (if or-part_6 or-part_6 (1/linklet-bundle? s_504))))) + (let-values () (eval-compiled s_504 ns_87)) + (if (if (syntax?$1 s_504) + (let-values (((or-part_7) (compiled-in-memory? (1/syntax-e s_504)))) + (if or-part_7 + or-part_7 + (let-values (((or-part_146) (linklet-directory?$1 (1/syntax-e s_504)))) + (if or-part_146 or-part_146 (1/linklet-bundle? (1/syntax-e s_504)))))) + #f) + (let-values () (eval-compiled (1/syntax->datum s_504) ns_87)) + (let-values () + (let-values (((s63_0) s_504) + ((ns64_0) ns_87) + ((temp65_2) + (lambda (s_6 ns_89 tail?_49) + (eval-compiled (compile_2 s_6 ns_89) ns_89 tail?_49))) + ((temp66_2) #f)) + (per-top-level.1 #f #f temp66_2 #t #f temp65_2 #f s63_0 ns64_0))))))))))))) + (case-lambda + ((s_506) (begin 'eval (eval_0 s_506 unsafe-undefined unsafe-undefined))) + ((s_52 ns_90 compile2_1) (eval_0 s_52 ns_90 compile2_1)) + ((s_84 ns1_5) (eval_0 s_84 ns1_5 unsafe-undefined))))) + (define-values + (eval-compiled) + (let-values (((eval-compiled_3) + (lambda (c5_0 ns6_1 as-tail?4_0) + (begin + 'eval-compiled + (let-values (((c_66) c5_0)) + (let-values (((ns_3) ns6_1)) + (let-values (((as-tail?_3) as-tail?4_0)) + (let-values () + (if (1/compiled-module-expression? c_66) + (let-values () + (let-values (((c67_0) c_66) ((ns68_0) ns_3)) (eval-module.1 ns68_0 #f #t c67_0))) + (let-values () (eval-top c_66 ns_3 eval-compiled as-tail?_3))))))))))) + (case-lambda + ((c_67 ns_91) (begin (eval-compiled_3 c_67 ns_91 #t))) + ((c_68 ns_7 as-tail?4_1) (eval-compiled_3 c_68 ns_7 as-tail?4_1))))) + (define-values + (1/compile) + (let-values (((compile_3) + (lambda (s10_1 ns7_0 serializable?8_0 expand9_0) + (begin + 'compile + (let-values (((s_459) s10_1)) + (let-values (((ns_8) (if (eq? ns7_0 unsafe-undefined) (1/current-namespace) ns7_0))) + (let-values (((serializable?_5) serializable?8_0)) + (let-values (((expand_0) (if (eq? expand9_0 unsafe-undefined) expand$1 expand9_0))) + (let-values () + (let-values (((to-correlated-linklet?_6) + (if serializable?_5 (not (current-compile-target-machine)) #f))) + (let-values (((cs_0) + (if (1/compiled-expression? s_459) + (let-values () (list s_459)) + (if (if (syntax?$1 s_459) + (1/compiled-expression? (1/syntax-e s_459)) + #f) + (let-values () (list (1/syntax-e s_459))) + (let-values () + (let-values (((s69_0) s_459) + ((ns70_0) ns_8) + ((temp71_1) + (lambda (s_18 ns_92 as-tail?_4) + (list + (let-values (((s74_1) s_18) + ((ns75_0) ns_92) + ((expand76_0) expand_0) + ((serializable?77_0) serializable?_5) + ((to-correlated-linklet?78_0) + to-correlated-linklet?_6)) + (compile-single.1 + serializable?77_0 + to-correlated-linklet?78_0 + s74_1 + ns75_0 + expand76_0))))) + ((append72_0) append) + ((temp73_1) #f)) + (per-top-level.1 + append72_0 + #f + temp73_1 + #t + #f + temp71_1 + #f + s69_0 + ns70_0))))))) + (if (if (= 1 (length cs_0)) (not (compiled-multiple-top? (car cs_0))) #f) + (car cs_0) + (let-values (((cs79_0) cs_0) + ((to-correlated-linklet?80_0) to-correlated-linklet?_6) + ((serializable?81_0) serializable?_5) + ((ns82_0) ns_8)) + (compiled-tops->compiled-top.1 + serializable?81_0 + ns82_0 + to-correlated-linklet?80_0 + cs79_0)))))))))))))) + (case-lambda + ((s_507) (begin 'compile (compile_3 s_507 unsafe-undefined #t unsafe-undefined))) + ((s_26 ns_93 serializable?_6 expand9_1) (compile_3 s_26 ns_93 serializable?_6 expand9_1)) + ((s_508 ns_13 serializable?8_1) (compile_3 s_508 ns_13 serializable?8_1 unsafe-undefined)) + ((s_509 ns7_1) (compile_3 s_509 ns7_1 #t unsafe-undefined))))) + (define-values + (struct:lifted-parsed-begin + lifted-parsed-begin11.1 + lifted-parsed-begin? + lifted-parsed-begin-seq + lifted-parsed-begin-last) + (let-values (((struct:_65 make-_65 ?_65 -ref_65 -set!_65) + (let-values () + (let-values () + (make-struct-type + 'lifted-parsed-begin + #f + 2 + 0 + #f + null + (current-inspector) + #f + '(0 1) + #f + 'lifted-parsed-begin))))) + (values + struct:_65 + make-_65 + ?_65 + (make-struct-field-accessor -ref_65 0 'seq) + (make-struct-field-accessor -ref_65 1 'last)))) + (define-values + (compile-single.1) + (lambda (serializable?12_1 to-correlated-linklet?13_0 s16_1 ns17_1 expand18_0) + (begin + 'compile-single + (let-values (((s_510) s16_1)) + (let-values (((ns_94) ns17_1)) + (let-values (((expand_1) expand18_0)) + (let-values (((serializable?_7) serializable?12_1)) + (let-values (((to-correlated-linklet?_7) to-correlated-linklet?13_0)) + (let-values () + (let-values (((exp-s_4) (expand_1 s_510 ns_94 #f #t serializable?_7 to-correlated-linklet?_7))) + ((letrec-values (((loop_105) + (lambda (exp-s_5) + (begin + 'loop + (if (parsed-module? exp-s_5) + (let-values () + (let-values (((exp-s84_0) exp-s_5) + ((temp85_3) + (let-values (((ns88_0) ns_94)) + (make-compile-context.1 + #f + unsafe-undefined + #f + ns88_0 + unsafe-undefined + unsafe-undefined))) + ((serializable?86_0) serializable?_7) + ((to-correlated-linklet?87_0) to-correlated-linklet?_7)) + (compile-module.1 + #f + unsafe-undefined + #t + serializable?86_0 + to-correlated-linklet?87_0 + exp-s84_0 + temp85_3))) + (if (lifted-parsed-begin? exp-s_5) + (let-values () + (let-values (((to-correlated-linklet?89_0) to-correlated-linklet?_7) + ((temp90_2) + (reverse$1 + (let-values (((lst_182) + (append + (lifted-parsed-begin-seq exp-s_5) + (list + (lifted-parsed-begin-last exp-s_5))))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_182))) + ((letrec-values (((for-loop_292) + (lambda (fold-var_281 lst_312) + (begin + 'for-loop + (if (pair? lst_312) + (let-values (((e_84) + (unsafe-car + lst_312)) + ((rest_184) + (unsafe-cdr + lst_312))) + (let-values (((fold-var_203) + (let-values (((fold-var_204) + fold-var_281)) + (let-values (((fold-var_282) + (let-values () + (cons + (let-values () + (loop_105 + e_84)) + fold-var_204)))) + (values + fold-var_282))))) + (if (not #f) + (for-loop_292 + fold-var_203 + rest_184) + fold-var_203))) + fold-var_281))))) + for-loop_292) + null + lst_182)))))) + (compiled-tops->compiled-top.1 + #f + #f + to-correlated-linklet?89_0 + temp90_2))) + (let-values () + (let-values (((exp-s91_0) exp-s_5) + ((temp92_2) + (let-values (((ns95_0) ns_94)) + (make-compile-context.1 + #f + unsafe-undefined + #f + ns95_0 + unsafe-undefined + unsafe-undefined))) + ((serializable?93_0) serializable?_7) + ((to-correlated-linklet?94_0) to-correlated-linklet?_7)) + (compile-top.1 + serializable?93_0 + #f + to-correlated-linklet?94_0 + exp-s91_0 + temp92_2))))))))) + loop_105) + exp-s_4))))))))))) + (define-values + (expand$1) + (let-values (((expand_2) + (lambda (s25_1 ns20_2 observable?21_0 to-parsed?22_0 serializable?23_0 to-correlated-linklet?24_0) + (begin + 'expand + (let-values (((s_450) s25_1)) + (let-values (((ns_95) (if (eq? ns20_2 unsafe-undefined) (1/current-namespace) ns20_2))) + (let-values (((observable?_0) observable?21_0)) + (let-values (((to-parsed?_2) to-parsed?22_0)) + (let-values (((serializable?_8) serializable?23_0)) + (let-values (((to-correlated-linklet?_8) to-correlated-linklet?24_0)) + (let-values () + (let-values (((observer_2) (if observable?_0 (current-expand-observe) #f))) + (begin + (if observer_2 (let-values () (call-expand-observe observer_2 'start-top)) (void)) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + current-expand-observe + #f) + (let-values () + (let-values (((s96_0) s_450) + ((ns97_2) ns_95) + ((temp98_1) + (lambda (s_511 ns_96 as-tail?_5) + (let-values (((s102_0) s_511) + ((ns103_0) ns_96) + ((observer104_0) observer_2) + ((to-parsed?105_0) to-parsed?_2) + ((serializable?106_0) serializable?_8) + ((to-correlated-linklet?107_0) + to-correlated-linklet?_8)) + (expand-single.1 + serializable?106_0 + to-correlated-linklet?107_0 + s102_0 + ns103_0 + observer104_0 + to-parsed?105_0)))) + ((cons99_0) cons) + ((re-pair100_0) re-pair) + ((observer101_0) observer_2)) + (per-top-level.1 + cons99_0 + #f + observer101_0 + #t + #f + temp98_1 + re-pair100_0 + s96_0 + ns97_2))))))))))))))))) + (case-lambda + ((s_512) (begin 'expand (expand_2 s_512 unsafe-undefined #f #f #f #f))) + ((s_453 ns_97 observable?_1 to-parsed?_3 serializable?_9 to-correlated-linklet?24_1) + (expand_2 s_453 ns_97 observable?_1 to-parsed?_3 serializable?_9 to-correlated-linklet?24_1)) + ((s_43 ns_98 observable?_2 to-parsed?_4 serializable?23_1) + (expand_2 s_43 ns_98 observable?_2 to-parsed?_4 serializable?23_1 #f)) + ((s_513 ns_99 observable?_3 to-parsed?22_1) (expand_2 s_513 ns_99 observable?_3 to-parsed?22_1 #f #f)) + ((s_457 ns_100 observable?21_1) (expand_2 s_457 ns_100 observable?21_1 #f #f #f)) + ((s_514 ns20_3) (expand_2 s_514 ns20_3 #f #f #f #f))))) + (define-values + (expand-single.1) + (lambda (serializable?26_0 to-correlated-linklet?27_0 s30_0 ns31_2 observer32_0 to-parsed?33_0) + (begin + 'expand-single + (let-values (((s_328) s30_0)) + (let-values (((ns_101) ns31_2)) + (let-values (((observer_3) observer32_0)) + (let-values (((to-parsed?_5) to-parsed?33_0)) + (let-values (((serializable?_10) serializable?26_0)) + (let-values (((to-correlated-linklet?_9) to-correlated-linklet?27_0)) + (let-values () + (let-values (((rebuild-s_2) (keep-properties-only s_328))) + (let-values (((ctx_76) + (let-values (((ns108_0) ns_101) + ((to-parsed?109_0) to-parsed?_5) + ((serializable?110_0) serializable?_10) + ((to-correlated-linklet?111_0) to-correlated-linklet?_9) + ((observer112_0) observer_3)) + (make-expand-context.1 + serializable?110_0 + observer112_0 + #f + to-correlated-linklet?111_0 + to-parsed?109_0 + ns108_0)))) + (let-values (((require-lifts_4 lifts_10 exp-s_6) (expand-capturing-lifts s_328 ctx_76))) + (if (if (null? require-lifts_4) (null? lifts_10) #f) + (let-values () exp-s_6) + (if to-parsed?_5 + (let-values () + (let-values (((require-lifts113_0) require-lifts_4) + ((lifts114_0) lifts_10) + ((exp-s115_0) exp-s_6) + ((rebuild-s116_0) rebuild-s_2) + ((temp117_1) + (lambda (form_0) + (let-values (((form118_0) form_0) + ((ns119_1) ns_101) + ((observer120_0) observer_3) + ((to-parsed?121_0) to-parsed?_5) + ((serializable?122_0) serializable?_10)) + (expand-single.1 + serializable?122_0 + #f + form118_0 + ns119_1 + observer120_0 + to-parsed?121_0))))) + (wrap-lifts-as-lifted-parsed-begin.1 + temp117_1 + require-lifts113_0 + lifts114_0 + exp-s115_0 + rebuild-s116_0))) + (let-values () + (let-values (((new-s_6) + (let-values (((temp128_3) (append require-lifts_4 lifts_10)) + ((exp-s129_0) exp-s_6) + ((temp130_1) (namespace-phase ns_101))) + (wrap-lifts-as-begin.1 + unsafe-undefined + unsafe-undefined + temp128_3 + exp-s129_0 + temp130_1)))) + (begin + (let-values (((obs_48) (expand-context-observer ctx_76))) + (if obs_48 + (let-values () (let-values () (call-expand-observe obs_48 'lift-loop new-s_6))) + (void))) + (let-values (((new-s123_0) new-s_6) + ((ns124_0) ns_101) + ((observer125_0) observer_3) + ((to-parsed?126_0) to-parsed?_5) + ((serializable?127_0) serializable?_10)) + (expand-single.1 + serializable?127_0 + #f + new-s123_0 + ns124_0 + observer125_0 + to-parsed?126_0)))))))))))))))))))) + (define-values + (expand-once$1) + (let-values (((expand-once_0) + (lambda (s36_0 ns35_2) + (begin + 'expand-once + (let-values (((s_515) s36_0)) + (let-values (((ns_102) (if (eq? ns35_2 unsafe-undefined) (1/current-namespace) ns35_2))) + (let-values () + (let-values (((s131_0) s_515) + ((ns132_0) ns_102) + ((temp133_1) + (lambda (s_114 ns_103 as-tail?_6) (expand-single-once s_114 ns_103))) + ((cons134_0) cons) + ((re-pair135_0) re-pair) + ((temp136_2) #t) + ((temp137_1) #f)) + (per-top-level.1 + cons134_0 + temp136_2 + temp137_1 + #t + #f + temp133_1 + re-pair135_0 + s131_0 + ns132_0))))))))) + (case-lambda + ((s_516) (begin 'expand-once (expand-once_0 s_516 unsafe-undefined))) + ((s_115 ns35_3) (expand-once_0 s_115 ns35_3))))) + (define-values + (expand-single-once) + (lambda (s_117 ns_104) + (begin + (let-values (((require-lifts_5 lifts_11 exp-s_7) + (expand-capturing-lifts + s_117 + (let-values (((v_201) + (let-values (((ns138_0) ns_104)) (make-expand-context.1 #f #f #f #f #f ns138_0)))) + (let-values (((the-struct_67) v_201)) + (if (expand-context/outer? the-struct_67) + (let-values (((inner139_0) + (let-values (((the-struct_12) (root-expand-context/outer-inner v_201))) + (if (expand-context/inner? the-struct_12) + (let-values (((just-once?140_0) #t)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi the-struct_12) + (root-expand-context/inner-module-scopes the-struct_12) + (root-expand-context/inner-top-level-bind-scope the-struct_12) + (root-expand-context/inner-all-scopes-stx the-struct_12) + (root-expand-context/inner-defined-syms the-struct_12) + (root-expand-context/inner-counter the-struct_12) + (root-expand-context/inner-lift-key the-struct_12) + (expand-context/inner-to-parsed? the-struct_12) + (expand-context/inner-phase the-struct_12) + (expand-context/inner-namespace the-struct_12) + just-once?140_0 + (expand-context/inner-module-begin-k the-struct_12) + (expand-context/inner-allow-unbound? the-struct_12) + (expand-context/inner-in-local-expand? the-struct_12) + (expand-context/inner-keep-#%expression? the-struct_12) + (expand-context/inner-stops the-struct_12) + (expand-context/inner-declared-submodule-names the-struct_12) + (expand-context/inner-lifts the-struct_12) + (expand-context/inner-lift-envs the-struct_12) + (expand-context/inner-module-lifts the-struct_12) + (expand-context/inner-require-lifts the-struct_12) + (expand-context/inner-to-module-lifts the-struct_12) + (expand-context/inner-requires+provides the-struct_12) + (expand-context/inner-observer the-struct_12) + (expand-context/inner-for-serializable? the-struct_12) + (expand-context/inner-to-correlated-linklet? the-struct_12) + (expand-context/inner-normalize-locals? the-struct_12) + (expand-context/inner-parsing-expanded? the-struct_12) + (expand-context/inner-skip-visit-available? the-struct_12))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_12))))) + (expand-context/outer1.1 + inner139_0 + (root-expand-context/outer-post-expansion the-struct_67) + (root-expand-context/outer-use-site-scopes the-struct_67) + (root-expand-context/outer-frame-id the-struct_67) + (expand-context/outer-context the-struct_67) + (expand-context/outer-env the-struct_67) + (expand-context/outer-scopes the-struct_67) + (expand-context/outer-def-ctx-scopes the-struct_67) + (expand-context/outer-binding-layer the-struct_67) + (expand-context/outer-reference-records the-struct_67) + (expand-context/outer-only-immediate? the-struct_67) + (expand-context/outer-need-eventually-defined the-struct_67) + (expand-context/outer-current-introduction-scopes the-struct_67) + (expand-context/outer-current-use-scopes the-struct_67) + (expand-context/outer-name the-struct_67))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_67))))))) + (if (if (null? require-lifts_5) (null? lifts_11) #f) + (let-values () exp-s_7) + (let-values () + (let-values (((temp141_0) (append require-lifts_5 lifts_11)) + ((exp-s142_0) exp-s_7) + ((temp143_0) (namespace-phase ns_104))) + (wrap-lifts-as-begin.1 unsafe-undefined unsafe-undefined temp141_0 exp-s142_0 temp143_0)))))))) + (define-values + (expand-to-top-form$1) + (let-values (((expand-to-top-form_0) + (lambda (s38_2 ns37_2) + (begin + 'expand-to-top-form + (let-values (((s_217) s38_2)) + (let-values (((ns_105) (if (eq? ns37_2 unsafe-undefined) (1/current-namespace) ns37_2))) + (let-values () + (let-values (((observer_4) (current-expand-observe))) + (begin + (if observer_4 (let-values () (call-expand-observe observer_4 'start-top)) (void)) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + current-expand-observe + #f) + (let-values () + (let-values (((s144_0) s_217) + ((ns145_1) ns_105) + ((temp146_0) #f) + ((temp147_1) #f) + ((observer148_0) observer_4)) + (per-top-level.1 + #f + #f + observer148_0 + temp147_1 + #f + temp146_0 + #f + s144_0 + ns145_1))))))))))))) + (case-lambda + ((s_122) (begin 'expand-to-top-form (expand-to-top-form_0 s_122 unsafe-undefined))) + ((s_123 ns37_3) (expand-to-top-form_0 s_123 ns37_3))))) + (define-values + (per-top-level.1) + (lambda (combine40_0 + just-once?42_0 + observer45_0 + quick-immediate?43_0 + serializable?44_0 + single39_0 + wrap41_0 + given-s53_0 + ns54_1) + (begin + 'per-top-level + (let-values (((given-s_0) given-s53_0)) + (let-values (((ns_106) ns54_1)) + (let-values (((single_0) single39_0)) + (let-values (((combine_0) combine40_0)) + (let-values (((wrap_4) wrap41_0)) + (let-values (((just-once?_1) just-once?42_0)) + (let-values (((quick-immediate?_0) quick-immediate?43_0)) + (let-values (((serializable?_11) serializable?44_0)) + (let-values (((observer_5) observer45_0)) + (let-values () + (let-values (((s_517) (maybe-intro given-s_0 ns_106))) + (let-values (((ctx_66) + (let-values (((ns149_0) ns_106) ((observer150_0) observer_5)) + (make-expand-context.1 #f observer150_0 #f #f #f ns149_0)))) + (let-values (((phase_136) (namespace-phase ns_106))) + ((letrec-values (((loop_106) + (lambda (s_337 phase_137 ns_107 as-tail?_7) + (begin + 'loop + (let-values (((tl-ctx_0) + (let-values (((v_202) ctx_66)) + (let-values (((the-struct_68) v_202)) + (if (expand-context/outer? the-struct_68) + (let-values (((inner151_0) + (let-values (((the-struct_69) + (root-expand-context/outer-inner + v_202))) + (if (expand-context/inner? + the-struct_69) + (let-values (((phase152_0) + phase_137) + ((namespace153_0) + ns_107) + ((just-once?154_0) + just-once?_1) + ((for-serializable?155_0) + serializable?_11)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_69) + (root-expand-context/inner-module-scopes + the-struct_69) + (root-expand-context/inner-top-level-bind-scope + the-struct_69) + (root-expand-context/inner-all-scopes-stx + the-struct_69) + (root-expand-context/inner-defined-syms + the-struct_69) + (root-expand-context/inner-counter + the-struct_69) + (root-expand-context/inner-lift-key + the-struct_69) + (expand-context/inner-to-parsed? + the-struct_69) + phase152_0 + namespace153_0 + just-once?154_0 + (expand-context/inner-module-begin-k + the-struct_69) + (expand-context/inner-allow-unbound? + the-struct_69) + (expand-context/inner-in-local-expand? + the-struct_69) + (expand-context/inner-keep-#%expression? + the-struct_69) + (expand-context/inner-stops + the-struct_69) + (expand-context/inner-declared-submodule-names + the-struct_69) + (expand-context/inner-lifts + the-struct_69) + (expand-context/inner-lift-envs + the-struct_69) + (expand-context/inner-module-lifts + the-struct_69) + (expand-context/inner-require-lifts + the-struct_69) + (expand-context/inner-to-module-lifts + the-struct_69) + (expand-context/inner-requires+provides + the-struct_69) + (expand-context/inner-observer + the-struct_69) + for-serializable?155_0 + (expand-context/inner-to-correlated-linklet? + the-struct_69) + (expand-context/inner-normalize-locals? + the-struct_69) + (expand-context/inner-parsing-expanded? + the-struct_69) + (expand-context/inner-skip-visit-available? + the-struct_69))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_69))))) + (expand-context/outer1.1 + inner151_0 + (root-expand-context/outer-post-expansion + the-struct_68) + (root-expand-context/outer-use-site-scopes + the-struct_68) + (root-expand-context/outer-frame-id + the-struct_68) + (expand-context/outer-context + the-struct_68) + (expand-context/outer-env the-struct_68) + (expand-context/outer-scopes the-struct_68) + (expand-context/outer-def-ctx-scopes + the-struct_68) + (expand-context/outer-binding-layer + the-struct_68) + (expand-context/outer-reference-records + the-struct_68) + (expand-context/outer-only-immediate? + the-struct_68) + (expand-context/outer-need-eventually-defined + the-struct_68) + (expand-context/outer-current-introduction-scopes + the-struct_68) + (expand-context/outer-current-use-scopes + the-struct_68) + (expand-context/outer-name the-struct_68))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_68)))))) + (let-values (((wb-s_0) (if just-once?_1 s_337 #f))) + (let-values ((() + (begin + (let-values (((obs_49) + (expand-context-observer + tl-ctx_0))) + (if obs_49 + (let-values () + (let-values () + (call-expand-observe + obs_49 + 'visit + s_337))) + (void))) + (values)))) + (let-values (((require-lifts_6 lifts_12 exp-s_8) + (expand-capturing-lifts + s_337 + (let-values (((v_203) tl-ctx_0)) + (let-values (((the-struct_70) v_203)) + (if (expand-context/outer? the-struct_70) + (let-values (((only-immediate?156_0) + #t) + ((inner157_0) + (let-values (((the-struct_71) + (root-expand-context/outer-inner + v_203))) + (if (expand-context/inner? + the-struct_71) + (let-values (((phase158_1) + phase_137) + ((namespace159_0) + ns_107)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_71) + (root-expand-context/inner-module-scopes + the-struct_71) + (root-expand-context/inner-top-level-bind-scope + the-struct_71) + (root-expand-context/inner-all-scopes-stx + the-struct_71) + (root-expand-context/inner-defined-syms + the-struct_71) + (root-expand-context/inner-counter + the-struct_71) + (root-expand-context/inner-lift-key + the-struct_71) + (expand-context/inner-to-parsed? + the-struct_71) + phase158_1 + namespace159_0 + (expand-context/inner-just-once? + the-struct_71) + (expand-context/inner-module-begin-k + the-struct_71) + (expand-context/inner-allow-unbound? + the-struct_71) + (expand-context/inner-in-local-expand? + the-struct_71) + (expand-context/inner-keep-#%expression? + the-struct_71) + (expand-context/inner-stops + the-struct_71) + (expand-context/inner-declared-submodule-names + the-struct_71) + (expand-context/inner-lifts + the-struct_71) + (expand-context/inner-lift-envs + the-struct_71) + (expand-context/inner-module-lifts + the-struct_71) + (expand-context/inner-require-lifts + the-struct_71) + (expand-context/inner-to-module-lifts + the-struct_71) + (expand-context/inner-requires+provides + the-struct_71) + (expand-context/inner-observer + the-struct_71) + (expand-context/inner-for-serializable? + the-struct_71) + (expand-context/inner-to-correlated-linklet? + the-struct_71) + (expand-context/inner-normalize-locals? + the-struct_71) + (expand-context/inner-parsing-expanded? + the-struct_71) + (expand-context/inner-skip-visit-available? + the-struct_71))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_71))))) + (expand-context/outer1.1 + inner157_0 + (root-expand-context/outer-post-expansion + the-struct_70) + (root-expand-context/outer-use-site-scopes + the-struct_70) + (root-expand-context/outer-frame-id + the-struct_70) + (expand-context/outer-context + the-struct_70) + (expand-context/outer-env + the-struct_70) + (expand-context/outer-scopes + the-struct_70) + (expand-context/outer-def-ctx-scopes + the-struct_70) + (expand-context/outer-binding-layer + the-struct_70) + (expand-context/outer-reference-records + the-struct_70) + only-immediate?156_0 + (expand-context/outer-need-eventually-defined + the-struct_70) + (expand-context/outer-current-introduction-scopes + the-struct_70) + (expand-context/outer-current-use-scopes + the-struct_70) + (expand-context/outer-name + the-struct_70))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_70))))))) + (if (let-values (((or-part_303) (pair? require-lifts_6))) + (if or-part_303 or-part_303 (pair? lifts_12))) + (let-values () + (let-values (((new-s_7) + (let-values (((temp160_1) + (append + require-lifts_6 + lifts_12)) + ((exp-s161_0) exp-s_8) + ((phase162_1) phase_137)) + (wrap-lifts-as-begin.1 + unsafe-undefined + unsafe-undefined + temp160_1 + exp-s161_0 + phase162_1)))) + (begin + (let-values (((obs_50) + (expand-context-observer tl-ctx_0))) + (if obs_50 + (let-values () + (let-values () + (call-expand-observe + obs_50 + 'lift-loop + new-s_7))) + (void))) + (if just-once?_1 + new-s_7 + (loop_106 + new-s_7 + phase_137 + ns_107 + as-tail?_7))))) + (if (not single_0) + (let-values () + (begin + (let-values (((obs_51) + (expand-context-observer tl-ctx_0))) + (if obs_51 + (let-values () + (let-values () + (call-expand-observe + obs_51 + 'return + exp-s_8))) + (void))) + exp-s_8)) + (if (if just-once?_1 (not (eq? exp-s_8 wb-s_0)) #f) + (let-values () exp-s_8) + (let-values () + (let-values (((tmp_39) + (core-form-sym exp-s_8 phase_137))) + (if (equal? tmp_39 'begin) + (let-values () + (let-values ((() + (begin + (let-values (((obs_52) + (expand-context-observer + ctx_66))) + (if obs_52 + (let-values () + (let-values () + (call-expand-observe + obs_52 + 'prim-begin + exp-s_8))) + (void))) + (values)))) + (let-values (((ok?_31 begin163_0 e164_0) + (let-values (((s_518) + exp-s_8)) + (let-values (((orig-s_36) + s_518)) + (let-values (((begin163_1 + e164_1) + (let-values (((s_519) + (if (syntax?$1 + s_518) + (syntax-e$1 + s_518) + s_518))) + (if (pair? + s_519) + (let-values (((begin165_0) + (let-values (((s_520) + (car + s_519))) + s_520)) + ((e166_0) + (let-values (((s_339) + (cdr + s_519))) + (let-values (((s_340) + (if (syntax?$1 + s_339) + (syntax-e$1 + s_339) + s_339))) + (let-values (((flat-s_23) + (to-syntax-list.1 + s_340))) + (if (not + flat-s_23) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_36)) + (let-values () + flat-s_23))))))) + (values + begin165_0 + e166_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_36))))) + (values + #t + begin163_1 + e164_1)))))) + (letrec-values (((begin-loop_0) + (lambda (es_2) + (begin + 'begin-loop + (if (null? es_2) + (let-values () + (if combine_0 + null + (void))) + (if (if (not + combine_0) + (null? + (cdr + es_2)) + #f) + (let-values () + (loop_106 + (car es_2) + phase_137 + ns_107 + as-tail?_7)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_53) + (expand-context-observer + tl-ctx_0))) + (if obs_53 + (let-values () + (let-values () + (call-expand-observe + obs_53 + 'next))) + (void))) + (values)))) + (let-values (((a_59) + (if combine_0 + (loop_106 + (car + es_2) + phase_137 + ns_107 + #f) + (begin + (loop_106 + (car + es_2) + phase_137 + ns_107 + #f) + (void))))) + (if combine_0 + (combine_0 + a_59 + (begin-loop_0 + (cdr + es_2))) + (begin-loop_0 + (cdr + es_2)))))))))))) + (if wrap_4 + (let-values () + (let-values (((new-s_8) + (wrap_4 + begin163_0 + exp-s_8 + (begin-loop_0 + e164_0)))) + (begin + (let-values (((obs_54) + (expand-context-observer + tl-ctx_0))) + (if obs_54 + (let-values () + (let-values () + (call-expand-observe + obs_54 + 'return + new-s_8))) + (void))) + new-s_8))) + (let-values () + (begin-loop_0 e164_0))))))) + (if (equal? tmp_39 'begin-for-syntax) + (let-values () + (let-values ((() + (begin + (let-values (((obs_55) + (expand-context-observer + tl-ctx_0))) + (if obs_55 + (let-values () + (let-values () + (call-expand-observe + obs_55 + 'prim-begin-for-syntax + exp-s_8))) + (void))) + (values)))) + (let-values (((ok?_32 + begin-for-syntax167_0 + e168_0) + (let-values (((s_234) + exp-s_8)) + (let-values (((orig-s_37) + s_234)) + (let-values (((begin-for-syntax167_1 + e168_1) + (let-values (((s_235) + (if (syntax?$1 + s_234) + (syntax-e$1 + s_234) + s_234))) + (if (pair? + s_235) + (let-values (((begin-for-syntax169_0) + (let-values (((s_361) + (car + s_235))) + s_361)) + ((e170_0) + (let-values (((s_521) + (cdr + s_235))) + (let-values (((s_238) + (if (syntax?$1 + s_521) + (syntax-e$1 + s_521) + s_521))) + (let-values (((flat-s_24) + (to-syntax-list.1 + s_238))) + (if (not + flat-s_24) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_37)) + (let-values () + flat-s_24))))))) + (values + begin-for-syntax169_0 + e170_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_37))))) + (values + #t + begin-for-syntax167_1 + e168_1)))))) + (let-values (((next-phase_0) + (add1 phase_137))) + (let-values (((next-ns_0) + (namespace->namespace-at-phase + ns_107 + next-phase_0))) + (let-values ((() + (begin + (let-values (((obs_56) + (expand-context-observer + tl-ctx_0))) + (if obs_56 + (let-values () + (let-values () + (call-expand-observe + obs_56 + 'prepare-env))) + (void))) + (values)))) + (let-values ((() + (begin + (if quick-immediate?_0 + (let-values () + (namespace-visit-available-modules! + ns_107)) + (void)) + (values)))) + (let-values ((() + (begin + (namespace-visit-available-modules! + next-ns_0) + (values)))) + (let-values (((l_62) + (reverse$1 + (let-values (((lst_313) + e168_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_313))) + ((letrec-values (((for-loop_293) + (lambda (fold-var_283 + lst_314) + (begin + 'for-loop + (if (pair? + lst_314) + (let-values (((s_243) + (unsafe-car + lst_314)) + ((rest_185) + (unsafe-cdr + lst_314))) + (let-values (((fold-var_284) + (let-values (((fold-var_268) + fold-var_283)) + (let-values (((fold-var_269) + (let-values () + (cons + (let-values () + (begin + (let-values (((obs_57) + (expand-context-observer + tl-ctx_0))) + (if obs_57 + (let-values () + (let-values () + (call-expand-observe + obs_57 + 'next))) + (void))) + (loop_106 + s_243 + next-phase_0 + next-ns_0 + #f))) + fold-var_268)))) + (values + fold-var_269))))) + (if (not + #f) + (for-loop_293 + fold-var_284 + rest_185) + fold-var_284))) + fold-var_283))))) + for-loop_293) + null + lst_313)))))) + (if wrap_4 + (let-values () + (let-values (((new-s_9) + (wrap_4 + begin-for-syntax167_0 + exp-s_8 + l_62))) + (begin + (let-values (((obs_58) + (expand-context-observer + tl-ctx_0))) + (if obs_58 + (let-values () + (let-values () + (call-expand-observe + obs_58 + 'return + new-s_9))) + (void))) + new-s_9))) + (if combine_0 + (let-values () + (apply append l_62)) + (let-values () + (void))))))))))))) + (let-values () + (single_0 + exp-s_8 + ns_107 + as-tail?_7))))))))))))))))) + loop_106) + s_517 + phase_136 + ns_106 + #t))))))))))))))))) + (define-values + (maybe-intro) + (lambda (s_522 ns_108) + (begin (if (syntax?$1 s_522) s_522 (1/namespace-syntax-introduce (1/datum->syntax #f s_522) ns_108))))) + (define-values + (re-pair) + (lambda (form-id_0 s_252 r_45) (begin (1/datum->syntax s_252 (cons form-id_0 r_45) s_252 s_252)))) + (define-values + (expand-capturing-lifts) + (lambda (s_523 ctx_77) + (begin + (begin + (if log-performance? (let-values () (start-performance-region 'expand 'top)) (void)) + (begin0 + (let-values () + (let-values (((ns_109) (expand-context-namespace ctx_77))) + (let-values ((() (begin (namespace-visit-available-modules! ns_109) (values)))) + (let-values (((lift-ctx_6) + (let-values (((temp171_0) (make-top-level-lift ctx_77))) + (make-lift-context.1 #f temp171_0)))) + (let-values (((require-lift-ctx_2) + (make-require-lift-context + (namespace-phase ns_109) + (make-parse-top-lifted-require ns_109)))) + (let-values (((exp-s_9) + (let-values (((s172_0) s_523) + ((temp173_0) + (let-values (((v_204) ctx_77)) + (let-values (((the-struct_72) v_204)) + (if (expand-context/outer? the-struct_72) + (let-values (((inner174_0) + (let-values (((the-struct_73) + (root-expand-context/outer-inner + v_204))) + (if (expand-context/inner? the-struct_73) + (let-values (((lifts175_0) lift-ctx_6) + ((module-lifts176_0) lift-ctx_6) + ((require-lifts177_0) + require-lift-ctx_2)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_73) + (root-expand-context/inner-module-scopes + the-struct_73) + (root-expand-context/inner-top-level-bind-scope + the-struct_73) + (root-expand-context/inner-all-scopes-stx + the-struct_73) + (root-expand-context/inner-defined-syms + the-struct_73) + (root-expand-context/inner-counter + the-struct_73) + (root-expand-context/inner-lift-key + the-struct_73) + (expand-context/inner-to-parsed? + the-struct_73) + (expand-context/inner-phase the-struct_73) + (expand-context/inner-namespace + the-struct_73) + (expand-context/inner-just-once? + the-struct_73) + (expand-context/inner-module-begin-k + the-struct_73) + (expand-context/inner-allow-unbound? + the-struct_73) + (expand-context/inner-in-local-expand? + the-struct_73) + (expand-context/inner-keep-#%expression? + the-struct_73) + (expand-context/inner-stops the-struct_73) + (expand-context/inner-declared-submodule-names + the-struct_73) + lifts175_0 + (expand-context/inner-lift-envs + the-struct_73) + module-lifts176_0 + require-lifts177_0 + (expand-context/inner-to-module-lifts + the-struct_73) + (expand-context/inner-requires+provides + the-struct_73) + (expand-context/inner-observer the-struct_73) + (expand-context/inner-for-serializable? + the-struct_73) + (expand-context/inner-to-correlated-linklet? + the-struct_73) + (expand-context/inner-normalize-locals? + the-struct_73) + (expand-context/inner-parsing-expanded? + the-struct_73) + (expand-context/inner-skip-visit-available? + the-struct_73))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_73))))) + (expand-context/outer1.1 + inner174_0 + (root-expand-context/outer-post-expansion the-struct_72) + (root-expand-context/outer-use-site-scopes the-struct_72) + (root-expand-context/outer-frame-id the-struct_72) + (expand-context/outer-context the-struct_72) + (expand-context/outer-env the-struct_72) + (expand-context/outer-scopes the-struct_72) + (expand-context/outer-def-ctx-scopes the-struct_72) + (expand-context/outer-binding-layer the-struct_72) + (expand-context/outer-reference-records the-struct_72) + (expand-context/outer-only-immediate? the-struct_72) + (expand-context/outer-need-eventually-defined the-struct_72) + (expand-context/outer-current-introduction-scopes + the-struct_72) + (expand-context/outer-current-use-scopes the-struct_72) + (expand-context/outer-name the-struct_72))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_72)))))) + (expand.1 #f #f s172_0 temp173_0)))) + (values + (get-and-clear-require-lifts! require-lift-ctx_2) + (get-and-clear-lifts! lift-ctx_6) + exp-s_9))))))) + (if log-performance? (let-values () (end-performance-region)) (void))))))) + (define-values + (make-parse-top-lifted-require) + (lambda (ns_110) + (begin + (lambda (s_380 phase_138) + (let-values (((ok?_33 #%require178_0 req179_0) + (let-values (((s_524) s_380)) + (let-values (((orig-s_38) s_524)) + (let-values (((#%require178_1 req179_1) + (let-values (((s_525) (if (syntax?$1 s_524) (syntax-e$1 s_524) s_524))) + (if (pair? s_525) + (let-values (((#%require180_0) (let-values (((s_255) (car s_525))) s_255)) + ((req181_0) + (let-values (((s_143) (cdr s_525))) + (let-values (((s_526) + (if (syntax?$1 s_143) + (syntax-e$1 s_143) + s_143))) + (if (pair? s_526) + (let-values (((req182_0) + (let-values (((s_395) (car s_526))) + s_395)) + (() + (let-values (((s_256) (cdr s_526))) + (let-values (((s_527) + (if (syntax?$1 s_256) + (syntax-e$1 s_256) + s_256))) + (if (null? s_527) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_38)))))) + (values req182_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_38)))))) + (values #%require180_0 req181_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_38))))) + (values #t #%require178_1 req179_1)))))) + (let-values (((temp183_0) (list req179_0)) + ((s184_0) s_380) + ((ns185_0) ns_110) + ((phase186_0) phase_138) + ((phase187_0) phase_138) + ((temp188_0) (let-values (((temp190_0) #f)) (make-requires+provides.1 #f temp190_0))) + ((temp189_1) 'require)) + (parse-and-perform-requires!.1 + #f + #f + '#hasheq() + #f + phase187_0 + #f + #f + #f + #t + temp189_1 + temp183_0 + s184_0 + ns185_0 + phase186_0 + temp188_0))))))) + (define-values + (wrap-lifts-as-lifted-parsed-begin.1) + (lambda (adjust-form56_0 require-lifts58_0 lifts59_0 exp-s60_0 rebuild-s61_0) + (begin + 'wrap-lifts-as-lifted-parsed-begin + (let-values (((require-lifts_7) require-lifts58_0)) + (let-values (((lifts_13) lifts59_0)) + (let-values (((exp-s_10) exp-s60_0)) + (let-values (((rebuild-s_3) rebuild-s61_0)) + (let-values (((adjust-form_1) adjust-form56_0)) + (let-values () + (lifted-parsed-begin11.1 + (append + (reverse$1 + (let-values (((lst_315) require-lifts_7)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_315))) + ((letrec-values (((for-loop_294) + (lambda (fold-var_53 lst_316) + (begin + 'for-loop + (if (pair? lst_316) + (let-values (((req_19) (unsafe-car lst_316)) + ((rest_186) (unsafe-cdr lst_316))) + (let-values (((fold-var_285) + (let-values (((fold-var_286) fold-var_53)) + (let-values (((fold-var_287) + (let-values () + (cons + (let-values () + (parsed-require23.1 req_19)) + fold-var_286)))) + (values fold-var_287))))) + (if (not #f) (for-loop_294 fold-var_285 rest_186) fold-var_285))) + fold-var_53))))) + for-loop_294) + null + lst_315)))) + (reverse$1 + (let-values (((lst_317) (get-lifts-as-lists lifts_13))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_317))) + ((letrec-values (((for-loop_295) + (lambda (fold-var_288 lst_318) + (begin + 'for-loop + (if (pair? lst_318) + (let-values (((ids+syms+rhs_0) (unsafe-car lst_318)) + ((rest_187) (unsafe-cdr lst_318))) + (let-values (((fold-var_289) + (let-values (((fold-var_290) fold-var_288)) + (let-values (((fold-var_291) + (let-values () + (cons + (let-values () + (let-values (((exp-rhs_3) + (adjust-form_1 + (caddr + ids+syms+rhs_0)))) + (let-values (((just-rhs_0) + (if (lifted-parsed-begin? + exp-rhs_3) + (lifted-parsed-begin-last + exp-rhs_3) + exp-rhs_3))) + (let-values (((dv_0) + (parsed-define-values19.1 + rebuild-s_3 + (car + ids+syms+rhs_0) + (cadr + ids+syms+rhs_0) + just-rhs_0))) + (if (lifted-parsed-begin? + exp-rhs_3) + (let-values (((the-struct_74) + exp-rhs_3)) + (if (lifted-parsed-begin? + the-struct_74) + (let-values (((last191_0) + dv_0)) + (lifted-parsed-begin11.1 + (lifted-parsed-begin-seq + the-struct_74) + last191_0)) + (raise-argument-error + 'struct-copy + "lifted-parsed-begin?" + the-struct_74))) + dv_0))))) + fold-var_290)))) + (values fold-var_291))))) + (if (not #f) (for-loop_295 fold-var_289 rest_187) fold-var_289))) + fold-var_288))))) + for-loop_295) + null + lst_317))))) + exp-s_10)))))))))) + (define-values (replace-me) (lambda (who_0) (begin (lambda args_7 (error who_0 "this stub must be replaced"))))) + (define-values + (1/current-eval) + (let-values () + (let-values () + (make-parameter + (replace-me 'current-eval) + (lambda (p_51) + (begin + (if ((lambda (p_52) (if (procedure? p_52) (procedure-arity-includes? p_52 1) #f)) p_51) + (void) + (let-values () (raise-argument-error 'current-eval "(procedure-arity-includes/c 1)" p_51))) + p_51)) + 'current-eval)))) + (define-values + (1/current-compile) + (let-values () + (let-values () + (make-parameter + (replace-me 'current-compile) + (lambda (p_19) + (begin + (if ((lambda (p_21) (if (procedure? p_21) (procedure-arity-includes? p_21 2) #f)) p_19) + (void) + (let-values () (raise-argument-error 'current-compile "(procedure-arity-includes/c 2)" p_19))) + p_19)) + 'current-compile)))) + (define-values + (1/current-load) + (let-values () + (let-values () + (make-parameter + (replace-me 'current-load) + (lambda (p_1) + (begin + (if ((lambda (p_34) (if (procedure? p_34) (procedure-arity-includes? p_34 2) #f)) p_1) + (void) + (let-values () (raise-argument-error 'current-load "(procedure-arity-includes/c 2)" p_1))) + p_1)) + 'current-load)))) + (define-values + (1/current-load/use-compiled) + (let-values () + (let-values () + (make-parameter + (replace-me 'current-load/use-compiled) + (lambda (p_42) + (begin + (if ((lambda (p_46) (if (procedure? p_46) (procedure-arity-includes? p_46 2) #f)) p_42) + (void) + (let-values () (raise-argument-error 'current-load/use-compiled "(procedure-arity-includes/c 2)" p_42))) + p_42)) + 'current-load/use-compiled)))) + (define-values + (1/current-library-collection-paths) + (let-values () + (let-values () + (make-parameter + null + (lambda (l_63) + (begin + (if ((lambda (l_64) (if (list? l_64) (andmap2 complete-path-string? l_64) #f)) l_63) + (void) + (let-values () + (raise-argument-error + 'current-library-collection-paths + "(listof (and/c path-string? complete-path?))" + l_63))) + (map2 to-path l_63))) + 'current-library-collection-paths)))) + (define-values + (1/current-library-collection-links) + (let-values () + (let-values () + (make-parameter + null + (lambda (l_7) + (begin + (if ((lambda (l_60) + (if (list? l_60) + (andmap2 + (lambda (p_53) + (let-values (((or-part_73) (not p_53))) + (if or-part_73 + or-part_73 + (let-values (((or-part_85) (complete-path-string? p_53))) + (if or-part_85 + or-part_85 + (if (hash? p_53) + (let-values (((ht_49) p_53)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_49))) + ((letrec-values (((for-loop_54) + (lambda (result_20 i_66) + (begin + 'for-loop + (if i_66 + (let-values (((k_20 v_67) + (hash-iterate-key+value ht_49 i_66))) + (let-values (((result_124) + (let-values () + (let-values (((result_60) + (let-values () + (let-values () + (if (let-values (((or-part_146) + (not + k_20))) + (if or-part_146 + or-part_146 + (if (symbol? + k_20) + (1/module-path? + k_20) + #f))) + (if (list? v_67) + (andmap2 + complete-path-string? + v_67) + #f) + #f))))) + (values result_60))))) + (if (if (not + ((lambda x_89 (not result_124)) k_20 v_67)) + (not #f) + #f) + (for-loop_54 + result_124 + (hash-iterate-next ht_49 i_66)) + result_124))) + result_20))))) + for-loop_54) + #t + (hash-iterate-first ht_49)))) + #f)))))) + l_60) + #f)) + l_7) + (void) + (let-values () + (raise-argument-error + 'current-library-collection-links + (string-append + "(listof (or/c #f\n" + " (and/c path-string? complete-path?)\n" + " (hash/c (or/c (and/c symbol? module-path?) #f)\n" + " (listof (and/c path-string? complete-path?)))))") + l_7))) + (map2 + (lambda (p_54) + (if (not p_54) + (let-values () #f) + (if (path? p_54) + (let-values () p_54) + (if (string? p_54) + (let-values () (string->path p_54)) + (let-values () + (let-values (((ht_158) p_54)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_158))) + ((letrec-values (((for-loop_296) + (lambda (table_216 i_205) + (begin + 'for-loop + (if i_205 + (let-values (((k_53 v_49) (hash-iterate-key+value ht_158 i_205))) + (let-values (((table_194) + (let-values (((table_188) table_216)) + (let-values (((table_9) + (let-values () + (let-values (((key_98 val_85) + (let-values () + (values + k_53 + (to-path v_49))))) + (hash-set + table_188 + key_98 + val_85))))) + (values table_9))))) + (if (not #f) + (for-loop_296 table_194 (hash-iterate-next ht_158 i_205)) + table_194))) + table_216))))) + for-loop_296) + '#hash() + (hash-iterate-first ht_158))))))))) + l_7))) + 'current-library-collection-links)))) + (define-values + (1/use-compiled-file-paths) + (let-values () + (let-values () + (make-parameter + (list (string->path "compiled")) + (lambda (l_35) + (begin + (if ((lambda (l_65) (if (list? l_65) (andmap2 relative-path-string?$1 l_65) #f)) l_35) + (void) + (let-values () + (raise-argument-error 'use-compiled-file-paths "(listof (and/c path-string? relative-path?))" l_35))) + (map2 to-path l_35))) + 'use-compiled-file-paths)))) + (define-values + (1/current-compiled-file-roots) + (let-values () + (let-values () + (make-parameter + '(same) + (lambda (l_66) + (begin + (if ((lambda (l_67) + (if (list? l_67) + (andmap2 + (lambda (p_14) + (let-values (((or-part_176) (path-string? p_14))) (if or-part_176 or-part_176 (eq? p_14 'same)))) + l_67) + #f)) + l_66) + (void) + (let-values () + (raise-argument-error 'current-compiled-file-roots "(listof (or/c path-string? 'same))" l_66))) + (map2 to-path l_66))) + 'current-compiled-file-roots)))) + (define-values + (1/use-compiled-file-check) + (let-values () + (let-values () + (make-parameter + 'modify-seconds + (lambda (v_164) + (begin + (if ((lambda (v_190) + (let-values (((or-part_38) (eq? v_190 'modify-seconds))) + (if or-part_38 or-part_38 (eq? v_190 'exists)))) + v_164) + (void) + (let-values () (raise-argument-error 'use-compiled-file-check "(or/c 'modify-seconds 'exists)" v_164))) + v_164)) + 'use-compiled-file-check)))) + (define-values + (1/use-collection-link-paths) + (make-parameter #t (lambda (v_205) (if v_205 #t #f)) 'use-collection-link-paths)) + (define-values + (1/use-user-specific-search-paths) + (make-parameter #t (lambda (v_206) (if v_206 #t #f)) 'use-user-specific-search-paths)) + (define-values (complete-path-string?) (lambda (p_55) (begin (if (path-string? p_55) (complete-path? p_55) #f)))) + (define-values + (relative-path-string?$1) + (lambda (p_0) (begin 'relative-path-string? (if (path-string? p_0) (relative-path? p_0) #f)))) + (define-values (to-path) (lambda (p_56) (begin (if (string? p_56) (string->path p_56) p_56)))) + (define-values + (eval$1) + (let-values () + (let-values () + (case-lambda + ((s_87) (begin 'eval ((1/current-eval) (intro s_87)))) + ((s_10 ns_67) + (begin + (if (1/namespace? ns_67) (void) (let-values () (raise-argument-error 'eval "namespace?" ns_67))) + (with-continuation-mark + parameterization-key + (extend-parameterization (continuation-mark-set-first #f parameterization-key) 1/current-namespace ns_67) + (let-values () ((1/current-eval) (intro s_10 ns_67)))))))))) + (define-values + (1/eval-syntax) + (let-values () + (let-values () + (case-lambda + ((s_12) + (begin + 'eval-syntax + (begin + (if (syntax?$1 s_12) (void) (let-values () (raise-argument-error 'eval-syntax "syntax?" s_12))) + ((1/current-eval) s_12)))) + ((s_307 ns_56) + (begin + (if (syntax?$1 s_307) (void) (let-values () (raise-argument-error 'eval-syntax "syntax?" s_307))) + (if (1/namespace? ns_56) (void) (let-values () (raise-argument-error 'eval-syntax "namespace?" ns_56))) + (with-continuation-mark + parameterization-key + (extend-parameterization (continuation-mark-set-first #f parameterization-key) 1/current-namespace ns_56) + (let-values () ((1/current-eval) s_307))))))))) + (define-values (compile$1) (lambda (s_528) (begin 'compile ((1/current-compile) (intro s_528) #f)))) + (define-values + (1/compile-syntax) + (lambda (s_2) + (begin + 'compile-syntax + (let-values () + (let-values () + (begin + (if (syntax?$1 s_2) (void) (let-values () (raise-argument-error 'compile-syntax "syntax?" s_2))) + ((1/current-compile) s_2 #f))))))) + (define-values + (1/expand) + (let-values (((expand_3) + (lambda (s2_8 insp1_0) + (begin + 'expand + (let-values (((s_529) s2_8)) + (let-values (((insp_18) (if (eq? insp1_0 unsafe-undefined) (current-code-inspector) insp1_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (inspector? insp_18) + (void) + (let-values () (raise-argument-error 'expand "inspector?" insp_18))) + (maybe-taint-expanded + insp_18 + (expand$1 (intro s_529) (1/current-namespace) #t)))))))))))) + (case-lambda ((s_496) (begin 'expand (expand_3 s_496 unsafe-undefined))) ((s_4 insp1_1) (expand_3 s_4 insp1_1))))) + (define-values + (1/expand-syntax) + (let-values (((expand-syntax_0) + (lambda (s4_0 insp3_0) + (begin + 'expand-syntax + (let-values (((s_176) s4_0)) + (let-values (((insp_19) (if (eq? insp3_0 unsafe-undefined) (current-code-inspector) insp3_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (syntax?$1 s_176) + (void) + (let-values () (raise-argument-error 'expand-syntax "syntax?" s_176))) + (if (inspector? insp_19) + (void) + (let-values () (raise-argument-error 'expand-syntax "inspector?" insp_19))) + (maybe-taint-expanded insp_19 (expand$1 s_176 (1/current-namespace) #t)))))))))))) + (case-lambda + ((s_49) (begin 'expand-syntax (expand-syntax_0 s_49 unsafe-undefined))) + ((s_505 insp3_1) (expand-syntax_0 s_505 insp3_1))))) + (define-values + (1/expand-once) + (let-values (((expand-once_1) + (lambda (s6_2 insp5_0) + (begin + 'expand-once + (let-values (((s_530) s6_2)) + (let-values (((insp_20) (if (eq? insp5_0 unsafe-undefined) (current-code-inspector) insp5_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (inspector? insp_20) + (void) + (let-values () (raise-argument-error 'expand-once "inspector?" insp_20))) + (maybe-taint-expanded insp_20 (expand-once$1 (intro s_530))))))))))))) + (case-lambda + ((s_81) (begin 'expand-once (expand-once_1 s_81 unsafe-undefined))) + ((s_173 insp5_1) (expand-once_1 s_173 insp5_1))))) + (define-values + (1/expand-syntax-once) + (let-values (((expand-syntax-once_0) + (lambda (s8_1 insp7_0) + (begin + 'expand-syntax-once + (let-values (((s_506) s8_1)) + (let-values (((insp_21) (if (eq? insp7_0 unsafe-undefined) (current-code-inspector) insp7_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (syntax?$1 s_506) + (void) + (let-values () (raise-argument-error 'expand-syntax-once "syntax?" s_506))) + (if (inspector? insp_21) + (void) + (let-values () (raise-argument-error 'expand-syntax-once "inspector?" insp_21))) + (maybe-taint-expanded insp_21 (expand-once$1 s_506)))))))))))) + (case-lambda + ((s_83) (begin 'expand-syntax-once (expand-syntax-once_0 s_83 unsafe-undefined))) + ((s_84 insp7_1) (expand-syntax-once_0 s_84 insp7_1))))) + (define-values + (1/expand-to-top-form) + (let-values (((expand-to-top-form_1) + (lambda (s10_2 insp9_0) + (begin + 'expand-to-top-form + (let-values (((s_180) s10_2)) + (let-values (((insp_22) (if (eq? insp9_0 unsafe-undefined) (current-code-inspector) insp9_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (inspector? insp_22) + (void) + (let-values () (raise-argument-error 'expand-to-top-form "inspector?" insp_22))) + (maybe-taint-expanded insp_22 (expand-to-top-form$1 (intro s_180))))))))))))) + (case-lambda + ((s_531) (begin 'expand-to-top-form (expand-to-top-form_1 s_531 unsafe-undefined))) + ((s_452 insp9_1) (expand-to-top-form_1 s_452 insp9_1))))) + (define-values + (1/expand-syntax-to-top-form) + (let-values (((expand-syntax-to-top-form_0) + (lambda (s12_0 insp11_0) + (begin + 'expand-syntax-to-top-form + (let-values (((s_311) s12_0)) + (let-values (((insp_23) (if (eq? insp11_0 unsafe-undefined) (current-code-inspector) insp11_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (syntax?$1 s_311) + (void) + (let-values () (raise-argument-error 'expand-syntax-to-top-form "syntax?" s_311))) + (if (inspector? insp_23) + (void) + (let-values () + (raise-argument-error 'expand-syntax-to-top-form "inspector?" insp_23))) + (maybe-taint-expanded insp_23 (expand-to-top-form$1 s_311)))))))))))) + (case-lambda + ((s_42) (begin 'expand-syntax-to-top-form (expand-syntax-to-top-form_0 s_42 unsafe-undefined))) + ((s_458 insp11_1) (expand-syntax-to-top-form_0 s_458 insp11_1))))) + (define-values + (intro) + (let-values (((intro_0) + (lambda (given-s14_0 ns13_1) + (begin + 'intro + (let-values (((given-s_1) given-s14_0)) + (let-values (((ns_111) (if (eq? ns13_1 unsafe-undefined) (1/current-namespace) ns13_1))) + (let-values () + (let-values (((s_163) (if (syntax?$1 given-s_1) given-s_1 (1/datum->syntax #f given-s_1)))) + (1/namespace-syntax-introduce s_163 ns_111))))))))) + (case-lambda + ((given-s_2) (begin (intro_0 given-s_2 unsafe-undefined))) + ((given-s_3 ns13_2) (intro_0 given-s_3 ns13_2))))) + (define-values + (maybe-taint-expanded) + (lambda (insp_24 s_95) (begin (if (eq? insp_24 initial-code-inspector) s_95 (syntax-taint$1 s_95))))) + (define-values + (do-dynamic-require) + (let-values (((do-dynamic-require_0) + (lambda (who2_0 mod-path3_1 sym4_1 fail-k1_0) + (begin + 'do-dynamic-require + (let-values (((who_24) who2_0)) + (let-values (((mod-path_5) mod-path3_1)) + (let-values (((sym_51) sym4_1)) + (let-values (((fail-k_2) + (if (eq? fail-k1_0 unsafe-undefined) + default-dynamic-require-fail-thunk + fail-k1_0))) + (let-values () + (let-values ((() + (begin + (if (let-values (((or-part_14) (1/module-path? mod-path_5))) + (if or-part_14 + or-part_14 + (let-values (((or-part_82) (1/module-path-index? mod-path_5))) + (if or-part_82 + or-part_82 + (1/resolved-module-path? mod-path_5))))) + (void) + (let-values () + (raise-argument-error + who_24 + "(or/c module-path? module-path-index? resolved-module-path?)" + mod-path_5))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_15) (symbol? sym_51))) + (if or-part_15 + or-part_15 + (let-values (((or-part_72) (not sym_51))) + (if or-part_72 + or-part_72 + (let-values (((or-part_83) (equal? sym_51 0))) + (if or-part_83 or-part_83 (void? sym_51))))))) + (void) + (let-values () + (raise-argument-error who_24 "(or/c symbol? #f 0 void?)" sym_51))) + (values)))) + (let-values ((() + (begin + (if (if (procedure? fail-k_2) + (procedure-arity-includes? fail-k_2 0) + #f) + (void) + (let-values () (raise-argument-error who_24 "(-> any)" fail-k_2))) + (values)))) + (let-values (((ns_112) (1/current-namespace))) + (let-values (((mpi_62) + (if (1/module-path? mod-path_5) + (let-values () (1/module-path-index-join mod-path_5 #f)) + (if (1/module-path-index? mod-path_5) + (let-values () mod-path_5) + (let-values () + (1/module-path-index-join + (resolved-module-path->module-path mod-path_5) + #f)))))) + (let-values (((mod-name_23) (1/module-path-index-resolve mpi_62 #t))) + (let-values (((phase_1) (namespace-phase ns_112))) + (if (not sym_51) + (let-values () + (let-values (((ns11_1) ns_112) + ((mpi12_0) mpi_62) + ((phase13_1) phase_1) + ((phase14_4) phase_1) + ((temp15_5) #f)) + (namespace-module-instantiate!.1 + #f + temp15_5 + phase14_4 + '#hasheq() + null + #f + ns11_1 + mpi12_0 + phase13_1))) + (if (equal? sym_51 0) + (let-values () + (let-values (((ns16_2) ns_112) + ((mpi17_1) mpi_62) + ((phase18_1) phase_1) + ((phase19_1) phase_1)) + (namespace-module-instantiate!.1 + #f + #t + phase19_1 + '#hasheq() + null + #f + ns16_2 + mpi17_1 + phase18_1))) + (if (void? sym_51) + (let-values () + (begin + (namespace-visit-available-modules! ns_112 phase_1) + (let-values (((ns20_4) ns_112) + ((mpi21_0) mpi_62) + ((phase22_3) phase_1) + ((phase23_1) phase_1)) + (namespace-module-visit!.1 + phase23_1 + ns20_4 + mpi21_0 + phase22_3)))) + (let-values () + (let-values (((m_22) (namespace->module ns_112 mod-name_23))) + (let-values ((() + (begin + (if m_22 + (void) + (let-values () + (raise-unknown-module-error + 'dynamic-require + mod-name_23))) + (values)))) + (let-values (((binding/p_5) + (hash-ref + (hash-ref (module-provides m_22) 0 '#hasheq()) + sym_51 + #f))) + (if (not binding/p_5) + (let-values () + (if (eq? fail-k_2 default-dynamic-require-fail-thunk) + (raise-arguments-error + 'dynamic-require + "name is not provided" + "name" + sym_51 + "module" + mod-name_23) + (fail-k_2))) + (let-values () + (let-values (((binding_25) + (provided-as-binding binding/p_5))) + (let-values (((ex-sym_2) + (module-binding-sym binding_25))) + (let-values (((ex-phase_0) + (module-binding-phase binding_25))) + (let-values ((() + (begin + (let-values (((ns24_3) ns_112) + ((mpi25_0) mpi_62) + ((phase26_0) phase_1) + ((phase27_2) phase_1) + ((temp28_5) #f)) + (namespace-module-instantiate!.1 + #f + temp28_5 + phase27_2 + '#hasheq() + null + #f + ns24_3 + mpi25_0 + phase26_0)) + (values)))) + (let-values (((ex-mod-name_0) + (1/module-path-index-resolve + (module-path-index-shift + (module-binding-module binding_25) + (module-self m_22) + mpi_62)))) + (let-values (((m-ns_15) + (let-values (((ns29_0) ns_112) + ((ex-mod-name30_0) + ex-mod-name_0) + ((temp31_2) + (phase- + phase_1 + ex-phase_0)) + ((temp32_4) #t)) + (namespace->module-namespace.1 + #f + temp32_4 + void + ns29_0 + ex-mod-name30_0 + temp31_2)))) + (let-values (((ex-m_0) + (namespace->module + ns_112 + ex-mod-name_0))) + (let-values (((access_4) + (let-values (((or-part_36) + (module-access + ex-m_0))) + (if or-part_36 + or-part_36 + (module-compute-access! + ex-m_0))))) + (let-values ((() + (begin + (if (if (not + (eq? + 'provided + (hash-ref + (hash-ref + access_4 + ex-phase_0 + '#hasheq()) + ex-sym_2 + #f))) + (if (not + (inspector-superior? + (current-code-inspector) + (namespace-inspector + m-ns_15))) + (not + (if (module-binding-extra-inspector + binding_25) + (inspector-superior? + (module-binding-extra-inspector + binding_25) + (namespace-inspector + m-ns_15)) + #f)) + #f) + #f) + (let-values () + (raise-arguments-error + 'dynamic-require + "name is protected" + "name" + sym_51 + "module" + mod-name_23)) + (void)) + (values)))) + (let-values (((fail_1) + (lambda () + (begin + 'fail + (if (eq? + fail-k_2 + default-dynamic-require-fail-thunk) + (raise-arguments-error + 'dynamic-require + "name's binding is missing" + "name" + sym_51 + "module" + mod-name_23) + (fail-k_2)))))) + (if (not + (provided-as-transformer? + binding/p_5)) + (let-values () + (namespace-get-variable + m-ns_15 + ex-phase_0 + ex-sym_2 + fail_1)) + (let-values () + (let-values (((missing_1) + (gensym 'missing))) + (let-values ((() + (begin + (let-values (((ns33_0) + ns_112) + ((mpi34_0) + mpi_62) + ((phase35_0) + phase_1) + ((phase36_0) + phase_1)) + (namespace-module-visit!.1 + phase36_0 + ns33_0 + mpi34_0 + phase35_0)) + (values)))) + (let-values (((t_32) + (namespace-get-transformer + m-ns_15 + ex-phase_0 + ex-sym_2 + missing_1))) + (if (eq? t_32 missing_1) + (let-values () (fail_1)) + (let-values () + (let-values (((tmp-ns_0) + (let-values (((ns37_4) + ns_112)) + (new-namespace.1 + #t + unsafe-undefined + ns37_4)))) + (let-values (((mod-path_17) + (resolved-module-path->module-path + mod-name_23))) + (begin + (1/namespace-require + mod-path_17 + tmp-ns_0) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + tmp-ns_0) + (let-values () + (1/eval + sym_51 + tmp-ns_0)))))))))))))))))))))))))))))))))))))))))))))))) + (case-lambda + ((who_25 mod-path_18 sym_93) (begin (do-dynamic-require_0 who_25 mod-path_18 sym_93 unsafe-undefined))) + ((who_26 mod-path_19 sym_76 fail-k1_1) (do-dynamic-require_0 who_26 mod-path_19 sym_76 fail-k1_1))))) + (define-values (default-dynamic-require-fail-thunk) (lambda () (begin (error "failed")))) + (define-values + (1/dynamic-require) + (let-values (((dynamic-require_0) + (lambda (mod-path6_2 sym7_0 fail-k5_0) + (begin + 'dynamic-require + (let-values (((mod-path_20) mod-path6_2)) + (let-values (((sym_94) sym7_0)) + (let-values (((fail-k_3) + (if (eq? fail-k5_0 unsafe-undefined) + default-dynamic-require-fail-thunk + fail-k5_0))) + (let-values () + (let-values () + (let-values () (do-dynamic-require 'dynamic-require mod-path_20 sym_94 fail-k_3))))))))))) + (case-lambda + ((mod-path_21 sym_77) (begin 'dynamic-require (dynamic-require_0 mod-path_21 sym_77 unsafe-undefined))) + ((mod-path_22 sym_48 fail-k5_1) (dynamic-require_0 mod-path_22 sym_48 fail-k5_1))))) + (define-values + (1/dynamic-require-for-syntax) + (let-values (((dynamic-require-for-syntax_0) + (lambda (mod-path9_0 sym10_1 fail-k8_0) + (begin + 'dynamic-require-for-syntax + (let-values (((mod-path_23) mod-path9_0)) + (let-values (((sym_95) sym10_1)) + (let-values (((fail-k_4) + (if (eq? fail-k8_0 unsafe-undefined) + default-dynamic-require-fail-thunk + fail-k8_0))) + (let-values () + (let-values () + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + (let-values (((ns_12) (1/current-namespace))) + (namespace->namespace-at-phase ns_12 (add1 (namespace-phase ns_12))))) + (let-values () + (do-dynamic-require + 'dynamic-require-for-syntax + mod-path_23 + sym_95 + fail-k_4))))))))))))) + (case-lambda + ((mod-path_24 sym_49) + (begin 'dynamic-require-for-syntax (dynamic-require-for-syntax_0 mod-path_24 sym_49 unsafe-undefined))) + ((mod-path_25 sym_96 fail-k8_1) (dynamic-require-for-syntax_0 mod-path_25 sym_96 fail-k8_1))))) + (define-values + (1/load) + (lambda (s_0) + (begin + 'load + (let-values () + (let-values () + (let-values ((() + (begin + (if (path-string? s_0) (void) (let-values () (raise-argument-error 'load "path-string?" s_0))) + (values)))) + (let-values (((p_57) (->path s_0))) + (call-with-current-load-relative-directory p_57 (lambda () ((1/current-load) p_57 #f)))))))))) + (define-values + (1/load-extension) + (lambda (s_1) + (begin + 'load-extension + (let-values () + (let-values () + (let-values ((() + (begin + (if (path-string? s_1) + (void) + (let-values () (raise-argument-error 'load-extension "path-string?" s_1))) + (values)))) + (let-values (((p_58) (->path s_1))) + (call-with-current-load-relative-directory p_58 (lambda () ((current-load-extension) p_58 #f)))))))))) + (define-values + (call-with-current-load-relative-directory) + (lambda (p_19 thunk_6) + (begin + (let-values (((base_19 name_38 dir?_5) (split-path p_19))) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + current-load-relative-directory + (if (eq? base_19 'relative) (current-directory) (path->complete-path base_19))) + (let-values () (thunk_6))))))) + (define-values + (1/load/use-compiled) + (lambda (f_26) + (begin + 'load/use-compiled + (let-values () + (let-values () + (let-values ((() + (begin + (if (path-string? f_26) + (void) + (let-values () (raise-argument-error 'load/use-compiled "path-string?" f_26))) + (values)))) + (let-values (((p_46) (->path f_26))) ((1/current-load/use-compiled) p_46 #f)))))))) + (define-values + (embedded-load) + (let-values (((embedded-load_0) + (lambda (start2_0 end3_0 bstr4_0 as-predefined?5_0 in-path1_0) + (begin + 'embedded-load + (let-values (((start_52) start2_0)) + (let-values (((end_39) end3_0)) + (let-values (((bstr_18) bstr4_0)) + (let-values (((as-predefined?_0) as-predefined?5_0)) + (let-values (((in-path_0) in-path1_0)) + (let-values () + (let-values (((s_497) + (if bstr_18 + bstr_18 + (let-values (((path_10) + (if (bytes? in-path_0) + (let-values () (bytes->path in-path_0)) + (if (string? in-path_0) + (let-values () in-path_0) + (let-values () + (find-executable-path + (find-system-path 'exec-file) + #f)))))) + (let-values (((start_53) + (if (string? start_52) + (let-values (((or-part_4) + (1/string->number start_52))) + (if or-part_4 or-part_4 0)) + start_52))) + (let-values (((end_40) + (if (string? end_39) + (let-values (((or-part_6) + (1/string->number end_39))) + (if or-part_6 or-part_6 0)) + (let-values (((or-part_7) end_39)) + (if or-part_7 or-part_7 (file-size path_10)))))) + (let-values (((path9_0) path_10) + ((temp10_4) + (lambda () + (begin + (file-position (current-input-port) start_53) + (read-bytes (max 0 (- end_40 start_53))))))) + (with-input-from-file.1 'binary path9_0 temp10_4)))))))) + (let-values (((p_54) (open-input-bytes s_497))) + ((letrec-values (((loop_99) + (lambda () + (begin + 'loop + (let-values (((e_85) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/read-accept-compiled + #t + 1/read-accept-reader + #t + 1/read-accept-lang + #t + read-on-demand-source + #t) + (let-values () (1/read p_54))))) + (if (eof-object? e_85) + (void) + (let-values () + (begin + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + current-module-declare-as-predefined + as-predefined?_0) + (let-values () ((1/current-eval) e_85))) + (loop_99))))))))) + loop_99)))))))))))))) + (case-lambda + ((start_54 end_41 bstr_19 as-predefined?_1) (begin (embedded-load_0 start_54 end_41 bstr_19 as-predefined?_1 #f))) + ((start_55 end_42 bstr_20 as-predefined?_2 in-path1_1) + (embedded-load_0 start_55 end_42 bstr_20 as-predefined?_2 in-path1_1))))) + (define-values (->path) (lambda (s_85) (begin (if (string? s_85) (string->path s_85) s_85)))) + (define-values + (find-main-collects) + (lambda () + (begin (cache-configuration 0 (lambda () (exe-relative-path->complete-path (find-system-path 'collects-dir))))))) + (define-values + (find-main-config) + (lambda () + (begin (cache-configuration 1 (lambda () (exe-relative-path->complete-path (find-system-path 'config-dir))))))) + (define-values + (exe-relative-path->complete-path) + (lambda (collects-path_0) + (begin + (if (complete-path? collects-path_0) + (let-values () (simplify-path collects-path_0)) + (if (absolute-path? collects-path_0) + (let-values () + (let-values (((exec_0) + (call-in-original-directory + (lambda () + (path->complete-path + (find-executable-path (find-system-path 'exec-file)) + (find-system-path 'orig-dir)))))) + (let-values (((base_20 name_55 dir?_6) (split-path exec_0))) + (simplify-path (path->complete-path collects-path_0 base_20))))) + (let-values () + (let-values (((p_58) + (call-in-original-directory + (lambda () (find-executable-path (find-system-path 'exec-file) collects-path_0 #t))))) + (if p_58 (simplify-path p_58) #f)))))))) + (define-values + (call-in-original-directory) + (lambda (thunk_7) + (begin + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + current-directory + (find-system-path 'orig-dir)) + (thunk_7))))) + (define-values + (encoded-link-path?) + (lambda (p_20) + (begin + (let-values (((or-part_1) (path-string? p_20))) + (if or-part_1 + or-part_1 + (let-values (((or-part_2) (path-bytes? p_20))) + (if or-part_2 + or-part_2 + (if (pair? p_20) (if (list? p_20) (andmap2 path-element-bytes/same/up? p_20) #f) #f)))))))) + (define-values + (path-bytes?) + (lambda (p_51) + (begin + (if (bytes? p_51) + (if (positive? (bytes-length p_51)) + (let-values (((vec_82 len_60) + (let-values (((vec_83) p_51)) + (begin (check-bytes vec_83) (values vec_83 (unsafe-bytes-length vec_83)))))) + (begin + #f + ((letrec-values (((for-loop_104) + (lambda (result_58 pos_124) + (begin + 'for-loop + (if (unsafe-fx< pos_124 len_60) + (let-values (((c_31) (unsafe-bytes-ref vec_82 pos_124))) + (let-values (((result_122) + (let-values () + (let-values (((result_125) + (let-values () + (let-values () (not (eqv? c_31 0)))))) + (values result_125))))) + (if (if (not ((lambda x_90 (not result_122)) c_31)) (not #f) #f) + (for-loop_104 result_122 (unsafe-fx+ 1 pos_124)) + result_122))) + result_58))))) + for-loop_104) + #t + 0))) + #f) + #f)))) + (define-values + (path-element-bytes/same/up?) + (lambda (p_35) + (begin + (let-values (((or-part_72) (eq? p_35 'up))) + (if or-part_72 + or-part_72 + (let-values (((or-part_83) (eq? p_35 'same))) + (if or-part_83 + or-part_83 + (if (path-bytes? p_35) + (let-values (((p_59) (bytes->path-element p_35 (system-path-convention-type) #t))) + (if p_59 (relative-path? p_59) #f)) + #f)))))))) + (define-values + (decode-link-path) + (lambda (p_2) + (begin + (if (path-string? p_2) + (let-values () p_2) + (if (bytes? p_2) + (let-values () (bytes->path p_2)) + (let-values () + ((letrec-values (((loop_107) + (lambda (path_11 p_60) + (begin + 'loop + (if (null? p_60) + (let-values () path_11) + (let-values () + (let-values (((elem_0) + (if (bytes? (car p_60)) + (bytes->path-element (car p_60)) + (car p_60)))) + (loop_107 (if path_11 (build-path path_11 elem_0) elem_0) (cdr p_60))))))))) + loop_107) + #f + p_2))))))) + (define-values + (struct:shadow-directory shadow-directory1.1 shadow-directory? shadow-directory-evt shadow-directory-table) + (let-values (((struct:_4 make-_4 ?_4 -ref_4 -set!_4) + (let-values () + (let-values () + (make-struct-type + 'shadow-directory + #f + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'shadow-directory))))) + (values + struct:_4 + make-_4 + ?_4 + (make-struct-field-accessor -ref_4 0 'evt) + (make-struct-field-accessor -ref_4 1 'table)))) + (define-values + (use-shadow-directory?) + (let-values (((v_162) (system-type 'fs-change))) + (if (eq? 'scalable (vector-ref v_162 1)) (eq? 'low-latency (vector-ref v_162 2)) #f))) + (define-values (make-cache) (lambda () (begin (if use-shadow-directory? (make-weak-hash) #f)))) + (define-values (cell.1$2) (unsafe-make-place-local (make-cache))) + (define-values (shadow-directory-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$2 (make-cache))))) + (define-values + (lookup-shadow-directory) + (lambda (orig_0) + (begin + (let-values (((sd_0) (call-as-atomic (lambda () (hash-ref (unsafe-place-local-ref cell.1$2) orig_0 #f))))) + (if sd_0 + (let-values () + (if (sync/timeout 0 (shadow-directory-evt sd_0)) + (let-values () + (begin + (call-as-atomic (lambda () (hash-remove! (unsafe-place-local-ref cell.1$2) orig_0))) + (lookup-shadow-directory orig_0))) + (let-values () sd_0))) + (let-values () + (let-values (((evt_0) (filesystem-change-evt orig_0 (lambda () #f)))) + (if evt_0 + (let-values () + (let-values (((table_196) + (let-values (((lst_89) (directory-list orig_0))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_89))) + ((letrec-values (((for-loop_201) + (lambda (table_217 lst_169) + (begin + 'for-loop + (if (pair? lst_169) + (let-values (((p_61) (unsafe-car lst_169)) + ((rest_85) (unsafe-cdr lst_169))) + (let-values (((table_216) + (let-values (((table_104) table_217)) + (if (directory-exists? + (build-path orig_0 p_61)) + (let-values (((table_8) table_104)) + (let-values (((table_193) + (let-values () + (let-values (((key_99 + val_21) + (let-values () + (values + (normal-case-path + p_61) + #t)))) + (hash-set + table_8 + key_99 + val_21))))) + (values table_193))) + table_104)))) + (if (not #f) + (for-loop_201 table_216 rest_85) + table_216))) + table_217))))) + for-loop_201) + '#hash() + lst_89))))) + (let-values (((sd_1) (shadow-directory1.1 evt_0 table_196))) + (begin + (call-as-atomic (lambda () (hash-set! (unsafe-place-local-ref cell.1$2) orig_0 sd_1))) + sd_1)))) + (let-values () #f))))))))) + (define-values + (directory-exists?/shadow-filesystem) + (lambda (p_62 orig_1 subpath_0) + (begin + (if (not (unsafe-place-local-ref cell.1$2)) + (let-values () (directory-exists? p_62)) + (let-values () + (let-values (((sd_2) (lookup-shadow-directory orig_1))) + (if (not sd_2) + (let-values () (directory-exists? p_62)) + (if sd_2 + (let-values () + (let-values (((ht_159) (shadow-directory-table sd_2))) + (hash-ref ht_159 (normal-case-path subpath_0) #f))) + (void))))))))) + (define-values (relative-path-string?) (lambda (s_47) (begin (if (path-string? s_47) (relative-path? s_47) #f)))) + (define-values + (check-collection) + (lambda (who_27 s_5 l_8) + (begin + (begin + (if (relative-path-string? s_5) + (void) + (let-values () (raise-argument-error who_27 "(and/c path-string? relative-path?)" s_5))) + (if ((lambda (l_68) (if (list? l_68) (andmap2 relative-path-string? l_68) #f)) l_8) + (void) + (let-values () (raise-argument-error who_27 "(listof (and/c path-string? relative-path?))" l_8))))))) + (define-values + (check-fail) + (lambda (who_28 fail_2) + (begin + (if ((lambda (p_63) (if (procedure? p_63) (procedure-arity-includes? p_63 1) #f)) fail_2) + (void) + (let-values () (raise-argument-error who_28 "(procedure-arity-includes/c 1)" fail_2)))))) + (define-values + (1/collection-path) + (lambda (fail_3 collection_0 collection-path_0) + (begin + 'collection-path + (let-values () + (let-values () + (begin + (check-collection 'collection-path collection_0 collection-path_0) + (check-fail 'collection-path fail_3) + (find-col-file fail_3 collection_0 collection-path_0 #f #f))))))) + (define-values + (1/collection-file-path) + (lambda (fail_4 check-compiled?_0 file-name_0 collection_1 collection-path_1) + (begin + 'collection-file-path + (let-values () + (let-values () + (begin + (if (relative-path-string? file-name_0) + (void) + (let-values () + (raise-argument-error 'collection-file-path "(and/c path-string? relative-path?)" file-name_0))) + (check-collection 'collection-file-path collection_1 collection-path_1) + (check-fail 'collection-file-path fail_4) + (find-col-file fail_4 collection_1 collection-path_1 file-name_0 check-compiled?_0))))))) + (define-values + (get-config-table) + (lambda (d_40) + (begin + (let-values (((p_64) (if d_40 (build-path d_40 "config.rktd") #f))) + (let-values (((or-part_89) + (if p_64 + (if (file-exists? p_64) + (let-values (((p5_0) p_64) + ((temp6_2) + (lambda () + (let-values (((v_207) (call-with-default-reading-parameterization 1/read))) + (if (hash? v_207) v_207 #f))))) + (with-input-from-file.1 'binary p5_0 temp6_2)) + #f) + #f))) + (if or-part_89 or-part_89 '#hash())))))) + (define-values + (get-installation-name) + (lambda (config-table_0) (begin (hash-ref config-table_0 'installation-name (version))))) + (define-values + (coerce-to-relative-path) + (lambda (p_12) + (begin + (if (string? p_12) + (let-values () (string->path p_12)) + (if (bytes? p_12) (let-values () (bytes->path p_12)) (let-values () p_12)))))) + (define-values + (coerce-to-path) + (lambda (p_65) + (begin + (if (string? p_65) + (let-values () (collects-relative-path->complete-path (string->path p_65))) + (if (bytes? p_65) + (let-values () (collects-relative-path->complete-path (bytes->path p_65))) + (if (path? p_65) (let-values () (collects-relative-path->complete-path p_65)) (let-values () p_65))))))) + (define-values + (collects-relative-path->complete-path) + (lambda (p_66) + (begin + (if (complete-path? p_66) + (let-values () p_66) + (let-values () + (path->complete-path + p_66 + (let-values (((or-part_152) (find-main-collects))) (if or-part_152 or-part_152 (current-directory))))))))) + (define-values + (add-config-search) + (lambda (ht_160 key_100 orig-l_2) + (begin + (let-values (((l_67) (hash-ref ht_160 key_100 #f))) + (if l_67 + ((letrec-values (((loop_78) + (lambda (l_52) + (begin + 'loop + (if (null? l_52) + (let-values () null) + (if (not (car l_52)) + (let-values () (append orig-l_2 (loop_78 (cdr l_52)))) + (let-values () (cons (coerce-to-path (car l_52)) (loop_78 (cdr l_52)))))))))) + loop_78) + l_67) + orig-l_2))))) + (define-values + (1/find-library-collection-links) + (lambda () + (begin + 'find-library-collection-links + (let-values (((ht_135) (get-config-table (find-main-config)))) + (let-values (((lf_0) + (coerce-to-path + (let-values (((or-part_37) (hash-ref ht_135 'links-file #f))) + (if or-part_37 + or-part_37 + (build-path + (let-values (((or-part_38) (hash-ref ht_135 'share-dir #f))) + (if or-part_38 or-part_38 (build-path 'up "share"))) + "links.rktd")))))) + (append + (list #f) + (if (if (1/use-user-specific-search-paths) (1/use-collection-link-paths) #f) + (list (build-path (find-system-path 'addon-dir) (get-installation-name ht_135) "links.rktd")) + null) + (if (1/use-collection-link-paths) (add-config-search ht_135 'links-search-files (list lf_0)) null))))))) + (define-values (cell.1$1) (unsafe-make-place-local (make-weak-hash))) + (define-values (collection-place-init!) (lambda () (begin (unsafe-place-local-set! cell.1$1 (make-weak-hash))))) + (define-values (stamp-prompt-tag) (make-continuation-prompt-tag 'stamp)) + (define-values + (file->stamp) + (lambda (path_12 old-stamp_0) + (begin + (if (if old-stamp_0 (if (cdr old-stamp_0) (not (sync/timeout 0 (cdr old-stamp_0))) #f) #f) + (let-values () old-stamp_0) + (let-values () + (call-with-continuation-prompt + (lambda () + (call-with-exception-handler + (lambda (exn_3) + (abort-current-continuation + stamp-prompt-tag + (if (exn:fail:filesystem? exn_3) (lambda () #f) (lambda () (raise exn_3))))) + (lambda () + (let-values (((dir-evt_0) + (if (vector-ref (system-type 'fs-change) 2) + ((letrec-values (((loop_108) + (lambda (path_13) + (begin + 'loop + (let-values (((base_21 name_37 dir?_7) (split-path path_13))) + (if (path? base_21) + (if (directory-exists? base_21) + (filesystem-change-evt base_21 (lambda () #f)) + (loop_108 base_21)) + #f)))))) + loop_108) + path_12) + #f))) + (if (not (file-exists? path_12)) + (let-values () (cons #f dir-evt_0)) + (let-values () + (let-values (((evt_1) + (if (vector-ref (system-type 'fs-change) 2) + (filesystem-change-evt path_12 (lambda () #f)) + #f))) + (begin + (if dir-evt_0 (let-values () (filesystem-change-evt-cancel dir-evt_0)) (void)) + (cons (file->bytes path_12) evt_1))))))))) + stamp-prompt-tag)))))) + (define-values + (file->bytes) + (lambda (path_3) + (begin + (let-values (((path7_0) path_3) + ((temp8_5) + (lambda (p_36) + (let-values (((bstr_21) (read-bytes 8192 p_36))) + (if (if (bytes? bstr_21) (>= (bytes-length bstr_21) 8192) #f) + (apply + bytes-append + (cons + bstr_21 + ((letrec-values (((loop_95) + (lambda () + (begin + 'loop + (let-values (((bstr_22) (read-bytes 8192 p_36))) + (if (eof-object? bstr_22) null (cons bstr_22 (loop_95)))))))) + loop_95)))) + bstr_21))))) + (call-with-input-file*.1 'binary path7_0 temp8_5))))) + (define-values + (no-file-stamp?) + (lambda (a_60) (begin (let-values (((or-part_304) (not a_60))) (if or-part_304 or-part_304 (not (car a_60))))))) + (define-values + (get-linked-collections) + (lambda (links-path_0) + (begin + (call/ec + (lambda (esc_1) + (let-values (((make-handler_0) + (lambda (ts_0) + (begin + 'make-handler + (lambda (exn_4) + (begin + (if (exn:fail? exn_4) + (let-values (((l_69) (current-logger))) + (if (log-level? l_69 'error) + (let-values () + (log-message + l_69 + 'error + (format + "error reading collection links file ~s: ~a" + links-path_0 + (exn-message exn_4)) + (current-continuation-marks))) + (void))) + (void)) + (if ts_0 + (let-values () + (call-as-atomic + (lambda () + (hash-set! + (unsafe-place-local-ref cell.1$1) + links-path_0 + (cons ts_0 '#hasheq()))))) + (void)) + (if (exn:fail? exn_4) (esc_1 (make-hasheq)) exn_4))))))) + (call-with-exception-handler + (make-handler_0 #f) + (lambda () + (let-values (((links-stamp+cache_0) + (call-as-atomic + (lambda () (hash-ref (unsafe-place-local-ref cell.1$1) links-path_0 '(#f . #hasheq())))))) + (let-values (((a-links-stamp_0) (car links-stamp+cache_0))) + (let-values (((ts_1) (file->stamp links-path_0 a-links-stamp_0))) + (if (equal? ts_1 a-links-stamp_0) + (let-values () (cdr links-stamp+cache_0)) + (let-values () + (call-with-exception-handler + (make-handler_0 ts_1) + (lambda () + (call-with-default-reading-parameterization + (lambda () + (let-values (((v_99) + (if (no-file-stamp? ts_1) + null + (let-values (((links-path9_0) links-path_0) + ((temp10_5) + (lambda (p_67) + (begin0 + (1/read p_67) + (if (eof-object? (1/read p_67)) + (void) + (let-values () + (error "expected a single S-expression"))))))) + (call-with-input-file*.1 'binary links-path9_0 temp10_5))))) + (let-values ((() + (begin + (if (if (list? v_99) + (andmap2 + (lambda (p_68) + (if (list? p_68) + (if (let-values (((or-part_41) (= 2 (length p_68)))) + (if or-part_41 or-part_41 (= 3 (length p_68)))) + (if (let-values (((or-part_272) (string? (car p_68)))) + (if or-part_272 + or-part_272 + (let-values (((or-part_274) + (eq? 'root (car p_68)))) + (if or-part_274 + or-part_274 + (eq? 'static-root (car p_68)))))) + (if (encoded-link-path? (cadr p_68)) + (let-values (((or-part_42) (null? (cddr p_68)))) + (if or-part_42 or-part_42 (regexp? (caddr p_68)))) + #f) + #f) + #f) + #f)) + v_99) + #f) + (void) + (let-values () (error "ill-formed content"))) + (values)))) + (let-values (((ht_161) (make-hasheq))) + (let-values (((dir_0) + (let-values (((base_22 name_69 dir?_8) (split-path links-path_0))) + base_22))) + (begin + (for-each2 + (lambda (p_69) + (if (let-values (((or-part_155) (null? (cddr p_69)))) + (if or-part_155 or-part_155 (regexp-match? (caddr p_69) (version)))) + (let-values () + (let-values (((dir_1) + (simplify-path + (path->complete-path + (decode-link-path (cadr p_69)) + dir_0)))) + (if (eq? (car p_69) 'static-root) + (let-values () + (for-each2 + (lambda (sub_1) + (if (directory-exists? (build-path dir_1 sub_1)) + (let-values () + (let-values (((k_54) (string->symbol (path->string sub_1)))) + (hash-set! + ht_161 + k_54 + (cons dir_1 (hash-ref ht_161 k_54 null))))) + (void))) + (directory-list dir_1))) + (if (eq? (car p_69) 'root) + (let-values () + (begin + (if (hash-ref ht_161 #f #f) + (void) + (let-values () (hash-set! ht_161 #f null))) + (hash-for-each + ht_161 + (lambda (k_55 v_208) + (hash-set! ht_161 k_55 (cons dir_1 v_208)))))) + (let-values () + (let-values (((s_178) (string->symbol (car p_69)))) + (hash-set! + ht_161 + s_178 + (cons (box dir_1) (hash-ref ht_161 s_178 null))))))))) + (void))) + v_99) + (hash-for-each + ht_161 + (lambda (k_56 v_123) (hash-set! ht_161 k_56 (reverse$1 v_123)))) + (call-as-atomic + (lambda () + (hash-set! + (unsafe-place-local-ref cell.1$1) + links-path_0 + (cons ts_1 ht_161)))) + ht_161)))))))))))))))))))))) + (define-values + (normalize-collection-reference) + (lambda (collection_2 collection-path_2) + (begin + (if (string? collection_2) + (let-values () + (let-values (((m_23) (regexp-match-positions '#rx"/+" collection_2))) + (if m_23 + (if (= (caar m_23) (sub1 (string-length collection_2))) + (let-values () (values (substring collection_2 0 (caar m_23)) collection-path_2)) + (let-values () + (values + (substring collection_2 0 (caar m_23)) + (cons (substring collection_2 (cdar m_23)) collection-path_2)))) + (values collection_2 collection-path_2)))) + (let-values () + (let-values (((base_23 name_70 dir?_9) (split-path collection_2))) + (if (eq? base_23 'relative) + (values name_70 collection-path_2) + (normalize-collection-reference base_23 (cons name_70 collection-path_2))))))))) + (define-values + (find-col-file) + (lambda (fail_5 collection-in_0 collection-path-in_0 file-name_1 check-compiled?_1) + (begin + (let-values (((collection_3 collection-path_3) + (normalize-collection-reference collection-in_0 collection-path-in_0))) + (let-values (((all-paths_0) + (let-values (((sym_66) + (string->symbol + (if (path? collection_3) (path->string collection_3) collection_3)))) + ((letrec-values (((loop_109) + (lambda (l_70) + (begin + 'loop + (if (null? l_70) + (let-values () null) + (if (not (car l_70)) + (let-values () + (append (1/current-library-collection-paths) (loop_109 (cdr l_70)))) + (if (hash? (car l_70)) + (let-values () + (append + (map2 box (hash-ref (car l_70) sym_66 null)) + (hash-ref (car l_70) #f null) + (loop_109 (cdr l_70)))) + (let-values () + (let-values (((ht_162) (get-linked-collections (car l_70)))) + (append + (hash-ref ht_162 sym_66 null) + (hash-ref ht_162 #f null) + (loop_109 (cdr l_70)))))))))))) + loop_109) + (1/current-library-collection-links))))) + (let-values (((done_1) (lambda (p_70) (begin 'done (if file-name_1 (build-path p_70 file-name_1) p_70))))) + (let-values (((*build-path-rep_0) + (lambda (p_71 c_69) + (begin '*build-path-rep (if (path? p_71) (build-path p_71 c_69) (unbox p_71)))))) + (let-values (((*directory-exists?_0) + (lambda (orig_2 collection_4 p_72) + (begin + '*directory-exists? + (if (path? orig_2) + (directory-exists?/shadow-filesystem p_72 orig_2 collection_4) + #t))))) + (let-values (((to-string_0) + (lambda (p_73) (begin 'to-string (if (path? p_73) (path->string p_73) p_73))))) + ((letrec-values (((cloop_0) + (lambda (paths_1 found-col_0) + (begin + 'cloop + (if (null? paths_1) + (if found-col_0 + (done_1 found-col_0) + (let-values (((rest-coll_0) + (if (null? collection-path_3) + "" + (apply + string-append + ((letrec-values (((loop_110) + (lambda (cp_0) + (begin + 'loop + (if (null? (cdr cp_0)) + (list (to-string_0 (car cp_0))) + (list* + (to-string_0 (car cp_0)) + "/" + (loop_110 (cdr cp_0)))))))) + loop_110) + collection-path_3))))) + (letrec-values (((filter_1) + (lambda (f_39 l_71) + (begin + 'filter + (if (null? l_71) + null + (if (f_39 (car l_71)) + (cons (car l_71) (filter_1 f_39 (cdr l_71))) + (filter_1 f_39 (cdr l_71)))))))) + (fail_5 + (format + "collection not found\n collection: ~s\n in collection directories:~a~a" + (if (null? collection-path_3) + (to-string_0 collection_3) + (string-append (to-string_0 collection_3) "/" rest-coll_0)) + (apply + string-append + (map2 + (lambda (p_74) (format "\n ~a ~a" " " p_74)) + (let-values (((len_61) (length all-paths_0)) + ((clen_0) + (length (1/current-library-collection-paths)))) + (if (< (- len_61 clen_0) 5) + all-paths_0 + (append + (1/current-library-collection-paths) + (list + (format + "... [~a additional linked and package directories]" + (- len_61 clen_0)))))))) + (if (ormap2 box? all-paths_0) + (format + "\n sub-collection: ~s\n in parent directories:~a" + rest-coll_0 + (apply + string-append + (map2 + (lambda (p_75) (format "\n ~a" (unbox p_75))) + (filter_1 box? all-paths_0)))) + "")))))) + (let-values (((dir_2) (*build-path-rep_0 (car paths_1) collection_3))) + (if (*directory-exists?_0 (car paths_1) collection_3 dir_2) + (let-values (((cpath_0) (apply build-path dir_2 collection-path_3))) + (if (if (null? collection-path_3) #t (directory-exists? cpath_0)) + (if file-name_1 + (if (let-values (((or-part_48) + (file-exists?/maybe-compiled + cpath_0 + file-name_1 + check-compiled?_1))) + (if or-part_48 + or-part_48 + (let-values (((alt-file-name_0) + (let-values (((file-name_2) + (if (path? file-name_1) + (path->string file-name_1) + file-name_1))) + (let-values (((len_62) + (string-length file-name_2))) + (if (>= len_62 4) + (if (string=? + ".rkt" + (substring + file-name_2 + (- len_62 4))) + (string-append + (substring + file-name_2 + 0 + (- len_62 4)) + ".ss") + #f) + #f))))) + (if alt-file-name_0 + (file-exists?/maybe-compiled + cpath_0 + alt-file-name_0 + check-compiled?_1) + #f)))) + (done_1 cpath_0) + (cloop_0 + (cdr paths_1) + (let-values (((or-part_232) found-col_0)) + (if or-part_232 or-part_232 cpath_0)))) + (done_1 cpath_0)) + (cloop_0 (cdr paths_1) found-col_0))) + (cloop_0 (cdr paths_1) found-col_0)))))))) + cloop_0) + all-paths_0 + #f)))))))))) + (define-values + (file-exists?/maybe-compiled) + (lambda (dir_3 path_14 check-compiled?_2) + (begin + (let-values (((or-part_50) (file-exists? (build-path dir_3 path_14)))) + (if or-part_50 + or-part_50 + (if check-compiled?_2 + (let-values (((try-path_0) (path-add-extension path_14 #".zo")) + ((modes_0) (1/use-compiled-file-paths)) + ((roots_0) (1/current-compiled-file-roots))) + (ormap2 + (lambda (d_41) + (ormap2 + (lambda (mode_15) + (file-exists? + (let-values (((dir_4) + (if (eq? d_41 'same) + (let-values () dir_3) + (if (relative-path? d_41) + (let-values () (build-path dir_3 d_41)) + (let-values () (reroot-path dir_3 d_41)))))) + (build-path dir_4 mode_15 try-path_0)))) + modes_0)) + roots_0)) + #f)))))) + (define-values + (1/find-library-collection-paths) + (let-values (((find-library-collection-paths_0) + (lambda (extra-collects-dirs1_0 post-collects-dirs2_0) + (begin + 'find-library-collection-paths + (let-values (((extra-collects-dirs_0) extra-collects-dirs1_0)) + (let-values (((post-collects-dirs_0) post-collects-dirs2_0)) + (let-values () + (let-values (((user-too?_0) (1/use-user-specific-search-paths)) + ((cons-if_0) + (lambda (f_40 r_46) (begin 'cons-if (if f_40 (cons f_40 r_46) r_46)))) + ((config-table_1) (get-config-table (find-main-config)))) + (path-list-string->path-list + (if user-too?_0 + (let-values (((c_70) + (environment-variables-ref + (current-environment-variables) + #"PLTCOLLECTS"))) + (if c_70 (bytes->string/locale c_70 '#\?) "")) + "") + (add-config-search + config-table_1 + 'collects-search-dirs + (cons-if_0 + (if user-too?_0 + (build-path + (find-system-path 'addon-dir) + (get-installation-name config-table_1) + "collects") + #f) + ((letrec-values (((loop_111) + (lambda (l_72) + (begin + 'loop + (if (null? l_72) + null + (let-values (((collects-path_1) (car l_72))) + (let-values (((v_209) + (exe-relative-path->complete-path + collects-path_1))) + (if v_209 + (cons + (simplify-path + (path->complete-path v_209 (current-directory))) + (loop_111 (cdr l_72))) + (loop_111 (cdr l_72)))))))))) + loop_111) + (append + extra-collects-dirs_0 + (list (find-system-path 'collects-dir)) + post-collects-dirs_0))))))))))))) + (case-lambda + (() (begin 'find-library-collection-paths (find-library-collection-paths_0 null null))) + ((extra-collects-dirs_1 post-collects-dirs2_1) + (find-library-collection-paths_0 extra-collects-dirs_1 post-collects-dirs2_1)) + ((extra-collects-dirs1_1) (find-library-collection-paths_0 extra-collects-dirs1_1 null))))) + (define-values + (1/find-compiled-file-roots) + (lambda () + (begin + 'find-compiled-file-roots + (let-values (((ht_163) (get-config-table (find-main-config)))) + (let-values (((paths_2) (hash-ref ht_163 'compiled-file-roots #f))) + (let-values (((or-part_305) (if (list? paths_2) (map2 coerce-to-relative-path paths_2) #f))) + (if or-part_305 or-part_305 (list 'same)))))))) + (define-values (prop:readtable prop:readtable? prop:readtable-ref) (make-struct-type-property 'readtable)) + (define-values + (1/current-readtable) + (let-values () + (let-values () + (make-parameter + #f + (lambda (v_210) + (begin + (if ((lambda (x_91) + (let-values (((or-part_12) (not x_91))) (if or-part_12 or-part_12 (prop:readtable? x_91)))) + v_210) + (void) + (let-values () (raise-argument-error 'current-readtable "(or/c prop:readtable? #f)" v_210))) + v_210)) + 'current-readtable)))) + (define-values + (struct:read-config/outer + read-config/outer1.1 + read-config/outer? + read-config/outer-inner + read-config/outer-wrap + read-config/outer-line + read-config/outer-col + read-config/outer-pos + read-config/outer-indentations + read-config/outer-keep-comment?) + (let-values (((struct:_29 make-_29 ?_29 -ref_29 -set!_29) + (let-values () + (let-values () + (make-struct-type + 'read-config + #f + 7 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6) + #f + 'read-config/outer))))) + (values + struct:_29 + make-_29 + ?_29 + (make-struct-field-accessor -ref_29 0 'inner) + (make-struct-field-accessor -ref_29 1 'wrap) + (make-struct-field-accessor -ref_29 2 'line) + (make-struct-field-accessor -ref_29 3 'col) + (make-struct-field-accessor -ref_29 4 'pos) + (make-struct-field-accessor -ref_29 5 'indentations) + (make-struct-field-accessor -ref_29 6 'keep-comment?)))) + (define-values + (struct:read-config/inner + read-config/inner2.1 + read-config/inner? + read-config/inner-readtable + read-config/inner-next-readtable + read-config/inner-for-syntax? + read-config/inner-source + read-config/inner-read-compiled + read-config/inner-call-with-root-namespace + read-config/inner-dynamic-require + read-config/inner-module-declared? + read-config/inner-coerce + read-config/inner-coerce-key + read-config/inner-parameter-override + read-config/inner-parameter-cache + read-config/inner-st) + (let-values (((struct:_30 make-_30 ?_30 -ref_30 -set!_30) + (let-values () + (let-values () + (make-struct-type + 'read-config/inner + #f + 13 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4 5 6 7 8 9 10 11 12) + #f + 'read-config/inner))))) + (values + struct:_30 + make-_30 + ?_30 + (make-struct-field-accessor -ref_30 0 'readtable) + (make-struct-field-accessor -ref_30 1 'next-readtable) + (make-struct-field-accessor -ref_30 2 'for-syntax?) + (make-struct-field-accessor -ref_30 3 'source) + (make-struct-field-accessor -ref_30 4 'read-compiled) + (make-struct-field-accessor -ref_30 5 'call-with-root-namespace) + (make-struct-field-accessor -ref_30 6 'dynamic-require) + (make-struct-field-accessor -ref_30 7 'module-declared?) + (make-struct-field-accessor -ref_30 8 'coerce) + (make-struct-field-accessor -ref_30 9 'coerce-key) + (make-struct-field-accessor -ref_30 10 'parameter-override) + (make-struct-field-accessor -ref_30 11 'parameter-cache) + (make-struct-field-accessor -ref_30 12 'st)))) + (define-values + (read-config/make) + (lambda (readtable_0 + next-readtable_0 + for-syntax?_0 + source_1 + wrap_5 + read-compiled_0 + call-with-root-namespace_0 + dynamic-require_1 + module-declared?_0 + coerce_0 + coerce-key_0 + line_1 + col_0 + pos_103 + indentations_0 + keep-comment?_0 + parameter-override_0 + parameter-cache_0 + st_0) + (begin + (read-config/outer1.1 + (read-config/inner2.1 + readtable_0 + next-readtable_0 + for-syntax?_0 + source_1 + read-compiled_0 + call-with-root-namespace_0 + dynamic-require_1 + module-declared?_0 + coerce_0 + coerce-key_0 + parameter-override_0 + parameter-cache_0 + st_0) + wrap_5 + line_1 + col_0 + pos_103 + indentations_0 + keep-comment?_0)))) + (define-values (read-config-wrap) (lambda (v_80) (begin (read-config/outer-wrap v_80)))) + (define-values (read-config-line) (lambda (v_35) (begin (read-config/outer-line v_35)))) + (define-values (read-config-col) (lambda (v_211) (begin (read-config/outer-col v_211)))) + (define-values (read-config-pos) (lambda (v_49) (begin (read-config/outer-pos v_49)))) + (define-values (read-config-indentations) (lambda (v_212) (begin (read-config/outer-indentations v_212)))) + (define-values (read-config-keep-comment?) (lambda (v_207) (begin (read-config/outer-keep-comment? v_207)))) + (define-values + (read-config-readtable) + (lambda (v_58) (begin (read-config/inner-readtable (read-config/outer-inner v_58))))) + (define-values + (read-config-next-readtable) + (lambda (v_163) (begin (read-config/inner-next-readtable (read-config/outer-inner v_163))))) + (define-values + (read-config-for-syntax?) + (lambda (v_213) (begin (read-config/inner-for-syntax? (read-config/outer-inner v_213))))) + (define-values (read-config-source) (lambda (v_50) (begin (read-config/inner-source (read-config/outer-inner v_50))))) + (define-values + (read-config-read-compiled) + (lambda (v_214) (begin (read-config/inner-read-compiled (read-config/outer-inner v_214))))) + (define-values + (read-config-call-with-root-namespace) + (lambda (v_215) (begin (read-config/inner-call-with-root-namespace (read-config/outer-inner v_215))))) + (define-values + (read-config-dynamic-require) + (lambda (v_216) (begin (read-config/inner-dynamic-require (read-config/outer-inner v_216))))) + (define-values + (read-config-module-declared?) + (lambda (v_83) (begin (read-config/inner-module-declared? (read-config/outer-inner v_83))))) + (define-values + (read-config-coerce) + (lambda (v_217) (begin (read-config/inner-coerce (read-config/outer-inner v_217))))) + (define-values + (read-config-coerce-key) + (lambda (v_189) (begin (read-config/inner-coerce-key (read-config/outer-inner v_189))))) + (define-values + (read-config-parameter-override) + (lambda (v_218) (begin (read-config/inner-parameter-override (read-config/outer-inner v_218))))) + (define-values + (read-config-parameter-cache) + (lambda (v_219) (begin (read-config/inner-parameter-cache (read-config/outer-inner v_219))))) + (define-values (read-config-st) (lambda (v_164) (begin (read-config/inner-st (read-config/outer-inner v_164))))) + (define-values + (struct:read-config-state + read-config-state3.1 + read-config-state? + read-config-state-accum-str + read-config-state-graph + set-read-config-state-accum-str! + set-read-config-state-graph!) + (let-values (((struct:_0 make-_0 ?_0 -ref_0 -set!_0) + (let-values () + (let-values () + (make-struct-type + 'read-config-state + #f + 2 + 0 + #f + null + (current-inspector) + #f + '() + #f + 'read-config-state))))) + (values + struct:_0 + make-_0 + ?_0 + (make-struct-field-accessor -ref_0 0 'accum-str) + (make-struct-field-accessor -ref_0 1 'graph) + (make-struct-field-mutator -set!_0 0 'accum-str) + (make-struct-field-mutator -set!_0 1 'graph)))) + (define-values (default-val.1) #f) + (define-values + (current-read-config) + (lambda () (begin (continuation-mark-set-first #f current-read-config default-val.1 root-tag)))) + (define-values + (make-read-config.1) + (lambda (call-with-root-namespace10_0 + coerce13_0 + coerce-key14_0 + dynamic-require11_0 + for-syntax?5_0 + keep-comment?15_0 + module-declared?12_0 + next-readtable7_0 + read-compiled9_0 + readtable6_0 + source4_0 + wrap8_0) + (begin + 'make-read-config + (let-values (((source_2) source4_0)) + (let-values (((for-syntax?_1) for-syntax?5_0)) + (let-values (((readtable_1) (if (eq? readtable6_0 unsafe-undefined) (1/current-readtable) readtable6_0))) + (let-values (((next-readtable_1) + (if (eq? next-readtable7_0 unsafe-undefined) readtable_1 next-readtable7_0))) + (let-values (((wrap_6) wrap8_0)) + (let-values (((read-compiled_1) read-compiled9_0)) + (let-values (((call-with-root-namespace_1) call-with-root-namespace10_0)) + (let-values (((dynamic-require_2) dynamic-require11_0)) + (let-values (((module-declared?_1) module-declared?12_0)) + (let-values (((coerce_1) coerce13_0)) + (let-values (((coerce-key_1) coerce-key14_0)) + (let-values (((keep-comment?_1) keep-comment?15_0)) + (let-values () + (read-config/make + readtable_1 + next-readtable_1 + for-syntax?_1 + source_2 + wrap_6 + (let-values (((or-part_222) read-compiled_1)) + (if or-part_222 + or-part_222 + (lambda (in_1) (error 'read "no `read-compiled` provided")))) + (let-values (((or-part_138) call-with-root-namespace_1)) + (if or-part_138 + or-part_138 + (lambda (thunk_8) (error 'read "no `call-with-root-namespace` provided")))) + (let-values (((or-part_306) dynamic-require_2)) + (if or-part_306 + or-part_306 + (lambda (mod-path_26 sym_78 failure-k_0) + (error 'read "no `dynamic-require` provided")))) + (let-values (((or-part_272) module-declared?_1)) + (if or-part_272 + or-part_272 + (lambda (mod-path_24) (error 'read "no `module-declare?` provided")))) + (let-values (((or-part_42) coerce_1)) + (if or-part_42 or-part_42 (lambda (for-syntax?_2 v_110 srcloc_15) v_110))) + (let-values (((or-part_154) coerce-key_1)) + (if or-part_154 or-part_154 (lambda (for-syntax?_3 v_113) v_113))) + #f + #f + #f + null + keep-comment?_1 + '#hasheq() + (make-hasheq) + (read-config-state3.1 #f #f)))))))))))))))))) + (define-values + (read-config-update.1) + (lambda (for-syntax?29_0 keep-comment?34_0 next-readtable32_0 readtable31_0 reset-graph?33_0 wrap30_0 config41_0) + (begin + 'read-config-update + (let-values (((config_0) config41_0)) + (let-values (((for-syntax?_4) for-syntax?29_0)) + (let-values (((wrap_7) wrap30_0)) + (let-values (((readtable_2) readtable31_0)) + (let-values (((next-readtable_2) + (if (eq? next-readtable32_0 unsafe-undefined) + (read-config-readtable config_0) + next-readtable32_0))) + (let-values (((local-graph?_0) reset-graph?33_0)) + (let-values (((keep-comment?_2) keep-comment?34_0)) + (let-values () + (let-values (((v_220) config_0)) + (let-values (((the-struct_75) v_220)) + (if (read-config/outer? the-struct_75) + (let-values (((wrap51_0) wrap_7) + ((keep-comment?52_0) keep-comment?_2) + ((inner53_1) + (let-values (((the-struct_76) (read-config/outer-inner v_220))) + (if (read-config/inner? the-struct_76) + (let-values (((for-syntax?54_0) for-syntax?_4) + ((readtable55_0) readtable_2) + ((next-readtable56_0) next-readtable_2) + ((st57_0) + (if local-graph?_0 + (read-config-state3.1 #f #f) + (read-config-st config_0))) + ((parameter-override58_0) '#hasheq()) + ((parameter-cache59_0) (make-hasheq))) + (read-config/inner2.1 + readtable55_0 + next-readtable56_0 + for-syntax?54_0 + (read-config/inner-source the-struct_76) + (read-config/inner-read-compiled the-struct_76) + (read-config/inner-call-with-root-namespace the-struct_76) + (read-config/inner-dynamic-require the-struct_76) + (read-config/inner-module-declared? the-struct_76) + (read-config/inner-coerce the-struct_76) + (read-config/inner-coerce-key the-struct_76) + parameter-override58_0 + parameter-cache59_0 + st57_0)) + (raise-argument-error 'struct-copy "read-config/inner?" the-struct_76))))) + (read-config/outer1.1 + inner53_1 + wrap51_0 + (read-config/outer-line the-struct_75) + (read-config/outer-col the-struct_75) + (read-config/outer-pos the-struct_75) + (read-config/outer-indentations the-struct_75) + keep-comment?52_0)) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_75))))))))))))))) + (define-values + (port+config->srcloc.1) + (lambda (end-pos43_0 in45_0 config46_0) + (begin + 'port+config->srcloc + (let-values (((in_2) in45_0)) + (let-values (((config_1) config46_0)) + (let-values (((given-end-pos_0) end-pos43_0)) + (let-values () + (let-values (((end-pos_1) + (let-values (((or-part_97) given-end-pos_0)) + (if or-part_97 + or-part_97 + (let-values (((end-line_0 end-col_0 end-pos_2) (port-next-location in_2))) + end-pos_2))))) + (srcloc + (let-values (((or-part_189) (read-config-source config_1))) + (if or-part_189 + or-part_189 + (let-values (((or-part_307) (object-name in_2))) (if or-part_307 or-part_307 "UNKNOWN")))) + (read-config-line config_1) + (read-config-col config_1) + (read-config-pos config_1) + (if (read-config-pos config_1) + (if end-pos_1 (max 0 (- end-pos_1 (read-config-pos config_1))) #f) + #f)))))))))) + (define-values + (reading-at) + (lambda (config_2 line_2 col_1 pos_125) + (begin + (let-values (((v_221) config_2)) + (let-values (((the-struct_9) v_221)) + (if (read-config/outer? the-struct_9) + (let-values (((line60_0) line_2) + ((col61_0) col_1) + ((pos62_0) pos_125) + ((inner63_0) (read-config/outer-inner v_221))) + (read-config/outer1.1 + inner63_0 + (read-config/outer-wrap the-struct_9) + line60_0 + col61_0 + pos62_0 + (read-config/outer-indentations the-struct_9) + (read-config/outer-keep-comment? the-struct_9))) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_9))))))) + (define-values + (disable-wrapping) + (lambda (config_3) + (begin + (let-values (((v_222) config_3)) + (let-values (((the-struct_77) v_222)) + (if (read-config/outer? the-struct_77) + (let-values (((wrap64_0) #f) ((inner65_0) (read-config/outer-inner v_222))) + (read-config/outer1.1 + inner65_0 + wrap64_0 + (read-config/outer-line the-struct_77) + (read-config/outer-col the-struct_77) + (read-config/outer-pos the-struct_77) + (read-config/outer-indentations the-struct_77) + (read-config/outer-keep-comment? the-struct_77))) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_77))))))) + (define-values + (keep-comment) + (lambda (config_4) + (begin + (let-values (((v_223) config_4)) + (let-values (((the-struct_78) v_223)) + (if (read-config/outer? the-struct_78) + (let-values (((keep-comment?66_0) #t) ((inner67_0) (read-config/outer-inner v_223))) + (read-config/outer1.1 + inner67_0 + (read-config/outer-wrap the-struct_78) + (read-config/outer-line the-struct_78) + (read-config/outer-col the-struct_78) + (read-config/outer-pos the-struct_78) + (read-config/outer-indentations the-struct_78) + keep-comment?66_0)) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_78))))))) + (define-values + (discard-comment) + (lambda (config_5) + (begin + (if (not (read-config-keep-comment? config_5)) + (let-values () config_5) + (let-values () + (let-values (((v_224) config_5)) + (let-values (((the-struct_79) v_224)) + (if (read-config/outer? the-struct_79) + (let-values (((keep-comment?68_0) #f) ((inner69_0) (read-config/outer-inner v_224))) + (read-config/outer1.1 + inner69_0 + (read-config/outer-wrap the-struct_79) + (read-config/outer-line the-struct_79) + (read-config/outer-col the-struct_79) + (read-config/outer-pos the-struct_79) + (read-config/outer-indentations the-struct_79) + keep-comment?68_0)) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_79))))))))) + (define-values + (next-readtable) + (lambda (config_6) + (begin + (if (eq? (read-config-readtable config_6) (read-config-next-readtable config_6)) + (let-values () config_6) + (let-values () + (let-values (((v_225) config_6)) + (let-values (((the-struct_80) v_225)) + (if (read-config/outer? the-struct_80) + (let-values (((inner70_1) + (let-values (((the-struct_81) (read-config/outer-inner v_225))) + (if (read-config/inner? the-struct_81) + (let-values (((readtable71_0) (read-config-next-readtable config_6))) + (read-config/inner2.1 + readtable71_0 + (read-config/inner-next-readtable the-struct_81) + (read-config/inner-for-syntax? the-struct_81) + (read-config/inner-source the-struct_81) + (read-config/inner-read-compiled the-struct_81) + (read-config/inner-call-with-root-namespace the-struct_81) + (read-config/inner-dynamic-require the-struct_81) + (read-config/inner-module-declared? the-struct_81) + (read-config/inner-coerce the-struct_81) + (read-config/inner-coerce-key the-struct_81) + (read-config/inner-parameter-override the-struct_81) + (read-config/inner-parameter-cache the-struct_81) + (read-config/inner-st the-struct_81))) + (raise-argument-error 'struct-copy "read-config/inner?" the-struct_81))))) + (read-config/outer1.1 + inner70_1 + (read-config/outer-wrap the-struct_80) + (read-config/outer-line the-struct_80) + (read-config/outer-col the-struct_80) + (read-config/outer-pos the-struct_80) + (read-config/outer-indentations the-struct_80) + (read-config/outer-keep-comment? the-struct_80))) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_80))))))))) + (define-values + (coerce) + (lambda (val_86 in_3 config_7) + (begin + (let-values (((for-syntax?_5) (read-config-for-syntax? config_7))) + ((read-config-coerce config_7) + for-syntax?_5 + val_86 + (if for-syntax?_5 + (let-values (((in1_0) in_3) ((config2_0) config_7)) (port+config->srcloc.1 #f in1_0 config2_0)) + #f)))))) + (define-values (default-reader-guard$1) (lambda (v_226) (begin 'default-reader-guard v_226))) + (define-values + (1/current-reader-guard) + (make-parameter + default-reader-guard$1 + (lambda (v_227) + (begin + (if (if (procedure? v_227) (procedure-arity-includes? v_227 1) #f) + (void) + (let-values () (raise-argument-error 'current-reader-guard "(procedure-arity-includes/c 1)" v_227))) + v_227)) + 'current-reader-guard)) + (define-values + (1/read-square-bracket-as-paren) + (make-parameter #t (lambda (v_228) (if v_228 #t #f)) 'read-square-bracket-as-paren)) + (define-values + (1/read-curly-brace-as-paren) + (make-parameter #t (lambda (v_45) (if v_45 #t #f)) 'read-curly-brace-as-paren)) + (define-values + (1/read-square-bracket-with-tag) + (make-parameter #f (lambda (v_122) (if v_122 #t #f)) 'read-square-bracket-with-tag)) + (define-values + (1/read-curly-brace-with-tag) + (make-parameter #f (lambda (v_229) (if v_229 #t #f)) 'read-curly-brace-with-tag)) + (define-values (1/read-cdot) (make-parameter #f (lambda (v_31) (if v_31 #t #f)) 'read-cdot)) + (define-values (1/read-accept-graph) (make-parameter #t (lambda (v_86) (if v_86 #t #f)) 'read-accept-graph)) + (define-values (1/read-accept-compiled) (make-parameter #f (lambda (v_84) (if v_84 #t #f)) 'read-accept-compiled)) + (define-values (1/read-accept-box) (make-parameter #t (lambda (v_48) (if v_48 #t #f)) 'read-accept-box)) + (define-values (1/read-single-flonum) (make-parameter #f (lambda (v_162) (if v_162 #t #f)) 'read-single-flonum)) + (define-values + (1/read-decimal-as-inexact) + (make-parameter #t (lambda (v_230) (if v_230 #t #f)) 'read-decimal-as-inexact)) + (define-values (1/read-accept-dot) (make-parameter #t (lambda (v_32) (if v_32 #t #f)) 'read-accept-dot)) + (define-values (1/read-accept-infix-dot) (make-parameter #t (lambda (v_67) (if v_67 #t #f)) 'read-accept-infix-dot)) + (define-values (1/read-accept-quasiquote) (make-parameter #t (lambda (v_33) (if v_33 #t #f)) 'read-accept-quasiquote)) + (define-values (1/read-accept-reader) (make-parameter #f (lambda (v_75) (if v_75 #t #f)) 'read-accept-reader)) + (define-values (1/read-accept-lang) (make-parameter #t (lambda (v_34) (if v_34 #t #f)) 'read-accept-lang)) + (define-values (unknown) (gensym 'unknown)) + (define-values + (check-parameter) + (lambda (param_0 config_8) + (begin + (let-values (((cache_1) (read-config-parameter-cache config_8))) + (let-values (((v_0) + (hash-ref (read-config-parameter-override config_8) param_0 (hash-ref cache_1 param_0 unknown)))) + (if (eq? v_0 unknown) + (let-values () (let-values (((v_231) (param_0))) (begin (hash-set! cache_1 param_0 v_231) v_231))) + (let-values () v_0))))))) + (define-values + (override-parameter) + (lambda (param_1 config_9 v_30) + (begin + (let-values (((v_56) config_9)) + (let-values (((the-struct_5) v_56)) + (if (read-config/outer? the-struct_5) + (let-values (((inner1_0) + (let-values (((the-struct_82) (read-config/outer-inner v_56))) + (if (read-config/inner? the-struct_82) + (let-values (((parameter-override2_0) + (hash-set (read-config-parameter-override config_9) param_1 v_30))) + (read-config/inner2.1 + (read-config/inner-readtable the-struct_82) + (read-config/inner-next-readtable the-struct_82) + (read-config/inner-for-syntax? the-struct_82) + (read-config/inner-source the-struct_82) + (read-config/inner-read-compiled the-struct_82) + (read-config/inner-call-with-root-namespace the-struct_82) + (read-config/inner-dynamic-require the-struct_82) + (read-config/inner-module-declared? the-struct_82) + (read-config/inner-coerce the-struct_82) + (read-config/inner-coerce-key the-struct_82) + parameter-override2_0 + (read-config/inner-parameter-cache the-struct_82) + (read-config/inner-st the-struct_82))) + (raise-argument-error 'struct-copy "read-config/inner?" the-struct_82))))) + (read-config/outer1.1 + inner1_0 + (read-config/outer-wrap the-struct_5) + (read-config/outer-line the-struct_5) + (read-config/outer-col the-struct_5) + (read-config/outer-pos the-struct_5) + (read-config/outer-indentations the-struct_5) + (read-config/outer-keep-comment? the-struct_5))) + (raise-argument-error 'struct-copy "read-config/outer?" the-struct_5))))))) + (define-values + (force-parameters!) + (lambda (config_10) + (begin + (let-values (((cache_2) (read-config-parameter-cache config_10))) + (if (hash-ref cache_2 'all-forced #f) + (void) + (let-values () + (begin + (hash-set! cache_2 'all-forced #t) + (check-parameter read-case-sensitive config_10) + (check-parameter 1/read-square-bracket-as-paren config_10) + (check-parameter 1/read-curly-brace-as-paren config_10) + (check-parameter 1/read-square-bracket-with-tag config_10) + (check-parameter 1/read-curly-brace-with-tag config_10) + (check-parameter 1/read-cdot config_10) + (check-parameter 1/read-accept-graph config_10) + (check-parameter 1/read-accept-compiled config_10) + (check-parameter 1/read-accept-box config_10) + (check-parameter read-accept-bar-quote config_10) + (check-parameter 1/read-decimal-as-inexact config_10) + (check-parameter 1/read-single-flonum config_10) + (check-parameter 1/read-accept-dot config_10) + (check-parameter 1/read-accept-infix-dot config_10) + (check-parameter 1/read-accept-quasiquote config_10) + (check-parameter 1/read-accept-reader config_10) + (check-parameter 1/read-accept-lang config_10)))))))) + (define-values + (struct:special-comment 1/make-special-comment 1/special-comment? 1/special-comment-value) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'special-comment + #f + 1 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0) + #f + 'make-special-comment))))) + (values struct:_2 make-_2 ?_2 (make-struct-field-accessor -ref_2 0 'value)))) + (define-values + (struct:readtable + readtable1.1 + 1/readtable? + readtable-symbol-parser + readtable-char-ht + readtable-dispatch-ht + readtable-delimiter-ht) + (let-values (((struct:_66 make-_66 ?_66 -ref_66 -set!_66) + (let-values () + (let-values () + (make-struct-type + 'readtable + #f + 4 + 0 + #f + (list (cons prop:authentic #t) (cons prop:readtable #t)) + (current-inspector) + #f + '(0 1 2 3) + #f + 'readtable))))) + (values + struct:_66 + make-_66 + ?_66 + (make-struct-field-accessor -ref_66 0 'symbol-parser) + (make-struct-field-accessor -ref_66 1 'char-ht) + (make-struct-field-accessor -ref_66 2 'dispatch-ht) + (make-struct-field-accessor -ref_66 3 'delimiter-ht)))) + (define-values + (1/make-readtable) + (lambda (rt_0 . args_8) + (begin + 'make-readtable + (begin + (if (let-values (((or-part_73) (not rt_0))) (if or-part_73 or-part_73 (1/readtable? rt_0))) + (void) + (let-values () (raise-argument-error 'make-readtable "(or/c readtable? #f)" rt_0))) + ((letrec-values (((loop_96) + (lambda (args_9 symbol-parser_0 char-ht_0 dispatch-ht_0 delimiter-ht_0) + (begin + 'loop + (if (null? args_9) + (let-values () (readtable1.1 symbol-parser_0 char-ht_0 dispatch-ht_0 delimiter-ht_0)) + (let-values () + (let-values (((key_101) (car args_9))) + (let-values ((() + (begin + (if (let-values (((or-part_146) (not key_101))) + (if or-part_146 or-part_146 (char? key_101))) + (void) + (let-values () + (raise-argument-error + 'make-readtable + "(or/c char? #f)" + key_101))) + (values)))) + (let-values ((() + (begin + (if (null? (cdr args_9)) + (let-values () + (if key_101 + (let-values () + (raise-arguments-error + 'make-readtable + (string-append + "expected 'terminating-macro, 'non-terminating-macro, 'dispatch-macro," + " or character argument after character argument") + "character" + key_101)) + (let-values () + (raise-arguments-error + 'make-readtable + "expected 'non-terminating-macro after #f")))) + (void)) + (values)))) + (let-values (((mode_16) (cadr args_9))) + (let-values ((() + (begin + (if key_101 + (let-values () + (if (let-values (((or-part_35) + (eq? mode_16 'terminating-macro))) + (if or-part_35 + or-part_35 + (let-values (((or-part_147) + (eq? + mode_16 + 'non-terminating-macro))) + (if or-part_147 + or-part_147 + (let-values (((or-part_75) + (eq? mode_16 'dispatch-macro))) + (if or-part_75 + or-part_75 + (char? mode_16))))))) + (void) + (let-values () + (raise-argument-error + 'make-readtable + "(or/c 'terminating-macro 'non-terminating-macro 'dispatch-macro char?)" + mode_16)))) + (let-values () + (if (eq? mode_16 'non-terminating-macro) + (void) + (let-values () + (raise-arguments-error + 'make-readtable + "expected 'non-terminating-macro after #f"))))) + (values)))) + (let-values ((() + (begin + (if (null? (cddr args_9)) + (let-values () + (raise-arguments-error + 'make-readtable + (if (char? mode_16) + "expected readtable or #f argument after character argument" + "expected procedure argument after symbol argument") + (if (char? mode_16) "character" "symbol") + mode_16)) + (void)) + (values)))) + (let-values (((target_0) (caddr args_9))) + (let-values (((rest-args_0) (cdddr args_9))) + (if (not key_101) + (let-values () + (begin + (if (if (procedure? target_0) + (procedure-arity-includes? target_0 6) + #f) + (void) + (let-values () + (raise-argument-error + 'make-readtable + "(procedure-arity-includes/c 6)" + target_0))) + (loop_96 + rest-args_0 + target_0 + char-ht_0 + dispatch-ht_0 + delimiter-ht_0))) + (if (eq? mode_16 'dispatch-macro) + (let-values () + (begin + (if (if (procedure? target_0) + (procedure-arity-includes? target_0 6) + #f) + (void) + (let-values () + (raise-argument-error + 'make-readtable + "(procedure-arity-includes/c 6)" + target_0))) + (loop_96 + rest-args_0 + symbol-parser_0 + char-ht_0 + (hash-set dispatch-ht_0 key_101 target_0) + delimiter-ht_0))) + (if (char? mode_16) + (let-values () + (let-values ((() + (begin + (if (let-values (((or-part_89) + (not target_0))) + (if or-part_89 + or-part_89 + (1/readtable? target_0))) + (void) + (let-values () + (raise-argument-error + 'make-readtable + "(or/c readtable? #f)" + target_0))) + (values)))) + (let-values (((actual-target_0) + (let-values (((or-part_90) + (if target_0 + (hash-ref + (readtable-char-ht target_0) + mode_16 + #f) + #f))) + (if or-part_90 or-part_90 mode_16)))) + (let-values (((new-char-ht_0) + (if actual-target_0 + (hash-set + char-ht_0 + key_101 + actual-target_0) + (hash-remove char-ht_0 key_101)))) + (let-values (((new-delimiter-ht_0) + (hash-set + delimiter-ht_0 + key_101 + (if target_0 + (hash-ref + (readtable-delimiter-ht target_0) + mode_16 + mode_16) + mode_16)))) + (loop_96 + rest-args_0 + symbol-parser_0 + new-char-ht_0 + dispatch-ht_0 + new-delimiter-ht_0)))))) + (let-values () + (let-values ((() + (begin + (if (if (procedure? target_0) + (procedure-arity-includes? target_0 6) + #f) + (void) + (let-values () + (raise-argument-error + 'make-readtable + "(procedure-arity-includes/c 6)" + target_0))) + (values)))) + (let-values (((new-char-ht_1) + (hash-set char-ht_0 key_101 target_0))) + (let-values (((new-delimiter-ht_1) + (hash-set + delimiter-ht_0 + key_101 + (if (eq? mode_16 'terminating-macro) + 'delimit + 'no-delimit)))) + (loop_96 + rest-args_0 + symbol-parser_0 + new-char-ht_1 + dispatch-ht_0 + new-delimiter-ht_1)))))))))))))))))))))) + loop_96) + args_8 + (if rt_0 (readtable-symbol-parser rt_0) #f) + (if rt_0 (readtable-char-ht rt_0) '#hasheqv()) + (if rt_0 (readtable-dispatch-ht rt_0) '#hasheqv()) + (if rt_0 (readtable-delimiter-ht rt_0) '#hasheqv())))))) + (define-values + (*readtable-effective-char) + (lambda (rt_1 c_71) + (begin + (let-values (((target_1) (hash-ref (readtable-char-ht rt_1) c_71 #f))) + (if (not target_1) (let-values () c_71) (if (char? target_1) (let-values () target_1) (let-values () '#\x))))))) + (define-values + (readtable-effective-char/#) + (lambda (rt_2 c_72) + (begin (if (if rt_2 (hash-ref (readtable-dispatch-ht rt_2) c_72 #f) #f) (let-values () #f) (let-values () c_72))))) + (define-values + (effective-char) + (lambda (c_73 config_11) + (begin + (let-values (((rt_3) (read-config-readtable config_11)) ((c_66) c_73)) + (if (let-values (((or-part_175) (not rt_3))) (if or-part_175 or-part_175 (not (char? c_66)))) + (let-values () c_66) + (let-values () (*readtable-effective-char rt_3 c_66))))))) + (define-values + (readtable-handler) + (lambda (config_12 c_74) + (begin + (let-values (((rt_4) (read-config-readtable config_12))) + (if rt_4 + (let-values (((target_2) (hash-ref (readtable-char-ht rt_4) c_74 #f))) + (if target_2 (if (not (char? target_2)) target_2 #f) #f)) + #f))))) + (define-values + (readtable-dispatch-handler) + (lambda (config_13 c_75) + (begin + (let-values ((() (begin (force-parameters! config_13) (values)))) + (let-values (((rt_5) (read-config-readtable config_13))) + (if rt_5 (hash-ref (readtable-dispatch-ht rt_5) c_75 #f) #f)))))) + (define-values + (readtable-apply) + (lambda (handler_0 c_39 in_4 config_14 line_3 col_2 pos_104) + (begin + (let-values (((for-syntax?_6) (read-config-for-syntax? config_14))) + (let-values (((v_134) + (if (not for-syntax?_6) + (let-values () + (with-continuation-mark + current-read-config + config_14 + (let-values () + (if (procedure-arity-includes? handler_0 2) + (handler_0 c_39 in_4) + (handler_0 c_39 in_4 #f line_3 col_2 pos_104))))) + (let-values () + (with-continuation-mark + current-read-config + config_14 + (let-values () + (handler_0 c_39 in_4 (read-config-source config_14) line_3 col_2 pos_104))))))) + (if (1/special-comment? v_134) v_134 (coerce v_134 in_4 config_14))))))) + (define-values + (1/readtable-mapping) + (lambda (rt_6 c_76) + (begin + 'readtable-mapping + (let-values ((() + (begin + (if (1/readtable? rt_6) + (void) + (let-values () (raise-argument-error 'readtable-mapping "readtable?" rt_6))) + (values)))) + (let-values ((() + (begin + (if (char? c_76) (void) (let-values () (raise-argument-error 'readtable-mapping "char?" c_76))) + (values)))) + (let-values (((handler_1) (hash-ref (readtable-char-ht rt_6) c_76 #f))) + (values + (let-values (((or-part_237) + (if handler_1 + (if (char? handler_1) + (let-values () handler_1) + (if (eq? 'delimit (hash-ref (readtable-delimiter-ht rt_6) c_76 #f)) + (let-values () 'terminating-macro) + (let-values () 'non-terminating-macro))) + #f))) + (if or-part_237 or-part_237 c_76)) + (if (char? handler_1) #f handler_1) + (hash-ref (readtable-dispatch-ht rt_6) c_76 #f)))))))) + (define-values + (readtable-equivalent-chars) + (lambda (rt_7 c_77) + (begin + (let-values (((ht_78) (readtable-char-ht rt_7))) + (append + (if (hash-ref ht_78 c_77 #f) null (list c_77)) + (reverse$1 + (let-values (((ht_164) ht_78)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_164))) + ((letrec-values (((for-loop_261) + (lambda (fold-var_86 i_20) + (begin + 'for-loop + (if i_20 + (let-values (((k_57 v_95) (hash-iterate-key+value ht_164 i_20))) + (let-values (((fold-var_106) + (let-values (((fold-var_89) fold-var_86)) + (if (eqv? v_95 c_77) + (let-values (((fold-var_292) fold-var_89)) + (let-values (((fold-var_19) + (let-values () + (cons (let-values () k_57) fold-var_292)))) + (values fold-var_19))) + fold-var_89)))) + (if (not #f) + (for-loop_261 fold-var_106 (hash-iterate-next ht_164 i_20)) + fold-var_106))) + fold-var_86))))) + for-loop_261) + null + (hash-iterate-first ht_164)))))))))) + (define-values + (struct:special special1.1 special? special-value) + (let-values (((struct:_67 make-_67 ?_67 -ref_67 -set!_67) + (let-values () + (let-values () (make-struct-type 'special #f 1 0 #f null (current-inspector) #f '(0) #f 'special))))) + (values struct:_67 make-_67 ?_67 (make-struct-field-accessor -ref_67 0 'value)))) + (define-values + (wrap) + (lambda (s-exp_3 in_3 config_7 rep_0) + (begin + (let-values (((wrap_8) (read-config-wrap config_7))) + (if wrap_8 + (wrap_8 + s-exp_3 + (let-values (((in1_1) in_3) ((config2_1) config_7)) (port+config->srcloc.1 #f in1_1 config2_1)) + rep_0) + s-exp_3))))) + (define-values (consume-char) (lambda (in_5 c_48) (begin (begin (read-char in_5) (void))))) + (define-values + (consume-char/special) + (lambda (in_6 config_15 c_38) + (begin (begin (read-char-or-special in_6 special1.1 (read-config-source config_15)) (void))))) + (define-values + (reader-error.1) + (lambda (continuation-marks1_0 due-to2_0 end-pos4_0 who3_0 in9_1 config10_0 str11_0 new-rest_0) + (begin + 'reader-error + (let-values (((in_7) in9_1)) + (let-values (((config_16) config10_0)) + (let-values (((continuation-marks_0) + (if (eq? continuation-marks1_0 unsafe-undefined) + (current-continuation-marks) + continuation-marks1_0))) + (let-values (((due-to_0) due-to2_0)) + (let-values (((who_29) + (if (eq? who3_0 unsafe-undefined) + (if (read-config-for-syntax? config_16) 'read-syntax 'read) + who3_0))) + (let-values (((end-pos_3) end-pos4_0)) + (let-values (((str_26) str11_0)) + (let-values (((args_10) new-rest_0)) + (let-values (((msg_0) (format "~a: ~a" who_29 (apply format str_26 args_10)))) + (let-values (((srcloc_16) + (if in_7 + (let-values (((in19_0) in_7) ((config20_0) config_16) ((end-pos21_0) end-pos_3)) + (port+config->srcloc.1 end-pos21_0 in19_0 config20_0)) + #f))) + (raise + ((if (eof-object? due-to_0) + (let-values () exn:fail:read:eof) + (if (not (char? due-to_0)) + (let-values () exn:fail:read:non-char) + (let-values () exn:fail:read))) + (let-values (((s_532) + (if (error-print-source-location) + (if srcloc_16 (srcloc->string srcloc_16) #f) + #f))) + (if s_532 (string-append s_532 ": " msg_0) msg_0)) + continuation-marks_0 + (if srcloc_16 (list srcloc_16) null)))))))))))))))) + (define-values + (bad-syntax-error.1) + (lambda (due-to13_0 in15_0 config16_0 str17_0) + (begin + 'bad-syntax-error + (let-values (((in_8) in15_0)) + (let-values (((config_17) config16_0)) + (let-values (((str_27) str17_0)) + (let-values (((due-to_1) due-to13_0)) + (let-values () + (let-values (((in22_0) in_8) + ((config23_0) config_17) + ((due-to24_0) due-to_1) + ((temp25_3) "bad syntax `~a`") + ((str26_0) str_27)) + (reader-error.1 + unsafe-undefined + due-to24_0 + #f + unsafe-undefined + in22_0 + config23_0 + temp25_3 + (list str26_0))))))))))) + (define-values + (catch-and-reraise-as-reader/proc) + (lambda (in_9 config_18 thunk_9) + (begin + (let-values (((with-handlers-predicate27_0) exn:fail?) + ((with-handlers-handler28_0) + (lambda (exn_5) + (begin + 'with-handlers-handler28 + (let-values (((in29_0) in_9) + ((config30_0) config_18) + ((temp31_3) "~a") + ((temp32_5) + (let-values (((s_174) (exn-message exn_5))) + (regexp-replace "^[a-z-]*: " s_174 ""))) + ((temp33_5) (exn-continuation-marks exn_5))) + (reader-error.1 + temp33_5 + '#\x + #f + unsafe-undefined + in29_0 + config30_0 + temp31_3 + (list temp32_5))))))) + (let-values (((bpz_5) (continuation-mark-set-first #f break-enabled-key))) + (call-handled-body + bpz_5 + (lambda (e_86) + (select-handler/no-breaks e_86 bpz_5 (list (cons with-handlers-predicate27_0 with-handlers-handler28_0)))) + (lambda () (thunk_9)))))))) + (define-values + (port-next-location*) + (lambda (in_5 init-c_0) + (begin + (if (not init-c_0) + (let-values () (port-next-location in_5)) + (let-values () + (let-values (((line_4 col_3 pos_126) (port-next-location in_5))) + (values line_4 (if col_3 (max 0 (sub1 col_3)) #f) (if pos_126 (max 1 (sub1 pos_126)) #f)))))))) + (define-values + (read-char/skip-whitespace-and-comments) + (lambda (init-c_1 read-one_0 in_6 config_15) + (begin + (let-values (((rt_8) (read-config-readtable config_15))) + (let-values (((source_3) (read-config-source config_15))) + ((letrec-values (((skip-loop_0) + (lambda (init-c_2) + (begin + 'skip-loop + (let-values (((c_47) + (let-values (((or-part_0) init-c_2)) + (if or-part_0 + or-part_0 + (let-values (((in_10) in_6) ((source_4) source_3)) + (read-char-or-special in_10 special1.1 source_4)))))) + (let-values (((ec_0) + (let-values (((rt_9) rt_8) ((c_52) c_47)) + (if (let-values (((or-part_72) (not rt_9))) + (if or-part_72 or-part_72 (not (char? c_52)))) + (let-values () c_52) + (let-values () (*readtable-effective-char rt_9 c_52)))))) + (if (eof-object? ec_0) + (let-values () c_47) + (if (not (char? ec_0)) + (let-values () + (let-values (((v_228) (special-value c_47))) + (if (if (1/special-comment? v_228) + (not (read-config-keep-comment? config_15)) + #f) + (let-values () (skip-loop_0 #f)) + (let-values () c_47)))) + (if (let-values (((or-part_58) (char-whitespace? ec_0))) + (if or-part_58 or-part_58 (eqv? '#\uFEFF ec_0))) + (let-values () (skip-loop_0 #f)) + (if (char=? '#\; ec_0) + (let-values () + (begin + ((letrec-values (((loop_112) + (lambda () + (begin + 'loop + (let-values (((c_61) + (let-values (((in_11) in_6) + ((source_5) source_3)) + (read-char-or-special + in_11 + special1.1 + source_5)))) + (if (let-values (((or-part_86) + (eof-object? c_61))) + (if or-part_86 + or-part_86 + (eqv? + '#\newline + (effective-char c_61 config_15)))) + (void) + (let-values () (loop_112)))))))) + loop_112)) + (if (read-config-keep-comment? config_15) + (result-special-comment) + (skip-loop_0 #f)))) + (if (if (char=? '#\# ec_0) + (eqv? + '#\| + (readtable-effective-char/# + rt_8 + (let-values (((in_12) in_6) + ((skip-count_0) 0) + ((source_6) source_3)) + (let-values (((c_64) + (peek-char-or-special + in_12 + skip-count_0 + 'special + source_6))) + (if (eq? c_64 'special) (special1.1 'special) c_64))))) + #f) + (let-values () + (begin + (skip-pipe-comment! c_47 in_6 config_15) + (if (read-config-keep-comment? config_15) + (result-special-comment) + (skip-loop_0 #f)))) + (if (if (char=? '#\# ec_0) + (if (eqv? + '#\! + (readtable-effective-char/# + rt_8 + (let-values (((in_13) in_6) + ((skip-count_1) 0) + ((source_7) source_3)) + (let-values (((c_78) + (peek-char-or-special + in_13 + skip-count_1 + 'special + source_7))) + (if (eq? c_78 'special) (special1.1 'special) c_78))))) + (let-values (((c3_2) + (let-values (((in_14) in_6) + ((skip-count_2) 1) + ((source_8) source_3)) + (let-values (((c_79) + (peek-char-or-special + in_14 + skip-count_2 + 'special + source_8))) + (if (eq? c_79 'special) + (special1.1 'special) + c_79))))) + (let-values (((or-part_99) (eqv? '#\space c3_2))) + (if or-part_99 or-part_99 (eqv? '#\/ c3_2)))) + #f) + #f) + (let-values () + (begin + (skip-unix-line-comment! in_6 config_15) + (if (read-config-keep-comment? config_15) + (result-special-comment) + (skip-loop_0 #f)))) + (if (if (char=? '#\# ec_0) + (eqv? + '#\; + (readtable-effective-char/# + rt_8 + (let-values (((in_15) in_6) + ((skip-count_3) 0) + ((source_9) source_3)) + (let-values (((c_58) + (peek-char-or-special + in_15 + skip-count_3 + 'special + source_9))) + (if (eq? c_58 'special) (special1.1 'special) c_58))))) + #f) + (let-values () + (let-values ((() (begin (consume-char in_6 '#\;) (values)))) + (let-values (((v_214) (read-one_0 #f in_6 config_15))) + (begin + (if (eof-object? v_214) + (let-values () + (let-values (((in1_2) in_6) + ((config2_2) config_15) + ((v3_0) v_214) + ((temp4_3) + "expected a commented-out element for `~a;`, but found end-of-file") + ((ec5_0) ec_0)) + (reader-error.1 + unsafe-undefined + v3_0 + #f + unsafe-undefined + in1_2 + config2_2 + temp4_3 + (list ec5_0)))) + (void)) + (if (read-config-keep-comment? config_15) + (result-special-comment) + (skip-loop_0 #f)))))) + (let-values () c_47)))))))))))))) + skip-loop_0) + init-c_1)))))) + (define-values (result-special-comment) (lambda () (begin (special1.1 (1/make-special-comment #f))))) + (define-values + (skip-pipe-comment!) + (lambda (init-c_3 in_16 config_19) + (begin + (let-values (((source_10) (read-config-source config_19))) + (let-values (((line_5 col_4 pos_127) (port-next-location in_16))) + (begin + (consume-char in_16 '#\|) + ((letrec-values (((loop_113) + (lambda (prev-c_0 depth_9) + (begin + 'loop + (let-values (((c_80) + (let-values (((in_17) in_16) ((source_11) source_10)) + (read-char-or-special in_17 special1.1 source_11)))) + (if (eof-object? c_80) + (let-values () + (let-values (((in6_0) in_16) + ((temp7_5) (reading-at config_19 line_5 col_4 pos_127)) + ((c8_1) c_80) + ((temp9_5) "end of file in `#|` comment")) + (reader-error.1 + unsafe-undefined + c8_1 + #f + unsafe-undefined + in6_0 + temp7_5 + temp9_5 + (list)))) + (if (not (char? c_80)) + (let-values () (loop_113 #f depth_9)) + (if (if (char=? '#\| c_80) (eqv? prev-c_0 '#\#) #f) + (let-values () (loop_113 #f (add1 depth_9))) + (if (if (char=? '#\# c_80) (eqv? prev-c_0 '#\|) #f) + (let-values () + (if (positive? depth_9) + (let-values () (loop_113 #f (sub1 depth_9))) + (void))) + (let-values () (loop_113 c_80 depth_9))))))))))) + loop_113) + #f + 0))))))) + (define-values + (skip-unix-line-comment!) + (lambda (in_18 config_20) + (begin + ((letrec-values (((loop_91) + (lambda (backslash?_0) + (begin + 'loop + (let-values (((c_81) + (let-values (((in_19) in_18) ((source_12) (read-config-source config_20))) + (read-char-or-special in_19 special1.1 source_12)))) + (if (eof-object? c_81) + (let-values () (void)) + (if (not (char? c_81)) + (let-values () (loop_91 #f)) + (if (char=? c_81 '#\newline) + (let-values () (if backslash?_0 (let-values () (loop_91 #f)) (void))) + (if (char=? c_81 '#\\) + (let-values () (loop_91 #t)) + (let-values () (loop_91 #f))))))))))) + loop_91) + #f)))) + (define-values + (readtable-char-delimiter?) + (lambda (rt_10 c_48 config_7) + (begin + (let-values (((dc_0) + (let-values (((or-part_3) (if rt_10 (hash-ref (readtable-delimiter-ht rt_10) c_48 #f) #f))) + (if or-part_3 or-part_3 c_48)))) + (if (eq? dc_0 'no-delimit) + (let-values () #f) + (if (not (char? dc_0)) + (let-values () #t) + (let-values () + (let-values (((or-part_31) (char-whitespace? dc_0))) + (if or-part_31 + or-part_31 + (let-values (((or-part_70) (char=? dc_0 '#\())) + (if or-part_70 + or-part_70 + (let-values (((or-part_11) (char=? dc_0 '#\)))) + (if or-part_11 + or-part_11 + (let-values (((or-part_32) (char=? dc_0 '#\[))) + (if or-part_32 + or-part_32 + (let-values (((or-part_33) (char=? dc_0 '#\]))) + (if or-part_33 + or-part_33 + (let-values (((or-part_0) (char=? dc_0 '#\{))) + (if or-part_0 + or-part_0 + (let-values (((or-part_71) (char=? dc_0 '#\}))) + (if or-part_71 + or-part_71 + (let-values (((or-part_13) (char=? dc_0 '#\'))) + (if or-part_13 + or-part_13 + (let-values (((or-part_14) (char=? dc_0 '#\`))) + (if or-part_14 + or-part_14 + (let-values (((or-part_82) (char=? dc_0 '#\,))) + (if or-part_82 + or-part_82 + (let-values (((or-part_15) (char=? dc_0 '#\;))) + (if or-part_15 + or-part_15 + (let-values (((or-part_72) (char=? dc_0 '#\"))) + (if or-part_72 + or-part_72 + (let-values (((or-part_83) (char=? dc_0 '#\uFEFF))) + (if or-part_83 + or-part_83 + (if (char=? dc_0 '#\.) + (check-parameter 1/read-cdot config_7) + #f)))))))))))))))))))))))))))))))))) + (define-values + (char-delimiter?) + (lambda (c_82 config_21) (begin (readtable-char-delimiter? (read-config-readtable config_21) c_82 config_21)))) + (define-values + (char-closer?) + (lambda (ec_1 config_8) + (begin + (if (not (eof-object? ec_1)) + (let-values (((or-part_2) (char=? ec_1 '#\)))) + (if or-part_2 + or-part_2 + (let-values (((or-part_12) (char=? ec_1 '#\]))) (if or-part_12 or-part_12 (char=? ec_1 '#\}))))) + #f)))) + (define-values (closer-name) (lambda (c_38 config_22) (begin (effective-char-names c_38 config_22 "closer")))) + (define-values (opener-name) (lambda (c_60 config_23) (begin (effective-char-names c_60 config_23 "opener")))) + (define-values + (effective-char-names) + (lambda (c_47 config_24 fallback-str_0) + (begin + (let-values (((rt_11) (read-config-readtable config_24))) + (if (not rt_11) + (let-values () (format "`~a`" c_47)) + (let-values () + (let-values (((cs_1) (readtable-equivalent-chars rt_11 c_47))) + (if (null? cs_1) + (let-values () fallback-str_0) + (if (null? (cdr cs_1)) + (let-values () (format "`~a`" (car cs_1))) + (if (null? (cddr cs_1)) + (let-values () (format "`~a` or `~a`" (car cs_1) (cadr cs_1))) + (let-values () + (apply + string-append + ((letrec-values (((loop_2) + (lambda (cs_2) + (begin + 'loop + (if (null? (cdr cs_2)) + (let-values () (list (format "or `~a`" (car cs_2)))) + (let-values () + (cons (format "`~a`, " (car cs_2)) (loop_2 (cdr cs_2))))))))) + loop_2) + cs_1))))))))))))) + (define-values + (closer->opener) + (lambda (c_52) + (begin + (let-values (((tmp_40) c_52)) + (if (equal? tmp_40 '#\)) + (let-values () '#\() + (if (equal? tmp_40 '#\]) + (let-values () '#\[) + (if (equal? tmp_40 '#\}) (let-values () '#\{) (let-values () c_52)))))))) + (define-values (dot-name) (lambda (config_25) (begin "`.`"))) + (define-values + (all-openers-str) + (lambda (config_26) + (begin + (let-values (((p_10) (opener-name '#\( config_26))) + (let-values (((s_533) + (if (check-parameter 1/read-square-bracket-as-paren config_26) (opener-name '#\[ config_26) #f))) + (let-values (((c_83) + (if (check-parameter 1/read-curly-brace-as-paren config_26) (opener-name '#\{ config_26) #f))) + (if (if s_533 c_83 #f) + (let-values () (format "~a, ~a, or ~a" p_10 s_533 c_83)) + (if (let-values (((or-part_85) s_533)) (if or-part_85 or-part_85 c_83)) + (let-values () + (format "~a or ~a" p_10 (let-values (((or-part_74) s_533)) (if or-part_74 or-part_74 c_83)))) + (let-values () p_10))))))))) + (define-values + (struct:accum-string + accum-string1.1 + accum-string? + accum-string-pos + accum-string-str + set-accum-string-pos! + set-accum-string-str!) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'accum-string + #f + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '() + #f + 'accum-string))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'pos) + (make-struct-field-accessor -ref_2 1 'str) + (make-struct-field-mutator -set!_2 0 'pos) + (make-struct-field-mutator -set!_2 1 'str)))) + (define-values + (accum-string-init!) + (lambda (config_9) + (begin + (let-values (((st_1) (read-config-st config_9))) + (let-values (((a_61) (read-config-state-accum-str st_1))) + (if a_61 + (let-values () (begin (set-read-config-state-accum-str! st_1 #f) (set-accum-string-pos! a_61 0) a_61)) + (let-values () (accum-string1.1 0 (make-string 32))))))))) + (define-values + (accum-string-add!) + (lambda (a_62 c_31) + (begin + (let-values (((pos_128) (accum-string-pos a_62))) + (let-values (((str_28) (accum-string-str a_62))) + (let-values (((str2_0) + (if (fx< pos_128 (string-length str_28)) + (let-values () str_28) + (let-values () + (let-values (((str2_1) (make-string (fx* (string-length str_28) 2)))) + (begin (string-copy! str2_1 0 str_28) (set-accum-string-str! a_62 str2_1) str2_1)))))) + (begin (string-set! str2_0 pos_128 c_31) (set-accum-string-pos! a_62 (fx+ 1 pos_128))))))))) + (define-values (accum-string-count) (lambda (a_63) (begin (accum-string-pos a_63)))) + (define-values (set-accum-string-count!) (lambda (a_64 pos_129) (begin (set-accum-string-pos! a_64 pos_129)))) + (define-values + (accum-string-convert!) + (lambda (a_65 convert_1 start-pos_8) + (begin + (let-values (((str_29) (accum-string-str a_65))) + (let-values (((s_14) (convert_1 (substring str_29 start-pos_8 (accum-string-pos a_65))))) + (let-values (((len_63) (string-length s_14))) + (begin + (if (fx< (fx+ len_63 start-pos_8) (string-length str_29)) + (void) + (let-values () + (let-values (((str2_2) (make-string (fx+ start-pos_8 len_63)))) + (begin (string-copy! str2_2 0 str_29 0 start-pos_8) (set-accum-string-str! a_65 str2_2))))) + (string-copy! (accum-string-str a_65) start-pos_8 s_14) + (set-accum-string-pos! a_65 (fx+ start-pos_8 len_63))))))))) + (define-values + (accum-string-get!.1) + (lambda (start-pos2_0 a4_0 config5_0) + (begin + 'accum-string-get! + (let-values (((a_66) a4_0)) + (let-values (((config_27) config5_0)) + (let-values (((start-pos_9) start-pos2_0)) + (let-values () + (let-values (((s_503) (substring (accum-string-str a_66) start-pos_9 (accum-string-pos a_66)))) + (begin (accum-string-abandon! a_66 config_27) s_503))))))))) + (define-values + (accum-string-get-bytes!.1) + (lambda (start-pos7_0 a9_0 config10_1) + (begin + 'accum-string-get-bytes! + (let-values (((a_67) a9_0)) + (let-values (((config_28) config10_1)) + (let-values (((start-pos_10) start-pos7_0)) + (let-values () + (let-values (((bstr_23) + (string->bytes/latin-1 (accum-string-str a_67) #f start-pos_10 (accum-string-pos a_67)))) + (begin (accum-string-abandon! a_67 config_28) bstr_23))))))))) + (define-values + (accum-string-abandon!) + (lambda (a_68 config_29) (begin (set-read-config-state-accum-str! (read-config-st config_29) a_68)))) + (define-values + (struct:indentation + indentation1.1 + indentation? + indentation-closer + indentation-suspicious-closer + indentation-multiline? + indentation-start-line + indentation-last-line + indentation-suspicious-line + indentation-max-indent + indentation-suspicious-quote + set-indentation-suspicious-closer! + set-indentation-multiline?! + set-indentation-last-line! + set-indentation-suspicious-line! + set-indentation-max-indent! + set-indentation-suspicious-quote!) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type 'indentation #f 8 0 #f null (current-inspector) #f '(0 3) #f 'indentation))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'closer) + (make-struct-field-accessor -ref_2 1 'suspicious-closer) + (make-struct-field-accessor -ref_2 2 'multiline?) + (make-struct-field-accessor -ref_2 3 'start-line) + (make-struct-field-accessor -ref_2 4 'last-line) + (make-struct-field-accessor -ref_2 5 'suspicious-line) + (make-struct-field-accessor -ref_2 6 'max-indent) + (make-struct-field-accessor -ref_2 7 'suspicious-quote) + (make-struct-field-mutator -set!_2 1 'suspicious-closer) + (make-struct-field-mutator -set!_2 2 'multiline?) + (make-struct-field-mutator -set!_2 4 'last-line) + (make-struct-field-mutator -set!_2 5 'suspicious-line) + (make-struct-field-mutator -set!_2 6 'max-indent) + (make-struct-field-mutator -set!_2 7 'suspicious-quote)))) + (define-values + (make-indentation) + (lambda (closer_0 in_20 config_30) + (begin + (let-values (((line_6 col_5 pos_128) (port-next-location in_20))) + (indentation1.1 closer_0 #f #f line_6 line_6 #f (if col_5 (add1 col_5) #f) #f))))) + (define-values + (track-indentation!) + (lambda (config_31 line_7 col_6) + (begin + (let-values (((indts_0) (read-config-indentations config_31))) + (let-values (((indt_0) (if (pair? indts_0) (car indts_0) #f))) + (if (if indt_0 + (if line_7 (if (indentation-last-line indt_0) (> line_7 (indentation-last-line indt_0)) #f) #f) + #f) + (let-values () + (begin + (set-indentation-last-line! indt_0 line_7) + (set-indentation-multiline?! indt_0 #t) + (if (>= col_6 (indentation-max-indent indt_0)) + (let-values () (set-indentation-max-indent! indt_0 col_6)) + (let-values () + (if (indentation-suspicious-line indt_0) + (void) + (let-values () + (begin + (set-indentation-suspicious-closer! indt_0 (indentation-closer indt_0)) + (set-indentation-suspicious-line! indt_0 line_7)))))))) + (void))))))) + (define-values + (indentation-possible-cause) + (lambda (config_25) + (begin + (let-values (((indt_1) (car (read-config-indentations config_25)))) + (if (indentation-suspicious-line indt_1) + (let-values () + (format + "\n possible cause: indentation suggests a missing ~a before line ~a" + (closer-name (indentation-suspicious-closer indt_1) config_25) + (indentation-suspicious-line indt_1))) + (let-values () "")))))) + (define-values + (indentation-unexpected-closer-message) + (lambda (ec_2 c_61 config_32) + (begin + (let-values (((indts_1) (read-config-indentations config_32))) + (if (null? indts_1) + (let-values () (format "unexpected `~a`" c_61)) + (let-values () + (let-values (((indt_2) (car indts_1))) + (string-append + (if (char=? ec_2 (indentation-closer indt_2)) + (let-values () (format "unexpected `~a`" c_61)) + (let-values () + (let-values (((missing_2) + (let-values (((or-part_144) + (let-values (((lst_190) (cdr indts_1))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_190))) + ((letrec-values (((for-loop_206) + (lambda (result_124 lst_319) + (begin + 'for-loop + (if (pair? lst_319) + (let-values (((indt_3) (unsafe-car lst_319)) + ((rest_99) + (unsafe-cdr lst_319))) + (let-values (((result_126) + (let-values () + (let-values (((result_127) + (let-values () + (let-values () + (if (char=? + ec_2 + (indentation-closer + indt_3)) + "missing" + #f))))) + (values result_127))))) + (if (if (not + ((lambda x_92 result_126) + indt_3)) + (not #f) + #f) + (for-loop_206 result_126 rest_99) + result_126))) + result_124))))) + for-loop_206) + #f + lst_190))))) + (if or-part_144 or-part_144 "expected")))) + (let-values (((opener-str_0) (opener-name (closer->opener (indentation-closer indt_2)) config_32))) + (format + "~a ~a to close ~a, found instead `~a`" + missing_2 + (closer-name (indentation-closer indt_2) config_32) + (if (indentation-multiline? indt_2) + (let-values () (format "~a on line ~a" opener-str_0 (indentation-start-line indt_2))) + (let-values () (format "preceding ~a" opener-str_0))) + c_61))))) + (indentation-possible-cause config_32))))))))) + (define-values + (read-unwrapped-sequence.1) + (lambda (dot-mode2_0 + elem-config1_0 + first-read-one5_0 + shape-tag?3_0 + whitespace-read-one4_0 + read-one11_0 + opener-c12_0 + opener13_0 + closer14_0 + in15_1 + seq-config16_0) + (begin + 'read-unwrapped-sequence + (let-values (((read-one_1) read-one11_0)) + (let-values (((opener-c_0) opener-c12_0)) + (let-values (((opener_0) opener13_0)) + (let-values (((closer_1) closer14_0)) + (let-values (((in_21) in15_1)) + (let-values (((seq-config_0) seq-config16_0)) + (let-values (((elem-config_0) + (if (eq? elem-config1_0 unsafe-undefined) + (next-readtable seq-config_0) + elem-config1_0))) + (let-values (((dot-mode_0) dot-mode2_0)) + (let-values (((shape-tag?_0) shape-tag?3_0)) + (let-values (((whitespace-read-one_0) + (if (eq? whitespace-read-one4_0 unsafe-undefined) + read-one_1 + whitespace-read-one4_0))) + (let-values (((first-read-one_0) + (if (eq? first-read-one5_0 unsafe-undefined) read-one_1 first-read-one5_0))) + (let-values () + (let-values (((head_0) #f)) + (let-values (((indentation_0) (make-indentation closer_1 in_21 seq-config_0))) + (let-values (((config_33) + (let-values (((v_66) elem-config_0)) + (let-values (((the-struct_65) v_66)) + (if (read-config/outer? the-struct_65) + (let-values (((indentations18_0) + (cons + indentation_0 + (read-config-indentations seq-config_0))) + ((inner19_0) (read-config/outer-inner v_66))) + (read-config/outer1.1 + inner19_0 + (read-config/outer-wrap the-struct_65) + (read-config/outer-line the-struct_65) + (read-config/outer-col the-struct_65) + (read-config/outer-pos the-struct_65) + indentations18_0 + (read-config/outer-keep-comment? the-struct_65))) + (raise-argument-error + 'struct-copy + "read-config/outer?" + the-struct_65)))))) + (let-values (((open-end-line_0 open-end-col_0 open-end-pos_0) + (port-next-location in_21))) + (let-values (((config/keep-comment_0) (keep-comment config_33))) + (let-values (((read-one/not-eof_0) + (lambda (init-c_4 read-one_2 config_34) + (begin + 'read-one/not-eof + (let-values (((e_87) (read-one_2 init-c_4 in_21 config_34))) + (begin + (if (eof-object? e_87) + (let-values () + (let-values (((in20_0) in_21) + ((seq-config21_0) seq-config_0) + ((e22_0) e_87) + ((open-end-pos23_0) open-end-pos_0) + ((temp24_3) + "expected a ~a to close `~a`~a") + ((temp25_4) + (closer-name closer_1 config_34)) + ((opener-c26_0) opener-c_0) + ((temp27_1) + (indentation-possible-cause config_34))) + (reader-error.1 + unsafe-undefined + e22_0 + open-end-pos23_0 + unsafe-undefined + in20_0 + seq-config21_0 + temp24_3 + (list temp25_4 opener-c26_0 temp27_1)))) + (void)) + e_87)))))) + (let-values (((seq_0) + ((letrec-values (((loop_3) + (lambda (depth_10 + accum_12 + init-c_5 + first?_1 + first-read-one_1) + (begin + 'loop + (let-values (((c_84) + (read-char/skip-whitespace-and-comments + init-c_5 + whitespace-read-one_0 + in_21 + seq-config_0))) + (let-values (((ec_3) + (effective-char + c_84 + seq-config_0))) + (if (eqv? ec_3 closer_1) + (let-values () + (if (null? accum_12) + null + (reverse$1 accum_12))) + (if (if (not first?_1) + (if (eqv? ec_3 '#\.) + (if (check-parameter + 1/read-accept-dot + config_33) + (char-delimiter? + (let-values (((in_22) + in_21) + ((skip-count_4) + 0) + ((source_13) + (read-config-source + config_33))) + (let-values (((c_39) + (peek-char-or-special + in_22 + skip-count_4 + 'special + source_13))) + (if (eq? + c_39 + 'special) + (special1.1 + 'special) + c_39))) + seq-config_0) + #f) + #f) + #f) + (let-values () + (let-values (((dot-line_0 + dot-col_0 + dot-pos_0) + (port-next-location* + in_21 + c_84))) + (let-values ((() + (begin + (track-indentation! + config_33 + dot-line_0 + dot-col_0) + (values)))) + (let-values ((() + (begin + (if (if dot-mode_0 + (not + head_0) + #f) + (void) + (let-values () + (let-values (((in28_0) + in_21) + ((temp29_3) + (reading-at + config_33 + dot-line_0 + dot-col_0 + dot-pos_0)) + ((temp30_2) + "illegal use of `.`")) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in28_0 + temp29_3 + temp30_2 + (list))))) + (values)))) + (let-values (((v_232) + (read-one/not-eof_0 + #f + first-read-one_1 + config_33))) + (let-values (((rest-c_0) + (read-char/skip-whitespace-and-comments + #f + whitespace-read-one_0 + in_21 + seq-config_0))) + (let-values (((rest-ec_0) + (effective-char + rest-c_0 + seq-config_0))) + (if (eqv? + rest-ec_0 + closer_1) + (let-values () + (if (null? + accum_12) + v_232 + (append + (reverse$1 + accum_12) + v_232))) + (if (if (eqv? + rest-ec_0 + '#\.) + (if (check-parameter + 1/read-accept-dot + config_33) + (if (check-parameter + 1/read-accept-infix-dot + config_33) + (char-delimiter? + (let-values (((in_23) + in_21) + ((skip-count_5) + 0) + ((source_2) + (read-config-source + config_33))) + (let-values (((c_85) + (peek-char-or-special + in_23 + skip-count_5 + 'special + source_2))) + (if (eq? + c_85 + 'special) + (special1.1 + 'special) + c_85))) + seq-config_0) + #f) + #f) + #f) + (let-values () + (let-values ((() + (begin + (set! head_0 + (box + v_232)) + (values)))) + (let-values (((dot2-line_0 + dot2-col_0 + dot2-pos_0) + (port-next-location + in_21))) + (let-values ((() + (begin + (track-indentation! + config_33 + dot2-line_0 + dot2-col_0) + (values)))) + (let-values (((post-c_0) + (read-char/skip-whitespace-and-comments + #f + whitespace-read-one_0 + in_21 + seq-config_0))) + (let-values (((post-ec_0) + (effective-char + post-c_0 + seq-config_0))) + (begin + (if (let-values (((or-part_308) + (eof-object? + post-ec_0))) + (if or-part_308 + or-part_308 + (eqv? + post-ec_0 + closer_1))) + (let-values () + (let-values (((in31_0) + in_21) + ((temp32_6) + (reading-at + config_33 + dot-line_0 + dot-col_0 + dot-pos_0)) + ((post-ec33_0) + post-ec_0) + ((temp34_3) + "illegal use of `.`")) + (reader-error.1 + unsafe-undefined + post-ec33_0 + #f + unsafe-undefined + in31_0 + temp32_6 + temp34_3 + (list)))) + (void)) + (loop_3 + depth_10 + accum_12 + post-c_0 + #f + read-one_1)))))))) + (let-values () + (let-values (((in35_0) + in_21) + ((temp36_3) + (reading-at + config_33 + dot-line_0 + dot-col_0 + dot-pos_0)) + ((rest-c37_0) + rest-c_0) + ((temp38_2) + "illegal use of `.`")) + (reader-error.1 + unsafe-undefined + rest-c37_0 + #f + unsafe-undefined + in35_0 + temp36_3 + temp38_2 + (list))))))))))))) + (let-values () + (let-values (((v_105) + (read-one/not-eof_0 + c_84 + first-read-one_1 + config/keep-comment_0))) + (if (1/special-comment? v_105) + (let-values () + (loop_3 + depth_10 + accum_12 + #f + #f + read-one_1)) + (if (> depth_10 1024) + (let-values () + (loop_3 + depth_10 + (cons v_105 accum_12) + #f + #f + read-one_1)) + (let-values () + (cons + v_105 + (loop_3 + (add1 depth_10) + null + #f + #f + read-one_1))))))))))))))) + loop_3) + 0 + null + #f + #t + first-read-one_0))) + (let-values (((full-seq_0) (if head_0 (cons (unbox head_0) seq_0) seq_0))) + (if shape-tag?_0 + (add-shape-tag opener_0 in_21 config_33 full-seq_0) + full-seq_0)))))))))))))))))))))))) + (define-values + (add-shape-tag) + (lambda (opener_1 in_24 config_35 seq_1) + (begin + (let-values (((tag_0) + (let-values (((tmp_41) opener_1)) + (if (equal? tmp_41 '#\[) + (let-values () (if (check-parameter 1/read-square-bracket-with-tag config_35) '#%brackets #f)) + (if (equal? tmp_41 '#\{) + (let-values () (if (check-parameter 1/read-curly-brace-with-tag config_35) '#%braces #f)) + (let-values () #f)))))) + (if tag_0 (cons (wrap tag_0 in_24 config_35 #f) seq_1) seq_1))))) + (define-values (not-an-fX.1$1) (lambda (who_7 v_25) (begin 'not-an-fX (raise-argument-error who_7 "flonum?" v_25)))) + (define-values + (read-digits.1) + (lambda (base1_1 init3_0 max-count2_0 zero-digits-result4_0 in10_0 config11_0 accum-str9_0) + (begin + 'read-digits + (let-values (((in_7) in10_0)) + (let-values (((config_16) config11_0)) + (let-values (((accum-str_0) accum-str9_0)) + (let-values (((base_5) base1_1)) + (let-values (((max-count_0) max-count2_0)) + (let-values (((init-v_0) init3_0)) + (let-values (((zero-digits-result_0) zero-digits-result4_0)) + (let-values () + (let-values (((c_53) + (let-values (((in_25) in_7) + ((skip-count_6) 0) + ((source_14) (read-config-source config_16))) + (let-values (((c_86) + (peek-char-or-special in_25 skip-count_6 'special source_14))) + (if (eq? c_86 'special) (special1.1 'special) c_86))))) + (if (digit? c_53 base_5) + (let-values () + (begin + (consume-char in_7 c_53) + (if accum-str_0 (let-values () (accum-string-add! accum-str_0 c_53)) (void)) + ((letrec-values (((loop_114) + (lambda (v_49 max-count_1) + (begin + 'loop + (if (zero? max-count_1) + (let-values () v_49) + (let-values () + (let-values (((c_87) + (let-values (((in_26) in_7) + ((skip-count_7) 0) + ((source_15) + (read-config-source config_16))) + (let-values (((c_72) + (peek-char-or-special + in_26 + skip-count_7 + 'special + source_15))) + (if (eq? c_72 'special) + (special1.1 'special) + c_72))))) + (if (digit? c_87 base_5) + (let-values () + (begin + (consume-char in_7 c_87) + (if accum-str_0 + (let-values () (accum-string-add! accum-str_0 c_87)) + (void)) + (loop_114 + (+ (digit->number c_87) (* v_49 base_5)) + (sub1 max-count_1)))) + (let-values () v_49))))))))) + loop_114) + (+ (digit->number c_53) (* init-v_0 base_5)) + (sub1 max-count_0)))) + (if zero-digits-result_0 + (let-values () zero-digits-result_0) + (let-values () c_53))))))))))))))) + (define-values + (digit?) + (lambda (c_88 base_24) + (begin + (if (not (char? c_88)) + (let-values () #f) + (if (= base_24 8) + (let-values () (octal-digit? c_88)) + (if (= base_24 16) (let-values () (hex-digit? c_88)) (let-values () (decimal-digit? c_88)))))))) + (define-values (decimal-digit?) (lambda (c_89) (begin (if (char>=? c_89 '#\0) (char<=? c_89 '#\9) #f)))) + (define-values (octal-digit?) (lambda (c_90) (begin (if (char>=? c_90 '#\0) (char<=? c_90 '#\7) #f)))) + (define-values + (hex-digit?) + (lambda (c_91) + (begin + (let-values (((or-part_308) (if (char>=? c_91 '#\0) (char<=? c_91 '#\9) #f))) + (if or-part_308 + or-part_308 + (let-values (((or-part_309) (if (char>=? c_91 '#\A) (char<=? c_91 '#\F) #f))) + (if or-part_309 or-part_309 (if (char>=? c_91 '#\a) (char<=? c_91 '#\f) #f)))))))) + (define-values + (digit->number) + (lambda (c_32) + (begin + (if (if (char>=? c_32 '#\0) (char<=? c_32 '#\9) #f) + (let-values () (- (char->integer c_32) (char->integer '#\0))) + (if (if (char>=? c_32 '#\A) (char<=? c_32 '#\F) #f) + (let-values () (- (char->integer c_32) (- (char->integer '#\A) 10))) + (let-values () (- (char->integer c_32) (- (char->integer '#\a) 10)))))))) + (define-values + (maybe-digit) + (lambda (c_92 radix_0) + (begin + (let-values (((v_233) (char->integer c_92))) + (if (fx< v_233 (char->integer '#\0)) + (let-values () c_92) + (if (fx< v_233 (fx+ (fxmin radix_0 10) (char->integer '#\0))) + (let-values () (fx- v_233 (char->integer '#\0))) + (if (fx<= radix_0 10) + (let-values () c_92) + (if (fx< v_233 (char->integer '#\A)) + (let-values () c_92) + (if (fx< v_233 (+ radix_0 (- (char->integer '#\A) 10))) + (let-values () (fx- v_233 (- (char->integer '#\A) 10))) + (if (fx< v_233 (char->integer '#\a)) + (let-values () c_92) + (if (fx< v_233 (+ radix_0 (- (char->integer '#\a) 10))) + (let-values () (fx- v_233 (- (char->integer '#\a) 10))) + (let-values () c_92)))))))))))) + (define-values (string->number$1) (hash-ref (primitive-table '#%kernel) 'string->number #f)) + (define-values + (1/string->number) + (let-values (((string->number_0) + (lambda (s5_3 radix1_0 convert-mode2_0 decimal-mode3_0 single-mode4_0) + (begin + 'string->number + (let-values (((s_534) s5_3)) + (let-values (((radix_1) radix1_0)) + (let-values (((convert-mode_0) convert-mode2_0)) + (let-values (((decimal-mode_0) + (if (eq? decimal-mode3_0 unsafe-undefined) + (if (1/read-decimal-as-inexact) 'decimal-as-inexact 'decimal-as-exact) + decimal-mode3_0))) + (let-values (((single-mode_0) + (if (eq? single-mode4_0 unsafe-undefined) + (if (1/read-single-flonum) 'single 'double) + single-mode4_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (string? s_534) + (void) + (let-values () (raise-argument-error 'string->number "string?" s_534))) + (if ((lambda (p_76) (if (exact-integer? radix_1) (<= 2 radix_1 16) #f)) radix_1) + (void) + (let-values () + (raise-argument-error 'string->number "(integer-in 2 16)" radix_1))) + (if ((lambda (p_77) + (let-values (((or-part_143) (eq? p_77 'number-or-false))) + (if or-part_143 or-part_143 (eq? p_77 'read)))) + convert-mode_0) + (void) + (let-values () + (raise-argument-error + 'string->number + "(or/c 'number-or-false 'read)" + convert-mode_0))) + (if ((lambda (p_14) + (let-values (((or-part_176) (eq? p_14 'decimal-as-inexact))) + (if or-part_176 or-part_176 (eq? p_14 'decimal-as-exact)))) + decimal-mode_0) + (void) + (let-values () + (raise-argument-error + 'string->number + "(or/c 'decimal-as-inexact 'decimal-as-exact)" + decimal-mode_0))) + (if ((lambda (p_7) + (let-values (((or-part_36) (eq? p_7 'single))) + (if or-part_36 or-part_36 (eq? p_7 'double)))) + single-mode_0) + (void) + (let-values () + (raise-argument-error + 'string->number + "(or/c 'single 'double)" + single-mode_0))) + (unchecked-string->number + s_534 + radix_1 + convert-mode_0 + decimal-mode_0 + single-mode_0)))))))))))))) + (case-lambda + ((s_8) (begin 'string->number (string->number_0 s_8 10 'number-or-false unsafe-undefined unsafe-undefined))) + ((s_92 radix_2 convert-mode_1 decimal-mode_1 single-mode4_1) + (string->number_0 s_92 radix_2 convert-mode_1 decimal-mode_1 single-mode4_1)) + ((s_42 radix_3 convert-mode_2 decimal-mode3_1) + (string->number_0 s_42 radix_3 convert-mode_2 decimal-mode3_1 unsafe-undefined)) + ((s_535 radix_4 convert-mode2_1) + (string->number_0 s_535 radix_4 convert-mode2_1 unsafe-undefined unsafe-undefined)) + ((s_162 radix1_1) (string->number_0 s_162 radix1_1 'number-or-false unsafe-undefined unsafe-undefined))))) + (define-values + (unchecked-string->number) + (lambda (s_79 radix_5 convert-mode_3 decimal-mode_2 single-mode_1) + (begin + (let-values (((s44_0) s_79) + ((temp45_1) 0) + ((temp46_2) (string-length s_79)) + ((radix47_0) radix_5) + ((temp48_3) #f) + ((decimal-mode49_0) decimal-mode_2) + ((convert-mode50_0) convert-mode_3) + ((single-mode51_0) single-mode_1)) + (do-string->number.1 + temp48_3 + s44_0 + temp45_1 + temp46_2 + radix47_0 + decimal-mode49_0 + convert-mode50_0 + single-mode51_0))))) + (define-values + (struct:parse-state + parse-state6.1 + parse-state? + parse-state-exactness + parse-state-convert-mode + parse-state-can-single? + parse-state-fst + parse-state-other-exactness) + (let-values (((struct:_68 make-_68 ?_68 -ref_68 -set!_68) + (let-values () + (let-values () + (make-struct-type + 'parse-state + #f + 5 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2 3 4) + #f + 'parse-state))))) + (values + struct:_68 + make-_68 + ?_68 + (make-struct-field-accessor -ref_68 0 'exactness) + (make-struct-field-accessor -ref_68 1 'convert-mode) + (make-struct-field-accessor -ref_68 2 'can-single?) + (make-struct-field-accessor -ref_68 3 'fst) + (make-struct-field-accessor -ref_68 4 'other-exactness)))) + (define-values + (struct:rect-prefix rect-prefix7.1 rect-prefix? rect-prefix-sgn/z rect-prefix-n rect-prefix-start) + (let-values (((struct:_69 make-_69 ?_69 -ref_69 -set!_69) + (let-values () + (let-values () + (make-struct-type + 'rect-prefix + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'rect-prefix))))) + (values + struct:_69 + make-_69 + ?_69 + (make-struct-field-accessor -ref_69 0 'sgn/z) + (make-struct-field-accessor -ref_69 1 'n) + (make-struct-field-accessor -ref_69 2 'start)))) + (define-values + (struct:polar-prefix polar-prefix8.1 polar-prefix? polar-prefix-sgn/z polar-prefix-n polar-prefix-start) + (let-values (((struct:_70 make-_70 ?_70 -ref_70 -set!_70) + (let-values () + (let-values () + (make-struct-type + 'polar-prefix + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'polar-prefix))))) + (values + struct:_70 + make-_70 + ?_70 + (make-struct-field-accessor -ref_70 0 'sgn/z) + (make-struct-field-accessor -ref_70 1 'n) + (make-struct-field-accessor -ref_70 2 'start)))) + (define-values + (init-state) + (lambda (exactness_0 convert-mode_4 single-mode_2 fst_0) + (begin (parse-state6.1 exactness_0 convert-mode_4 (eq? single-mode_2 'single) fst_0 exactness_0)))) + (define-values + (state-has-first-half?) + (lambda (state_26) (begin (let-values (((fst_1) (parse-state-fst state_26))) (if fst_1 (not (eq? fst_1 '+/-)) #f))))) + (define-values + (state-set-first-half) + (lambda (state_20 fst_2) + (begin + (let-values (((the-struct_83) state_20)) + (if (parse-state? the-struct_83) + (let-values (((fst55_0) fst_2) + ((exactness56_0) (parse-state-other-exactness state_20)) + ((other-exactness57_0) (parse-state-exactness state_20))) + (parse-state6.1 + exactness56_0 + (parse-state-convert-mode the-struct_83) + (parse-state-can-single? the-struct_83) + fst55_0 + other-exactness57_0)) + (raise-argument-error 'struct-copy "parse-state?" the-struct_83)))))) + (define-values + (state-first-half) + (lambda (state_27) + (begin + (init-state + (parse-state-other-exactness state_27) + (parse-state-convert-mode state_27) + (if (parse-state-can-single? state_27) 'single 'double) + #f)))) + (define-values + (state-second-half) + (lambda (state_28) + (begin + (init-state + (parse-state-exactness state_28) + (parse-state-convert-mode state_28) + (if (parse-state-can-single? state_28) 'single 'double) + #f)))) + (define-values + (state->convert-mode) + (lambda (state_29) (begin (if (parse-state? state_29) (parse-state-convert-mode state_29) state_29)))) + (define-values + (state->dbz-convert-mode) + (lambda (state_30) + (begin + (let-values (((convert-mode_5) (parse-state-convert-mode state_30))) + (if (eq? convert-mode_5 'read) 'must-read convert-mode_5))))) + (define-values + (bad-digit) + (lambda (c_93 s_536 state_31) + (begin + (if (char=? c_93 '#\nul) + (let-values () + (if (eq? (state->convert-mode state_31) 'must-read) + (let-values () (format "nul character in `~.a`" s_536)) + (let-values () #f))) + (let-values () + (if (eq? (state->convert-mode state_31) 'must-read) + (let-values () (format "bad digit `~a`" c_93)) + (let-values () #f))))))) + (define-values + (bad-mixed-decimal-fraction) + (lambda (s_537 state_32) + (begin + (if (eq? (state->convert-mode state_32) 'must-read) + (let-values () (format "decimal points and fractions cannot be mixed in `~.a`" s_537)) + (let-values () #f))))) + (define-values + (bad-misplaced) + (lambda (what_3 s_174 state_33) + (begin + (if (eq? (state->convert-mode state_33) 'must-read) + (let-values () (format "misplaced `~a` in `~.a`" what_3 s_174)) + (let-values () #f))))) + (define-values + (bad-no-digits) + (lambda (after_0 s_30 state_34) + (begin + (if (eq? (state->convert-mode state_34) 'must-read) + (let-values () (format "missing digits after `~a` in `~.a`" after_0 s_30)) + (let-values () #f))))) + (define-values + (bad-extflonum-for-complex) + (lambda (i_206 s_31 state_35) + (begin + (if (eq? (state->convert-mode state_35) 'must-read) + (let-values () (format "cannot combine extflonum `~a` into a complex number" i_206)) + (let-values () #f))))) + (define-values + (struct:lazy-expt lazy-expt9.1 lazy-expt? lazy-expt-n lazy-expt-radix lazy-expt-exp) + (let-values (((struct:_71 make-_71 ?_71 -ref_71 -set!_71) + (let-values () + (let-values () + (make-struct-type + 'lazy-expt + #f + 3 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1 2) + #f + 'lazy-expt))))) + (values + struct:_71 + make-_71 + ?_71 + (make-struct-field-accessor -ref_71 0 'n) + (make-struct-field-accessor -ref_71 1 'radix) + (make-struct-field-accessor -ref_71 2 'exp)))) + (define-values + (struct:lazy-rational lazy-rational10.1 lazy-rational? lazy-rational-n lazy-rational-d) + (let-values (((struct:_72 make-_72 ?_72 -ref_72 -set!_72) + (let-values () + (let-values () + (make-struct-type + 'lazy-rational + #f + 2 + 0 + #f + (list (cons prop:authentic #t)) + (current-inspector) + #f + '(0 1) + #f + 'lazy-rational))))) + (values + struct:_72 + make-_72 + ?_72 + (make-struct-field-accessor -ref_72 0 'n) + (make-struct-field-accessor -ref_72 1 'd)))) + (define-values + (lazy-number) + (lambda (n_15 radix_6 exp_0) + (begin + (if (eq? n_15 'dbz) + (let-values () n_15) + (if (eq? n_15 'dbz!) + (let-values () n_15) + (let-values () + (if (if (< exp_0 30) (> exp_0 -30) #f) + (* n_15 (expt radix_6 exp_0)) + (lazy-expt9.1 n_15 radix_6 exp_0)))))))) + (define-values + (lazy-divide) + (lambda (n_35 d_42 d-exactness_0) + (begin + (if (eqv? d_42 0) + (let-values () (if (eq? d-exactness_0 'exact) 'dbz! 'dbz)) + (if (let-values (((or-part_46) (lazy-expt? n_35))) (if or-part_46 or-part_46 (lazy-expt? d_42))) + (let-values () (lazy-rational10.1 n_35 d_42)) + (let-values () (/ n_35 d_42))))))) + (define-values + (simplify-lazy-divide) + (lambda (n0_0) + (begin + (if (lazy-rational? n0_0) + (let-values () + (let-values (((n_36) (lazy-rational-n n0_0))) + (let-values (((d_43) (lazy-rational-d n0_0))) + (let-values (((n-n_0) (if (lazy-expt? n_36) (lazy-expt-n n_36) n_36))) + (let-values (((n-exp_0) (if (lazy-expt? n_36) (lazy-expt-exp n_36) 0))) + (let-values (((d-n_0) (if (lazy-expt? d_43) (lazy-expt-n d_43) d_43))) + (let-values (((d-exp_0) (if (lazy-expt? d_43) (lazy-expt-exp d_43) 0))) + (let-values (((radix_7) (if (lazy-expt? n_36) (lazy-expt-radix n_36) (lazy-expt-radix d_43)))) + (lazy-number (/ n-n_0 d-n_0) radix_7 (- n-exp_0 d-exp_0)))))))))) + (let-values () n0_0))))) + (define-values + (force-lazy-exact) + (lambda (n0_1 state_23 s_475) + (begin + (let-values (((n_37) (simplify-lazy-divide n0_1))) + (if (let-values (((or-part_310) (eq? n_37 'dbz))) (if or-part_310 or-part_310 (eq? n_37 'dbz!))) + (let-values () + (if (eq? (state->convert-mode (state->dbz-convert-mode state_23)) 'must-read) + (let-values () (format "division by zero in `~.a`" s_475)) + (let-values () #f))) + (if (lazy-expt? n_37) + (let-values () (* (lazy-expt-n n_37) (expt (lazy-expt-radix n_37) (lazy-expt-exp n_37)))) + (let-values () n_37))))))) + (define-values + (force-lazy-inexact) + (let-values (((force-lazy-inexact_0) + (lambda (sgn/z12_0 n013_0 state14_0 s15_0 precision11_0) + (begin + 'force-lazy-inexact + (let-values (((sgn/z_0) sgn/z12_0)) + (let-values (((n0_2) n013_0)) + (let-values (((state_36) state14_0)) + (let-values (((s_322) s15_0)) + (let-values (((precision_0) precision11_0)) + (let-values () + (let-values (((n1_1) (simplify-lazy-divide n0_2))) + (if (eq? n0_2 'dbz) + (let-values () (if (fx= sgn/z_0 -1) -inf.0 +inf.0)) + (if (eq? n0_2 'dbz!) + (let-values () + (if (eq? (state->convert-mode (state->dbz-convert-mode state_36)) 'must-read) + (let-values () (format "division by zero in `~.a`" s_322)) + (let-values () #f))) + (if (lazy-expt? n1_1) + (let-values () + (let-values (((n_38) (lazy-expt-n n1_1))) + (let-values (((exp_1) (lazy-expt-exp n1_1))) + (let-values (((radix_8) (lazy-expt-radix n1_1))) + (let-values (((approx-expt_0) + (+ + (/ + (if (integer? n_38) + (integer-length n_38) + (- + (integer-length (numerator n_38)) + (integer-length (denominator n_38)))) + (log radix_8 2)) + exp_1))) + (if (eqv? n_38 0) + (let-values () (if (fx= sgn/z_0 -1) (- 0.0) 0.0)) + (if (> approx-expt_0 precision_0) + (let-values () (if (fx= sgn/z_0 -1) -inf.0 +inf.0)) + (if (< approx-expt_0 (- precision_0)) + (let-values () (if (fx= sgn/z_0 -1) (- 0.0) 0.0)) + (let-values () (* n_38 (expt radix_8 exp_1))))))))))) + (if (eqv? n1_1 0) + (let-values () (if (fx= sgn/z_0 -1) (- 0.0) 0.0)) + (let-values () n1_1)))))))))))))))) + (case-lambda + ((sgn/z_1 n0_3 state_37 s_40) (begin (force-lazy-inexact_0 sgn/z_1 n0_3 state_37 s_40 2048))) + ((sgn/z_2 n0_4 state_38 s_323 precision11_1) (force-lazy-inexact_0 sgn/z_2 n0_4 state_38 s_323 precision11_1))))) + (define-values + (fast-inexact) + (lambda (state_39 sgn_0 n_39 radix_9 exp_2 sgn2_0 exp2_0) + (begin + (let-values (((tmp_42) (parse-state-exactness state_39))) + (if (if (equal? tmp_42 'double) #t (equal? tmp_42 'approx)) + (let-values () + (if (state-has-first-half? state_39) + (let-values () #f) + (if (eqv? n_39 0) + (let-values () (if (fx= sgn_0 1) 0.0 (- 0.0))) + (if (if (fixnum? n_39) (if (< n_39 (expt 2 50)) (> n_39 (- (expt 2 50))) #f) #f) + (let-values () + (let-values (((exp_3) (+ exp_2 (* sgn2_0 exp2_0)))) + (if (if (fixnum? exp_3) + (if (fx<= radix_9 10) + (let-values () (fx<= -15 exp_3 15)) + (let-values () (fx<= -12 exp_3 12))) + #f) + (let-values () + (let-values (((m_24) (fx->fl (if (fx= sgn_0 -1) (fx- 0 n_39) n_39)))) + (if (eqv? exp_3 0) + (let-values () m_24) + (if (not (fixnum? exp_3)) + (let-values () #f) + (let-values () + (let-values (((fradix_0) (if (fx= radix_9 10) 10.0 (fx->fl radix_9)))) + (if (fx< exp_3 0) + (let-values () (/ m_24 (expt fradix_0 (fx- 0 exp_3)))) + (let-values () (* m_24 (expt fradix_0 exp_3)))))))))) + (let-values () #f)))) + (let-values () #f))))) + (let-values () #f)))))) + (define-values + (finish.1) + (lambda (range16_0 sgn/z18_0 n19_0 s20_1 state21_0) + (begin + 'finish + (let-values (((sgn/z_3) sgn/z18_0)) + (let-values (((n_40) n19_0)) + (let-values (((s_538) s20_1)) + (let-values (((state_40) state21_0)) + (let-values (((range_0) range16_0)) + (let-values () + (let-values (((fst_3) (parse-state-fst state_40))) + (if (let-values (((or-part_57) (not fst_3))) (if or-part_57 or-part_57 (eq? fst_3 '+/-))) + (let-values () + (let-values (((tmp_43) (parse-state-exactness state_40))) + (if (equal? tmp_43 'single) + (let-values () + (let-values (((v_234) (force-lazy-inexact sgn/z_3 n_40 state_40 s_538))) + (if (let-values (((or-part_302) (not v_234))) + (if or-part_302 or-part_302 (string? v_234))) + v_234 + ((lambda (r_47) + (if (parse-state-can-single? state_40) + (if (single-flonum-available?) + (real->single-flonum r_47) + (raise + (exn:fail:unsupported + (string-append + "read: single-flonums are not supported on this platform\n" + " conversion from: " + (number->string r_47)) + (current-continuation-marks)))) + (exact->inexact r_47))) + v_234)))) + (if (equal? tmp_43 'exact) + (let-values () + (let-values (((tmp_44) n_40)) + (if (if (equal? tmp_44 +inf.0) + #t + (if (equal? tmp_44 -inf.0) #t (equal? tmp_44 +nan.0))) + (let-values () + (if (eq? (state->convert-mode state_40) 'must-read) + (let-values () (format "no exact representation for ~a" n_40)) + (let-values () #f))) + (let-values () + (let-values (((v_235) (force-lazy-exact n_40 state_40 s_538))) + (if (let-values (((or-part_290) (not v_235))) + (if or-part_290 or-part_290 (string? v_235))) + v_235 + ((lambda (r_48) (inexact->exact r_48)) v_235))))))) + (if (equal? tmp_43 'extended) + (let-values () + (if (eq? (parse-state-convert-mode state_40) 'number-or-false) + (let-values () #f) + (if (extflonum-available?) + (let-values () + (let-values (((v_236) (force-lazy-inexact sgn/z_3 n_40 state_40 s_538 32768))) + (if (let-values (((or-part_311) (not v_236))) + (if or-part_311 or-part_311 (string? v_236))) + v_236 + ((lambda (r_49) (real->extfl r_49)) v_236)))) + (let-values () + (let-values (((trim-s_0) + (trim-number + s_538 + (if range_0 (car range_0) 0) + (if range_0 (cdr range_0) (string-length s_538))))) + (string->number$1 trim-s_0 10 'read)))))) + (if (if (equal? tmp_43 'double) + #t + (if (equal? tmp_43 'inexact) #t (equal? tmp_43 'approx))) + (let-values () + (let-values (((v_237) (force-lazy-inexact sgn/z_3 n_40 state_40 s_538))) + (if (let-values (((or-part_312) (not v_237))) + (if or-part_312 or-part_312 (string? v_237))) + v_237 + ((lambda (r0_0) (exact->inexact r0_0)) v_237)))) + (if (equal? tmp_43 'extflonum->inexact) + (let-values () + (if (eq? (state->convert-mode state_40) 'must-read) + (let-values () (format "cannot convert extflonum to inexact in `~a`" s_538)) + (let-values () #f))) + (if (equal? tmp_43 'extflonum->exact) + (let-values () + (if (eq? (state->convert-mode state_40) 'must-read) + (let-values () (format "cannot convert extflonum to exact in `~a`" s_538)) + (let-values () #f))) + (let-values () (force-lazy-exact n_40 state_40 s_538)))))))))) + (if (polar-prefix? fst_3) + (let-values () + (let-values (((pos_130) (polar-prefix-start fst_3))) + (let-values (((m_25) + (let-values (((temp60_4) (polar-prefix-sgn/z fst_3)) + ((temp61_3) (polar-prefix-n fst_3)) + ((s62_0) s_538) + ((temp63_1) (state-first-half state_40)) + ((temp64_2) (cons 0 pos_130))) + (finish.1 temp64_2 temp60_4 temp61_3 s62_0 temp63_1)))) + (let-values (((a_69) + (let-values (((sgn/z65_0) sgn/z_3) + ((n66_0) n_40) + ((s67_0) s_538) + ((temp68_2) (state-second-half state_40)) + ((temp69_1) (cons pos_130 (string-length s_538)))) + (finish.1 temp69_1 sgn/z65_0 n66_0 s67_0 temp68_2)))) + (if (extflonum? m_25) + (let-values () (bad-extflonum-for-complex m_25 s_538 state_40)) + (if (extflonum? a_69) + (let-values () (bad-extflonum-for-complex a_69 s_538 state_40)) + (let-values () + (let-values (((v_238) m_25)) + (if (let-values (((or-part_189) (not v_238))) + (if or-part_189 or-part_189 (string? v_238))) + v_238 + ((lambda (m_26) + (let-values (((v_239) a_69)) + (if (let-values (((or-part_163) (not v_239))) + (if or-part_163 or-part_163 (string? v_239))) + v_239 + ((lambda (a_70) + (let-values (((cn_0) (make-polar m_26 a_70))) + (let-values (((tmp_45) (parse-state-exactness state_40))) + (if (equal? tmp_45 'exact) + (let-values () (inexact->exact cn_0)) + (let-values () cn_0))))) + v_239)))) + v_238)))))))))) + (if fst_3 + (let-values () + (if (eq? (state->convert-mode state_40) 'must-read) + (let-values () (format "missing `i` for complex number in `~.a`" s_538)) + (let-values () #f))) + (void)))))))))))))) + (define-values + (finish-imaginary) + (lambda (sgn/z_4 n_41 s_539 start_20 end_10 state_41) + (begin + (let-values (((fst_4) (parse-state-fst state_41))) + (if (if (eq? fst_4 '+/-) (fx= start_20 end_10) #f) + (let-values () + (let-values (((v_240) + (let-values (((sgn/z70_0) sgn/z_4) ((n71_0) n_41) ((s72_0) s_539) ((state73_0) state_41)) + (finish.1 #f sgn/z70_0 n71_0 s72_0 state73_0)))) + (if (let-values (((or-part_117) (not v_240))) (if or-part_117 or-part_117 (string? v_240))) + v_240 + ((lambda (i_207) + (if (extflonum? i_207) + (let-values () (bad-extflonum-for-complex i_207 s_539 state_41)) + (let-values () + (let-values (((zero_0) + (let-values (((tmp_46) (parse-state-other-exactness state_41))) + (if (equal? tmp_46 'inexact) (let-values () 0.0) (let-values () 0))))) + (make-rectangular zero_0 i_207))))) + v_240)))) + (if (if (rect-prefix? fst_4) (fx= start_20 end_10) #f) + (let-values () + (let-values (((pos_131) (rect-prefix-start fst_4))) + (let-values (((r_50) + (let-values (((temp74_0) (rect-prefix-sgn/z fst_4)) + ((temp75_0) (rect-prefix-n fst_4)) + ((s76_0) s_539) + ((temp77_1) (state-first-half state_41)) + ((temp78_1) (cons 0 pos_131))) + (finish.1 temp78_1 temp74_0 temp75_0 s76_0 temp77_1)))) + (let-values (((i_208) + (let-values (((sgn/z79_0) sgn/z_4) + ((n80_0) n_41) + ((s81_0) s_539) + ((temp82_0) (state-second-half state_41)) + ((temp83_0) (cons pos_131 (string-length s_539)))) + (finish.1 temp83_0 sgn/z79_0 n80_0 s81_0 temp82_0)))) + (if (extflonum? r_50) + (let-values () (bad-extflonum-for-complex r_50 s_539 state_41)) + (if (extflonum? i_208) + (let-values () (bad-extflonum-for-complex r_50 i_208 state_41)) + (let-values () + (let-values (((v_241) r_50)) + (if (let-values (((or-part_313) (not v_241))) (if or-part_313 or-part_313 (string? v_241))) + v_241 + ((lambda (r_51) + (let-values (((v_197) i_208)) + (if (let-values (((or-part_314) (not v_197))) + (if or-part_314 or-part_314 (string? v_197))) + v_197 + ((lambda (i_209) (make-rectangular r_51 i_209)) v_197)))) + v_241)))))))))) + (let-values () (bad-misplaced "i" s_539 state_41)))))))) + (define-values + (set-exactness.1) + (lambda (override?23_0 state25_0 new-exactness26_0) + (begin + 'set-exactness + (let-values (((state_42) state25_0)) + (let-values (((new-exactness_0) new-exactness26_0)) + (let-values (((override?_0) override?23_0)) + (let-values () + (let-values (((exactness_1) (parse-state-exactness state_42))) + (let-values (((result-exactness_0) + (let-values (((tmp_17) new-exactness_0)) + (if (if (equal? tmp_17 'single) #t (equal? tmp_17 'double)) + (let-values () + (let-values (((tmp_47) exactness_1)) + (if (equal? tmp_47 'exact) + (let-values () 'exact) + (if (equal? tmp_47 'decimal-as-exact) + (let-values () (if override?_0 new-exactness_0 'decimal-as-exact)) + (let-values () new-exactness_0))))) + (if (equal? tmp_17 'approx) + (let-values () + (let-values (((tmp_48) exactness_1)) + (if (if (equal? tmp_48 'exact) + #t + (if (equal? tmp_48 'inexact) #t (equal? tmp_48 'decimal-as-exact))) + (let-values () exactness_1) + (let-values () new-exactness_0)))) + (if (equal? tmp_17 'extended) + (let-values () + (let-values (((tmp_49) exactness_1)) + (if (equal? tmp_49 'inexact) + (let-values () 'extflonum->inexact) + (if (equal? tmp_49 'exact) + (let-values () 'extflonum->exact) + (let-values () 'extended))))) + (let-values () new-exactness_0))))))) + (if (eq? exactness_1 result-exactness_0) + state_42 + (let-values (((the-struct_84) state_42)) + (if (parse-state? the-struct_84) + (let-values (((exactness84_0) result-exactness_0)) + (parse-state6.1 + exactness84_0 + (parse-state-convert-mode the-struct_84) + (parse-state-can-single? the-struct_84) + (parse-state-fst the-struct_84) + (parse-state-other-exactness the-struct_84))) + (raise-argument-error 'struct-copy "parse-state?" the-struct_84))))))))))))) + (define-values + (set-exactness-by-char.1) + (lambda (override?28_0 state30_0 c31_0) + (begin + 'set-exactness-by-char + (let-values (((state_43) state30_0)) + (let-values (((c_94) c31_0)) + (let-values (((override?_1) override?28_0)) + (let-values () + (let-values (((state85_0) state_43) + ((temp86_3) + (let-values (((tmp_19) c_94)) + (let-values (((index_4) + (if (char? tmp_19) + (let-values (((codepoint_0) (char->integer tmp_19))) + (if (if (unsafe-fx>= codepoint_0 48) (unsafe-fx< codepoint_0 117) #f) + (let-values (((tbl_1) + '#(1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 3))) + (unsafe-vector*-ref tbl_1 (unsafe-fx- codepoint_0 48))) + 0)) + 0))) + (if (unsafe-fx< index_4 1) + (let-values () (void)) + (if (unsafe-fx< index_4 2) + (let-values () 'double) + (if (unsafe-fx< index_4 3) (let-values () 'single) (let-values () 'extended))))))) + ((override?87_0) override?_1)) + (set-exactness.1 override?87_0 state85_0 temp86_3))))))))) + (define-values + (trim-number) + (lambda (s_490 start_56 end_43) + (begin + (if (eqv? (string-ref s_490 start_56) '#\#) + (let-values () (trim-number s_490 (fx+ 2 start_56) end_43)) + (if (let-values (((c_95) (string-ref s_490 (fx- end_43 1)))) + (let-values (((or-part_315) (eqv? c_95 '#\i))) (if or-part_315 or-part_315 (eqv? c_95 '#\I)))) + (let-values () (trim-number s_490 start_56 (fx- end_43 1))) + (let-values () (substring s_490 start_56 end_43))))))) + (define-values + (add-digit) + (lambda (d_44 c_96 radix_10) + (begin + (if (pair? d_44) + (let-values () + (let-values (((p_78) (car d_44))) + (let-values (((digits_0) (add-digit (car p_78) c_96 radix_10))) + (if (pair? digits_0) + (list* (car digits_0) (cons (cdr digits_0) (cdr p_78)) (cdr d_44)) + (cons (cons digits_0 (fx+ 1 (cdr p_78))) (cdr d_44)))))) + (if (eqv? d_44 0) + (let-values () c_96) + (if (< d_44 (expt 2 100)) + (let-values () (+ (* d_44 radix_10) c_96)) + (let-values () (cons (cons c_96 1) d_44)))))))) + (define-values + (digits->integer) + (lambda (d_45 radix_11) + (begin + (if (pair? d_45) + (let-values () + (let-values (((len_64) + ((letrec-values (((loop_115) + (lambda (d_46) + (begin 'loop (if (pair? d_46) (fx+ 1 (loop_115 (cdr d_46))) 1))))) + loop_115) + d_45))) + ((letrec-values (((loop_116) + (lambda (d_47 len_65) + (begin + 'loop + (if (fx= len_65 1) + (let-values () (if (pair? d_47) (caar d_47) d_47)) + (let-values () + (let-values (((hi-len_0) (fxrshift len_65 1))) + (let-values (((lo-len_0) (fx- len_65 hi-len_0))) + (let-values (((hi_4) (loop_116 d_47 hi-len_0))) + ((letrec-values (((split-loop_0) + (lambda (shift_6 hi-len_1 d_48) + (begin + 'split-loop + (if (fx= hi-len_1 0) + (+ + hi_4 + (* + (expt radix_11 shift_6) + (loop_116 d_48 lo-len_0))) + (split-loop_0 + (fx+ shift_6 (cdar d_48)) + (fx- hi-len_1 1) + (cdr d_48))))))) + split-loop_0) + 0 + hi-len_0 + d_47)))))))))) + loop_116) + d_45 + len_64))) + (let-values () d_45))))) + (define-values + (do-string->number.1) + (lambda (radix-set?33_0 s35_1 start36_0 end37_0 radix38_0 exactness39_0 convert-mode40_0 single-mode41_0) + (begin + 'do-string->number + (let-values (((s_140) s35_1)) + (let-values (((start_57) start36_0)) + (let-values (((end_44) end37_0)) + (let-values (((radix_12) radix38_0)) + (let-values (((radix-set?_0) radix-set?33_0)) + (let-values (((exactness_2) exactness39_0)) + (let-values (((convert-mode_6) convert-mode40_0)) + (let-values (((single-mode_3) single-mode41_0)) + (let-values () + (let-values (((c_97) + (if (fx= start_57 end_44) + 'eof + (let-values (((c_98) (string-ref s_140 start_57))) + (maybe-digit c_98 radix_12))))) + (if (let-values (((or-part_316) (eqv? c_97 'eof))) (if or-part_316 or-part_316 #f)) + (let-values () + (if (eq? (state->convert-mode convert-mode_6) 'must-read) + (let-values () (format "no digits")) + (let-values () #f))) + (if (let-values (((or-part_317) (fixnum? c_97))) (if or-part_317 or-part_317 #f)) + (let-values () + (read-integer + 1 + c_97 + s_140 + (fx+ 1 start_57) + end_44 + radix_12 + (init-state exactness_2 convert-mode_6 single-mode_3 #f))) + (if (let-values (((or-part_318) (eqv? c_97 '#\#))) (if or-part_318 or-part_318 #f)) + (let-values () + (let-values (((next_4) (fx+ 1 start_57))) + (let-values (((i_105) + (if (fx= next_4 end_44) + 'eof + (let-values (((c_99) (string-ref s_140 next_4))) + (maybe-digit c_99 10))))) + (if (let-values (((or-part_319) (eqv? i_105 'eof))) + (if or-part_319 or-part_319 #f)) + (let-values () + (if (eq? (state->convert-mode convert-mode_6) 'must-read) + (let-values () (format "no character after `#` indicator in `~.a`" s_140)) + (let-values () #f))) + (if (let-values (((or-part_320) (eqv? i_105 '#\e))) + (if or-part_320 + or-part_320 + (let-values (((or-part_321) (eqv? i_105 '#\E))) + (if or-part_321 + or-part_321 + (let-values (((or-part_277) (eqv? i_105 '#\i))) + (if or-part_277 + or-part_277 + (let-values (((or-part_322) (eqv? i_105 '#\I))) + (if or-part_322 or-part_322 #f)))))))) + (let-values () + (if (let-values (((or-part_202) (eq? exactness_2 'exact))) + (if or-part_202 or-part_202 (eq? exactness_2 'inexact))) + (let-values () + (if (eq? (state->convert-mode convert-mode_6) 'must-read) + (let-values () + (format + "misplaced exactness specification at `~.a`" + (substring s_140 start_57 end_44))) + (let-values () #f))) + (let-values () + (let-values (((s88_0) s_140) + ((temp89_1) (fx+ 1 next_4)) + ((end90_0) end_44) + ((radix91_0) radix_12) + ((radix-set?92_0) radix-set?_0) + ((temp93_1) + (if (let-values (((or-part_300) (char=? i_105 '#\e))) + (if or-part_300 or-part_300 (char=? i_105 '#\E))) + 'exact + 'inexact)) + ((temp94_1) + (if (eq? convert-mode_6 'read) 'must-read convert-mode_6)) + ((single-mode95_0) single-mode_3)) + (do-string->number.1 + radix-set?92_0 + s88_0 + temp89_1 + end90_0 + radix91_0 + temp93_1 + temp94_1 + single-mode95_0))))) + (if (let-values (((or-part_323) (eqv? i_105 '#\b))) + (if or-part_323 + or-part_323 + (let-values (((or-part_324) (eqv? i_105 '#\B))) + (if or-part_324 + or-part_324 + (let-values (((or-part_325) (eqv? i_105 '#\o))) + (if or-part_325 + or-part_325 + (let-values (((or-part_279) (eqv? i_105 '#\O))) + (if or-part_279 + or-part_279 + (let-values (((or-part_326) (eqv? i_105 '#\d))) + (if or-part_326 + or-part_326 + (let-values (((or-part_327) (eqv? i_105 '#\D))) + (if or-part_327 + or-part_327 + (let-values (((or-part_328) (eqv? i_105 '#\x))) + (if or-part_328 + or-part_328 + (let-values (((or-part_329) + (eqv? i_105 '#\X))) + (if or-part_329 + or-part_329 + #f)))))))))))))))) + (let-values () + (if radix-set?_0 + (let-values () + (if (eq? (state->convert-mode convert-mode_6) 'must-read) + (let-values () + (format + "misplaced radix specification at `~.a`" + (substring s_140 start_57 end_44))) + (let-values () #f))) + (let-values () + (let-values (((radix_13) + (let-values (((tmp_50) i_105)) + (if (if (equal? tmp_50 '#\b) #t (equal? tmp_50 '#\B)) + (let-values () 2) + (if (if (equal? tmp_50 '#\o) + #t + (equal? tmp_50 '#\O)) + (let-values () 8) + (if (if (equal? tmp_50 '#\d) + #t + (equal? tmp_50 '#\D)) + (let-values () 10) + (let-values () 16))))))) + (let-values (((s96_1) s_140) + ((temp97_0) (fx+ 1 next_4)) + ((end98_0) end_44) + ((radix99_0) radix_13) + ((temp100_0) #t) + ((exactness101_0) exactness_2) + ((temp102_2) + (if (eq? convert-mode_6 'read) + 'must-read + convert-mode_6)) + ((single-mode103_0) single-mode_3)) + (do-string->number.1 + temp100_0 + s96_1 + temp97_0 + end98_0 + radix99_0 + exactness101_0 + temp102_2 + single-mode103_0)))))) + (let-values () + (if (eq? + (state->convert-mode + (if (eq? convert-mode_6 'read) 'must-read convert-mode_6)) + 'must-read) + (let-values () + (format + "bad `#` indicator `~a` at `~.a`" + i_105 + (substring s_140 start_57 end_44))) + (let-values () #f))))))))) + (if (let-values (((or-part_330) (eqv? c_97 '#\+))) (if or-part_330 or-part_330 #f)) + (let-values () + (read-signed + 1 + s_140 + (fx+ 1 start_57) + end_44 + radix_12 + (init-state exactness_2 convert-mode_6 single-mode_3 '+/-))) + (if (let-values (((or-part_331) (eqv? c_97 '#\-))) (if or-part_331 or-part_331 #f)) + (let-values () + (read-signed + -1 + s_140 + (fx+ 1 start_57) + end_44 + radix_12 + (init-state exactness_2 convert-mode_6 single-mode_3 '+/-))) + (if (let-values (((or-part_332) (eqv? c_97 '#\.))) (if or-part_332 or-part_332 #f)) + (let-values () + (read-decimal + 1 + #f + 0 + s_140 + (fx+ 1 start_57) + end_44 + radix_12 + (let-values (((temp104_1) + (init-state exactness_2 convert-mode_6 single-mode_3 #f)) + ((temp105_2) 'approx)) + (set-exactness.1 #f temp104_1 temp105_2)))) + (let-values () (bad-digit c_97 s_140 convert-mode_6))))))))))))))))))))) + (define-values + (read-signed) + (lambda (sgn_1 s_371 start_58 end_45 radix_14 state_44) + (begin + (let-values (((c_100) + (if (fx= start_58 end_45) + 'eof + (let-values (((c_101) (string-ref s_371 start_58))) (maybe-digit c_101 radix_14))))) + (if (let-values (((or-part_18) (eqv? c_100 'eof))) (if or-part_18 or-part_18 #f)) + (let-values () + (if (eq? (state->convert-mode state_44) 'must-read) + (let-values () (format "no digits in `~.a`" s_371)) + (let-values () #f))) + (if (let-values (((or-part_333) (fixnum? c_100))) (if or-part_333 or-part_333 #f)) + (let-values () (read-integer sgn_1 c_100 s_371 (fx+ 1 start_58) end_45 radix_14 state_44)) + (if (let-values (((or-part_334) (eqv? c_100 '#\.))) (if or-part_334 or-part_334 #f)) + (let-values () + (read-decimal + sgn_1 + #f + 0 + s_371 + (fx+ 1 start_58) + end_45 + radix_14 + (let-values (((state106_0) state_44) ((temp107_2) 'approx)) + (set-exactness.1 #f state106_0 temp107_2)))) + (if (let-values (((or-part_335) (eqv? c_100 '#\i))) + (if or-part_335 + or-part_335 + (let-values (((or-part_336) (eqv? c_100 '#\I))) (if or-part_336 or-part_336 #f)))) + (let-values () + (let-values (((c2_5) + (if (fx= (fx+ 1 start_58) end_45) + 'eof + (let-values (((c_102) (string-ref s_371 (fx+ 1 start_58)))) + (maybe-digit c_102 radix_14))))) + (if (let-values (((or-part_337) (eqv? c2_5 'eof))) (if or-part_337 or-part_337 #f)) + (let-values () (finish-imaginary sgn_1 sgn_1 s_371 (fx+ 1 start_58) end_45 state_44)) + (if (let-values (((or-part_338) (eqv? c2_5 '#\n))) + (if or-part_338 + or-part_338 + (let-values (((or-part_339) (eqv? c2_5 '#\N))) (if or-part_339 or-part_339 #f)))) + (let-values () (read-infinity sgn_1 c_100 s_371 (fx+ 2 start_58) end_45 radix_14 state_44)) + (let-values () (bad-digit c_100 s_371 state_44)))))) + (if (let-values (((or-part_340) (eqv? c_100 '#\n))) + (if or-part_340 + or-part_340 + (let-values (((or-part_341) (eqv? c_100 '#\N))) (if or-part_341 or-part_341 #f)))) + (let-values () (read-nan c_100 s_371 (fx+ 1 start_58) end_45 radix_14 state_44)) + (let-values () (bad-digit c_100 s_371 state_44))))))))))) + (define-values + (read-integer) + (lambda (sgn_2 n_42 s_251 start_59 end_46 radix_15 state_45) + (begin + (let-values (((get-n_0) (lambda () (begin 'get-n (* sgn_2 (digits->integer n_42 radix_15)))))) + (let-values (((c_103) + (if (fx= start_59 end_46) + 'eof + (let-values (((c_104) (string-ref s_251 start_59))) (maybe-digit c_104 radix_15))))) + (if (let-values (((or-part_342) (eqv? c_103 'eof))) (if or-part_342 or-part_342 #f)) + (let-values () + (let-values (((sgn108_0) sgn_2) ((temp109_0) (get-n_0)) ((s110_0) s_251) ((state111_0) state_45)) + (finish.1 #f sgn108_0 temp109_0 s110_0 state111_0))) + (if (let-values (((or-part_206) (fixnum? c_103))) (if or-part_206 or-part_206 #f)) + (let-values () + (read-integer sgn_2 (add-digit n_42 c_103 radix_15) s_251 (fx+ 1 start_59) end_46 radix_15 state_45)) + (if (let-values (((or-part_207) (eqv? c_103 '#\.))) (if or-part_207 or-part_207 #f)) + (let-values () + (read-decimal + sgn_2 + (digits->integer n_42 radix_15) + 0 + s_251 + (fx+ 1 start_59) + end_46 + radix_15 + (let-values (((state112_0) state_45) ((temp113_2) 'approx)) + (set-exactness.1 #f state112_0 temp113_2)))) + (if (let-values (((or-part_126) (eqv? c_103 '#\e))) + (if or-part_126 + or-part_126 + (let-values (((or-part_127) (eqv? c_103 '#\E))) + (if or-part_127 + or-part_127 + (let-values (((or-part_343) (eqv? c_103 '#\d))) + (if or-part_343 + or-part_343 + (let-values (((or-part_344) (eqv? c_103 '#\D))) + (if or-part_344 + or-part_344 + (let-values (((or-part_345) (eqv? c_103 '#\l))) + (if or-part_345 + or-part_345 + (let-values (((or-part_346) (eqv? c_103 '#\L))) + (if or-part_346 + or-part_346 + (let-values (((or-part_347) (eqv? c_103 '#\f))) + (if or-part_347 + or-part_347 + (let-values (((or-part_348) (eqv? c_103 '#\F))) + (if or-part_348 + or-part_348 + (let-values (((or-part_349) (eqv? c_103 '#\s))) + (if or-part_349 + or-part_349 + (let-values (((or-part_350) (eqv? c_103 '#\S))) + (if or-part_350 + or-part_350 + (let-values (((or-part_351) (eqv? c_103 '#\t))) + (if or-part_351 + or-part_351 + (let-values (((or-part_352) (eqv? c_103 '#\T))) + (if or-part_352 or-part_352 #f)))))))))))))))))))))))) + (let-values () + (read-exponent + sgn_2 + (get-n_0) + 0 + s_251 + (fx+ 1 start_59) + end_46 + radix_15 + (let-values (((state114_0) state_45) ((c115_0) c_103)) + (set-exactness-by-char.1 #f state114_0 c115_0)))) + (if (let-values (((or-part_353) (eqv? c_103 '#\/))) (if or-part_353 or-part_353 #f)) + (let-values () (read-rational sgn_2 (get-n_0) #f s_251 (fx+ 1 start_59) end_46 radix_15 state_45)) + (if (let-values (((or-part_354) (eqv? c_103 '#\#))) (if or-part_354 or-part_354 #f)) + (let-values () + (read-approx + sgn_2 + (digits->integer n_42 radix_15) + 1 + #f + s_251 + (fx+ 1 start_59) + end_46 + radix_15 + (let-values (((state116_0) state_45) ((temp117_2) 'approx)) + (set-exactness.1 #f state116_0 temp117_2)))) + (if (let-values (((or-part_355) (eqv? c_103 '#\+))) + (if or-part_355 + or-part_355 + (let-values (((or-part_281) (eqv? c_103 '#\-))) (if or-part_281 or-part_281 #f)))) + (let-values () + (read-imag + c_103 + sgn_2 + (get-n_0) + (if (eqv? c_103 '#\+) 1 -1) + s_251 + (fx+ 1 start_59) + end_46 + radix_15 + state_45)) + (if (let-values (((or-part_356) (eqv? c_103 '#\@))) (if or-part_356 or-part_356 #f)) + (let-values () (read-polar sgn_2 (get-n_0) s_251 (fx+ 1 start_59) end_46 radix_15 state_45)) + (if (let-values (((or-part_357) (eqv? c_103 '#\i))) + (if or-part_357 + or-part_357 + (let-values (((or-part_358) (eqv? c_103 '#\I))) (if or-part_358 or-part_358 #f)))) + (let-values () (finish-imaginary sgn_2 (get-n_0) s_251 (fx+ 1 start_59) end_46 state_45)) + (let-values () (bad-digit c_103 s_251 state_45)))))))))))))))) + (define-values + (read-decimal) + (lambda (sgn_3 n_43 exp_4 s_540 start_60 end_47 radix_16 state_46) + (begin + (let-values (((get-n_1) + (lambda () + (begin + 'get-n + (if n_43 + (lazy-number (* sgn_3 (digits->integer n_43 radix_16)) radix_16 (- exp_4)) + (bad-no-digits "." s_540 state_46)))))) + (let-values (((c_105) + (if (fx= start_60 end_47) + 'eof + (let-values (((c_106) (string-ref s_540 start_60))) (maybe-digit c_106 radix_16))))) + (if (let-values (((or-part_359) (eqv? c_105 'eof))) (if or-part_359 or-part_359 #f)) + (let-values () + (let-values (((or-part_360) + (if n_43 + (fast-inexact state_46 sgn_3 (digits->integer n_43 radix_16) radix_16 0 -1 exp_4) + #f))) + (if or-part_360 + or-part_360 + (let-values (((v_242) (get-n_1))) + (if (let-values (((or-part_361) (not v_242))) (if or-part_361 or-part_361 (string? v_242))) + v_242 + ((lambda (n_44) + (let-values (((sgn118_0) sgn_3) ((n119_0) n_44) ((s120_0) s_540) ((state121_0) state_46)) + (finish.1 #f sgn118_0 n119_0 s120_0 state121_0))) + v_242)))))) + (if (let-values (((or-part_362) (fixnum? c_105))) (if or-part_362 or-part_362 #f)) + (let-values () + (let-values (((next_5) (fx+ 1 start_60))) + (if (if (eqv? c_105 '#\0) (fx= next_5 end_47) #f) + (let-values () + (read-decimal + sgn_3 + (let-values (((or-part_363) n_43)) (if or-part_363 or-part_363 0)) + exp_4 + s_540 + next_5 + end_47 + radix_16 + state_46)) + (let-values () + (read-decimal + sgn_3 + (add-digit (let-values (((or-part_364) n_43)) (if or-part_364 or-part_364 0)) c_105 radix_16) + (fx+ 1 exp_4) + s_540 + (fx+ 1 start_60) + end_47 + radix_16 + state_46))))) + (if (let-values (((or-part_365) (eqv? c_105 '#\.))) (if or-part_365 or-part_365 #f)) + (let-values () (bad-misplaced "." s_540 state_46)) + (if (let-values (((or-part_366) (eqv? c_105 '#\e))) + (if or-part_366 + or-part_366 + (let-values (((or-part_367) (eqv? c_105 '#\E))) + (if or-part_367 + or-part_367 + (let-values (((or-part_172) (eqv? c_105 '#\d))) + (if or-part_172 + or-part_172 + (let-values (((or-part_173) (eqv? c_105 '#\D))) + (if or-part_173 + or-part_173 + (let-values (((or-part_174) (eqv? c_105 '#\l))) + (if or-part_174 + or-part_174 + (let-values (((or-part_368) (eqv? c_105 '#\L))) + (if or-part_368 + or-part_368 + (let-values (((or-part_369) (eqv? c_105 '#\f))) + (if or-part_369 + or-part_369 + (let-values (((or-part_370) (eqv? c_105 '#\F))) + (if or-part_370 + or-part_370 + (let-values (((or-part_128) (eqv? c_105 '#\s))) + (if or-part_128 + or-part_128 + (let-values (((or-part_129) (eqv? c_105 '#\S))) + (if or-part_129 + or-part_129 + (let-values (((or-part_130) (eqv? c_105 '#\t))) + (if or-part_130 + or-part_130 + (let-values (((or-part_240) (eqv? c_105 '#\T))) + (if or-part_240 or-part_240 #f)))))))))))))))))))))))) + (let-values () + (if n_43 + (read-exponent + sgn_3 + (* sgn_3 (digits->integer n_43 radix_16)) + (- exp_4) + s_540 + (fx+ 1 start_60) + end_47 + radix_16 + (let-values (((state122_0) state_46) ((c123_0) c_105)) + (set-exactness-by-char.1 #f state122_0 c123_0))) + (bad-no-digits "." s_540 state_46))) + (if (let-values (((or-part_371) (eqv? c_105 '#\/))) (if or-part_371 or-part_371 #f)) + (let-values () (bad-mixed-decimal-fraction s_540 state_46)) + (if (let-values (((or-part_372) (eqv? c_105 '#\#))) (if or-part_372 or-part_372 #f)) + (let-values () + (if n_43 + (read-approx + sgn_3 + (digits->integer n_43 radix_16) + (fx- 0 exp_4) + #t + s_540 + (fx+ 1 start_60) + end_47 + radix_16 + state_46) + (bad-misplaced "#" s_540 state_46))) + (if (let-values (((or-part_373) (eqv? c_105 '#\+))) + (if or-part_373 + or-part_373 + (let-values (((or-part_374) (eqv? c_105 '#\-))) (if or-part_374 or-part_374 #f)))) + (let-values () + (if n_43 + (read-imag + c_105 + sgn_3 + (get-n_1) + (if (eqv? c_105 '#\+) 1 -1) + s_540 + (fx+ 1 start_60) + end_47 + radix_16 + state_46) + (bad-no-digits "." s_540 state_46))) + (if (let-values (((or-part_375) (eqv? c_105 '#\@))) (if or-part_375 or-part_375 #f)) + (let-values () + (let-values (((v_243) (get-n_1))) + (if (let-values (((or-part_376) (not v_243))) + (if or-part_376 or-part_376 (string? v_243))) + v_243 + ((lambda (n_45) (read-polar sgn_3 n_45 s_540 (fx+ 1 start_60) end_47 radix_16 state_46)) + v_243)))) + (if (let-values (((or-part_377) (eqv? c_105 '#\i))) + (if or-part_377 + or-part_377 + (let-values (((or-part_378) (eqv? c_105 '#\I))) (if or-part_378 or-part_378 #f)))) + (let-values () + (let-values (((v_244) (get-n_1))) + (if (let-values (((or-part_379) (not v_244))) + (if or-part_379 or-part_379 (string? v_244))) + v_244 + ((lambda (n_46) (finish-imaginary sgn_3 n_46 s_540 (fx+ 1 start_60) end_47 state_46)) + v_244)))) + (let-values () (bad-digit c_105 s_540 state_46)))))))))))))))) + (define-values + (read-approx) + (lambda (sgn_4 n_47 exp_5 saw-.?_0 s_541 start_61 end_48 radix_17 state_47) + (begin + (let-values (((get-n_2) (lambda () (begin 'get-n (lazy-number (* sgn_4 n_47) radix_17 exp_5))))) + (let-values (((c_107) + (if (fx= start_61 end_48) + 'eof + (let-values (((c_108) (string-ref s_541 start_61))) (maybe-digit c_108 radix_17))))) + (if (let-values (((or-part_380) (eqv? c_107 'eof))) (if or-part_380 or-part_380 #f)) + (let-values () + (let-values (((sgn124_0) sgn_4) ((temp125_1) (get-n_2)) ((s126_0) s_541) ((state127_0) state_47)) + (finish.1 #f sgn124_0 temp125_1 s126_0 state127_0))) + (if (let-values (((or-part_381) (fixnum? c_107))) (if or-part_381 or-part_381 #f)) + (let-values () (bad-misplaced "#" s_541 state_47)) + (if (let-values (((or-part_382) (eqv? c_107 '#\.))) (if or-part_382 or-part_382 #f)) + (let-values () + (if saw-.?_0 + (bad-misplaced "." s_541 state_47) + (read-approx sgn_4 n_47 exp_5 #t s_541 (fx+ 1 start_61) end_48 radix_17 state_47))) + (if (let-values (((or-part_383) (eqv? c_107 '#\#))) (if or-part_383 or-part_383 #f)) + (let-values () + (read-approx + sgn_4 + n_47 + (if saw-.?_0 exp_5 (fx+ 1 exp_5)) + saw-.?_0 + s_541 + (fx+ 1 start_61) + end_48 + radix_17 + state_47)) + (if (let-values (((or-part_384) (eqv? c_107 '#\e))) + (if or-part_384 + or-part_384 + (let-values (((or-part_241) (eqv? c_107 '#\E))) + (if or-part_241 + or-part_241 + (let-values (((or-part_385) (eqv? c_107 '#\d))) + (if or-part_385 + or-part_385 + (let-values (((or-part_386) (eqv? c_107 '#\D))) + (if or-part_386 + or-part_386 + (let-values (((or-part_387) (eqv? c_107 '#\l))) + (if or-part_387 + or-part_387 + (let-values (((or-part_242) (eqv? c_107 '#\L))) + (if or-part_242 + or-part_242 + (let-values (((or-part_388) (eqv? c_107 '#\f))) + (if or-part_388 + or-part_388 + (let-values (((or-part_389) (eqv? c_107 '#\F))) + (if or-part_389 + or-part_389 + (let-values (((or-part_390) (eqv? c_107 '#\s))) + (if or-part_390 + or-part_390 + (let-values (((or-part_391) (eqv? c_107 '#\S))) + (if or-part_391 + or-part_391 + (let-values (((or-part_392) (eqv? c_107 '#\t))) + (if or-part_392 + or-part_392 + (let-values (((or-part_393) (eqv? c_107 '#\T))) + (if or-part_393 + or-part_393 + #f)))))))))))))))))))))))) + (let-values () + (read-exponent + sgn_4 + (* sgn_4 n_47) + exp_5 + s_541 + (fx+ 1 start_61) + end_48 + radix_17 + (let-values (((state128_0) state_47) ((c129_0) c_107)) + (set-exactness-by-char.1 #f state128_0 c129_0)))) + (if (let-values (((or-part_211) (eqv? c_107 '#\/))) (if or-part_211 or-part_211 #f)) + (let-values () + (if saw-.?_0 + (bad-mixed-decimal-fraction s_541 state_47) + (read-rational sgn_4 (get-n_2) #f s_541 (fx+ 1 start_61) end_48 radix_17 state_47))) + (if (let-values (((or-part_394) (eqv? c_107 '#\+))) + (if or-part_394 + or-part_394 + (let-values (((or-part_395) (eqv? c_107 '#\-))) (if or-part_395 or-part_395 #f)))) + (let-values () + (read-imag + c_107 + sgn_4 + (get-n_2) + (if (eqv? c_107 '#\+) 1 -1) + s_541 + (fx+ 1 start_61) + end_48 + radix_17 + state_47)) + (if (let-values (((or-part_396) (eqv? c_107 '#\@))) (if or-part_396 or-part_396 #f)) + (let-values () (read-polar sgn_4 (get-n_2) s_541 (fx+ 1 start_61) end_48 radix_17 state_47)) + (if (let-values (((or-part_397) (eqv? c_107 '#\i))) + (if or-part_397 + or-part_397 + (let-values (((or-part_212) (eqv? c_107 '#\I))) (if or-part_212 or-part_212 #f)))) + (let-values () (finish-imaginary sgn_4 (get-n_2) s_541 (fx+ 1 start_61) end_48 state_47)) + (let-values () (bad-digit c_107 s_541 state_47)))))))))))))))) + (define-values + (read-exponent) + (lambda (sgn_5 sgn-n_0 exp_6 s_542 start_62 end_49 radix_18 state_48) + (begin + (let-values (((c_109) + (if (fx= start_62 end_49) + 'eof + (let-values (((c_110) (string-ref s_542 start_62))) (maybe-digit c_110 radix_18))))) + (if (let-values (((or-part_398) (eqv? c_109 'eof))) + (if or-part_398 + or-part_398 + (let-values (((or-part_399) (eqv? c_109 '#\@))) (if or-part_399 or-part_399 #f)))) + (let-values () + (if (eq? (state->convert-mode state_48) 'must-read) + (let-values () (format "empty exponent `~.a`" s_542)) + (let-values () #f))) + (if (let-values (((or-part_400) (fixnum? c_109))) (if or-part_400 or-part_400 #f)) + (let-values () + (read-signed-exponent sgn_5 sgn-n_0 exp_6 1 c_109 s_542 (fx+ 1 start_62) end_49 radix_18 state_48)) + (if (let-values (((or-part_131) (eqv? c_109 '#\+))) + (if or-part_131 + or-part_131 + (let-values (((or-part_132) (eqv? c_109 '#\-))) (if or-part_132 or-part_132 #f)))) + (let-values () + (let-values (((sgn2_1) (if (eqv? c_109 '#\+) 1 -1))) + (read-signed-exponent sgn_5 sgn-n_0 exp_6 sgn2_1 #f s_542 (fx+ 1 start_62) end_49 radix_18 state_48))) + (if (let-values (((or-part_401) (eqv? c_109 '#\.))) + (if or-part_401 + or-part_401 + (let-values (((or-part_402) (eqv? c_109 '#\#))) + (if or-part_402 + or-part_402 + (let-values (((or-part_21) (eqv? c_109 '#\/))) + (if or-part_21 + or-part_21 + (let-values (((or-part_403) (eqv? c_109 '#\e))) + (if or-part_403 + or-part_403 + (let-values (((or-part_191) (eqv? c_109 '#\E))) + (if or-part_191 + or-part_191 + (let-values (((or-part_404) (eqv? c_109 '#\d))) + (if or-part_404 + or-part_404 + (let-values (((or-part_405) (eqv? c_109 '#\D))) + (if or-part_405 + or-part_405 + (let-values (((or-part_406) (eqv? c_109 '#\l))) + (if or-part_406 + or-part_406 + (let-values (((or-part_407) (eqv? c_109 '#\L))) + (if or-part_407 + or-part_407 + (let-values (((or-part_408) (eqv? c_109 '#\f))) + (if or-part_408 + or-part_408 + (let-values (((or-part_409) (eqv? c_109 '#\F))) + (if or-part_409 + or-part_409 + (let-values (((or-part_410) (eqv? c_109 '#\s))) + (if or-part_410 + or-part_410 + (let-values (((or-part_411) (eqv? c_109 '#\S))) + (if or-part_411 + or-part_411 + (let-values (((or-part_412) (eqv? c_109 '#\t))) + (if or-part_412 + or-part_412 + (let-values (((or-part_134) + (eqv? c_109 '#\T))) + (if or-part_134 + or-part_134 + #f)))))))))))))))))))))))))))))) + (let-values () (bad-misplaced c_109 s_542 state_48)) + (if (let-values (((or-part_413) (eqv? c_109 '#\i))) + (if or-part_413 + or-part_413 + (let-values (((or-part_414) (eqv? c_109 '#\I))) (if or-part_414 or-part_414 #f)))) + (let-values () + (if (state-has-first-half? state_48) + (if (eq? (state->convert-mode state_48) 'must-read) + (let-values () (format "empty exponent `~.a`" s_542)) + (let-values () #f)) + (bad-misplaced "i" s_542 state_48))) + (let-values () (bad-digit c_109 s_542 state_48))))))))))) + (define-values + (read-signed-exponent) + (lambda (sgn_6 sgn-n_1 exp_7 sgn2_2 exp2_1 s_423 start_63 end_50 radix_19 state_49) + (begin + (let-values (((get-n_3) + (lambda () + (begin + 'get-n + (if exp2_1 + (lazy-number sgn-n_1 radix_19 (+ exp_7 (* sgn2_2 (digits->integer exp2_1 radix_19)))) + (if (eq? (state->convert-mode state_49) 'must-read) + (let-values () (format "empty exponent `~.a`" s_423)) + (let-values () #f))))))) + (let-values (((c_111) + (if (fx= start_63 end_50) + 'eof + (let-values (((c_112) (string-ref s_423 start_63))) (maybe-digit c_112 radix_19))))) + (if (let-values (((or-part_415) (eqv? c_111 'eof))) (if or-part_415 or-part_415 #f)) + (let-values () + (let-values (((or-part_416) + (if exp2_1 + (if (number? sgn-n_1) + (fast-inexact + state_49 + (if (eqv? sgn-n_1 0) sgn_6 1) + sgn-n_1 + radix_19 + exp_7 + sgn2_2 + (digits->integer exp2_1 radix_19)) + #f) + #f))) + (if or-part_416 + or-part_416 + (let-values (((v_245) (get-n_3))) + (if (let-values (((or-part_417) (not v_245))) (if or-part_417 or-part_417 (string? v_245))) + v_245 + ((lambda (n_48) + (let-values (((sgn130_0) sgn_6) ((n131_0) n_48) ((s132_0) s_423) ((state133_0) state_49)) + (finish.1 #f sgn130_0 n131_0 s132_0 state133_0))) + v_245)))))) + (if (let-values (((or-part_418) (fixnum? c_111))) (if or-part_418 or-part_418 #f)) + (let-values () + (let-values (((new-exp2_0) + (add-digit + (let-values (((or-part_419) exp2_1)) (if or-part_419 or-part_419 0)) + c_111 + radix_19))) + (read-signed-exponent + sgn_6 + sgn-n_1 + exp_7 + sgn2_2 + new-exp2_0 + s_423 + (fx+ 1 start_63) + end_50 + radix_19 + state_49))) + (if (let-values (((or-part_420) (eqv? c_111 '#\+))) + (if or-part_420 + or-part_420 + (let-values (((or-part_421) (eqv? c_111 '#\-))) (if or-part_421 or-part_421 #f)))) + (let-values () + (let-values (((v_246) (get-n_3))) + (if (let-values (((or-part_422) (not v_246))) (if or-part_422 or-part_422 (string? v_246))) + v_246 + ((lambda (n_49) + (read-imag + c_111 + sgn_6 + n_49 + (if (eqv? c_111 '#\+) 1 -1) + s_423 + (fx+ 1 start_63) + end_50 + radix_19 + state_49)) + v_246)))) + (if (let-values (((or-part_423) (eqv? c_111 '#\.))) + (if or-part_423 + or-part_423 + (let-values (((or-part_424) (eqv? c_111 '#\#))) + (if or-part_424 + or-part_424 + (let-values (((or-part_425) (eqv? c_111 '#\/))) + (if or-part_425 + or-part_425 + (let-values (((or-part_426) (eqv? c_111 '#\e))) + (if or-part_426 + or-part_426 + (let-values (((or-part_427) (eqv? c_111 '#\E))) + (if or-part_427 + or-part_427 + (let-values (((or-part_428) (eqv? c_111 '#\d))) + (if or-part_428 + or-part_428 + (let-values (((or-part_429) (eqv? c_111 '#\D))) + (if or-part_429 + or-part_429 + (let-values (((or-part_430) (eqv? c_111 '#\l))) + (if or-part_430 + or-part_430 + (let-values (((or-part_431) (eqv? c_111 '#\L))) + (if or-part_431 + or-part_431 + (let-values (((or-part_432) (eqv? c_111 '#\f))) + (if or-part_432 + or-part_432 + (let-values (((or-part_433) (eqv? c_111 '#\F))) + (if or-part_433 + or-part_433 + (let-values (((or-part_434) (eqv? c_111 '#\s))) + (if or-part_434 + or-part_434 + (let-values (((or-part_435) (eqv? c_111 '#\S))) + (if or-part_435 + or-part_435 + (let-values (((or-part_436) (eqv? c_111 '#\t))) + (if or-part_436 + or-part_436 + (let-values (((or-part_437) + (eqv? c_111 '#\T))) + (if or-part_437 + or-part_437 + #f)))))))))))))))))))))))))))))) + (let-values () (bad-misplaced c_111 s_423 state_49)) + (if (let-values (((or-part_438) (eqv? c_111 '#\@))) (if or-part_438 or-part_438 #f)) + (let-values () + (let-values (((v_247) (get-n_3))) + (if (let-values (((or-part_439) (not v_247))) (if or-part_439 or-part_439 (string? v_247))) + v_247 + ((lambda (n_50) (read-polar sgn_6 n_50 s_423 (fx+ 1 start_63) end_50 radix_19 state_49)) + v_247)))) + (if (let-values (((or-part_440) (eqv? c_111 '#\i))) + (if or-part_440 + or-part_440 + (let-values (((or-part_441) (eqv? c_111 '#\I))) (if or-part_441 or-part_441 #f)))) + (let-values () + (let-values (((v_248) (get-n_3))) + (if (let-values (((or-part_442) (not v_248))) (if or-part_442 or-part_442 (string? v_248))) + v_248 + ((lambda (n_51) (finish-imaginary sgn_6 n_51 s_423 (fx+ 1 start_63) end_50 state_49)) + v_248)))) + (let-values () (bad-digit c_111 s_423 state_49))))))))))))) + (define-values + (read-infinity) + (lambda (sgn_7 c_113 s_188 start_64 end_51 radix_20 state_50) + (begin + (let-values (((fail_6) (lambda () (begin 'fail (bad-digit c_113 s_188 state_50))))) + (let-values (((start+n_0) (fx+ start_64 0))) + (let-values (((var_0) (if (fx= start+n_0 end_51) 'eof (string-ref s_188 start+n_0)))) + (let-values (((tmp_51) var_0)) + (if (if (equal? tmp_51 '#\f) #t (equal? tmp_51 '#\F)) + (let-values () + (let-values (((fail_7) (lambda () (begin 'fail (fail_6))))) + (let-values (((start+n_1) (fx+ start_64 (+ 0 1)))) + (let-values (((var_1) (if (fx= start+n_1 end_51) 'eof (string-ref s_188 start+n_1)))) + (let-values (((tmp_52) var_1)) + (if (equal? tmp_52 '#\.) + (let-values () + (let-values (((fail_8) (lambda () (begin 'fail (fail_7))))) + (let-values (((start+n_2) (fx+ start_64 (+ (+ 0 1) 1)))) + (let-values (((var_2) (if (fx= start+n_2 end_51) 'eof (string-ref s_188 start+n_2)))) + (let-values (((tmp_53) var_2)) + (if (if (equal? tmp_53 '#\0) + #t + (if (equal? tmp_53 '#\f) + #t + (if (equal? tmp_53 '#\t) + #t + (if (equal? tmp_53 '#\F) #t (equal? tmp_53 '#\T))))) + (let-values () + (let-values () + (let-values (((n_52) (if (negative? sgn_7) -inf.0 +inf.0))) + (let-values (((new-state_0) + (let-values (((state134_0) state_50) + ((temp135_0) + (string-ref s_188 (fx+ start_64 2))) + ((temp136_3) #t)) + (set-exactness-by-char.1 + temp136_3 + state134_0 + temp135_0)))) + (let-values (((c2_6) + (if (fx= (fx+ 3 start_64) end_51) + 'eof + (let-values (((c_114) + (string-ref s_188 (fx+ 3 start_64)))) + (maybe-digit c_114 radix_20))))) + (if (let-values (((or-part_443) (eqv? c2_6 'eof))) + (if or-part_443 or-part_443 #f)) + (let-values () + (let-values (((sgn137_0) sgn_7) + ((n138_0) n_52) + ((s139_0) s_188) + ((new-state140_0) new-state_0)) + (finish.1 #f sgn137_0 n138_0 s139_0 new-state140_0))) + (if (let-values (((or-part_444) (eqv? c2_6 '#\+))) + (if or-part_444 + or-part_444 + (let-values (((or-part_445) (eqv? c2_6 '#\-))) + (if or-part_445 or-part_445 #f)))) + (let-values () + (read-imag + c2_6 + sgn_7 + n_52 + (if (eqv? c2_6 '#\+) 1 -1) + s_188 + (fx+ 4 start_64) + end_51 + radix_20 + new-state_0)) + (if (let-values (((or-part_446) (eqv? c2_6 '#\@))) + (if or-part_446 or-part_446 #f)) + (let-values () + (read-polar + sgn_7 + n_52 + s_188 + (fx+ 4 start_64) + end_51 + radix_20 + new-state_0)) + (if (let-values (((or-part_447) (eqv? c2_6 '#\i))) + (if or-part_447 + or-part_447 + (let-values (((or-part_448) (eqv? c2_6 '#\I))) + (if or-part_448 or-part_448 #f)))) + (let-values () + (finish-imaginary + sgn_7 + n_52 + s_188 + (fx+ 4 start_64) + end_51 + new-state_0)) + (let-values () (bad-digit c_113 s_188 state_50))))))))))) + (let-values () (fail_8)))))))) + (let-values () (fail_7)))))))) + (let-values () (fail_6)))))))))) + (define-values + (read-nan) + (lambda (c_115 s_543 start_65 end_52 radix_21 state_51) + (begin + (let-values (((fail_9) (lambda () (begin 'fail (bad-digit c_115 s_543 state_51))))) + (let-values (((start+n_3) (fx+ start_65 0))) + (let-values (((var_3) (if (fx= start+n_3 end_52) 'eof (string-ref s_543 start+n_3)))) + (let-values (((tmp_54) var_3)) + (if (if (equal? tmp_54 '#\a) #t (equal? tmp_54 '#\A)) + (let-values () + (let-values (((fail_10) (lambda () (begin 'fail (fail_9))))) + (let-values (((start+n_4) (fx+ start_65 (+ 0 1)))) + (let-values (((var_4) (if (fx= start+n_4 end_52) 'eof (string-ref s_543 start+n_4)))) + (let-values (((tmp_55) var_4)) + (if (if (equal? tmp_55 '#\n) #t (equal? tmp_55 '#\N)) + (let-values () + (let-values (((fail_11) (lambda () (begin 'fail (fail_10))))) + (let-values (((start+n_5) (fx+ start_65 (+ (+ 0 1) 1)))) + (let-values (((var_5) (if (fx= start+n_5 end_52) 'eof (string-ref s_543 start+n_5)))) + (let-values (((tmp_56) var_5)) + (if (equal? tmp_56 '#\.) + (let-values () + (let-values (((fail_12) (lambda () (begin 'fail (fail_11))))) + (let-values (((start+n_6) (fx+ start_65 (+ (+ (+ 0 1) 1) 1)))) + (let-values (((var_6) + (if (fx= start+n_6 end_52) + 'eof + (string-ref s_543 start+n_6)))) + (let-values (((tmp_57) var_6)) + (if (if (equal? tmp_57 '#\0) + #t + (if (equal? tmp_57 '#\f) + #t + (if (equal? tmp_57 '#\t) + #t + (if (equal? tmp_57 '#\F) #t (equal? tmp_57 '#\T))))) + (let-values () + (let-values () + (let-values (((n_53) +nan.0)) + (let-values (((new-state_1) + (let-values (((state141_0) state_51) + ((temp142_1) + (string-ref + s_543 + (fx+ start_65 3))) + ((temp143_1) #t)) + (set-exactness-by-char.1 + temp143_1 + state141_0 + temp142_1)))) + (let-values (((c2_7) + (if (fx= (fx+ 4 start_65) end_52) + 'eof + (let-values (((c_116) + (string-ref + s_543 + (fx+ 4 start_65)))) + (maybe-digit c_116 radix_21))))) + (if (let-values (((or-part_449) (eqv? c2_7 'eof))) + (if or-part_449 or-part_449 #f)) + (let-values () + (let-values (((temp144_3) 1) + ((n145_0) n_53) + ((s146_0) s_543) + ((new-state147_0) new-state_1)) + (finish.1 + #f + temp144_3 + n145_0 + s146_0 + new-state147_0))) + (if (let-values (((or-part_450) (eqv? c2_7 '#\+))) + (if or-part_450 + or-part_450 + (let-values (((or-part_451) (eqv? c2_7 '#\-))) + (if or-part_451 or-part_451 #f)))) + (let-values () + (read-imag + c2_7 + 1 + n_53 + (if (eqv? c2_7 '#\+) 1 -1) + s_543 + (fx+ 5 start_65) + end_52 + radix_21 + new-state_1)) + (if (let-values (((or-part_452) (eqv? c2_7 '#\@))) + (if or-part_452 or-part_452 #f)) + (let-values () + (read-polar + 1 + n_53 + s_543 + (fx+ 5 start_65) + end_52 + radix_21 + new-state_1)) + (if (let-values (((or-part_453) (eqv? c2_7 '#\i))) + (if or-part_453 + or-part_453 + (let-values (((or-part_454) + (eqv? c2_7 '#\I))) + (if or-part_454 or-part_454 #f)))) + (let-values () + (finish-imaginary + 1 + n_53 + s_543 + (fx+ 5 start_65) + end_52 + new-state_1)) + (let-values () + (bad-digit c_115 s_543 state_51))))))))))) + (let-values () (fail_12)))))))) + (let-values () (fail_11)))))))) + (let-values () (fail_10)))))))) + (let-values () (fail_9)))))))))) + (define-values + (read-rational) + (lambda (sgn_8 sgn-n_2 d_49 s_544 start_66 end_53 radix_22 state_52) + (begin + (let-values (((get-n_4) + (lambda () + (begin + 'get-n + (if d_49 + (lazy-divide sgn-n_2 (digits->integer d_49 radix_22) 'exact) + (bad-no-digits "/" s_544 state_52)))))) + (let-values (((c_117) + (if (fx= start_66 end_53) + 'eof + (let-values (((c_118) (string-ref s_544 start_66))) (maybe-digit c_118 radix_22))))) + (if (let-values (((or-part_455) (eqv? c_117 'eof))) (if or-part_455 or-part_455 #f)) + (let-values () + (let-values (((v_249) (get-n_4))) + (if (let-values (((or-part_456) (not v_249))) (if or-part_456 or-part_456 (string? v_249))) + v_249 + ((lambda (n_54) + (let-values (((sgn148_0) sgn_8) ((n149_0) n_54) ((s150_0) s_544) ((state151_0) state_52)) + (finish.1 #f sgn148_0 n149_0 s150_0 state151_0))) + v_249)))) + (if (let-values (((or-part_457) (fixnum? c_117))) (if or-part_457 or-part_457 #f)) + (let-values () + (read-rational + sgn_8 + sgn-n_2 + (add-digit (let-values (((or-part_458) d_49)) (if or-part_458 or-part_458 0)) c_117 radix_22) + s_544 + (fx+ 1 start_66) + end_53 + radix_22 + state_52)) + (if (let-values (((or-part_459) (eqv? c_117 '#\.))) (if or-part_459 or-part_459 #f)) + (let-values () (bad-mixed-decimal-fraction s_544 state_52)) + (if (let-values (((or-part_460) (eqv? c_117 '#\#))) (if or-part_460 or-part_460 #f)) + (let-values () + (if d_49 + (read-denom-approx + sgn_8 + sgn-n_2 + (digits->integer d_49 radix_22) + 1 + s_544 + (fx+ 1 start_66) + end_53 + radix_22 + (let-values (((state152_0) state_52) ((temp153_1) 'approx)) + (set-exactness.1 #f state152_0 temp153_1))) + (bad-misplaced "#" s_544 state_52))) + (if (let-values (((or-part_461) (eqv? c_117 '#\e))) + (if or-part_461 + or-part_461 + (let-values (((or-part_462) (eqv? c_117 '#\E))) + (if or-part_462 + or-part_462 + (let-values (((or-part_463) (eqv? c_117 '#\d))) + (if or-part_463 + or-part_463 + (let-values (((or-part_464) (eqv? c_117 '#\D))) + (if or-part_464 + or-part_464 + (let-values (((or-part_285) (eqv? c_117 '#\l))) + (if or-part_285 + or-part_285 + (let-values (((or-part_465) (eqv? c_117 '#\L))) + (if or-part_465 + or-part_465 + (let-values (((or-part_466) (eqv? c_117 '#\f))) + (if or-part_466 + or-part_466 + (let-values (((or-part_467) (eqv? c_117 '#\F))) + (if or-part_467 + or-part_467 + (let-values (((or-part_468) (eqv? c_117 '#\s))) + (if or-part_468 + or-part_468 + (let-values (((or-part_469) (eqv? c_117 '#\S))) + (if or-part_469 + or-part_469 + (let-values (((or-part_470) (eqv? c_117 '#\t))) + (if or-part_470 + or-part_470 + (let-values (((or-part_471) (eqv? c_117 '#\T))) + (if or-part_471 + or-part_471 + #f)))))))))))))))))))))))) + (let-values () + (let-values (((v_250) (get-n_4))) + (if (let-values (((or-part_472) (not v_250))) (if or-part_472 or-part_472 (string? v_250))) + v_250 + ((lambda (sgn-n_3) + (read-exponent + sgn_8 + sgn-n_3 + 0 + s_544 + (fx+ 1 start_66) + end_53 + radix_22 + (let-values (((state154_0) state_52) ((c155_0) c_117)) + (set-exactness-by-char.1 #f state154_0 c155_0)))) + v_250)))) + (if (let-values (((or-part_214) (eqv? c_117 '#\/))) (if or-part_214 or-part_214 #f)) + (let-values () (bad-misplaced "/" s_544 state_52)) + (if (let-values (((or-part_473) (eqv? c_117 '#\+))) + (if or-part_473 + or-part_473 + (let-values (((or-part_474) (eqv? c_117 '#\-))) (if or-part_474 or-part_474 #f)))) + (let-values () + (let-values (((v_251) (get-n_4))) + (if (let-values (((or-part_475) (not v_251))) (if or-part_475 or-part_475 (string? v_251))) + v_251 + ((lambda (n_55) + (read-imag + c_117 + sgn_8 + n_55 + (if (eqv? c_117 '#\+) 1 -1) + s_544 + (fx+ 1 start_66) + end_53 + radix_22 + state_52)) + v_251)))) + (if (let-values (((or-part_215) (eqv? c_117 '#\@))) (if or-part_215 or-part_215 #f)) + (let-values () + (let-values (((v_252) (get-n_4))) + (if (let-values (((or-part_476) (not v_252))) + (if or-part_476 or-part_476 (string? v_252))) + v_252 + ((lambda (n_56) (read-polar sgn_8 n_56 s_544 (fx+ 1 start_66) end_53 radix_22 state_52)) + v_252)))) + (if (let-values (((or-part_477) (eqv? c_117 '#\i))) + (if or-part_477 + or-part_477 + (let-values (((or-part_478) (eqv? c_117 '#\I))) (if or-part_478 or-part_478 #f)))) + (let-values () + (let-values (((v_253) (get-n_4))) + (if (let-values (((or-part_479) (not v_253))) + (if or-part_479 or-part_479 (string? v_253))) + v_253 + ((lambda (n_57) (finish-imaginary sgn_8 n_57 s_544 (fx+ 1 start_66) end_53 state_52)) + v_253)))) + (let-values () (bad-digit c_117 s_544 state_52)))))))))))))))) + (define-values + (read-denom-approx) + (lambda (sgn_9 sgn-n_4 d_50 exp_8 s_545 start_67 end_54 radix_23 state_53) + (begin + (let-values (((get-n_5) + (lambda () (begin 'get-n (lazy-divide sgn-n_4 (lazy-number d_50 radix_23 exp_8) 'approx))))) + (let-values (((c_119) + (if (fx= start_67 end_54) + 'eof + (let-values (((c_120) (string-ref s_545 start_67))) (maybe-digit c_120 radix_23))))) + (if (let-values (((or-part_480) (eqv? c_119 'eof))) (if or-part_480 or-part_480 #f)) + (let-values () + (let-values (((sgn156_0) sgn_9) ((temp157_2) (get-n_5)) ((s158_0) s_545) ((state159_0) state_53)) + (finish.1 #f sgn156_0 temp157_2 s158_0 state159_0))) + (if (let-values (((or-part_481) (eqv? c_119 '#\#))) (if or-part_481 or-part_481 #f)) + (let-values () + (read-denom-approx sgn_9 sgn-n_4 d_50 (fx+ 1 exp_8) s_545 (fx+ 1 start_67) end_54 radix_23 state_53)) + (if (let-values (((or-part_482) (fixnum? c_119))) (if or-part_482 or-part_482 #f)) + (let-values () (bad-misplaced "#" s_545 state_53)) + (if (let-values (((or-part_483) (eqv? c_119 '#\.))) + (if or-part_483 + or-part_483 + (let-values (((or-part_484) (eqv? c_119 '#\/))) (if or-part_484 or-part_484 #f)))) + (let-values () (bad-misplaced c_119 s_545 state_53)) + (if (let-values (((or-part_485) (eqv? c_119 '#\e))) + (if or-part_485 + or-part_485 + (let-values (((or-part_486) (eqv? c_119 '#\E))) + (if or-part_486 + or-part_486 + (let-values (((or-part_246) (eqv? c_119 '#\d))) + (if or-part_246 + or-part_246 + (let-values (((or-part_247) (eqv? c_119 '#\D))) + (if or-part_247 + or-part_247 + (let-values (((or-part_487) (eqv? c_119 '#\l))) + (if or-part_487 + or-part_487 + (let-values (((or-part_488) (eqv? c_119 '#\L))) + (if or-part_488 + or-part_488 + (let-values (((or-part_489) (eqv? c_119 '#\f))) + (if or-part_489 + or-part_489 + (let-values (((or-part_490) (eqv? c_119 '#\F))) + (if or-part_490 + or-part_490 + (let-values (((or-part_491) (eqv? c_119 '#\s))) + (if or-part_491 + or-part_491 + (let-values (((or-part_492) (eqv? c_119 '#\S))) + (if or-part_492 + or-part_492 + (let-values (((or-part_217) (eqv? c_119 '#\t))) + (if or-part_217 + or-part_217 + (let-values (((or-part_493) (eqv? c_119 '#\T))) + (if or-part_493 + or-part_493 + #f)))))))))))))))))))))))) + (let-values () + (read-exponent + sgn_9 + (get-n_5) + 0 + s_545 + (fx+ 1 start_67) + end_54 + radix_23 + (let-values (((state160_0) state_53) ((c161_0) c_119)) + (set-exactness-by-char.1 #f state160_0 c161_0)))) + (if (let-values (((or-part_248) (eqv? c_119 '#\+))) + (if or-part_248 + or-part_248 + (let-values (((or-part_494) (eqv? c_119 '#\-))) (if or-part_494 or-part_494 #f)))) + (let-values () + (read-imag + c_119 + sgn_9 + (get-n_5) + (if (eqv? c_119 '#\+) 1 -1) + s_545 + (fx+ 1 start_67) + end_54 + radix_23 + state_53)) + (if (let-values (((or-part_249) (eqv? c_119 '#\@))) (if or-part_249 or-part_249 #f)) + (let-values () (read-polar sgn_9 (get-n_5) s_545 (fx+ 1 start_67) end_54 radix_23 state_53)) + (if (let-values (((or-part_495) (eqv? c_119 '#\i))) + (if or-part_495 + or-part_495 + (let-values (((or-part_496) (eqv? c_119 '#\I))) (if or-part_496 or-part_496 #f)))) + (let-values () (finish-imaginary sgn_9 (get-n_5) s_545 (fx+ 1 start_67) end_54 state_53)) + (let-values () (bad-digit c_119 s_545 state_53))))))))))))))) + (define-values + (read-imag) + (lambda (c_121 real-sgn_0 real_0 sgn_10 s_546 start_68 end_55 radix_24 state_54) + (begin + (if (let-values (((or-part_497) (state-has-first-half? state_54))) + (if or-part_497 or-part_497 (eq? 'extended (parse-state-exactness state_54)))) + (let-values () (bad-misplaced c_121 s_546 state_54)) + (let-values () + (read-signed + sgn_10 + s_546 + start_68 + end_55 + radix_24 + (state-set-first-half state_54 (rect-prefix7.1 real-sgn_0 real_0 (fx- start_68 1))))))))) + (define-values + (read-polar) + (lambda (real-sgn_1 real_1 s_547 start_69 end_56 radix_25 state_55) + (begin + (if (let-values (((or-part_498) (state-has-first-half? state_55))) + (if or-part_498 or-part_498 (eq? 'extended (parse-state-exactness state_55)))) + (let-values () (bad-misplaced "@" s_547 state_55)) + (let-values () + (let-values (((c_122) + (if (fx= start_69 end_56) + 'eof + (let-values (((c_123) (string-ref s_547 start_69))) (maybe-digit c_123 radix_25))))) + (if (let-values (((or-part_499) (eqv? c_122 'eof))) (if or-part_499 or-part_499 #f)) + (let-values () (bad-misplaced "@" s_547 state_55)) + (if (let-values (((or-part_500) (eqv? c_122 '#\+))) + (if or-part_500 + or-part_500 + (let-values (((or-part_501) (eqv? c_122 '#\-))) (if or-part_501 or-part_501 #f)))) + (let-values () + (let-values (((new-state_2) + (state-set-first-half state_55 (polar-prefix8.1 real-sgn_1 real_1 start_69)))) + (read-signed (if (eq? c_122 '#\+) 1 -1) s_547 (fx+ 1 start_69) end_56 radix_25 new-state_2))) + (if (let-values (((or-part_502) (fixnum? c_122))) (if or-part_502 or-part_502 #f)) + (let-values () + (let-values (((new-state_3) + (state-set-first-half state_55 (polar-prefix8.1 real-sgn_1 real_1 start_69)))) + (read-integer 1 c_122 s_547 (fx+ 1 start_69) end_56 radix_25 new-state_3))) + (let-values () (bad-digit c_122 s_547 state_55))))))))))) + (define-values + (read-symbol-or-number.1) + (lambda (extra-prefix2_0 mode1_1 init-c5_0 in6_1 orig-config7_0) + (begin + 'read-symbol-or-number + (let-values (((init-c_6) init-c5_0)) + (let-values (((in_27) in6_1)) + (let-values (((orig-config_0) orig-config7_0)) + (let-values (((mode_10) mode1_1)) + (let-values (((extra-prefix_0) extra-prefix2_0)) + (let-values () + (let-values (((config_36) + (if (string? mode_10) (override-parameter 1/read-cdot orig-config_0 #f) orig-config_0))) + (let-values (((rt_11) (read-config-readtable config_36))) + (let-values (((c1_30) + (if rt_11 + (if (let-values (((or-part_14) (eq? mode_10 'symbol-or-number))) + (if or-part_14 or-part_14 (eq? mode_10 'symbol/indirect))) + (readtable-symbol-parser rt_11) + #f) + #f))) + (if c1_30 + ((lambda (handler_2) + (readtable-apply + handler_2 + init-c_6 + in_27 + config_36 + (read-config-line config_36) + (read-config-col config_36) + (read-config-pos config_36))) + c1_30) + (let-values () + (let-values (((accum-str_1) (accum-string-init! config_36))) + (let-values (((quoted-ever?_0) #f)) + (let-values (((case-sens?_0) (check-parameter read-case-sensitive config_36))) + (let-values ((() + (begin + (if extra-prefix_0 + (let-values () (accum-string-add! accum-str_1 extra-prefix_0)) + (void)) + (values)))) + (let-values (((source_16) (read-config-source config_36))) + (let-values (((unexpected-quoted_0) + (lambda (c_62 after-c_0) + (begin + 'unexpected-quoted + (let-values (((in9_2) in_27) + ((config10_2) config_36) + ((c11_1) c_62) + ((temp12_6) "~a following `~a` in ~a") + ((temp13_6) + (if (eof-object? c_62) + "end-of-file" + "non-character")) + ((after-c14_0) after-c_0) + ((temp15_6) + (if (eq? mode_10 'keyword) + (let-values () "keyword") + (if (string? mode_10) + (let-values () "number") + (let-values () "symbol"))))) + (reader-error.1 + unsafe-undefined + c11_1 + #f + unsafe-undefined + in9_2 + config10_2 + temp12_6 + (list temp13_6 after-c14_0 temp15_6))))))) + (let-values ((() + (begin + ((letrec-values (((loop_117) + (lambda (init-c_7 + pipe-quote-c_0 + foldcase-from_0) + (begin + 'loop + (let-values (((c_124) + (let-values (((or-part_88) + init-c_7)) + (if or-part_88 + or-part_88 + (let-values (((in_28) + in_27) + ((skip-count_8) + 0) + ((source_17) + source_16)) + (let-values (((c_65) + (peek-char-or-special + in_28 + skip-count_8 + 'special + source_17))) + (if (eq? + c_65 + 'special) + (special1.1 + 'special) + c_65))))))) + (let-values (((ec_4) + (let-values (((rt_12) + rt_11) + ((c_125) + c_124)) + (if (let-values (((or-part_503) + (not + rt_12))) + (if or-part_503 + or-part_503 + (not + (char? + c_125)))) + (let-values () c_125) + (let-values () + (*readtable-effective-char + rt_12 + c_125)))))) + (if (if pipe-quote-c_0 + (not (char? ec_4)) + #f) + (let-values () + (begin + (if init-c_7 + (void) + (let-values () + (consume-char/special + in_27 + config_36 + c_124))) + (unexpected-quoted_0 + c_124 + pipe-quote-c_0))) + (if (if (not pipe-quote-c_0) + (readtable-char-delimiter? + rt_11 + c_124 + config_36) + #f) + (let-values () + (if case-sens?_0 + (void) + (let-values () + (accum-string-convert! + accum-str_1 + string-foldcase + foldcase-from_0)))) + (if (if pipe-quote-c_0 + (char=? + c_124 + pipe-quote-c_0) + #f) + (let-values () + (begin + (if init-c_7 + (void) + (let-values () + (consume-char + in_27 + c_124))) + (loop_117 + #f + #f + (accum-string-count + accum-str_1)))) + (if (if (char=? ec_4 '#\|) + (check-parameter + read-accept-bar-quote + config_36) + #f) + (let-values () + (begin + (if init-c_7 + (void) + (let-values () + (consume-char + in_27 + c_124))) + (set! quoted-ever?_0 #t) + (if case-sens?_0 + (void) + (let-values () + (accum-string-convert! + accum-str_1 + string-foldcase + foldcase-from_0))) + (loop_117 + #f + c_124 + (accum-string-count + accum-str_1)))) + (if (if (char=? ec_4 '#\\) + (not pipe-quote-c_0) + #f) + (let-values () + (let-values ((() + (begin + (if init-c_7 + (void) + (let-values () + (consume-char + in_27 + c_124))) + (values)))) + (let-values (((next-c_0) + (let-values (((in_29) + in_27) + ((source_18) + source_16)) + (read-char-or-special + in_29 + special1.1 + source_18)))) + (begin + (if (char? next-c_0) + (void) + (let-values () + (unexpected-quoted_0 + next-c_0 + c_124))) + (if (let-values (((or-part_143) + pipe-quote-c_0)) + (if or-part_143 + or-part_143 + case-sens?_0)) + (void) + (let-values () + (accum-string-convert! + accum-str_1 + string-foldcase + foldcase-from_0))) + (accum-string-add! + accum-str_1 + next-c_0) + (set! quoted-ever?_0 + #t) + (loop_117 + #f + #f + (accum-string-count + accum-str_1)))))) + (let-values () + (begin + (if init-c_7 + (void) + (let-values () + (consume-char + in_27 + c_124))) + (accum-string-add! + accum-str_1 + c_124) + (loop_117 + #f + pipe-quote-c_0 + foldcase-from_0)))))))))))))) + loop_117) + init-c_6 + #f + 0) + (values)))) + (let-values (((str_30) + (let-values (((accum-str16_0) accum-str_1) + ((config17_0) config_36)) + (accum-string-get!.1 0 accum-str16_0 config17_0)))) + (let-values ((() + (begin + (if (if (= 1 (string-length str_30)) + (if (not quoted-ever?_0) + (char=? + '#\. + (effective-char (string-ref str_30 0) config_36)) + #f) + #f) + (let-values () + (let-values (((in18_0) in_27) + ((config19_0) config_36) + ((temp20_5) "illegal use of `.`")) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in18_0 + config19_0 + temp20_5 + (list)))) + (void)) + (values)))) + (let-values (((num_0) + (if (let-values (((or-part_38) + (eq? mode_10 'symbol-or-number))) + (if or-part_38 or-part_38 (string? mode_10))) + (if (not quoted-ever?_0) + (unchecked-string->number + (if (string? mode_10) + (string-append mode_10 str_30) + str_30) + 10 + 'read + (if (check-parameter + 1/read-decimal-as-inexact + config_36) + 'decimal-as-inexact + 'decimal-as-exact) + (if (check-parameter 1/read-single-flonum config_36) + 'single + 'double)) + #f) + #f))) + (begin + (if (string? num_0) + (let-values () + (let-values (((in21_0) in_27) + ((config22_0) config_36) + ((temp23_5) "~a") + ((num24_0) num_0)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in21_0 + config22_0 + temp23_5 + (list num24_0)))) + (void)) + (if (if (not num_0) (string? mode_10) #f) + (let-values () + (let-values (((in25_0) in_27) + ((config26_0) config_36) + ((temp27_2) "bad number: `~a`") + ((temp28_6) (string-append mode_10 str_30))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in25_0 + config26_0 + temp27_2 + (list temp28_6)))) + (void)) + (wrap + (let-values (((or-part_8) num_0)) + (if or-part_8 + or-part_8 + (let-values (((or-part_9) + (if (eq? mode_10 'keyword) + (string->keyword str_30) + #f))) + (if or-part_9 or-part_9 (string->symbol str_30))))) + in_27 + config_36 + str_30)))))))))))))))))))))))))) + (define-values + (read-fixnum) + (lambda (read-one_3 init-c_0 in_6 config_15) + (begin + (let-values (((c_38) (read-char/skip-whitespace-and-comments init-c_0 read-one_3 in_6 config_15))) + (let-values (((line_8 col_7 pos_132) (port-next-location* in_6 c_38))) + (let-values (((v_56) (read-number-literal c_38 in_6 config_15 "#e"))) + (if (fixnum? v_56) + (let-values () v_56) + (if (eof-object? v_56) + (let-values () v_56) + (let-values () + (let-values (((in1_3) in_6) + ((temp2_5) (reading-at config_15 line_8 col_7 pos_132)) + ((temp3_6) "expected a fixnum, found ~a") + ((v4_0) v_56)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in1_3 + temp2_5 + temp3_6 + (list v4_0)))))))))))) + (define-values + (read-flonum) + (lambda (read-one_4 init-c_8 in_21 config_37) + (begin + (let-values (((c_126) (read-char/skip-whitespace-and-comments init-c_8 read-one_4 in_21 config_37))) + (let-values (((line_9 col_8 pos_133) (port-next-location* in_21 c_126))) + (let-values (((v_31) (read-number-literal c_126 in_21 config_37 "#i"))) + (if (flonum? v_31) + (let-values () v_31) + (if (eof-object? v_31) + (let-values () v_31) + (let-values () + (let-values (((in5_0) in_21) + ((temp6_3) (reading-at config_37 line_9 col_8 pos_133)) + ((temp7_6) "expected a flonum, found ~a") + ((v8_0) v_31)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in5_0 + temp6_3 + temp7_6 + (list v8_0)))))))))))) + (define-values + (read-number-literal) + (lambda (c_63 in_30 config_38 mode_16) + (begin + (if (not (char? c_63)) + (let-values () c_63) + (let-values () + (let-values (((c9_0) c_63) ((in10_1) in_30) ((config11_1) config_38) ((mode12_0) mode_16)) + (read-symbol-or-number.1 #f mode12_0 c9_0 in10_1 config11_1))))))) + (define-values + (read-vector.1) + (lambda (length2_0 mode1_1 read-one5_0 opener-c6_0 opener7_0 closer8_0 in9_3 config10_3) + (begin + 'read-vector + (let-values (((read-one_5) read-one5_0)) + (let-values (((opener-c_1) opener-c6_0)) + (let-values (((opener_2) opener7_0)) + (let-values (((closer_2) closer8_0)) + (let-values (((in_31) in9_3)) + (let-values (((config_10) config10_3)) + (let-values (((vector-mode_0) mode1_1)) + (let-values (((expected-len_0) length2_0)) + (let-values () + (let-values (((read-one-element_0) + (let-values (((tmp_58) vector-mode_0)) + (if (equal? tmp_58 'any) + (let-values () read-one_5) + (if (equal? tmp_58 'fixnum) + (let-values () + (lambda (init-c_9 in_11 config_39) + (begin + 'read-one-element + (read-fixnum read-one_5 init-c_9 in_11 config_39)))) + (if (equal? tmp_58 'flonum) + (let-values () + (lambda (init-c_10 in_32 config_40) + (begin + 'read-one-element + (read-flonum read-one_5 init-c_10 in_32 config_40)))) + (let-values () (void)))))))) + (let-values (((seq_2) + (let-values (((read-one-element12_0) read-one-element_0) + ((opener-c13_0) opener-c_1) + ((opener14_0) opener_2) + ((closer15_0) closer_2) + ((in16_1) in_31) + ((config17_1) config_10) + ((read-one18_0) read-one_5) + ((temp19_4) #f)) + (read-unwrapped-sequence.1 + temp19_4 + unsafe-undefined + unsafe-undefined + #f + read-one18_0 + read-one-element12_0 + opener-c13_0 + opener14_0 + closer15_0 + in16_1 + config17_1)))) + (let-values (((vec_84) + (if (not expected-len_0) + (let-values () + (let-values (((tmp_59) vector-mode_0)) + (if (equal? tmp_59 'any) + (let-values () (list->vector seq_2)) + (if (equal? tmp_59 'fixnum) + (let-values () + (let-values (((len_66) (length seq_2))) + (begin + (if (exact-nonnegative-integer? len_66) + (void) + (let-values () + (raise-argument-error + 'for/fxvector + "exact-nonnegative-integer?" + len_66))) + (let-values (((fill_0) 0)) + (let-values (((v_35) (make-fxvector len_66 fill_0))) + (begin + (if (zero? len_66) + (void) + (let-values () + (let-values (((lst_64) seq_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_64))) + ((letrec-values (((for-loop_208) + (lambda (i_176 lst_281) + (begin + 'for-loop + (if (pair? lst_281) + (let-values (((e_88) + (unsafe-car + lst_281)) + ((rest_153) + (unsafe-cdr + lst_281))) + (let-values (((i_0) + (let-values (((i_210) + i_176)) + (let-values (((i_42) + (let-values () + (begin + (let-values (((elem_1) + (let-values () + e_88))) + (if (fixnum? + elem_1) + (unsafe-fxvector-set! + v_35 + i_210 + elem_1) + (not-an-fX.1 + 'for*/vector + elem_1))) + (unsafe-fx+ + 1 + i_210))))) + (values + i_42))))) + (if (if (not + ((lambda x_93 + (unsafe-fx= + i_0 + len_66)) + e_88)) + (not #f) + #f) + (for-loop_208 + i_0 + rest_153) + i_0))) + i_176))))) + for-loop_208) + 0 + lst_64))))) + v_35)))))) + (if (equal? tmp_59 'flonum) + (let-values () + (let-values (((len_67) (length seq_2))) + (begin + (if (exact-nonnegative-integer? len_67) + (void) + (let-values () + (raise-argument-error + 'for/flvector + "exact-nonnegative-integer?" + len_67))) + (let-values (((fill_1) 0.0)) + (let-values (((v_189) (make-flvector len_67 fill_1))) + (begin + (if (zero? len_67) + (void) + (let-values () + (let-values (((lst_62) seq_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_62))) + ((letrec-values (((for-loop_203) + (lambda (i_3 lst_283) + (begin + 'for-loop + (if (pair? lst_283) + (let-values (((e_89) + (unsafe-car + lst_283)) + ((rest_154) + (unsafe-cdr + lst_283))) + (let-values (((i_211) + (let-values (((i_92) + i_3)) + (let-values (((i_190) + (let-values () + (begin + (let-values (((elem_2) + (let-values () + e_89))) + (if (flonum? + elem_2) + (unsafe-flvector-set! + v_189 + i_92 + elem_2) + (not-an-fX.1$1 + 'for*/vector + elem_2))) + (unsafe-fx+ + 1 + i_92))))) + (values + i_190))))) + (if (if (not + ((lambda x_94 + (unsafe-fx= + i_211 + len_67)) + e_89)) + (not #f) + #f) + (for-loop_203 + i_211 + rest_154) + i_211))) + i_3))))) + for-loop_203) + 0 + lst_62))))) + v_189)))))) + (let-values () (void))))))) + (let-values () + (let-values (((len_68) (length seq_2))) + (if (= expected-len_0 len_68) + (let-values () (list->vector seq_2)) + (if (< expected-len_0 len_68) + (let-values () + (let-values (((in20_1) in_31) + ((config21_0) config_10) + ((temp22_6) + "~avector length ~a is too small, ~a values provided") + ((temp23_6) + (let-values (((tmp_60) vector-mode_0)) + (if (equal? tmp_60 'any) + (let-values () "") + (if (equal? tmp_60 'fixnum) + (let-values () "fx") + (if (equal? tmp_60 'flonum) + (let-values () "fl") + (let-values () (void))))))) + ((expected-len24_0) expected-len_0) + ((len25_0) len_68)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in20_1 + config21_0 + temp22_6 + (list temp23_6 expected-len24_0 len25_0)))) + (let-values () + (let-values (((last-or_0) + (lambda (v_89) + (begin + 'last-or + (if (null? seq_2) + (wrap v_89 in_31 config_10 #f) + ((letrec-values (((loop_91) + (lambda (seq_3) + (begin + 'loop + (if (null? (cdr seq_3)) + (car seq_3) + (loop_91 + (cdr seq_3))))))) + loop_91) + seq_2)))))) + (let-values ((() + (begin + (if (>= (integer-length expected-len_0) 48) + (let-values () + (raise + (exn:fail:out-of-memory + "out of memory" + (current-continuation-marks)))) + (void)) + (values)))) + (let-values (((vec_85) + (let-values (((tmp_61) vector-mode_0)) + (if (equal? tmp_61 'any) + (let-values () + (make-vector + expected-len_0 + (last-or_0 0))) + (if (equal? tmp_61 'fixnum) + (let-values () + (make-fxvector + expected-len_0 + (last-or_0 0))) + (if (equal? tmp_61 'flonum) + (let-values () + (make-flvector + expected-len_0 + (last-or_0 0.0))) + (let-values () (void)))))))) + (begin + (let-values (((tmp_62) vector-mode_0)) + (if (equal? tmp_62 'any) + (let-values () + (begin + (let-values (((lst_320) seq_2) ((start_70) 0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_320))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-naturals start_70))) + ((letrec-values (((for-loop_114) + (lambda (lst_195 pos_134) + (begin + 'for-loop + (if (if (pair? lst_195) + #t + #f) + (let-values (((e_90) + (unsafe-car + lst_195)) + ((rest_54) + (unsafe-cdr + lst_195)) + ((i_26) + pos_134)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (vector-set! + vec_85 + i_26 + e_90)) + (values))))) + (values))))) + (if (not #f) + (for-loop_114 + rest_54 + (+ pos_134 1)) + (values)))) + (values)))))) + for-loop_114) + lst_320 + start_70))) + (void))) + (if (equal? tmp_62 'fixnum) + (let-values () + (begin + (let-values (((lst_294) seq_2) ((start_71) 0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_294))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-naturals start_71))) + ((letrec-values (((for-loop_223) + (lambda (lst_200 pos_135) + (begin + 'for-loop + (if (if (pair? + lst_200) + #t + #f) + (let-values (((e_91) + (unsafe-car + lst_200)) + ((rest_128) + (unsafe-cdr + lst_200)) + ((i_48) + pos_135)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (fxvector-set! + vec_85 + i_48 + e_91)) + (values))))) + (values))))) + (if (not #f) + (for-loop_223 + rest_128 + (+ + pos_135 + 1)) + (values)))) + (values)))))) + for-loop_223) + lst_294 + start_71))) + (void))) + (if (equal? tmp_62 'flonum) + (let-values () + (begin + (let-values (((lst_321) seq_2) ((start_72) 0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_321))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-naturals start_72))) + ((letrec-values (((for-loop_297) + (lambda (lst_95 pos_35) + (begin + 'for-loop + (if (if (pair? + lst_95) + #t + #f) + (let-values (((e_92) + (unsafe-car + lst_95)) + ((rest_105) + (unsafe-cdr + lst_95)) + ((i_67) + pos_35)) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (flvector-set! + vec_85 + i_67 + e_92)) + (values))))) + (values))))) + (if (not #f) + (for-loop_297 + rest_105 + (+ + pos_35 + 1)) + (values)))) + (values)))))) + for-loop_297) + lst_321 + start_72))) + (void))) + (let-values () (void)))))) + vec_85)))))))))))) + (wrap + (if (read-config-for-syntax? config_10) (vector->immutable-vector vec_84) vec_84) + in_31 + config_10 + opener_2)))))))))))))))) + (define-values + (read-fixnum-or-flonum-vector) + (lambda (read-one_6 dispatch-c_0 c_127 c2_8 in_33 config_41) + (begin + (let-values (((vector-mode_1) (if (char=? c2_8 '#\x) 'fixnum 'flonum))) + (let-values ((() (begin (consume-char in_33 c2_8) (values)))) + (let-values ((() + (begin + (if (read-config-for-syntax? config_41) + (let-values () + (let-values (((in26_1) in_33) + ((config27_0) config_41) + ((temp28_7) "literal f~avectors not allowed") + ((c229_0) c2_8)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in26_1 + config27_0 + temp28_7 + (list c229_0)))) + (void)) + (values)))) + (let-values (((c3_3) + (let-values (((in_34) in_33) ((source_19) (read-config-source config_41))) + (read-char-or-special in_34 special1.1 source_19)))) + (let-values (((vector-len_0 len-str_0 c4_0) + (if (decimal-digit? c3_3) + (let-values () (read-simple-number in_33 config_41 c3_3)) + (let-values () (values #f "" c3_3))))) + (let-values (((tmp_63) c4_0)) + (if (equal? tmp_63 '#\() + (let-values () + (let-values (((read-one30_0) read-one_6) + ((temp31_4) '#\() + ((temp32_7) '#\() + ((temp33_6) '#\)) + ((in34_1) in_33) + ((config35_0) config_41) + ((vector-mode36_0) vector-mode_1) + ((vector-len37_0) vector-len_0)) + (read-vector.1 + vector-len37_0 + vector-mode36_0 + read-one30_0 + temp31_4 + temp32_7 + temp33_6 + in34_1 + config35_0))) + (if (equal? tmp_63 '#\[) + (let-values () + (if (check-parameter 1/read-square-bracket-as-paren config_41) + (let-values () + (let-values (((read-one38_0) read-one_6) + ((temp39_3) '#\[) + ((temp40_2) '#\[) + ((temp41_3) '#\]) + ((in42_0) in_33) + ((config43_0) config_41) + ((vector-mode44_0) vector-mode_1) + ((vector-len45_0) vector-len_0)) + (read-vector.1 + vector-len45_0 + vector-mode44_0 + read-one38_0 + temp39_3 + temp40_2 + temp41_3 + in42_0 + config43_0))) + (let-values () + (let-values (((in46_0) in_33) + ((config47_0) config_41) + ((temp48_4) (format "~a~a" dispatch-c_0 (format "~a~a" c_127 c2_8)))) + (bad-syntax-error.1 '#\x in46_0 config47_0 temp48_4))))) + (if (equal? tmp_63 '#\{) + (let-values () + (if (check-parameter 1/read-curly-brace-as-paren config_41) + (let-values () + (let-values (((read-one49_0) read-one_6) + ((temp50_3) '#\{) + ((temp51_3) '#\{) + ((temp52_2) '#\}) + ((in53_0) in_33) + ((config54_0) config_41) + ((vector-mode55_0) vector-mode_1) + ((vector-len56_0) vector-len_0)) + (read-vector.1 + vector-len56_0 + vector-mode55_0 + read-one49_0 + temp50_3 + temp51_3 + temp52_2 + in53_0 + config54_0))) + (let-values () + (let-values (((in57_0) in_33) + ((config58_0) config_41) + ((temp59_2) (format "~a~a" dispatch-c_0 (format "~a~a" c_127 c2_8)))) + (bad-syntax-error.1 '#\x in57_0 config58_0 temp59_2))))) + (let-values () + (let-values (((in60_0) in_33) + ((config61_0) config_41) + ((c462_0) c4_0) + ((temp63_2) "expected `(`, `[`, or `{` after `#~a~a~a`") + ((c64_0) c_127) + ((c265_0) c2_8) + ((len-str66_0) len-str_0)) + (reader-error.1 + unsafe-undefined + c462_0 + #f + unsafe-undefined + in60_0 + config61_0 + temp63_2 + (list c64_0 c265_0 len-str66_0)))))))))))))))) + (define-values + (read-simple-number) + (lambda (in_35 config_42 init-c_11) + (begin + (let-values (((accum-str_2) (accum-string-init! config_42))) + (let-values ((() (begin (accum-string-add! accum-str_2 init-c_11) (values)))) + (let-values (((init-v_1) (digit->number init-c_11))) + (let-values (((v_254) + (let-values (((in67_0) in_35) + ((config68_0) config_42) + ((accum-str69_0) accum-str_2) + ((temp70_4) 10) + ((temp71_2) +inf.0) + ((init-v72_0) init-v_1) + ((init-v73_0) init-v_1)) + (read-digits.1 temp70_4 init-v72_0 temp71_2 init-v73_0 in67_0 config68_0 accum-str69_0)))) + (values + v_254 + (let-values (((accum-str74_0) accum-str_2) ((config75_0) config_42)) + (accum-string-get!.1 0 accum-str74_0 config75_0)) + (let-values (((in_36) in_35) ((source_20) (read-config-source config_42))) + (read-char-or-special in_36 special1.1 source_20)))))))))) + (define-values + (read-struct) + (lambda (read-one_3 dispatch-c_1 in_6 config_15) + (begin + (let-values (((c_38) + (let-values (((in_37) in_6) ((source_21) (read-config-source config_15))) + (read-char-or-special in_37 special1.1 source_21)))) + (let-values (((ec_5) (effective-char c_38 config_15))) + (let-values (((seq_4) + (let-values (((tmp_64) ec_5)) + (if (equal? tmp_64 '#\() + (let-values () (read-struct-sequence read-one_3 c_38 '#\( '#\) in_6 config_15)) + (if (equal? tmp_64 '#\[) + (let-values () + (if (check-parameter 1/read-square-bracket-as-paren config_15) + (let-values () (read-struct-sequence read-one_3 c_38 '#\[ '#\] in_6 config_15)) + (let-values () + (let-values (((in1_4) in_6) + ((config2_3) config_15) + ((temp3_7) (format "~as~a" dispatch-c_1 c_38))) + (bad-syntax-error.1 '#\x in1_4 config2_3 temp3_7))))) + (if (equal? tmp_64 '#\{) + (let-values () + (if (check-parameter 1/read-curly-brace-as-paren config_15) + (let-values () (read-struct-sequence read-one_3 c_38 '#\{ '#\} in_6 config_15)) + (let-values () + (let-values (((in4_1) in_6) + ((config5_1) config_15) + ((temp6_4) (format "~as~a" dispatch-c_1 c_38))) + (bad-syntax-error.1 '#\x in4_1 config5_1 temp6_4))))) + (let-values () + (let-values (((in7_0) in_6) + ((config8_0) config_15) + ((temp9_6) "expected ~a after `~as`") + ((temp10_6) (all-openers-str config_15)) + ((dispatch-c11_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in7_0 + config8_0 + temp9_6 + (list temp10_6 dispatch-c11_0)))))))))) + (let-values ((() + (begin + (if (null? seq_4) + (let-values () + (let-values (((in12_0) in_6) + ((config13_0) config_15) + ((temp14_5) "missing structure description in `~as` form") + ((dispatch-c15_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in12_0 + config13_0 + temp14_5 + (list dispatch-c15_0)))) + (void)) + (values)))) + (let-values ((() + (begin + (if (prefab-key? (car seq_4)) + (void) + (let-values () + (let-values (((in16_2) in_6) + ((config17_2) config_15) + ((temp18_6) "invalid structure description in `~as` form") + ((dispatch-c19_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in16_2 + config17_2 + temp18_6 + (list dispatch-c19_0))))) + (values)))) + (let-values (((st_2) + (let-values (((with-handlers-predicate20_0) exn:fail?) + ((with-handlers-handler21_0) + (lambda (exn_6) (begin 'with-handlers-handler21 #f)))) + (let-values (((bpz_6) (continuation-mark-set-first #f break-enabled-key))) + (call-handled-body + bpz_6 + (lambda (e_93) + (select-handler/no-breaks + e_93 + bpz_6 + (list (cons with-handlers-predicate20_0 with-handlers-handler21_0)))) + (lambda () (prefab-key->struct-type (car seq_4) (length (cdr seq_4))))))))) + (begin + (if st_2 + (void) + (let-values () + (let-values (((in22_1) in_6) + ((config23_1) config_15) + ((temp24_4) + (string-append + "mismatch between structure description" + " and number of provided field values in `~as` form")) + ((dispatch-c25_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in22_1 + config23_1 + temp24_4 + (list dispatch-c25_0))))) + (if (read-config-for-syntax? config_15) + (let-values () + (if (all-fields-immutable? (car seq_4)) + (void) + (let-values () + (let-values (((in26_2) in_6) + ((config27_1) config_15) + ((temp28_8) "cannot read mutable `~as` form as syntax") + ((dispatch-c29_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in26_2 + config27_1 + temp28_8 + (list dispatch-c29_0)))))) + (void)) + (wrap (apply make-prefab-struct seq_4) in_6 config_15 ec_5))))))))))) + (define-values + (read-struct-sequence) + (lambda (read-one_7 opener-c_2 opener_3 closer_3 in_38 config_43) + (begin + (let-values (((read-one30_1) read-one_7) + ((opener-c31_0) opener-c_2) + ((opener32_0) opener_3) + ((closer33_0) closer_3) + ((in34_2) in_38) + ((config35_1) config_43) + ((temp36_4) + (lambda (init-c_12 in_39 config_44) (read-one_7 init-c_12 in_39 (disable-wrapping config_44))))) + (read-unwrapped-sequence.1 + 'all + unsafe-undefined + temp36_4 + #f + unsafe-undefined + read-one30_1 + opener-c31_0 + opener32_0 + closer33_0 + in34_2 + config35_1))))) + (define-values + (read-vector-or-graph) + (lambda (read-one_3 dispatch-c_1 init-c_13 in_40 config_45) + (begin + (let-values (((accum-str_3) (accum-string-init! config_45))) + (let-values ((() (begin (accum-string-add! accum-str_3 init-c_13) (values)))) + (let-values (((init-v_2) (digit->number init-c_13))) + (let-values (((v_30) + (let-values (((in1_5) in_40) + ((config2_4) config_45) + ((accum-str3_0) accum-str_3) + ((temp4_4) 10) + ((temp5_7) +inf.0) + ((init-v6_0) init-v_2) + ((init-v7_0) init-v_2)) + (read-digits.1 temp4_4 init-v6_0 temp5_7 init-v7_0 in1_5 config2_4 accum-str3_0)))) + (let-values (((post-line_0 post-col_0 post-pos_0) (port-next-location in_40))) + (let-values (((get-accum_0) + (lambda (c_79) + (begin + 'get-accum + (format + "~a~a~a" + dispatch-c_1 + (let-values (((accum-str8_0) accum-str_3) ((config9_0) config_45)) + (accum-string-get!.1 0 accum-str8_0 config9_0)) + c_79))))) + (let-values (((c_128) + (let-values (((in_26) in_40) ((source_9) (read-config-source config_45))) + (read-char-or-special in_26 special1.1 source_9)))) + (let-values (((ec_6) (effective-char c_128 config_45))) + (let-values (((tmp_65) ec_6)) + (if (equal? tmp_65 '#\() + (let-values () + (begin + (accum-string-abandon! accum-str_3 config_45) + (let-values (((read-one10_0) read-one_3) + ((c11_2) c_128) + ((temp12_7) '#\() + ((temp13_7) '#\)) + ((in14_0) in_40) + ((config15_0) config_45) + ((v16_1) v_30)) + (read-vector.1 v16_1 'any read-one10_0 c11_2 temp12_7 temp13_7 in14_0 config15_0)))) + (if (equal? tmp_65 '#\[) + (let-values () + (begin + (accum-string-abandon! accum-str_3 config_45) + (if (check-parameter 1/read-square-bracket-as-paren config_45) + (let-values () + (let-values (((read-one17_0) read-one_3) + ((c18_0) c_128) + ((temp19_1) '#\[) + ((temp20_6) '#\]) + ((in21_1) in_40) + ((config22_1) config_45) + ((v23_0) v_30)) + (read-vector.1 + v23_0 + 'any + read-one17_0 + c18_0 + temp19_1 + temp20_6 + in21_1 + config22_1))) + (let-values () + (let-values (((in24_0) in_40) + ((config25_0) config_45) + ((temp26_4) (get-accum_0 (get-accum_0 c_128)))) + (bad-syntax-error.1 '#\x in24_0 config25_0 temp26_4)))))) + (if (equal? tmp_65 '#\{) + (let-values () + (begin + (accum-string-abandon! accum-str_3 config_45) + (if (check-parameter 1/read-curly-brace-as-paren config_45) + (let-values () + (let-values (((read-one27_0) read-one_3) + ((c28_0) c_128) + ((temp29_3) '#\{) + ((temp30_2) '#\}) + ((in31_1) in_40) + ((config32_0) config_45) + ((v33_0) v_30)) + (read-vector.1 + v33_0 + 'any + read-one27_0 + c28_0 + temp29_3 + temp30_2 + in31_1 + config32_0))) + (let-values () + (let-values (((in34_3) in_40) + ((config35_2) config_45) + ((temp36_5) (get-accum_0 (get-accum_0 c_128)))) + (bad-syntax-error.1 '#\x in34_3 config35_2 temp36_5)))))) + (let-values () + (let-values (((tmp_61) c_128)) + (if (if (equal? tmp_61 '#\=) #t (equal? tmp_61 '#\#)) + (let-values () + (begin + (if (let-values (((or-part_142) (read-config-for-syntax? config_45))) + (if or-part_142 + or-part_142 + (not (check-parameter 1/read-accept-graph config_45)))) + (let-values () + (let-values (((in37_0) in_40) + ((config38_0) config_45) + ((temp39_4) "`#...~a` forms not ~a") + ((c40_0) c_128) + ((temp41_4) + (if (read-config-for-syntax? config_45) + "allowed in `read-syntax` mode" + "enabled"))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in37_0 + config38_0 + temp39_4 + (list c40_0 temp41_4)))) + (void)) + (if (<= (accum-string-count accum-str_3) 8) + (void) + (let-values () + (let-values (((in42_1) in_40) + ((config43_1) config_45) + ((temp44_2) "graph ID too long in `~a~a~a`") + ((dispatch-c45_0) dispatch-c_1) + ((temp46_3) + (let-values (((accum-str48_0) accum-str_3) + ((config49_0) config_45)) + (accum-string-get!.1 0 accum-str48_0 config49_0))) + ((c47_0) c_128)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in42_1 + config43_1 + temp44_2 + (list dispatch-c45_0 temp46_3 c47_0))))) + (let-values (((tmp_66) c_128)) + (if (equal? tmp_66 '#\=) + (let-values () + (let-values (((ph_1) (make-placeholder 'placeholder))) + (let-values (((ht_165) (get-graph-hash config_45))) + (let-values ((() + (begin + (if (hash-ref ht_165 v_30 #f) + (let-values () + (let-values (((in50_0) in_40) + ((config51_0) config_45) + ((temp52_3) "multiple `~a~a~a` tags") + ((dispatch-c53_0) dispatch-c_1) + ((temp54_3) + (let-values (((accum-str56_0) + accum-str_3) + ((config57_0) + config_45)) + (accum-string-get!.1 + 0 + accum-str56_0 + config57_0))) + ((c55_0) c_128)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in50_0 + config51_0 + temp52_3 + (list dispatch-c53_0 temp54_3 c55_0)))) + (void)) + (values)))) + (let-values ((() (begin (hash-set! ht_165 v_30 ph_1) (values)))) + (let-values (((result-v_0) + (read-one_3 #f in_40 (next-readtable config_45)))) + (begin + (if (eof-object? result-v_0) + (let-values () + (let-values (((in58_0) in_40) + ((config59_0) config_45) + ((result-v60_0) result-v_0) + ((temp61_4) + "expected an element for graph after `~a~a~a`, found end-of-file") + ((dispatch-c62_0) dispatch-c_1) + ((temp63_3) + (let-values (((accum-str65_0) accum-str_3) + ((config66_0) config_45)) + (accum-string-get!.1 + 0 + accum-str65_0 + config66_0))) + ((c64_1) c_128)) + (reader-error.1 + unsafe-undefined + result-v60_0 + #f + unsafe-undefined + in58_0 + config59_0 + temp61_4 + (list dispatch-c62_0 temp63_3 c64_1)))) + (void)) + (accum-string-abandon! accum-str_3 config_45) + (placeholder-set! ph_1 result-v_0) + ph_1))))))) + (if (equal? tmp_66 '#\#) + (let-values () + (begin0 + (hash-ref + (let-values (((or-part_157) + (read-config-state-graph (read-config-st config_45)))) + (if or-part_157 or-part_157 '#hash())) + v_30 + (lambda () + (let-values (((in67_1) in_40) + ((config68_1) config_45) + ((temp69_2) "no preceding `~a~a=` for `~a~a~a`") + ((dispatch-c70_0) dispatch-c_1) + ((v71_0) v_30) + ((dispatch-c72_0) dispatch-c_1) + ((temp73_2) + (let-values (((accum-str75_0) accum-str_3) + ((config76_0) config_45)) + (accum-string-get!.1 0 accum-str75_0 config76_0))) + ((c74_0) c_128)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in67_1 + config68_1 + temp69_2 + (list dispatch-c70_0 v71_0 dispatch-c72_0 temp73_2 c74_0))))) + (accum-string-abandon! accum-str_3 config_45))) + (let-values () (void))))))) + (let-values () + (let-values (((in77_0) in_40) + ((config78_0) config_45) + ((c79_0) c_128) + ((temp80_3) "bad syntax `~a`") + ((temp81_3) (get-accum_0 c_128))) + (reader-error.1 + unsafe-undefined + c79_0 + #f + unsafe-undefined + in77_0 + config78_0 + temp80_3 + (list temp81_3)))))))))))))))))))))) + (define-values + (get-graph-hash) + (lambda (config_46) + (begin + (let-values (((st_3) (read-config-st config_46))) + (let-values (((or-part_60) (read-config-state-graph st_3))) + (if or-part_60 + or-part_60 + (let-values (((ht_129) (make-hasheqv))) (begin (set-read-config-state-graph! st_3 ht_129) ht_129)))))))) + (define-values + (coerce-key) + (lambda (key_102 config_8) + (begin + (let-values (((for-syntax?_7) (read-config-for-syntax? config_8))) + ((read-config-coerce-key config_8) for-syntax?_7 key_102))))) + (define-values + (read-hash) + (lambda (read-one_3 dispatch-c_1 init-c_13 in_40 config_45) + (begin + (let-values (((accum-str_3) (accum-string-init! config_45))) + (let-values ((() (begin (accum-string-add! accum-str_3 dispatch-c_1) (values)))) + (let-values ((() (begin (accum-string-add! accum-str_3 init-c_13) (values)))) + (let-values (((get-next!_0) + (lambda (expect-c_0 expect-alt-c_0) + (begin + 'get-next! + (let-values (((c_51) + (let-values (((in_41) in_40) ((source_22) (read-config-source config_45))) + (read-char-or-special in_41 special1.1 source_22)))) + (begin + (if (let-values (((or-part_83) (eqv? c_51 expect-c_0))) + (if or-part_83 or-part_83 (eqv? c_51 expect-alt-c_0))) + (void) + (let-values () + (let-values (((in1_6) in_40) + ((config2_5) config_45) + ((c3_4) c_51) + ((temp4_5) "expected `~a` after `~a`") + ((expect-c5_0) expect-c_0) + ((temp6_5) + (let-values (((accum-str7_0) accum-str_3) ((config8_1) config_45)) + (accum-string-get!.1 0 accum-str7_0 config8_1)))) + (reader-error.1 + unsafe-undefined + c3_4 + #f + unsafe-undefined + in1_6 + config2_5 + temp4_5 + (list expect-c5_0 temp6_5))))) + (accum-string-add! accum-str_3 c_51))))))) + (let-values ((() (begin (get-next!_0 '#\a '#\A) (values)))) + (let-values ((() (begin (get-next!_0 '#\s '#\S) (values)))) + (let-values ((() (begin (get-next!_0 '#\h '#\H) (values)))) + (let-values (((content_21 opener_4 mode_17) + ((letrec-values (((loop_118) + (lambda (mode_18) + (begin + 'loop + (let-values (((c_64) + (let-values (((in_42) in_40) + ((source_7) + (read-config-source config_45))) + (read-char-or-special + in_42 + special1.1 + source_7)))) + (let-values (((ec_7) (effective-char c_64 config_45))) + (let-values (((tmp_67) ec_7)) + (if (equal? tmp_67 '#\() + (let-values () + (let-values (((open-end-line_1 + open-end-col_1 + open-end-pos_1) + (port-next-location in_40))) + (let-values (((read-one-key+value_0) + (make-read-one-key+value + read-one_3 + c_64 + '#\) + open-end-pos_1))) + (values + (let-values (((read-one-key+value9_0) + read-one-key+value_0) + ((c10_1) c_64) + ((temp11_4) '#\() + ((temp12_8) '#\)) + ((in13_0) in_40) + ((config14_0) config_45) + ((config15_1) config_45) + ((temp16_6) #f)) + (read-unwrapped-sequence.1 + temp16_6 + config15_1 + unsafe-undefined + #f + unsafe-undefined + read-one-key+value9_0 + c10_1 + temp11_4 + temp12_8 + in13_0 + config14_0)) + ec_7 + mode_18)))) + (if (equal? tmp_67 '#\[) + (let-values () + (if (check-parameter + 1/read-square-bracket-as-paren + config_45) + (let-values () + (let-values (((open-end-line_2 + open-end-col_2 + open-end-pos_2) + (port-next-location in_40))) + (let-values (((read-one-key+value_1) + (make-read-one-key+value + read-one_3 + c_64 + '#\] + open-end-pos_2))) + (values + (let-values (((read-one-key+value17_0) + read-one-key+value_1) + ((c18_1) c_64) + ((temp19_5) '#\[) + ((temp20_5) '#\]) + ((in21_2) in_40) + ((config22_2) config_45) + ((config23_2) config_45) + ((temp24_5) #f)) + (read-unwrapped-sequence.1 + temp24_5 + config23_2 + unsafe-undefined + #f + unsafe-undefined + read-one-key+value17_0 + c18_1 + temp19_5 + temp20_5 + in21_2 + config22_2)) + ec_7 + mode_18)))) + (let-values () + (let-values (((in25_1) in_40) + ((config26_1) config_45) + ((temp27_3) "illegal use of `~a`") + ((c28_1) c_64)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in25_1 + config26_1 + temp27_3 + (list c28_1)))))) + (if (equal? tmp_67 '#\{) + (let-values () + (if (check-parameter + 1/read-curly-brace-as-paren + config_45) + (let-values () + (let-values (((open-end-line_3 + open-end-col_3 + open-end-pos_3) + (port-next-location in_40))) + (let-values (((read-one-key+value_2) + (make-read-one-key+value + read-one_3 + c_64 + '#\} + open-end-pos_3))) + (values + (let-values (((read-one-key+value29_0) + read-one-key+value_2) + ((c30_0) c_64) + ((temp31_5) '#\{) + ((temp32_8) '#\}) + ((in33_0) in_40) + ((config34_0) config_45) + ((config35_3) config_45) + ((temp36_6) #f)) + (read-unwrapped-sequence.1 + temp36_6 + config35_3 + unsafe-undefined + #f + unsafe-undefined + read-one-key+value29_0 + c30_0 + temp31_5 + temp32_8 + in33_0 + config34_0)) + ec_7 + mode_18)))) + (let-values () + (let-values (((in37_1) in_40) + ((config38_1) config_45) + ((temp39_5) + "illegal use of `~a`") + ((c40_1) c_64)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in37_1 + config38_1 + temp39_5 + (list c40_1)))))) + (if (if (equal? tmp_67 '#\e) + #t + (equal? tmp_67 '#\E)) + (let-values () + (begin + (accum-string-add! accum-str_3 c_64) + (get-next!_0 '#\q '#\Q) + (loop_118 'eq))) + (if (if (equal? tmp_67 '#\v) + #t + (equal? tmp_67 '#\V)) + (let-values () + (begin + (accum-string-add! accum-str_3 c_64) + (if (eq? mode_18 'eq) + (loop_118 'eqv) + (let-values (((in41_0) in_40) + ((config42_0) config_45) + ((temp43_3) + "bad syntax `~a`") + ((temp44_3) + (let-values (((accum-str45_0) + accum-str_3) + ((config46_1) + config_45)) + (accum-string-get!.1 + 0 + accum-str45_0 + config46_1)))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in41_0 + config42_0 + temp43_3 + (list temp44_3)))))) + (let-values () + (begin + (if (char? c_64) + (let-values () + (accum-string-add! accum-str_3 c_64)) + (void)) + (let-values (((in47_0) in_40) + ((config48_0) config_45) + ((c49_0) c_64) + ((temp50_4) "bad syntax `~a`") + ((temp51_4) + (let-values (((accum-str52_0) + accum-str_3) + ((config53_0) + config_45)) + (accum-string-get!.1 + 0 + accum-str52_0 + config53_0)))) + (reader-error.1 + unsafe-undefined + c49_0 + #f + unsafe-undefined + in47_0 + config48_0 + temp50_4 + (list temp51_4))))))))))))))))) + loop_118) + 'equal))) + (let-values (((graph?_0) (if (read-config-state-graph (read-config-st config_45)) #t #f))) + (wrap + (let-values (((tmp_68) mode_17)) + (if (equal? tmp_68 'equal) + (let-values () + (if graph?_0 (make-hash-placeholder content_21) (make-immutable-hash content_21))) + (if (equal? tmp_68 'eq) + (let-values () + (if graph?_0 (make-hasheq-placeholder content_21) (make-immutable-hasheq content_21))) + (if (equal? tmp_68 'eqv) + (let-values () + (if graph?_0 + (make-hasheqv-placeholder content_21) + (make-immutable-hasheqv content_21))) + (let-values () (void)))))) + in_40 + config_45 + opener_4))))))))))))) + (define-values + (make-read-one-key+value) + (lambda (read-one_8 overall-opener-c_0 overall-closer-ec_0 prefix-end-pos_0) + (begin + (lambda (init-c_14 in_43 config_47) + (let-values (((c_129) (read-char/skip-whitespace-and-comments init-c_14 read-one_8 in_43 config_47))) + (let-values (((open-line_0 open-col_0 open-pos_0) (port-next-location* in_43 c_129))) + (let-values (((ec_8) (effective-char c_129 config_47))) + (let-values (((elem-config_1) (next-readtable config_47))) + (let-values (((closer_4) + (let-values (((tmp_69) ec_8)) + (if (equal? tmp_69 '#\() + (let-values () '#\)) + (if (equal? tmp_69 '#\[) + (let-values () + (if (check-parameter 1/read-square-bracket-as-paren config_47) '#\] #f)) + (if (equal? tmp_69 '#\{) + (let-values () + (if (check-parameter 1/read-curly-brace-as-paren config_47) '#\} #f)) + (let-values () #f))))))) + (if (not closer_4) + (let-values () + (if (eof-object? c_129) + (let-values () + (let-values (((in54_0) in_43) + ((config55_0) config_47) + ((c56_0) c_129) + ((prefix-end-pos57_0) prefix-end-pos_0) + ((temp58_2) "expected ~a to close `~a`") + ((temp59_3) (closer-name overall-closer-ec_0 config_47)) + ((overall-opener-c60_0) overall-opener-c_0)) + (reader-error.1 + unsafe-undefined + c56_0 + prefix-end-pos57_0 + unsafe-undefined + in54_0 + config55_0 + temp58_2 + (list temp59_3 overall-opener-c60_0)))) + (if (char-closer? ec_8 config_47) + (let-values () + (let-values (((in61_1) in_43) + ((temp62_3) (reading-at config_47 open-line_0 open-col_0 open-pos_0)) + ((temp63_4) "~a") + ((temp64_3) (indentation-unexpected-closer-message ec_8 c_129 config_47))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in61_1 + temp62_3 + temp63_4 + (list temp64_3)))) + (let-values () + (let-values (((v_255) (read-one_8 c_129 in_43 (keep-comment elem-config_1)))) + (if (1/special-comment? v_255) + (let-values () + ((make-read-one-key+value + read-one_8 + overall-opener-c_0 + overall-closer-ec_0 + prefix-end-pos_0) + #f + in_43 + config_47)) + (let-values () + (let-values (((in65_0) in_43) + ((temp66_3) (reading-at config_47 open-line_0 open-col_0 open-pos_0)) + ((temp67_2) "expected ~a to start a hash pair") + ((temp68_3) (all-openers-str config_47))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in65_0 + temp66_3 + temp67_2 + (list temp68_3)))))))))) + (let-values () + (let-values (((k_58) (read-one_8 #f in_43 (disable-wrapping elem-config_1)))) + (let-values (((dot-c_0) (read-char/skip-whitespace-and-comments #f read-one_8 in_43 config_47))) + (let-values (((dot-line_1 dot-col_1 dot-pos_1) (port-next-location* in_43 dot-c_0))) + (let-values (((dot-ec_0) (effective-char dot-c_0 config_47))) + (let-values ((() + (begin + (if (if (eqv? dot-ec_0 '#\.) + (char-delimiter? + (let-values (((in_33) in_43) + ((skip-count_9) 0) + ((source_23) (read-config-source config_47))) + (let-values (((c_130) + (peek-char-or-special + in_33 + skip-count_9 + 'special + source_23))) + (if (eq? c_130 'special) (special1.1 'special) c_130))) + config_47) + #f) + (void) + (let-values () + (let-values (((in69_0) in_43) + ((temp70_0) + (reading-at config_47 dot-line_1 dot-col_1 dot-pos_1)) + ((dot-c71_0) dot-c_0) + ((temp72_0) "expected ~a and value for hash") + ((temp73_3) (dot-name config_47))) + (reader-error.1 + unsafe-undefined + dot-c71_0 + #f + unsafe-undefined + in69_0 + temp70_0 + temp72_0 + (list temp73_3))))) + (values)))) + (let-values (((v_59) (read-one_8 #f in_43 elem-config_1))) + (let-values (((closer-c_0) + (read-char/skip-whitespace-and-comments #f read-one_8 in_43 config_47))) + (let-values (((closer-line_0 closer-col_0 closer-pos_0) + (port-next-location* in_43 closer-c_0))) + (let-values (((closer-ec_0) (effective-char closer-c_0 config_47))) + (begin + (if (eqv? closer-ec_0 closer_4) + (void) + (let-values () + (let-values (((in74_0) in_43) + ((temp75_1) + (reading-at + config_47 + closer-line_0 + closer-col_0 + closer-pos_0)) + ((closer-c76_0) closer-c_0) + ((temp77_2) "expected ~a after value within a hash") + ((temp78_2) (closer-name closer_4 config_47))) + (reader-error.1 + unsafe-undefined + closer-c76_0 + #f + unsafe-undefined + in74_0 + temp75_1 + temp77_2 + (list temp78_2))))) + (cons (coerce-key k_58 elem-config_1) v_59)))))))))))))))))))))) + (define-values + (read-string.1) + (lambda (mode1_2 in3_0 config4_0) + (begin + 'read-string + (let-values (((in_40) in3_0)) + (let-values (((config_45) config4_0)) + (let-values (((mode_0) mode1_2)) + (let-values () + (let-values (((source_24) (read-config-source config_45))) + (let-values (((open-end-line_4 open-end-col_4 open-end-pos_4) (port-next-location in_40))) + (let-values (((accum-str_4) (accum-string-init! config_45))) + (let-values (((bad-end_0) + (lambda (c_51) + (begin + 'bad-end + (if (eof-object? c_51) + (let-values () + (let-values (((in6_2) in_40) + ((config7_0) config_45) + ((c8_2) c_51) + ((open-end-pos9_0) open-end-pos_4) + ((temp10_7) "expected a closing `\"`")) + (reader-error.1 + unsafe-undefined + c8_2 + open-end-pos9_0 + unsafe-undefined + in6_2 + config7_0 + temp10_7 + (list)))) + (let-values () + (let-values (((in11_0) in_40) + ((config12_0) config_45) + ((c13_0) c_51) + ((temp14_6) "found non-character while reading a ~a") + ((mode15_0) mode_0)) + (reader-error.1 + unsafe-undefined + c13_0 + #f + unsafe-undefined + in11_0 + config12_0 + temp14_6 + (list mode15_0))))))))) + (let-values ((() + (begin + ((letrec-values (((loop_119) + (lambda () + (begin + 'loop + (let-values (((c_18) + (let-values (((in_44) in_40) + ((source_25) source_24)) + (read-char-or-special + in_44 + special1.1 + source_25)))) + (if (not (char? c_18)) + (let-values () (bad-end_0 c_18)) + (if (char=? '#\\ c_18) + (let-values () + (let-values (((escaping-c_0) c_18)) + (let-values (((escaped-c_0) + (let-values (((in_25) in_40) + ((source_26) + source_24)) + (read-char-or-special + in_25 + special1.1 + source_26)))) + (let-values ((() + (begin + (if (not (char? escaped-c_0)) + (let-values () + (bad-end_0 escaped-c_0)) + (void)) + (values)))) + (let-values (((unknown-error_0) + (lambda () + (begin + 'unknown-error + (let-values (((in16_3) + in_40) + ((config17_3) + config_45) + ((temp18_7) + "unknown escape sequence `~a~a` in ~a") + ((escaping-c19_0) + escaping-c_0) + ((escaped-c20_0) + escaped-c_0) + ((mode21_0) + mode_0)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in16_3 + config17_3 + temp18_7 + (list + escaping-c19_0 + escaped-c20_0 + mode21_0))))))) + (begin + (let-values (((tmp_70) escaped-c_0)) + (let-values (((index_5) + (if (char? tmp_70) + (let-values (((codepoint_1) + (char->integer + tmp_70))) + (if (if (unsafe-fx>= + codepoint_1 + 10) + (unsafe-fx< + codepoint_1 + 121) + #f) + (let-values (((tbl_2) + '#(10 + 0 + 0 + 11 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 15 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 2 + 3 + 0 + 0 + 9 + 7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 0 + 0 + 0 + 8 + 0 + 4 + 14 + 6 + 0 + 13))) + (unsafe-vector*-ref + tbl_2 + (unsafe-fx- + codepoint_1 + 10))) + 0)) + 0))) + (if (unsafe-fx< index_5 7) + (if (unsafe-fx< index_5 3) + (if (unsafe-fx< index_5 1) + (let-values () + (unknown-error_0)) + (if (unsafe-fx< index_5 2) + (let-values () + (accum-string-add! + accum-str_4 + escaped-c_0)) + (let-values () + (accum-string-add! + accum-str_4 + '#\u0007)))) + (if (unsafe-fx< index_5 4) + (let-values () + (accum-string-add! + accum-str_4 + '#\backspace)) + (if (unsafe-fx< index_5 5) + (let-values () + (accum-string-add! + accum-str_4 + '#\tab)) + (if (unsafe-fx< index_5 6) + (let-values () + (accum-string-add! + accum-str_4 + '#\newline)) + (let-values () + (accum-string-add! + accum-str_4 + '#\vtab)))))) + (if (unsafe-fx< index_5 11) + (if (unsafe-fx< index_5 8) + (let-values () + (accum-string-add! + accum-str_4 + '#\page)) + (if (unsafe-fx< index_5 9) + (let-values () + (accum-string-add! + accum-str_4 + '#\return)) + (if (unsafe-fx< index_5 10) + (let-values () + (accum-string-add! + accum-str_4 + '#\u001B)) + (let-values () (void))))) + (if (unsafe-fx< index_5 13) + (if (unsafe-fx< index_5 12) + (let-values () + (let-values (((maybe-newline-c_0) + (let-values (((in_29) + in_40) + ((skip-count_10) + 0) + ((source_27) + source_24)) + (let-values (((c_131) + (peek-char-or-special + in_29 + skip-count_10 + 'special + source_27))) + (if (eq? + c_131 + 'special) + (special1.1 + 'special) + c_131))))) + (begin + (if (eqv? + maybe-newline-c_0 + '#\newline) + (let-values () + (consume-char + in_40 + maybe-newline-c_0)) + (void)) + (void)))) + (let-values () + (let-values (((pos_113) + (accum-string-count + accum-str_4))) + (let-values ((() + (begin + (accum-string-add! + accum-str_4 + escaped-c_0) + (values)))) + (let-values (((init-v_3) + (digit->number + escaped-c_0))) + (let-values (((v_164) + (let-values (((in22_2) + in_40) + ((config23_3) + config_45) + ((accum-str24_0) + accum-str_4) + ((temp25_5) + 8) + ((temp26_5) + 2) + ((init-v27_0) + init-v_3) + ((init-v28_0) + init-v_3)) + (read-digits.1 + temp25_5 + init-v27_0 + temp26_5 + init-v28_0 + in22_2 + config23_3 + accum-str24_0)))) + (begin + (if (<= v_164 255) + (void) + (let-values () + (let-values (((in29_1) + in_40) + ((config30_1) + config_45) + ((temp31_6) + "escape sequence `~a~a` is out of range in ~a") + ((escaping-c32_0) + escaping-c_0) + ((temp33_7) + (let-values (((accum-str35_0) + accum-str_4) + ((config36_0) + config_45) + ((pos37_0) + pos_113)) + (accum-string-get!.1 + pos37_0 + accum-str35_0 + config36_0))) + ((mode34_0) + mode_0)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in29_1 + config30_1 + temp31_6 + (list + escaping-c32_0 + temp33_7 + mode34_0))))) + (set-accum-string-count! + accum-str_4 + pos_113) + (accum-string-add! + accum-str_4 + (integer->char + v_164))))))))) + (if (unsafe-fx< index_5 14) + (let-values () + (let-values (((pos_15) + (accum-string-count + accum-str_4))) + (let-values (((v_90) + (let-values (((in38_0) + in_40) + ((config39_0) + config_45) + ((accum-str40_0) + accum-str_4) + ((temp41_5) + 16) + ((temp42_3) + 2)) + (read-digits.1 + temp41_5 + 0 + temp42_3 + #f + in38_0 + config39_0 + accum-str40_0)))) + (begin + (if (integer? v_90) + (void) + (let-values () + (no-hex-digits + in_40 + config_45 + v_90 + escaping-c_0 + escaped-c_0))) + (set-accum-string-count! + accum-str_4 + pos_15) + (accum-string-add! + accum-str_4 + (integer->char + v_90)))))) + (if (unsafe-fx< index_5 15) + (let-values () + (let-values ((() + (begin + (if (eq? + mode_0 + 'string) + (void) + (let-values () + (unknown-error_0))) + (values)))) + (let-values (((pos_106) + (accum-string-count + accum-str_4))) + (let-values (((v_97) + (let-values (((in43_1) + in_40) + ((config44_0) + config_45) + ((accum-str45_1) + accum-str_4) + ((temp46_3) + 16) + ((temp47_5) + 4)) + (read-digits.1 + temp46_3 + 0 + temp47_5 + #f + in43_1 + config44_0 + accum-str45_1)))) + (begin + (if (integer? + v_97) + (void) + (let-values () + (no-hex-digits + in_40 + config_45 + v_97 + escaping-c_0 + escaped-c_0))) + (if (let-values (((or-part_306) + (< + v_97 + 55296))) + (if or-part_306 + or-part_306 + (> + v_97 + 57343))) + (let-values () + (begin + (set-accum-string-count! + accum-str_4 + pos_106) + (accum-string-add! + accum-str_4 + (integer->char + v_97)))) + (let-values () + (let-values (((next!_0) + (lambda () + (begin + 'next! + (let-values (((next-c_1) + (let-values (((in_45) + in_40) + ((source_28) + source_24)) + (read-char-or-special + in_45 + special1.1 + source_28)))) + (begin + (if (char? + next-c_1) + (let-values () + (accum-string-add! + accum-str_4 + next-c_1)) + (void)) + next-c_1)))))) + (let-values (((v2_0) + (let-values (((next-c_2) + (next!_0))) + (if (char=? + next-c_2 + '#\\) + (let-values () + (let-values (((next-c_3) + (next!_0))) + (if (char=? + next-c_3 + '#\u) + (let-values () + (let-values (((v2_1) + (let-values (((in48_0) + in_40) + ((config49_1) + config_45) + ((accum-str50_0) + accum-str_4) + ((temp51_5) + 16) + ((temp52_4) + 4)) + (read-digits.1 + temp51_5 + 0 + temp52_4 + #f + in48_0 + config49_1 + accum-str50_0)))) + (if (integer? + v2_1) + (let-values () + (if (>= + v2_1 + 56320) + (if (<= + v2_1 + 57343) + v2_1 + #f) + #f)) + (let-values () + v2_1)))) + (let-values () + next-c_3)))) + (let-values () + next-c_2))))) + (if (integer? + v2_0) + (let-values () + (let-values (((combined-v_0) + (+ + (arithmetic-shift + (- + v_97 + 55296) + 10) + (- + v2_0 + 56320) + 65536))) + (if (> + combined-v_0 + 1114111) + (let-values () + (let-values (((in53_1) + in_40) + ((config54_1) + config_45) + ((temp55_1) + "escape sequence `~au~a` is out of range in string") + ((escaping-c56_0) + escaping-c_0) + ((temp57_0) + (let-values (((accum-str58_0) + accum-str_4) + ((config59_1) + config_45) + ((pos60_0) + pos_106)) + (accum-string-get!.1 + pos60_0 + accum-str58_0 + config59_1)))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in53_1 + config54_1 + temp55_1 + (list + escaping-c56_0 + temp57_0)))) + (let-values () + (begin + (set-accum-string-count! + accum-str_4 + pos_106) + (accum-string-add! + accum-str_4 + (integer->char + combined-v_0))))))) + (let-values () + (let-values (((in61_2) + in_40) + ((config62_0) + config_45) + ((v263_0) + v2_0) + ((temp64_4) + "bad or incomplete surrogate-style encoding at `~au~a`") + ((escaping-c65_0) + escaping-c_0) + ((temp66_4) + (let-values (((accum-str67_0) + accum-str_4) + ((config68_2) + config_45) + ((pos69_0) + pos_106)) + (accum-string-get!.1 + pos69_0 + accum-str67_0 + config68_2)))) + (reader-error.1 + unsafe-undefined + v263_0 + #f + unsafe-undefined + in61_2 + config62_0 + temp64_4 + (list + escaping-c65_0 + temp66_4)))))))))))))) + (let-values () + (let-values ((() + (begin + (if (eq? + mode_0 + 'string) + (void) + (let-values () + (unknown-error_0))) + (values)))) + (let-values (((pos_136) + (accum-string-count + accum-str_4))) + (let-values (((v_256) + (let-values (((in70_0) + in_40) + ((config71_0) + config_45) + ((accum-str72_0) + accum-str_4) + ((temp73_4) + 16) + ((temp74_1) + 8)) + (read-digits.1 + temp73_4 + 0 + temp74_1 + #f + in70_0 + config71_0 + accum-str72_0)))) + (begin + (if (integer? + v_256) + (void) + (let-values () + (no-hex-digits + in_40 + config_45 + v_256 + escaping-c_0 + escaped-c_0))) + (if (if (let-values (((or-part_62) + (< + v_256 + 55296))) + (if or-part_62 + or-part_62 + (> + v_256 + 57343))) + (<= + v_256 + 1114111) + #f) + (let-values () + (begin + (set-accum-string-count! + accum-str_4 + pos_136) + (accum-string-add! + accum-str_4 + (integer->char + v_256)))) + (let-values () + (let-values (((in75_0) + in_40) + ((config76_1) + config_45) + ((temp77_3) + "escape sequence `~aU~a` is out of range in string") + ((escaping-c78_0) + escaping-c_0) + ((temp79_3) + (let-values (((accum-str80_0) + accum-str_4) + ((config81_0) + config_45) + ((pos82_0) + pos_136)) + (accum-string-get!.1 + pos82_0 + accum-str80_0 + config81_0)))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in75_0 + config76_1 + temp77_3 + (list + escaping-c78_0 + temp79_3))))))))))))))))) + (loop_119))))))) + (if (char=? '#\" c_18) + (let-values () null) + (let-values () + (begin + (if (eq? mode_0 '|byte string|) + (let-values () + (if (byte? (char->integer c_18)) + (void) + (let-values () + (let-values (((in83_0) in_40) + ((config84_0) config_45) + ((temp85_4) + "character `~a` is out of range in byte string") + ((c86_0) c_18)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in83_0 + config84_0 + temp85_4 + (list c86_0)))))) + (void)) + (accum-string-add! accum-str_4 c_18) + (loop_119))))))))))) + loop_119)) + (values)))) + (let-values (((str_28) + (if (eq? mode_0 '|byte string|) + (let-values (((accum-str87_0) accum-str_4) ((config88_0) config_45)) + (accum-string-get-bytes!.1 0 accum-str87_0 config88_0)) + (let-values (((accum-str89_0) accum-str_4) ((config90_0) config_45)) + (accum-string-get!.1 0 accum-str89_0 config90_0))))) + (wrap str_28 in_40 config_45 str_28)))))))))))))) + (define-values + (read-here-string) + (lambda (in_46 config_48) + (begin + (let-values (((source_29) (read-config-source config_48))) + (let-values (((open-end-line_5 open-end-col_5 open-end-pos_5) (port-next-location in_46))) + (let-values (((accum-str_5) (accum-string-init! config_48))) + (let-values (((full-terminator_0) + (cons + '#\newline + ((letrec-values (((loop_120) + (lambda () + (begin + 'loop + (let-values (((c_70) + (let-values (((in_47) in_46) ((source_30) source_29)) + (read-char-or-special in_47 special1.1 source_30)))) + (if (eof-object? c_70) + (let-values () + (let-values (((in91_0) in_46) + ((config92_0) config_48) + ((c93_0) c_70) + ((temp94_2) + "found end-of-file after `#<<` and before a newline")) + (reader-error.1 + unsafe-undefined + c93_0 + #f + unsafe-undefined + in91_0 + config92_0 + temp94_2 + (list)))) + (if (not (char? c_70)) + (let-values () + (let-values (((in95_0) in_46) + ((config96_0) config_48) + ((c97_0) c_70) + ((temp98_2) + "found non-character while reading `#<<`")) + (reader-error.1 + unsafe-undefined + c97_0 + #f + unsafe-undefined + in95_0 + config96_0 + temp98_2 + (list)))) + (if (char=? c_70 '#\newline) + (let-values () null) + (let-values () (cons c_70 (loop_120))))))))))) + loop_120))))) + (let-values ((() + (begin + ((letrec-values (((loop_121) + (lambda (terminator_0 terminator-accum_0) + (begin + 'loop + (let-values (((c_132) + (let-values (((in_48) in_46) ((source_31) source_29)) + (read-char-or-special in_48 special1.1 source_31)))) + (if (eof-object? c_132) + (let-values () + (if (null? terminator_0) + (void) + (let-values () + (let-values (((in99_0) in_46) + ((config100_0) config_48) + ((c101_0) c_132) + ((open-end-pos102_0) open-end-pos_5) + ((temp103_2) + "found end-of-file before terminating `~a`") + ((temp104_2) + (list->string (cdr full-terminator_0)))) + (reader-error.1 + unsafe-undefined + c101_0 + open-end-pos102_0 + unsafe-undefined + in99_0 + config100_0 + temp103_2 + (list temp104_2)))))) + (if (not (char? c_132)) + (let-values () + (let-values (((in105_0) in_46) + ((config106_0) config_48) + ((c107_0) c_132) + ((temp108_1) + "found non-character while reading `#<<`")) + (reader-error.1 + unsafe-undefined + c107_0 + #f + unsafe-undefined + in105_0 + config106_0 + temp108_1 + (list)))) + (if (if (pair? terminator_0) + (char=? c_132 (car terminator_0)) + #f) + (let-values () + (loop_121 + (cdr terminator_0) + (cons (car terminator_0) terminator-accum_0))) + (if (if (null? terminator_0) (char=? c_132 '#\newline) #f) + (let-values () (void)) + (let-values () + (begin + (if (null? terminator-accum_0) + (void) + (let-values () + (begin + (let-values (((lst_245) + (reverse$1 terminator-accum_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_245))) + ((letrec-values (((for-loop_298) + (lambda (lst_322) + (begin + 'for-loop + (if (pair? lst_322) + (let-values (((c_133) + (unsafe-car + lst_322)) + ((rest_131) + (unsafe-cdr + lst_322))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (accum-string-add! + accum-str_5 + c_133)) + (values))))) + (values))))) + (if (not #f) + (for-loop_298 + rest_131) + (values)))) + (values)))))) + for-loop_298) + lst_245))) + (void)))) + (if (char=? c_132 '#\newline) + (let-values () + (loop_121 + (cdr full-terminator_0) + (list '#\newline))) + (let-values () + (begin + (accum-string-add! accum-str_5 c_132) + (loop_121 full-terminator_0 null))))))))))))))) + loop_121) + (cdr full-terminator_0) + null) + (values)))) + (let-values (((str_31) + (let-values (((accum-str109_0) accum-str_5) ((config110_0) config_48)) + (accum-string-get!.1 0 accum-str109_0 config110_0)))) + (wrap str_31 in_46 config_48 str_31)))))))))) + (define-values + (no-hex-digits) + (lambda (in_49 config_49 c_134 escaping-c_1 escaped-c_1) + (begin + (let-values (((in111_0) in_49) + ((config112_0) config_49) + ((c113_0) c_134) + ((temp114_2) "no hex digit following `~a~a`") + ((escaping-c115_0) escaping-c_1) + ((escaped-c116_0) escaped-c_1)) + (reader-error.1 + unsafe-undefined + c113_0 + #f + unsafe-undefined + in111_0 + config112_0 + temp114_2 + (list escaping-c115_0 escaped-c116_0)))))) + (define-values + (read-character) + (lambda (in_5 config_8) + (begin + (let-values (((c_49) + (let-values (((in_50) in_5) ((source_24) (read-config-source config_8))) + (read-char-or-special in_50 special1.1 source_24)))) + (let-values (((char_0) + (if (eof-object? c_49) + (let-values () + (let-values (((in1_7) in_5) + ((config2_6) config_8) + ((c3_5) c_49) + ((temp4_6) "expected a character after `#\\`")) + (reader-error.1 unsafe-undefined c3_5 #f unsafe-undefined in1_7 config2_6 temp4_6 (list)))) + (if (not (char? c_49)) + (let-values () + (let-values (((in5_1) in_5) + ((config6_0) config_8) + ((c7_1) c_49) + ((temp8_6) "found non-character after `#\\`")) + (reader-error.1 + unsafe-undefined + c7_1 + #f + unsafe-undefined + in5_1 + config6_0 + temp8_6 + (list)))) + (if (octal-digit? c_49) + (let-values () + (let-values (((c2_9) + (let-values (((in_51) in_5) + ((skip-count_11) 0) + ((source_1) (read-config-source config_8))) + (let-values (((c_62) + (peek-char-or-special + in_51 + skip-count_11 + 'special + source_1))) + (if (eq? c_62 'special) (special1.1 'special) c_62))))) + (if (if (char? c2_9) (octal-digit? c2_9) #f) + (let-values () + (let-values ((() (begin (consume-char in_5 c2_9) (values)))) + (let-values (((c3_6) + (let-values (((in_12) in_5) + ((source_32) (read-config-source config_8))) + (read-char-or-special in_12 special1.1 source_32)))) + (let-values (((v_48) + (if (if (char? c3_6) (octal-digit? c3_6) #f) + (let-values () + (+ + (arithmetic-shift (digit->number c_49) 6) + (arithmetic-shift (digit->number c2_9) 3) + (digit->number c3_6))) + (let-values () #f)))) + (begin + (if (if v_48 (<= v_48 255) #f) + (void) + (let-values () + (let-values (((in9_4) in_5) + ((config10_4) config_8) + ((c311_0) c3_6) + ((temp12_4) "bad character constant `#\\~a~a~a`") + ((c13_1) c_49) + ((c214_0) c2_9) + ((temp15_7) (if (char? c3_6) c3_6 ""))) + (reader-error.1 + unsafe-undefined + c311_0 + #f + unsafe-undefined + in9_4 + config10_4 + temp12_4 + (list c13_1 c214_0 temp15_7))))) + (integer->char v_48)))))) + (let-values () c_49)))) + (if (let-values (((or-part_148) (char=? c_49 '#\u))) + (if or-part_148 or-part_148 (char=? c_49 '#\U))) + (let-values () + (let-values (((accum-str_6) (accum-string-init! config_8))) + (let-values (((v_35) + (let-values (((in16_4) in_5) + ((config17_4) config_8) + ((accum-str18_0) accum-str_6) + ((temp19_6) 16) + ((temp20_7) (if (char=? c_49 '#\u) 4 8))) + (read-digits.1 + temp19_6 + 0 + temp20_7 + #f + in16_4 + config17_4 + accum-str18_0)))) + (if (integer? v_35) + (let-values () + (if (if (let-values (((or-part_275) (< v_35 55296))) + (if or-part_275 or-part_275 (> v_35 57343))) + (<= v_35 1114111) + #f) + (let-values () + (begin (accum-string-abandon! accum-str_6 config_8) (integer->char v_35))) + (let-values () + (let-values (((in21_3) in_5) + ((config22_3) config_8) + ((temp23_7) "bad character constant `#\\u~a`") + ((temp24_6) + (let-values (((accum-str25_0) accum-str_6) + ((config26_2) config_8)) + (accum-string-get!.1 0 accum-str25_0 config26_2)))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in21_3 + config22_3 + temp23_7 + (list temp24_6)))))) + (let-values () (begin (accum-string-abandon! accum-str_6 config_8) c_49)))))) + (if (char-alphabetic? c_49) + (let-values () + (let-values (((next-c_4) + (let-values (((in_52) in_5) + ((skip-count_12) 0) + ((source_33) (read-config-source config_8))) + (let-values (((c_67) + (peek-char-or-special + in_52 + skip-count_12 + 'special + source_33))) + (if (eq? c_67 'special) (special1.1 'special) c_67))))) + (if (if (char? next-c_4) (char-alphabetic? next-c_4) #f) + (let-values () + (let-values (((accum-str_7) (accum-string-init! config_8))) + (let-values ((() (begin (accum-string-add! accum-str_7 c_49) (values)))) + (let-values ((() (begin (accum-string-add! accum-str_7 next-c_4) (values)))) + (let-values ((() (begin (consume-char in_5 next-c_4) (values)))) + (let-values ((() + (begin + ((letrec-values (((loop_122) + (lambda () + (begin + 'loop + (let-values (((next-c_5) + (let-values (((in_4) + in_5) + ((skip-count_13) + 0) + ((source_34) + (read-config-source + config_8))) + (let-values (((c_135) + (peek-char-or-special + in_4 + skip-count_13 + 'special + source_34))) + (if (eq? + c_135 + 'special) + (special1.1 + 'special) + c_135))))) + (if (if (char? next-c_5) + (char-alphabetic? + next-c_5) + #f) + (let-values () + (begin + (accum-string-add! + accum-str_7 + next-c_5) + (consume-char + in_5 + next-c_5) + (loop_122))) + (void))))))) + loop_122)) + (values)))) + (let-values (((name_71) + (string-foldcase + (let-values (((accum-str27_0) accum-str_7) + ((config28_0) config_8)) + (accum-string-get!.1 0 accum-str27_0 config28_0))))) + (let-values (((tmp_71) name_71)) + (if (if (equal? tmp_71 "nul") #t (equal? tmp_71 "null")) + (let-values () '#\nul) + (if (equal? tmp_71 "backspace") + (let-values () '#\backspace) + (if (equal? tmp_71 "tab") + (let-values () '#\tab) + (if (if (equal? tmp_71 "newline") + #t + (equal? tmp_71 "linefeed")) + (let-values () '#\newline) + (if (equal? tmp_71 "vtab") + (let-values () '#\vtab) + (if (equal? tmp_71 "page") + (let-values () '#\page) + (if (equal? tmp_71 "return") + (let-values () '#\return) + (if (equal? tmp_71 "space") + (let-values () '#\space) + (if (equal? tmp_71 "rubout") + (let-values () '#\rubout) + (let-values () + (let-values (((in29_2) in_5) + ((config30_2) config_8) + ((temp31_5) + "bad character constant `#\\~a`") + ((name32_1) name_71)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in29_2 + config30_2 + temp31_5 + (list name32_1))))))))))))))))))))) + (let-values () c_49)))) + (let-values () c_49)))))))) + (wrap char_0 in_5 config_8 char_0)))))) + (define-values + (read-quote) + (lambda (read-one_3 sym_26 desc_0 c_45 in_50 config_22) + (begin + (let-values (((wrapped-sym_0) (wrap sym_26 in_50 config_22 c_45))) + (let-values (((end-line_1 end-col_1 end-pos_4) (port-next-location in_50))) + (let-values (((e_94) (read-one_3 #f in_50 config_22))) + (begin + (if (eof-object? e_94) + (let-values () + (let-values (((in1_8) in_50) + ((config2_7) config_22) + ((e3_0) e_94) + ((end-pos4_1) end-pos_4) + ((temp5_8) "expected an element for ~a, found end-of-file") + ((desc6_0) desc_0)) + (reader-error.1 + unsafe-undefined + e3_0 + end-pos4_1 + unsafe-undefined + in1_8 + config2_7 + temp5_8 + (list desc6_0)))) + (void)) + (wrap (list wrapped-sym_0 e_94) in_50 config_22 #f)))))))) + (define-values + (read-delimited-constant) + (lambda (init-c_1 can-match?_0 chars_0 val_87 in_50 config_22) + (begin + (let-values (((accum-str_8) (accum-string-init! config_22))) + (begin + (accum-string-add! accum-str_8 init-c_1) + ((letrec-values (((loop_123) + (lambda (chars_1) + (begin + 'loop + (let-values (((c_54) + (let-values (((in_53) in_50) + ((skip-count_14) 0) + ((source_4) (read-config-source config_22))) + (let-values (((c_55) + (peek-char-or-special + in_53 + skip-count_14 + 'special + source_4))) + (if (eq? c_55 'special) (special1.1 'special) c_55))))) + (if (char-delimiter? c_54 config_22) + (let-values () + (if (null? chars_1) + (void) + (let-values () + (let-values (((in1_9) in_50) + ((config2_8) config_22) + ((c3_7) c_54) + ((temp4_7) "bad syntax `#~a`") + ((temp5_9) + (let-values (((accum-str6_0) accum-str_8) + ((config7_1) config_22)) + (accum-string-get!.1 0 accum-str6_0 config7_1)))) + (reader-error.1 + unsafe-undefined + c3_7 + #f + unsafe-undefined + in1_9 + config2_8 + temp4_7 + (list temp5_9)))))) + (if (null? chars_1) + (let-values () + (begin + (accum-string-add! accum-str_8 c_54) + (let-values (((in8_1) in_50) + ((config9_1) config_22) + ((temp10_8) "bad syntax `#~a`") + ((temp11_5) + (let-values (((accum-str12_0) accum-str_8) + ((config13_1) config_22)) + (accum-string-get!.1 0 accum-str12_0 config13_1)))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in8_1 + config9_1 + temp10_8 + (list temp11_5))))) + (if (if can-match?_0 (char=? c_54 (car chars_1)) #f) + (let-values () + (begin + (consume-char in_50 c_54) + (accum-string-add! accum-str_8 c_54) + (loop_123 (cdr chars_1)))) + (let-values () + (begin + (consume-char/special in_50 config_22 c_54) + (accum-string-add! accum-str_8 c_54) + (let-values (((in14_1) in_50) + ((config15_2) config_22) + ((temp16_7) "bad syntax `#~a`") + ((temp17_5) + (let-values (((accum-str18_1) accum-str_8) + ((config19_1) config_22)) + (accum-string-get!.1 0 accum-str18_1 config19_1)))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in14_1 + config15_2 + temp16_7 + (list temp17_5))))))))))))) + loop_123) + chars_0) + (wrap + val_87 + in_50 + config_22 + (let-values (((accum-str20_0) accum-str_8) ((config21_1) config_22)) + (accum-string-get!.1 0 accum-str20_0 config21_1)))))))) + (define-values + (read-box) + (lambda (read-one_3 dispatch-c_1 in_6 config_15) + (begin + (let-values ((() + (begin + (if (check-parameter 1/read-accept-box config_15) + (void) + (let-values () + (let-values (((in1_7) in_6) + ((config2_6) config_15) + ((temp3_8) "`~a&` forms not enabled") + ((dispatch-c4_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in1_7 + config2_6 + temp3_8 + (list dispatch-c4_0))))) + (values)))) + (let-values (((open-end-line_6 open-end-col_6 open-end-pos_6) (port-next-location in_6))) + (let-values (((e_95) (read-one_3 #f in_6 (next-readtable config_15)))) + (begin + (if (eof-object? e_95) + (let-values () + (let-values (((in5_1) in_6) + ((config6_0) config_15) + ((e7_1) e_95) + ((open-end-pos8_0) open-end-pos_6) + ((temp9_7) "expected an element for `~a&` box, found end-of-file") + ((dispatch-c10_0) dispatch-c_1)) + (reader-error.1 + unsafe-undefined + e7_1 + open-end-pos8_0 + unsafe-undefined + in5_1 + config6_0 + temp9_7 + (list dispatch-c10_0)))) + (void)) + (wrap (if (read-config-for-syntax? config_15) (box-immutable e_95) (box e_95)) in_6 config_15 #f)))))))) + (define-values + (read-regexp) + (lambda (mode-c_0 accum-str_9 in_6 config_15) + (begin + (let-values (((c3_8) + (let-values (((in_20) in_6) ((source_35) (read-config-source config_15))) + (read-char-or-special in_20 special1.1 source_35)))) + (let-values (((no-wrap-config_0) (disable-wrapping config_15))) + (let-values (((rx_0) + (let-values (((tmp_72) c3_8)) + (if (equal? tmp_72 '#\") + (let-values () + (let-values ((() (begin (accum-string-abandon! accum-str_9 config_15) (values)))) + (let-values (((str_32) + (let-values (((in1_8) in_6) ((no-wrap-config2_0) no-wrap-config_0)) + (read-string.1 'string in1_8 no-wrap-config2_0)))) + (catch-and-reraise-as-reader/proc + in_6 + config_15 + (lambda () ((if (char=? mode-c_0 '#\r) regexp pregexp) str_32)))))) + (if (equal? tmp_72 '#\#) + (let-values () + (let-values ((() (begin (accum-string-add! accum-str_9 c3_8) (values)))) + (let-values (((c4_1) + (let-values (((in_21) in_6) + ((source_36) (read-config-source config_15))) + (read-char-or-special in_21 special1.1 source_36)))) + (let-values (((tmp_73) c4_1)) + (if (equal? tmp_73 '#\") + (let-values () + (let-values ((() + (begin (accum-string-abandon! accum-str_9 config_15) (values)))) + (let-values (((bstr_24) + (let-values (((in3_1) in_6) + ((no-wrap-config4_0) no-wrap-config_0) + ((temp5_10) '|byte string|)) + (read-string.1 temp5_10 in3_1 no-wrap-config4_0)))) + (catch-and-reraise-as-reader/proc + in_6 + config_15 + (lambda () + ((if (char=? mode-c_0 '#\r) byte-regexp byte-pregexp) bstr_24)))))) + (let-values () + (let-values (((in6_3) in_6) + ((config7_2) config_15) + ((c48_0) c4_1) + ((temp9_8) "expected `\"` after `~a`") + ((temp10_9) + (let-values (((accum-str11_0) accum-str_9) + ((config12_1) config_15)) + (accum-string-get!.1 0 accum-str11_0 config12_1)))) + (reader-error.1 + unsafe-undefined + c48_0 + #f + unsafe-undefined + in6_3 + config7_2 + temp9_8 + (list temp10_9))))))))) + (let-values () + (let-values (((in13_1) in_6) + ((config14_1) config_15) + ((c315_0) c3_8) + ((temp16_8) "expected `\"` or `#` after `~a`") + ((temp17_6) + (let-values (((accum-str18_2) accum-str_9) ((config19_2) config_15)) + (accum-string-get!.1 0 accum-str18_2 config19_2)))) + (reader-error.1 + unsafe-undefined + c315_0 + #f + unsafe-undefined + in13_1 + config14_1 + temp16_8 + (list temp17_6))))))))) + (wrap rx_0 in_6 config_15 #f))))))) + (define-values + (read-extension-reader) + (lambda (read-one_9 read-recur_0 dispatch-c_2 in_54 config_24) + (begin + (let-values (((extend-str_0) + (read-extension-prefix (cons dispatch-c_2 '(#\r #\e)) '(#\a #\d #\e #\r) in_54 config_24))) + (let-values ((() + (begin + (if (check-parameter 1/read-accept-reader config_24) + (void) + (let-values () + (let-values (((in46_1) in_54) + ((config47_1) config_24) + ((temp48_5) "`~a` not enabled") + ((extend-str49_0) extend-str_0)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in46_1 + config47_1 + temp48_5 + (list extend-str49_0))))) + (values)))) + (let-values (((mod-path-wrapped_0) (read-one_9 #f in_54 (next-readtable config_24)))) + (begin + (if (eof-object? mod-path-wrapped_0) + (let-values () + (let-values (((in50_1) in_54) + ((config51_1) config_24) + ((mod-path-wrapped52_0) mod-path-wrapped_0) + ((temp53_2) "expected a datum after `~a`, found end-of-file") + ((extend-str54_0) extend-str_0)) + (reader-error.1 + unsafe-undefined + mod-path-wrapped52_0 + #f + unsafe-undefined + in50_1 + config51_1 + temp53_2 + (list extend-str54_0)))) + (void)) + (let-values (((temp41_6) ((read-config-coerce config_24) #f mod-path-wrapped_0 #f)) + ((read-recur42_0) read-recur_0) + ((in43_2) in_54) + ((config44_1) config_24) + ((mod-path-wrapped45_0) mod-path-wrapped_0)) + (read-extension.1 + #f + mod-path-wrapped45_0 + #f + '|#reader| + temp41_6 + read-recur42_0 + in43_2 + config44_1))))))))) + (define-values + (read-extension-lang.1) + (lambda (get-info?1_0 read-recur3_0 dispatch-c4_1 in5_2 config6_1) + (begin + 'read-extension-lang + (let-values (((read-recur_1) read-recur3_0)) + (let-values (((dispatch-c_3) dispatch-c4_1)) + (let-values (((in_55) in5_2)) + (let-values (((config_50) config6_1)) + (let-values (((get-info?_0) get-info?1_0)) + (let-values () + (let-values (((extend-str_1) + (read-extension-prefix (cons dispatch-c_3 '(#\l)) '(#\a #\n #\g) in_55 config_50))) + (let-values (((c_136) + (let-values (((in_56) in_55) ((source_17) (read-config-source config_50))) + (read-char-or-special in_56 special1.1 source_17)))) + (begin + (if (eqv? c_136 '#\space) + (void) + (let-values () + (let-values (((in62_0) in_55) + ((config63_0) config_50) + ((temp64_5) "expected a single space after `~a`") + ((extend-str65_0) extend-str_1)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in62_0 + config63_0 + temp64_5 + (list extend-str65_0))))) + (let-values (((extend-str55_0) extend-str_1) + ((read-recur56_0) read-recur_1) + ((in57_1) in_55) + ((config58_1) config_50) + ((temp59_4) #t) + ((temp60_5) '|#lang|) + ((get-info?61_0) get-info?_0)) + (read-lang.1 + get-info?61_0 + #f + temp59_4 + temp60_5 + extend-str55_0 + read-recur56_0 + in57_1 + config58_1)))))))))))))) + (define-values + (read-extension-#!.1) + (lambda (get-info?8_0 read-recur10_0 dispatch-c11_1 in12_1 config13_2) + (begin + 'read-extension-#! + (let-values (((read-recur_2) read-recur10_0)) + (let-values (((dispatch-c_4) dispatch-c11_1)) + (let-values (((in_57) in12_1)) + (let-values (((config_51) config13_2)) + (let-values (((get-info?_1) get-info?8_0)) + (let-values () + (let-values (((c_137) + (let-values (((in_58) in_57) ((source_37) (read-config-source config_51))) + (read-char-or-special in_58 special1.1 source_37)))) + (begin + (if (if (char? c_137) (char-lang-nonsep? c_137) #f) + (void) + (let-values () + (let-values (((in73_0) in_57) + ((config74_0) config_51) + ((temp75_2) + (if (char? c_137) (string dispatch-c_4 '#\! c_137) (string dispatch-c_4 '#\!)))) + (bad-syntax-error.1 '#\x in73_0 config74_0 temp75_2)))) + (let-values (((temp66_5) (string dispatch-c_4 '#\!)) + ((read-recur67_0) read-recur_2) + ((in68_0) in_57) + ((config69_0) config_51) + ((c70_0) c_137) + ((temp71_3) '|#!|) + ((get-info?72_0) get-info?_1)) + (read-lang.1 + get-info?72_0 + c70_0 + #f + temp71_3 + temp66_5 + read-recur67_0 + in68_0 + config69_0))))))))))))) + (define-values + (read-lang.1) + (lambda (get-info?17_0 init-c15_0 one-space?16_0 who18_0 extend-str23_0 read-recur24_0 in25_2 config26_3) + (begin + 'read-lang + (let-values (((extend-str_2) extend-str23_0)) + (let-values (((read-recur_3) read-recur24_0)) + (let-values (((in_59) in25_2)) + (let-values (((config_52) config26_3)) + (let-values (((init-c_15) init-c15_0)) + (let-values (((one-space?_0) one-space?16_0)) + (let-values (((get-info?_2) get-info?17_0)) + (let-values (((who_30) who18_0)) + (let-values () + (let-values ((() + (begin + (if (if (check-parameter 1/read-accept-reader config_52) + (check-parameter 1/read-accept-lang config_52) + #f) + (void) + (let-values () + (let-values (((in83_1) in_59) + ((config84_1) config_52) + ((temp85_5) "`~a` not enabled\n possible reason: ~a") + ((extend-str86_0) extend-str_2) + ((temp87_0) + (string-append + "not allowed again inside a module that already starts `#lang`," + " or not enabled for interactive evaluation"))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in83_1 + config84_1 + temp85_5 + (list extend-str86_0 temp87_0))))) + (values)))) + (let-values (((line_10 col_9 pos_137) (port-next-location in_59))) + (let-values (((accum-str_10) (accum-string-init! config_52))) + (let-values ((() + (begin + (if init-c_15 + (let-values () (accum-string-add! accum-str_10 init-c_15)) + (void)) + (values)))) + (let-values ((() + (begin + ((letrec-values (((loop_124) + (lambda () + (begin + 'loop + (let-values (((c_14) + (let-values (((in_60) in_59) + ((skip-count_15) 0) + ((source_38) + (read-config-source + config_52))) + (let-values (((c_138) + (peek-char-or-special + in_60 + skip-count_15 + 'special + source_38))) + (if (eq? c_138 'special) + (special1.1 'special) + c_138))))) + (if (eof-object? c_14) + (let-values () (void)) + (if (not (char? c_14)) + (let-values () + (begin + (consume-char/special + in_59 + config_52 + c_14) + (let-values (((in88_0) in_59) + ((config89_0) config_52) + ((c90_0) c_14) + ((temp91_3) + "found non-character while reading `#~a`") + ((extend-str92_0) + extend-str_2)) + (reader-error.1 + unsafe-undefined + c90_0 + #f + unsafe-undefined + in88_0 + config89_0 + temp91_3 + (list extend-str92_0))))) + (if (if (char-whitespace? c_14) + (positive? + (accum-string-count accum-str_10)) + #f) + (let-values () (void)) + (if (if one-space?_0 + (char=? c_14 '#\space) + #f) + (let-values () + (let-values (((in93_0) in_59) + ((config94_0) config_52) + ((temp95_0) + "expected a single space after `~a`") + ((extend-str96_0) + extend-str_2)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in93_0 + config94_0 + temp95_0 + (list extend-str96_0)))) + (if (let-values (((or-part_53) + (char-lang-nonsep? + c_14))) + (if or-part_53 + or-part_53 + (char=? '#\/ c_14))) + (let-values () + (begin + (consume-char in_59 c_14) + (accum-string-add! + accum-str_10 + c_14) + (loop_124))) + (let-values () + (begin + (consume-char in_59 c_14) + (let-values (((in97_0) in_59) + ((config98_0) + config_52) + ((temp99_0) + (string-append + "expected only alphanumeric, `-`, `+`, `_`, or `/`" + " characters for `~a`, found `~a`")) + ((extend-str100_0) + extend-str_2) + ((c101_1) c_14)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in97_0 + config98_0 + temp99_0 + (list + extend-str100_0 + c101_1))))))))))))))) + loop_124)) + (values)))) + (let-values (((lang-str_0) + (let-values (((accum-str102_0) accum-str_10) ((config103_0) config_52)) + (accum-string-get!.1 0 accum-str102_0 config103_0)))) + (let-values ((() + (begin + (if (equal? lang-str_0 "") + (let-values () + (let-values (((in104_0) in_59) + ((config105_0) config_52) + ((temp106_2) + "expected a non-empty sequence of alphanumeric, `-`, `+`, `_`, or `/` after `~a~a`") + ((extend-str107_0) extend-str_2) + ((temp108_2) (if one-space?_0 " " ""))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in104_0 + config105_0 + temp106_2 + (list extend-str107_0 temp108_2)))) + (void)) + (values)))) + (let-values ((() + (begin + (if (char=? '#\/ (string-ref lang-str_0 0)) + (let-values () + (let-values (((in109_0) in_59) + ((config110_1) config_52) + ((temp111_0) + "expected a name that does not start `/` after `~a`") + ((extend-str112_0) extend-str_2)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in109_0 + config110_1 + temp111_0 + (list extend-str112_0)))) + (void)) + (values)))) + (let-values ((() + (begin + (if (char=? + '#\/ + (string-ref lang-str_0 (sub1 (string-length lang-str_0)))) + (let-values () + (let-values (((in113_0) in_59) + ((config114_0) config_52) + ((temp115_1) + "expected a name that does not end `/` after `~a`") + ((extend-str116_0) extend-str_2)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in113_0 + config114_0 + temp115_1 + (list extend-str116_0)))) + (void)) + (values)))) + (let-values (((submod-path_0) + (list* 'submod (string->symbol lang-str_0) '(reader)))) + (let-values (((reader-path_0) + (string->symbol (string-append lang-str_0 "/lang/reader")))) + (let-values (((submod-path76_0) submod-path_0) + ((reader-path77_0) reader-path_0) + ((read-recur78_0) read-recur_3) + ((in79_1) in_59) + ((temp80_4) (reading-at config_52 line_10 col_9 pos_137)) + ((get-info?81_0) get-info?_2) + ((who82_1) who_30)) + (read-extension.1 + get-info?81_0 + unsafe-undefined + submod-path76_0 + who82_1 + reader-path77_0 + read-recur78_0 + in79_1 + temp80_4))))))))))))))))))))))))) + (define-values + (char-lang-nonsep?) + (lambda (c_42) + (begin + (if (< (char->integer c_42) 128) + (let-values (((or-part_504) (char-alphabetic? c_42))) + (if or-part_504 + or-part_504 + (let-values (((or-part_505) (char-numeric? c_42))) + (if or-part_505 + or-part_505 + (let-values (((or-part_506) (char=? '#\- c_42))) + (if or-part_506 + or-part_506 + (let-values (((or-part_507) (char=? '#\+ c_42))) + (if or-part_507 or-part_507 (char=? '#\_ c_42))))))))) + #f)))) + (define-values + (read-extension-prefix) + (lambda (already_0 wanted_0 in_61 config_53) + (begin + (let-values (((accum-str_11) (accum-string-init! config_53))) + (begin + (let-values (((lst_323) already_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_323))) + ((letrec-values (((for-loop_299) + (lambda (lst_324) + (begin + 'for-loop + (if (pair? lst_324) + (let-values (((c_139) (unsafe-car lst_324)) ((rest_188) (unsafe-cdr lst_324))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (accum-string-add! accum-str_11 c_139)) + (values))))) + (values))))) + (if (not #f) (for-loop_299 rest_188) (values)))) + (values)))))) + for-loop_299) + lst_323))) + (void) + ((letrec-values (((loop_125) + (lambda (wanted_1) + (begin + 'loop + (if (null? wanted_1) + (void) + (let-values () + (let-values (((c_140) + (let-values (((in_62) in_61) + ((source_39) (read-config-source config_53))) + (read-char-or-special in_62 special1.1 source_39)))) + (begin + (if (char? c_140) (let-values () (accum-string-add! accum-str_11 c_140)) (void)) + (if (eqv? c_140 (car wanted_1)) + (void) + (let-values () + (let-values (((in119_0) in_61) + ((config120_0) config_53) + ((temp121_1) + (let-values (((accum-str123_0) accum-str_11) + ((config124_0) config_53)) + (accum-string-get!.1 0 accum-str123_0 config124_0))) + ((c122_0) c_140)) + (bad-syntax-error.1 c122_0 in119_0 config120_0 temp121_1)))) + (loop_125 (cdr wanted_1)))))))))) + loop_125) + wanted_0) + (let-values (((accum-str117_0) accum-str_11) ((config118_0) config_53)) + (accum-string-get!.1 0 accum-str117_0 config118_0))))))) + (define-values + (read-extension.1) + (lambda (get-info?30_0 + mod-path-wrapped29_0 + try-first-mod-path28_0 + who31_0 + mod-path-datum36_0 + read-recur37_0 + in38_1 + config39_1) + (begin + 'read-extension + (let-values (((try-first-mod-path_0) try-first-mod-path28_0)) + (let-values (((mod-path-datum_0) mod-path-datum36_0)) + (let-values (((read-recur_4) read-recur37_0)) + (let-values (((in_63) in38_1)) + (let-values (((config_54) config39_1)) + (let-values (((mod-path-wrapped_1) + (if (eq? mod-path-wrapped29_0 unsafe-undefined) + ((read-config-coerce config_54) + #t + mod-path-datum_0 + (let-values (((in125_0) in_63) ((config126_0) config_54)) + (port+config->srcloc.1 #f in125_0 config126_0))) + mod-path-wrapped29_0))) + (let-values (((get-info?_3) get-info?30_0)) + (let-values (((who_31) who31_0)) + (let-values () + (let-values ((() (begin (force-parameters! config_54) (values)))) + (let-values (((guard_0) (1/current-reader-guard))) + (let-values (((mod-path_27) + (let-values (((or-part_116) + (if try-first-mod-path_0 + (let-values (((mod-path_28) (guard_0 try-first-mod-path_0))) + (if ((read-config-module-declared? config_54) + try-first-mod-path_0) + mod-path_28 + #f)) + #f))) + (if or-part_116 or-part_116 (guard_0 mod-path-datum_0))))) + ((read-config-call-with-root-namespace config_54) + (lambda () + (let-values (((for-syntax?_8) (read-config-for-syntax? config_54))) + (let-values (((dynamic-require_3) (read-config-dynamic-require config_54))) + (let-values (((no-value_0) (gensym))) + (let-values (((extension_0) + (if get-info?_3 + (let-values () + (dynamic-require_3 + mod-path_27 + 'get-info + (lambda () no-value_0))) + (let-values () + (dynamic-require_3 + mod-path_27 + (if for-syntax?_8 'read-syntax 'read)))))) + (if (eq? extension_0 no-value_0) + (let-values () #f) + (let-values () + (let-values (((result-v_1) + (if (if for-syntax?_8 (not get-info?_3) #f) + (let-values () + (if (procedure-arity-includes? extension_0 6) + (let-values () + (with-continuation-mark + current-read-config + config_54 + (let-values () + (extension_0 + (read-config-source config_54) + in_63 + mod-path-wrapped_1 + (read-config-line config_54) + (read-config-col config_54) + (read-config-pos config_54))))) + (if (procedure-arity-includes? extension_0 2) + (let-values () + (with-continuation-mark + current-read-config + config_54 + (let-values () + (extension_0 + (read-config-source config_54) + in_63)))) + (let-values () + (raise-argument-error + who_31 + "(or/c (procedure-arity-includes?/c 2) (procedure-arity-includes?/c 6))" + extension_0))))) + (let-values () + (if (procedure-arity-includes? extension_0 5) + (let-values () + (with-continuation-mark + current-read-config + config_54 + (let-values () + (extension_0 + in_63 + mod-path-wrapped_1 + (read-config-line config_54) + (read-config-col config_54) + (read-config-pos config_54))))) + (if get-info?_3 + (let-values () + (raise-argument-error + who_31 + "(procedure-arity-includes?/c 5)" + extension_0)) + (if (procedure-arity-includes? extension_0 1) + (let-values () + (with-continuation-mark + current-read-config + config_54 + (let-values () (extension_0 in_63)))) + (let-values () + (raise-argument-error + who_31 + "(or/c (procedure-arity-includes?/c 1) (procedure-arity-includes?/c 5))" + extension_0))))))))) + (if get-info?_3 + (let-values () + (begin + (if (if (procedure? result-v_1) + (procedure-arity-includes? result-v_1 2) + #f) + (void) + (let-values () + (raise-result-error + 'read-language + "(procedure-arity-includes?/c 2)" + result-v_1))) + result-v_1)) + (if (1/special-comment? result-v_1) + (let-values () (read-recur_4 #f in_63 config_54)) + (let-values () + (coerce result-v_1 in_63 config_54)))))))))))))))))))))))))))) + (define-values + (read-language/get-info) + (lambda (read-one_3 in_3 config_7 fail-k_5) + (begin + (let-values (((c_38) (read-char/skip-whitespace-and-comments #f read-one_3 in_3 config_7))) + (let-values (((line_8 col_7 pos_132) (port-next-location* in_3 c_38))) + (let-values (((l-config_0) + (override-parameter 1/read-accept-reader (reading-at config_7 line_8 col_7 pos_132) #t))) + (if (not (eqv? c_38 '#\#)) + (let-values () (if fail-k_5 (fail-k_5) (lang-error in_3 l-config_0 "" c_38))) + (let-values () + (let-values (((c2_10) + (let-values (((in_53) in_3) ((source_40) (read-config-source l-config_0))) + (read-char-or-special in_53 special1.1 source_40)))) + (if (eqv? c2_10 '#\l) + (let-values () + (let-values (((read-one1_0) read-one_3) + ((c2_11) c_38) + ((in3_2) in_3) + ((l-config4_0) l-config_0) + ((temp5_5) #t)) + (read-extension-lang.1 temp5_5 read-one1_0 c2_11 in3_2 l-config4_0))) + (if (eqv? c2_10 '#\!) + (let-values () + (let-values (((read-one6_0) read-one_3) + ((c7_2) c_38) + ((in8_2) in_3) + ((l-config9_0) l-config_0) + ((temp10_10) #t)) + (read-extension-#!.1 temp10_10 read-one6_0 c7_2 in8_2 l-config9_0))) + (let-values () + (if fail-k_5 (fail-k_5) (lang-error in_3 l-config_0 (string c_38) c2_10)))))))))))))) + (define-values + (lang-error) + (lambda (in_12 config_55 prefix_9 c_141) + (begin + (let-values (((add-prefix_0) + (lambda (s_498) + (begin + 'add-prefix + (if (string=? prefix_9 "") (format "`~a` followed by ~a" prefix_9 s_498) s_498))))) + (let-values (((in11_1) in_12) + ((config12_2) config_55) + ((c13_2) c_141) + ((temp14_7) 'read-language) + ((temp15_8) + (string-append + "expected (after whitespace and comments) `#lang ` or `#!` followed" + " immediately by a language name, found ~a")) + ((temp16_9) + (if (eof-object? c_141) + (let-values () (add-prefix_0 "end-of-file")) + (if (not (char? c_141)) + (let-values () (add-prefix_0 "non-character")) + (let-values () (format "`~a~a`" prefix_9 c_141)))))) + (reader-error.1 unsafe-undefined c13_2 #f temp14_7 in11_1 config12_2 temp15_8 (list temp16_9))))))) + (define-values + (read.1) + (lambda (call-with-root-namespace10_1 + coerce13_1 + coerce-key14_1 + dynamic-require11_1 + for-syntax?8_0 + init-c2_0 + keep-comment?15_1 + local-graph?6_0 + module-declared?12_1 + next-readtable3_0 + read-compiled9_1 + readtable4_0 + recursive?5_0 + source7_0 + wrap1_0 + in31_2) + (begin + 'read + (let-values (((in_64) in31_2)) + (let-values (((wrap_9) wrap1_0)) + (let-values (((init-c_16) init-c2_0)) + (let-values (((next-readtable_0) + (if (eq? next-readtable3_0 unsafe-undefined) (1/current-readtable) next-readtable3_0))) + (let-values (((readtable_3) (if (eq? readtable4_0 unsafe-undefined) next-readtable_0 readtable4_0))) + (let-values (((recursive?_0) recursive?5_0)) + (let-values (((local-graph?_1) local-graph?6_0)) + (let-values (((source_5) source7_0)) + (let-values (((for-syntax?_9) for-syntax?8_0)) + (let-values (((read-compiled_2) read-compiled9_1)) + (let-values (((call-with-root-namespace_2) call-with-root-namespace10_1)) + (let-values (((dynamic-require_4) dynamic-require11_1)) + (let-values (((module-declared?_2) module-declared?12_1)) + (let-values (((coerce_2) coerce13_1)) + (let-values (((coerce-key_2) coerce-key14_1)) + (let-values (((keep-comment?_3) + (if (eq? keep-comment?15_1 unsafe-undefined) + recursive?_0 + keep-comment?15_1))) + (let-values () + (let-values (((config_56) + (let-values (((c1_31) (if recursive?_0 (current-read-config) #f))) + (if c1_31 + ((lambda (config_57) + (let-values (((config52_0) config_57) + ((for-syntax?53_0) for-syntax?_9) + ((wrap54_0) wrap_9) + ((readtable55_1) readtable_3) + ((next-readtable56_1) next-readtable_0) + ((local-graph?57_0) local-graph?_1) + ((keep-comment?58_0) keep-comment?_3)) + (read-config-update.1 + for-syntax?53_0 + keep-comment?58_0 + next-readtable56_1 + readtable55_1 + local-graph?57_0 + wrap54_0 + config52_0))) + c1_31) + (let-values () + (let-values (((readtable59_0) readtable_3) + ((next-readtable60_0) next-readtable_0) + ((source61_0) source_5) + ((for-syntax?62_0) for-syntax?_9) + ((wrap63_0) wrap_9) + ((read-compiled64_0) read-compiled_2) + ((call-with-root-namespace65_0) + call-with-root-namespace_2) + ((dynamic-require66_0) dynamic-require_4) + ((module-declared?67_0) module-declared?_2) + ((coerce68_0) coerce_2) + ((coerce-key69_0) coerce-key_2) + ((keep-comment?70_0) keep-comment?_3)) + (make-read-config.1 + call-with-root-namespace65_0 + coerce68_0 + coerce-key69_0 + dynamic-require66_0 + for-syntax?62_0 + keep-comment?70_0 + module-declared?67_0 + next-readtable60_0 + read-compiled64_0 + readtable59_0 + source61_0 + wrap63_0))))))) + (let-values (((v_76) (read-one init-c_16 in_64 config_56))) + (if (if (let-values (((or-part_38) (not recursive?_0))) + (if or-part_38 or-part_38 local-graph?_1)) + (read-config-state-graph (read-config-st config_56)) + #f) + (let-values () + (catch-and-reraise-as-reader/proc + #f + config_56 + (lambda () (make-reader-graph v_76)))) + (if (if recursive?_0 + (if (not local-graph?_1) + (if (not for-syntax?_9) + (if (not (eof-object? v_76)) (not (1/special-comment? v_76)) #f) + #f) + #f) + #f) + (let-values () (begin (get-graph-hash config_56) v_76)) + (let-values () v_76))))))))))))))))))))))))) + (define-values + (read-language.1) + (lambda (call-with-root-namespace37_0 + coerce39_0 + coerce-key40_0 + dynamic-require36_0 + for-syntax?33_0 + module-declared?38_0 + read-compiled35_0 + wrap34_0 + in49_0 + fail-k50_0) + (begin + 'read-language + (let-values (((in_65) in49_0)) + (let-values (((fail-k_6) fail-k50_0)) + (let-values (((for-syntax?_10) for-syntax?33_0)) + (let-values (((wrap_10) wrap34_0)) + (let-values (((read-compiled_3) read-compiled35_0)) + (let-values (((dynamic-require_5) dynamic-require36_0)) + (let-values (((call-with-root-namespace_3) call-with-root-namespace37_0)) + (let-values (((module-declared?_3) module-declared?38_0)) + (let-values (((coerce_3) coerce39_0)) + (let-values (((coerce-key_3) coerce-key40_0)) + (let-values () + (let-values (((config_58) + (let-values (((temp71_4) #f) + ((temp72_2) #f) + ((for-syntax?73_0) for-syntax?_10) + ((wrap74_0) wrap_10) + ((read-compiled75_0) read-compiled_3) + ((call-with-root-namespace76_0) call-with-root-namespace_3) + ((dynamic-require77_0) dynamic-require_5) + ((module-declared?78_0) module-declared?_3) + ((coerce79_0) coerce_3) + ((coerce-key80_0) coerce-key_3)) + (make-read-config.1 + call-with-root-namespace76_0 + coerce79_0 + coerce-key80_0 + dynamic-require77_0 + for-syntax?73_0 + #f + module-declared?78_0 + temp72_2 + read-compiled75_0 + temp71_4 + #f + wrap74_0)))) + (let-values (((l-config_1) (override-parameter 1/read-accept-reader config_58 #f))) + (read-language/get-info read-undotted in_65 config_58 fail-k_6))))))))))))))))) + (define-values + (read-one) + (lambda (init-c_17 in_66 config_59) + (begin + (if (not (check-parameter 1/read-cdot config_59)) + (let-values () (read-undotted init-c_17 in_66 config_59)) + (if (check-parameter 1/read-cdot config_59) + (let-values () + (let-values (((line_11 col_10 pos_138) (port-next-location in_66))) + (let-values (((v_257) (read-undotted init-c_17 in_66 config_59))) + (if (1/special-comment? v_257) + (let-values () v_257) + (let-values () + ((letrec-values (((loop_126) + (lambda (v_129) + (begin + 'loop + (let-values (((c_142) + (let-values (((in_67) in_66) + ((skip-count_16) 0) + ((source_41) (read-config-source config_59))) + (let-values (((c_143) + (peek-char-or-special + in_67 + skip-count_16 + 'special + source_41))) + (if (eq? c_143 'special) (special1.1 'special) c_143))))) + (let-values (((ec_9) (effective-char c_142 config_59))) + (if (not (char? ec_9)) + (let-values () v_129) + (if (char-whitespace? ec_9) + (let-values () (begin (consume-char in_66 c_142) (loop_126 v_129))) + (if (char=? ec_9 '#\.) + (let-values () + (let-values (((dot-line_2 dot-col_2 dot-pos_2) + (port-next-location in_66))) + (let-values ((() (begin (consume-char in_66 c_142) (values)))) + (let-values (((pos-config_0) + (reading-at + config_59 + dot-line_2 + dot-col_2 + dot-pos_2))) + (let-values (((cdot_0) + (wrap '#%dot in_66 pos-config_0 '#\.))) + (let-values (((post-v_0) + (read-undotted #f in_66 config_59))) + (begin + (if (eof-object? post-v_0) + (let-values () + (let-values (((in81_0) in_66) + ((pos-config82_0) pos-config_0) + ((eof83_0) eof) + ((temp84_2) + "expected a datum after cdot, found end-of-file")) + (reader-error.1 + unsafe-undefined + eof83_0 + #f + unsafe-undefined + in81_0 + pos-config82_0 + temp84_2 + (list)))) + (void)) + (loop_126 + (wrap + (list cdot_0 v_129 post-v_0) + in_66 + (reading-at config_59 line_11 col_10 pos_138) + '#\.))))))))) + (let-values () v_129)))))))))) + loop_126) + v_257)))))) + (void)))))) + (define-values + (read-undotted) + (lambda (init-c_18 in_68 config_60) + (begin + (let-values (((c_144) (read-char/skip-whitespace-and-comments init-c_18 read-one in_68 config_60))) + (let-values (((line_12 col_11 pos_139) (port-next-location* in_68 c_144))) + (if (eof-object? c_144) + (let-values () eof) + (if (not (char? c_144)) + (let-values () + (let-values (((v_258) (special-value c_144))) + (if (1/special-comment? v_258) + (let-values () (if (read-config-keep-comment? config_60) v_258 (read-undotted #f in_68 config_60))) + (let-values () (coerce v_258 in_68 (reading-at config_60 line_12 col_11 pos_139)))))) + (let-values (((c2_12) (readtable-handler config_60 c_144))) + (if c2_12 + ((lambda (handler_3) + (let-values (((v_259) (readtable-apply handler_3 c_144 in_68 config_60 line_12 col_11 pos_139))) + (retry-special-comment v_259 in_68 config_60))) + c2_12) + (let-values () + (let-values (((ec_10) (effective-char c_144 config_60))) + (let-values ((() + (begin + (if (not (char-closer? ec_10 config_60)) + (let-values () (track-indentation! config_60 line_12 col_11)) + (void)) + (values)))) + (let-values (((r-config_0) (reading-at (discard-comment config_60) line_12 col_11 pos_139))) + (let-values (((tmp_74) ec_10)) + (let-values (((index_6) + (if (char? tmp_74) + (let-values (((codepoint_2) (char->integer tmp_74))) + (if (if (unsafe-fx>= codepoint_2 34) (unsafe-fx< codepoint_2 126) #f) + (if (unsafe-fx< codepoint_2 91) + (if (unsafe-fx< codepoint_2 40) + (let-values (((tbl_3) '#(11 1 0 0 0 2))) + (unsafe-vector*-ref tbl_3 (unsafe-fx- codepoint_2 34))) + (if (unsafe-fx< codepoint_2 42) + (let-values (((tbl_4) '#(5 6))) + (unsafe-vector*-ref tbl_4 (unsafe-fx- codepoint_2 40))) + (if (unsafe-fx< codepoint_2 44) + 0 + (if (unsafe-fx< codepoint_2 45) 4 0)))) + (let-values (((tbl_5) + '#(7 + 0 + 8 + 0 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 9 + 12 + 10))) + (unsafe-vector*-ref tbl_5 (unsafe-fx- codepoint_2 91)))) + 0)) + 0))) + (if (unsafe-fx< index_6 6) + (if (unsafe-fx< index_6 2) + (if (unsafe-fx< index_6 1) + (let-values () + (let-values (((v_260) + (let-values (((c85_0) c_144) + ((in86_0) in_68) + ((r-config87_0) r-config_0) + ((temp88_1) + (if (let-values (((or-part_508) (eq? c_144 ec_10))) + (if or-part_508 + or-part_508 + (if (< (char->integer ec_10) 128) + (char-numeric? ec_10) + #f))) + 'symbol-or-number + 'symbol/indirect))) + (read-symbol-or-number.1 #f temp88_1 c85_0 in86_0 r-config87_0)))) + (retry-special-comment v_260 in_68 config_60))) + (let-values () (read-dispatch c_144 in_68 r-config_0 config_60))) + (if (unsafe-fx< index_6 3) + (let-values () (read-quote read-one 'quote "quoting \"'\"" c_144 in_68 r-config_0)) + (if (unsafe-fx< index_6 4) + (let-values () + (if (check-parameter 1/read-accept-quasiquote config_60) + (let-values () + (read-quote + read-one + 'quasiquote + "quasiquoting \"`\"" + c_144 + in_68 + r-config_0)) + (let-values () + (let-values (((in89_0) in_68) + ((r-config90_0) r-config_0) + ((temp91_4) "illegal use of `~a`") + ((c92_0) c_144)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in89_0 + r-config90_0 + temp91_4 + (list c92_0)))))) + (if (unsafe-fx< index_6 5) + (let-values () + (if (check-parameter 1/read-accept-quasiquote config_60) + (let-values () + (let-values (((c2_13) + (let-values (((in_69) in_68) + ((skip-count_17) 0) + ((source_42) (read-config-source config_60))) + (let-values (((c_145) + (peek-char-or-special + in_69 + skip-count_17 + 'special + source_42))) + (if (eq? c_145 'special) + (special1.1 'special) + c_145))))) + (if (eqv? c2_13 '#\@) + (begin + (consume-char in_68 c2_13) + (read-quote + read-one + 'unquote-splicing + "unquoting `,@`" + c_144 + in_68 + r-config_0)) + (read-quote + read-one + 'unquote + "unquoting `,`" + c_144 + in_68 + r-config_0)))) + (let-values () + (let-values (((in93_1) in_68) + ((r-config94_0) r-config_0) + ((temp95_1) "illegal use of `~a`") + ((c96_0) c_144)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in93_1 + r-config94_0 + temp95_1 + (list c96_0)))))) + (let-values () + (wrap + (let-values (((read-one97_0) read-one) + ((ec98_0) ec_10) + ((temp99_1) '#\() + ((temp100_1) '#\)) + ((in101_0) in_68) + ((r-config102_0) r-config_0) + ((temp103_3) #t)) + (read-unwrapped-sequence.1 + 'all + unsafe-undefined + unsafe-undefined + temp103_3 + unsafe-undefined + read-one97_0 + ec98_0 + temp99_1 + temp100_1 + in101_0 + r-config102_0)) + in_68 + r-config_0 + ec_10)))))) + (if (unsafe-fx< index_6 9) + (if (unsafe-fx< index_6 7) + (let-values () + (let-values (((in104_1) in_68) + ((r-config105_0) r-config_0) + ((temp106_3) "~a") + ((temp107_3) + (indentation-unexpected-closer-message ec_10 c_144 r-config_0))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in104_1 + r-config105_0 + temp106_3 + (list temp107_3)))) + (if (unsafe-fx< index_6 8) + (let-values () + (if (let-values (((or-part_509) + (check-parameter 1/read-square-bracket-as-paren config_60))) + (if or-part_509 + or-part_509 + (check-parameter 1/read-square-bracket-with-tag config_60))) + (let-values () + (wrap + (let-values (((read-one108_0) read-one) + ((ec109_0) ec_10) + ((temp110_0) '#\[) + ((temp111_1) '#\]) + ((in112_0) in_68) + ((r-config113_0) r-config_0) + ((temp114_3) #t)) + (read-unwrapped-sequence.1 + 'all + unsafe-undefined + unsafe-undefined + temp114_3 + unsafe-undefined + read-one108_0 + ec109_0 + temp110_0 + temp111_1 + in112_0 + r-config113_0)) + in_68 + r-config_0 + ec_10)) + (let-values () + (let-values (((in115_0) in_68) + ((r-config116_0) r-config_0) + ((temp117_3) "illegal use of `~a`") + ((c118_0) c_144)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in115_0 + r-config116_0 + temp117_3 + (list c118_0)))))) + (let-values () + (if (let-values (((or-part_510) + (check-parameter 1/read-square-bracket-as-paren config_60))) + (if or-part_510 + or-part_510 + (check-parameter 1/read-square-bracket-with-tag config_60))) + (let-values () + (let-values (((in119_1) in_68) + ((r-config120_0) r-config_0) + ((temp121_2) "~a") + ((temp122_1) + (indentation-unexpected-closer-message + ec_10 + c_144 + r-config_0))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in119_1 + r-config120_0 + temp121_2 + (list temp122_1)))) + (let-values () + (let-values (((in123_0) in_68) + ((r-config124_0) r-config_0) + ((temp125_2) "illegal use of `~a`") + ((c126_0) c_144)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in123_0 + r-config124_0 + temp125_2 + (list c126_0)))))))) + (if (unsafe-fx< index_6 10) + (let-values () + (if (let-values (((or-part_511) + (check-parameter 1/read-curly-brace-as-paren config_60))) + (if or-part_511 + or-part_511 + (check-parameter 1/read-curly-brace-with-tag config_60))) + (let-values () + (wrap + (let-values (((read-one127_0) read-one) + ((ec128_0) ec_10) + ((temp129_4) '#\{) + ((temp130_2) '#\}) + ((in131_0) in_68) + ((r-config132_0) r-config_0) + ((temp133_2) #t)) + (read-unwrapped-sequence.1 + 'all + unsafe-undefined + unsafe-undefined + temp133_2 + unsafe-undefined + read-one127_0 + ec128_0 + temp129_4 + temp130_2 + in131_0 + r-config132_0)) + in_68 + r-config_0 + ec_10)) + (let-values () + (let-values (((in134_0) in_68) + ((r-config135_0) r-config_0) + ((temp136_4) "illegal use of `~a`") + ((c137_0) c_144)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in134_0 + r-config135_0 + temp136_4 + (list c137_0)))))) + (if (unsafe-fx< index_6 11) + (let-values () + (if (let-values (((or-part_315) + (check-parameter 1/read-curly-brace-as-paren config_60))) + (if or-part_315 + or-part_315 + (check-parameter 1/read-curly-brace-with-tag config_60))) + (let-values () + (let-values (((in138_0) in_68) + ((r-config139_0) r-config_0) + ((temp140_1) "~a") + ((temp141_1) + (indentation-unexpected-closer-message + ec_10 + c_144 + r-config_0))) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in138_0 + r-config139_0 + temp140_1 + (list temp141_1)))) + (let-values () + (let-values (((in142_0) in_68) + ((r-config143_0) r-config_0) + ((temp144_4) "illegal use of `~a`") + ((c145_0) c_144)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in142_0 + r-config143_0 + temp144_4 + (list c145_0)))))) + (if (unsafe-fx< index_6 12) + (let-values () + (let-values (((in146_0) in_68) ((r-config147_0) r-config_0)) + (read-string.1 'string in146_0 r-config147_0))) + (let-values () + (let-values (((c148_0) c_144) + ((in149_0) in_68) + ((r-config150_0) r-config_0) + ((temp151_2) 'symbol)) + (read-symbol-or-number.1 + #f + temp151_2 + c148_0 + in149_0 + r-config150_0))))))))))))))))))))))) + (define-values + (read-dispatch) + (lambda (dispatch-c_5 in_70 config_61 orig-config_1) + (begin + (let-values (((c_146) + (let-values (((in_71) in_70) ((source_43) (read-config-source config_61))) + (read-char-or-special in_71 special1.1 source_43)))) + (if (eof-object? c_146) + (let-values () + (let-values (((in152_0) in_70) + ((config153_0) config_61) + ((c154_0) c_146) + ((temp155_1) "bad syntax `~a`") + ((dispatch-c156_0) dispatch-c_5)) + (reader-error.1 + unsafe-undefined + c154_0 + #f + unsafe-undefined + in152_0 + config153_0 + temp155_1 + (list dispatch-c156_0)))) + (if (not (char? c_146)) + (let-values () + (let-values (((in157_0) in_70) + ((config158_0) config_61) + ((c159_0) c_146) + ((temp160_2) "bad syntax `~a`") + ((dispatch-c161_0) dispatch-c_5)) + (reader-error.1 + unsafe-undefined + c159_0 + #f + unsafe-undefined + in157_0 + config158_0 + temp160_2 + (list dispatch-c161_0)))) + (let-values (((c3_0) (readtable-dispatch-handler orig-config_1 c_146))) + (if c3_0 + ((lambda (handler_4) + (let-values (((line_13) (read-config-line config_61))) + (let-values (((col_12) (read-config-col config_61))) + (let-values (((pos_140) (read-config-pos config_61))) + (let-values (((v_261) + (readtable-apply handler_4 c_146 in_70 config_61 line_13 col_12 pos_140))) + (retry-special-comment v_261 in_70 orig-config_1)))))) + c3_0) + (let-values () + (let-values () + (let-values (((tmp_75) c_146)) + (let-values (((index_7) + (if (char? tmp_75) + (let-values (((codepoint_3) (char->integer tmp_75))) + (if (if (unsafe-fx>= codepoint_3 33) (unsafe-fx< codepoint_3 127) #f) + (let-values (((tbl_6) + '#(34 + 11 + 0 + 0 + 13 + 6 + 7 + 2 + 0 + 0 + 0 + 9 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 14 + 0 + 12 + 0 + 0 + 0 + 0 + 0 + 22 + 29 + 25 + 18 + 16 + 0 + 30 + 20 + 0 + 0 + 0 + 0 + 0 + 24 + 0 + 0 + 0 + 0 + 15 + 0 + 0 + 0 + 28 + 0 + 0 + 3 + 10 + 0 + 0 + 0 + 8 + 0 + 26 + 29 + 21 + 17 + 16 + 0 + 30 + 19 + 0 + 0 + 33 + 0 + 0 + 23 + 32 + 0 + 31 + 5 + 15 + 0 + 0 + 0 + 27 + 0 + 0 + 4 + 0 + 0 + 35))) + (unsafe-vector*-ref tbl_6 (unsafe-fx- codepoint_3 33))) + 0)) + 0))) + (if (unsafe-fx< index_7 17) + (if (unsafe-fx< index_7 8) + (if (unsafe-fx< index_7 3) + (if (unsafe-fx< index_7 1) + (let-values () + (let-values (((in162_0) in_70) + ((config163_0) config_61) + ((temp164_0) "bad syntax `~a~a`") + ((dispatch-c165_0) dispatch-c_5) + ((c166_0) c_146)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in162_0 + config163_0 + temp164_0 + (list dispatch-c165_0 c166_0)))) + (if (unsafe-fx< index_7 2) + (let-values () (read-vector-or-graph read-one dispatch-c_5 c_146 in_70 config_61)) + (let-values () + (let-values (((read-one167_0) read-one) + ((temp168_1) '#\() + ((temp169_1) '#\() + ((temp170_0) '#\)) + ((in171_0) in_70) + ((config172_0) config_61)) + (read-vector.1 + #f + 'any + read-one167_0 + temp168_1 + temp169_1 + temp170_0 + in171_0 + config172_0))))) + (if (unsafe-fx< index_7 5) + (if (unsafe-fx< index_7 4) + (let-values () + (if (check-parameter 1/read-square-bracket-as-paren config_61) + (let-values () + (let-values (((read-one173_0) read-one) + ((temp174_0) '#\[) + ((temp175_0) '#\[) + ((temp176_0) '#\]) + ((in177_0) in_70) + ((config178_0) config_61)) + (read-vector.1 + #f + 'any + read-one173_0 + temp174_0 + temp175_0 + temp176_0 + in177_0 + config178_0))) + (let-values () + (let-values (((in179_0) in_70) + ((config180_0) config_61) + ((temp181_0) (format "~a~a" dispatch-c_5 c_146))) + (bad-syntax-error.1 '#\x in179_0 config180_0 temp181_0))))) + (let-values () + (if (check-parameter 1/read-curly-brace-as-paren config_61) + (let-values () + (let-values (((read-one182_0) read-one) + ((temp183_1) '#\{) + ((temp184_0) '#\{) + ((temp185_0) '#\}) + ((in186_0) in_70) + ((config187_0) config_61)) + (read-vector.1 + #f + 'any + read-one182_0 + temp183_1 + temp184_0 + temp185_0 + in186_0 + config187_0))) + (let-values () + (let-values (((in188_0) in_70) + ((config189_0) config_61) + ((temp190_1) (format "~a~a" dispatch-c_5 c_146))) + (bad-syntax-error.1 '#\x in188_0 config189_0 temp190_1)))))) + (if (unsafe-fx< index_7 6) + (let-values () (read-struct read-one dispatch-c_5 in_70 config_61)) + (if (unsafe-fx< index_7 7) + (let-values () (read-box read-one dispatch-c_5 in_70 config_61)) + (let-values () (read-quote read-one 'syntax "quoting #'" c_146 in_70 config_61)))))) + (if (unsafe-fx< index_7 12) + (if (unsafe-fx< index_7 9) + (let-values () + (read-quote read-one 'quasisyntax "quasiquoting #`" c_146 in_70 config_61)) + (if (unsafe-fx< index_7 10) + (let-values () + (let-values (((c2_14) + (let-values (((in_72) in_70) + ((skip-count_18) 0) + ((source_44) (read-config-source config_61))) + (let-values (((c_147) + (peek-char-or-special + in_72 + skip-count_18 + 'special + source_44))) + (if (eq? c_147 'special) (special1.1 'special) c_147))))) + (if (eqv? c2_14 '#\@) + (begin + (consume-char in_70 c2_14) + (read-quote + read-one + 'unsyntax-splicing + "unquoting #,@" + c_146 + in_70 + config_61)) + (read-quote read-one 'unsyntax "unquoting #," c_146 in_70 config_61)))) + (if (unsafe-fx< index_7 11) + (let-values () (read-character in_70 config_61)) + (let-values () + (let-values (((in191_0) in_70) + ((config192_0) config_61) + ((temp193_0) '|byte string|)) + (read-string.1 temp193_0 in191_0 config192_0)))))) + (if (unsafe-fx< index_7 14) + (if (unsafe-fx< index_7 13) + (let-values () + (let-values (((c2_15) + (let-values (((in_73) in_70) + ((skip-count_19) 0) + ((source_45) (read-config-source config_61))) + (let-values (((c_148) + (peek-char-or-special + in_73 + skip-count_19 + 'special + source_45))) + (if (eq? c_148 'special) (special1.1 'special) c_148))))) + (if (eqv? '#\< c2_15) + (let-values () + (begin (consume-char in_70 '#\<) (read-here-string in_70 config_61))) + (let-values () + (let-values (((in194_0) in_70) + ((config195_0) config_61) + ((c2196_0) c2_15) + ((temp197_1) "bad syntax `~a<`") + ((dispatch-c198_0) dispatch-c_5)) + (reader-error.1 + unsafe-undefined + c2196_0 + #f + unsafe-undefined + in194_0 + config195_0 + temp197_1 + (list dispatch-c198_0))))))) + (let-values () + (let-values (((c199_0) c_146) + ((in200_0) in_70) + ((config201_0) config_61) + ((dispatch-c202_0) dispatch-c_5) + ((temp203_1) 'symbol)) + (read-symbol-or-number.1 dispatch-c202_0 temp203_1 c199_0 in200_0 config201_0)))) + (if (unsafe-fx< index_7 15) + (let-values () + (let-values (((temp204_1) #f) + ((in205_0) in_70) + ((config206_0) config_61) + ((temp207_1) 'keyword)) + (read-symbol-or-number.1 #f temp207_1 temp204_1 in205_0 config206_0))) + (if (unsafe-fx< index_7 16) + (let-values () + (let-values (((c2_16) + (let-values (((in_74) in_70) + ((skip-count_20) 0) + ((source_46) (read-config-source config_61))) + (let-values (((c_149) + (peek-char-or-special + in_74 + skip-count_20 + 'special + source_46))) + (if (eq? c_149 'special) (special1.1 'special) c_149))))) + (if (char-delimiter? c2_16 config_61) + (let-values () (wrap #t in_70 config_61 c_146)) + (let-values () + (read-delimited-constant + c_146 + (char=? c_146 '#\t) + '(#\r #\u #\e) + #t + in_70 + config_61))))) + (let-values () + (let-values (((c2_17) + (let-values (((in_75) in_70) + ((skip-count_21) 0) + ((source_47) (read-config-source config_61))) + (let-values (((c_150) + (peek-char-or-special + in_75 + skip-count_21 + 'special + source_47))) + (if (eq? c_150 'special) (special1.1 'special) c_150))))) + (if (char-delimiter? c2_17 config_61) + (let-values () (wrap #f in_70 config_61 c_146)) + (if (let-values (((or-part_512) (char=? c2_17 '#\x))) + (if or-part_512 or-part_512 (char=? c2_17 '#\l))) + (let-values () + (read-fixnum-or-flonum-vector + read-one + dispatch-c_5 + c_146 + c2_17 + in_70 + config_61)) + (let-values () + (read-delimited-constant + c_146 + (char=? c_146 '#\f) + '(#\a #\l #\s #\e) + #f + in_70 + config_61))))))))))) + (if (unsafe-fx< index_7 26) + (if (unsafe-fx< index_7 21) + (if (unsafe-fx< index_7 18) + (let-values () + (let-values (((temp208_1) #f) + ((in209_0) in_70) + ((config210_0) config_61) + ((temp211_0) "#e")) + (read-symbol-or-number.1 #f temp211_0 temp208_1 in209_0 config210_0))) + (if (unsafe-fx< index_7 19) + (let-values () + (let-values (((temp212_0) #f) + ((in213_0) in_70) + ((config214_0) config_61) + ((temp215_0) "#E")) + (read-symbol-or-number.1 #f temp215_0 temp212_0 in213_0 config214_0))) + (if (unsafe-fx< index_7 20) + (let-values () + (let-values (((temp216_0) #f) + ((in217_0) in_70) + ((config218_0) config_61) + ((temp219_1) "#i")) + (read-symbol-or-number.1 #f temp219_1 temp216_0 in217_0 config218_0))) + (let-values () + (let-values (((temp220_0) #f) + ((in221_0) in_70) + ((config222_0) config_61) + ((temp223_1) "#I")) + (read-symbol-or-number.1 #f temp223_1 temp220_0 in221_0 config222_0)))))) + (if (unsafe-fx< index_7 23) + (if (unsafe-fx< index_7 22) + (let-values () + (let-values (((temp224_0) #f) + ((in225_0) in_70) + ((config226_0) config_61) + ((temp227_0) "#d")) + (read-symbol-or-number.1 #f temp227_0 temp224_0 in225_0 config226_0))) + (let-values () + (let-values (((temp228_0) #f) + ((in229_0) in_70) + ((config230_0) config_61) + ((temp231_0) "#B")) + (read-symbol-or-number.1 #f temp231_0 temp228_0 in229_0 config230_0)))) + (if (unsafe-fx< index_7 24) + (let-values () + (let-values (((temp232_0) #f) + ((in233_0) in_70) + ((config234_0) config_61) + ((temp235_0) "#o")) + (read-symbol-or-number.1 #f temp235_0 temp232_0 in233_0 config234_0))) + (if (unsafe-fx< index_7 25) + (let-values () + (let-values (((temp236_1) #f) + ((in237_0) in_70) + ((config238_0) config_61) + ((temp239_1) "#O")) + (read-symbol-or-number.1 #f temp239_1 temp236_1 in237_0 config238_0))) + (let-values () + (let-values (((temp240_0) #f) + ((in241_0) in_70) + ((config242_0) config_61) + ((temp243_1) "#D")) + (read-symbol-or-number.1 #f temp243_1 temp240_0 in241_0 config242_0))))))) + (if (unsafe-fx< index_7 30) + (if (unsafe-fx< index_7 27) + (let-values () + (let-values (((temp244_1) #f) + ((in245_0) in_70) + ((config246_0) config_61) + ((temp247_0) "#b")) + (read-symbol-or-number.1 #f temp247_0 temp244_1 in245_0 config246_0))) + (if (unsafe-fx< index_7 28) + (let-values () + (let-values (((temp248_0) #f) + ((in249_0) in_70) + ((config250_0) config_61) + ((temp251_0) "#x")) + (read-symbol-or-number.1 #f temp251_0 temp248_0 in249_0 config250_0))) + (if (unsafe-fx< index_7 29) + (let-values () + (let-values (((temp252_0) #f) + ((in253_0) in_70) + ((config254_0) config_61) + ((temp255_0) "#X")) + (read-symbol-or-number.1 #f temp255_0 temp252_0 in253_0 config254_0))) + (let-values () + (let-values (((c2_18) + (let-values (((in_76) in_70) + ((source_48) (read-config-source config_61))) + (read-char-or-special in_76 special1.1 source_48)))) + (let-values (((tmp_76) c2_18)) + (if (if (equal? tmp_76 '#\s) #t (equal? tmp_76 '#\S)) + (let-values () + (read-one #f in_70 (override-parameter read-case-sensitive config_61 #t))) + (if (if (equal? tmp_76 '#\i) #t (equal? tmp_76 '#\I)) + (let-values () + (read-one + #f + in_70 + (override-parameter read-case-sensitive config_61 #f))) + (let-values () + (let-values (((in256_0) in_70) + ((config257_0) config_61) + ((c2258_0) c2_18) + ((temp259_0) "expected `s', `S`, `i`, or `I` after `~a~a`") + ((dispatch-c260_0) dispatch-c_5) + ((c261_0) c_146)) + (reader-error.1 + unsafe-undefined + c2258_0 + #f + unsafe-undefined + in256_0 + config257_0 + temp259_0 + (list dispatch-c260_0 c261_0)))))))))))) + (if (unsafe-fx< index_7 32) + (if (unsafe-fx< index_7 31) + (let-values () (read-hash read-one dispatch-c_5 c_146 in_70 config_61)) + (let-values () + (let-values (((accum-str_12) (accum-string-init! config_61))) + (let-values ((() (begin (accum-string-add! accum-str_12 dispatch-c_5) (values)))) + (let-values ((() (begin (accum-string-add! accum-str_12 c_146) (values)))) + (let-values (((c2_19) + (let-values (((in_77) in_70) + ((source_49) (read-config-source config_61))) + (read-char-or-special in_77 special1.1 source_49)))) + (begin + (if (char? c2_19) + (let-values () (accum-string-add! accum-str_12 c2_19)) + (void)) + (let-values (((tmp_77) c2_19)) + (if (equal? tmp_77 '#\x) + (let-values () (read-regexp c_146 accum-str_12 in_70 config_61)) + (if (equal? tmp_77 '#\e) + (let-values () + (read-extension-reader + read-one + read-undotted + dispatch-c_5 + in_70 + config_61)) + (let-values () + (let-values (((in262_0) in_70) + ((config263_0) config_61) + ((c2264_0) c2_19) + ((temp265_0) + (let-values (((accum-str266_0) accum-str_12) + ((config267_0) config_61)) + (accum-string-get!.1 + 0 + accum-str266_0 + config267_0)))) + (bad-syntax-error.1 + c2264_0 + in262_0 + config263_0 + temp265_0))))))))))))) + (if (unsafe-fx< index_7 33) + (let-values () + (let-values (((accum-str_13) (accum-string-init! config_61))) + (let-values ((() (begin (accum-string-add! accum-str_13 dispatch-c_5) (values)))) + (let-values ((() (begin (accum-string-add! accum-str_13 c_146) (values)))) + (let-values (((c2_20) + (let-values (((in_78) in_70) + ((source_50) (read-config-source config_61))) + (read-char-or-special in_78 special1.1 source_50)))) + (begin + (if (char? c2_20) + (let-values () (accum-string-add! accum-str_13 c2_20)) + (void)) + (let-values (((tmp_78) c2_20)) + (if (equal? tmp_78 '#\x) + (let-values () (read-regexp c_146 accum-str_13 in_70 config_61)) + (let-values () + (let-values (((in268_0) in_70) + ((config269_0) config_61) + ((c2270_0) c2_20) + ((temp271_0) + (let-values (((accum-str272_0) accum-str_13) + ((config273_0) config_61)) + (accum-string-get!.1 + 0 + accum-str272_0 + config273_0)))) + (bad-syntax-error.1 + c2270_0 + in268_0 + config269_0 + temp271_0))))))))))) + (if (unsafe-fx< index_7 34) + (let-values () + (let-values (((read-undotted274_0) read-undotted) + ((dispatch-c275_0) dispatch-c_5) + ((in276_0) in_70) + ((config277_0) config_61)) + (read-extension-lang.1 + #f + read-undotted274_0 + dispatch-c275_0 + in276_0 + config277_0))) + (if (unsafe-fx< index_7 35) + (let-values () + (let-values (((read-undotted278_0) read-undotted) + ((dispatch-c279_0) dispatch-c_5) + ((in280_0) in_70) + ((config281_0) config_61)) + (read-extension-#!.1 + #f + read-undotted278_0 + dispatch-c279_0 + in280_0 + config281_0))) + (let-values () + (if (check-parameter 1/read-accept-compiled config_61) + (let-values () + (wrap ((read-config-read-compiled config_61) in_70) in_70 config_61 c_146)) + (let-values () + (let-values (((in282_0) in_70) + ((config283_0) config_61) + ((temp284_1) "`~a~~` compiled expressions not enabled") + ((dispatch-c285_0) dispatch-c_5)) + (reader-error.1 + unsafe-undefined + '#\x + #f + unsafe-undefined + in282_0 + config283_0 + temp284_1 + (list dispatch-c285_0))))))))))))))))))))))))) + (define-values + (retry-special-comment) + (lambda (v_262 in_79 config_62) + (begin + (if (1/special-comment? v_262) + (let-values () (if (read-config-keep-comment? config_62) v_262 (read-undotted #f in_79 config_62))) + (let-values () v_262))))) + (define-values + (1/module-declared?) + (let-values (((module-declared?_4) + (lambda (mod2_0 load?1_0) + (begin + 'module-declared? + (let-values (((mod_4) mod2_0)) + (let-values (((load?_4) load?1_0)) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (module-reference? mod_4) + (void) + (let-values () + (raise-argument-error 'module-declared? module-reference-str mod_4))) + (values)))) + (let-values (((ns_113) (1/current-namespace))) + (let-values (((name_44) + (let-values (((mod24_0) mod_4) ((load?25_0) load?_4)) + (reference->resolved-module-path.1 load?25_0 mod24_0)))) + (if (namespace->module ns_113 name_44) #t #f))))))))))))) + (case-lambda + ((mod_5) (begin 'module-declared? (module-declared?_4 mod_5 #f))) + ((mod_6 load?1_1) (module-declared?_4 mod_6 load?1_1))))) + (define-values + (1/module-predefined?) + (lambda (mod_7) + (begin + 'module-predefined? + (let-values () + (let-values () + (let-values ((() + (begin + (if (module-reference? mod_7) + (void) + (let-values () (raise-argument-error 'module-predefined? module-reference-str mod_7))) + (values)))) + (let-values (((ns_70) (1/current-namespace))) + (let-values (((name_72) + (let-values (((mod27_0) mod_7) ((temp28_9) #f)) + (reference->resolved-module-path.1 temp28_9 mod27_0)))) + (let-values (((m_27) (namespace->module ns_70 name_72))) + (if m_27 (module-is-predefined? m_27) #f)))))))))) + (define-values + (module->.1) + (lambda (extra-checks3_0 extract6_0 who7_0 mod8_0 load?5_0) + (begin + 'module-> + (let-values (((extract_1) extract6_0)) + (let-values (((who_32) who7_0)) + (let-values (((mod_8) mod8_0)) + (let-values (((load?_5) load?5_0)) + (let-values (((extra-checks_0) extra-checks3_0)) + (let-values () + (let-values ((() + (begin + (if (module-reference? mod_8) + (void) + (let-values () (raise-argument-error who_32 module-reference-str mod_8))) + (values)))) + (let-values ((() (begin (extra-checks_0) (values)))) + (let-values (((m_28) + (namespace->module/complain + who_32 + (1/current-namespace) + (let-values (((mod29_0) mod_8) ((load?30_0) load?_5)) + (reference->resolved-module-path.1 load?30_0 mod29_0))))) + (extract_1 m_28))))))))))))) + (define-values + (1/module->language-info) + (let-values (((module->language-info_0) + (lambda (mod11_0 load?10_0) + (begin + 'module->language-info + (let-values (((mod_9) mod11_0)) + (let-values (((load?_6) load?10_0)) + (let-values () + (let-values () + (let-values () + (let-values (((module-language-info32_0) module-language-info) + ((who33_0) 'module->language-info) + ((mod34_0) mod_9) + ((load?35_0) load?_6)) + (module->.1 void module-language-info32_0 who33_0 mod34_0 load?35_0))))))))))) + (case-lambda + ((mod_10) (begin 'module->language-info (module->language-info_0 mod_10 #f))) + ((mod_11 load?10_1) (module->language-info_0 mod_11 load?10_1))))) + (define-values + (1/module->imports) + (lambda (mod_3) + (begin + 'module->imports + (let-values () + (let-values () + (let-values (((module-requires37_0) module-requires) ((who38_0) 'module->imports) ((mod39_0) mod_3)) + (module->.1 void module-requires37_0 who38_0 mod39_0 #f))))))) + (define-values + (1/module->exports) + (let-values (((module->exports_0) + (lambda (mod13_0 verbosity12_0) + (begin + 'module->exports + (let-values (((mod_12) mod13_0)) + (let-values (((verbosity_3) verbosity12_0)) + (let-values () + (let-values () + (let-values () + (let-values (((provides_15 self_29) + (let-values (((temp41_7) + (lambda (m_29) + (values (module-provides m_29) (module-self m_29)))) + ((who42_0) 'module->exports) + ((mod43_0) mod_12) + ((temp44_4) + (lambda () + (check-provides-verbosity 'module->exports verbosity_3)))) + (module->.1 temp44_4 temp41_7 who42_0 mod43_0 #f)))) + (provides->api-provides provides_15 self_29 verbosity_3))))))))))) + (case-lambda + ((mod_13) (begin 'module->exports (module->exports_0 mod_13 #f))) + ((mod_14 verbosity12_1) (module->exports_0 mod_14 verbosity12_1))))) + (define-values + (1/module->indirect-exports) + (lambda (mod_15) + (begin + 'module->indirect-exports + (let-values (((temp45_2) + (lambda (m_30) + (variables->api-nonprovides (module-provides m_30) ((module-get-all-variables m_30))))) + ((temp46_4) 'module->indirect-exports) + ((mod47_0) mod_15)) + (module->.1 void temp45_2 temp46_4 mod47_0 #f))))) + (define-values + (1/module-provide-protected?) + (lambda (mod_16 sym_19) + (begin + 'module-provide-protected? + (let-values (((temp48_6) + (lambda (m_31) + (let-values (((b/p_3) (hash-ref (module-provides m_31) sym_19 #f))) + (let-values (((or-part_227) (not b/p_3))) + (if or-part_227 or-part_227 (provided-as-protected? b/p_3)))))) + ((temp49_3) 'module-provide-protected?) + ((mod50_0) mod_16)) + (module->.1 void temp48_6 temp49_3 mod50_0 #f))))) + (define-values + (1/module->namespace) + (let-values (((module->namespace_0) + (lambda (mod15_0 ns14_3) + (begin + 'module->namespace + (let-values (((mod_17) mod15_0)) + (let-values (((ns_94) (if (eq? ns14_3 unsafe-undefined) (1/current-namespace) ns14_3))) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (module-reference? mod_17) + (void) + (let-values () + (raise-argument-error + 'module->namespace + module-reference-str + mod_17))) + (values)))) + (let-values ((() + (begin + (if (1/namespace? ns_94) + (void) + (let-values () + (raise-argument-error 'module->namespace "namespace?" ns_94))) + (values)))) + (let-values (((name_16) + (let-values (((mod55_0) mod_17) ((temp56_2) #t)) + (reference->resolved-module-path.1 temp56_2 mod55_0)))) + (let-values (((phase_139) (namespace-phase ns_94))) + (let-values (((m-ns_16) + (let-values (((ns57_0) ns_94) + ((name58_0) name_16) + ((phase59_0) phase_139)) + (namespace->module-namespace.1 + #f + #f + void + ns57_0 + name58_0 + phase59_0)))) + (begin + (if m-ns_16 + (void) + (let-values () + (begin + (namespace->module/complain 'module->namespace ns_94 name_16) + (raise-arguments-error + 'module->namespace + "module not instantiated in the current namespace" + "name" + name_16)))) + (if (inspector-superior? + (current-code-inspector) + (namespace-inspector m-ns_16)) + (void) + (let-values () + (raise-arguments-error + 'module->namespace + "current code inspector cannot access namespace of module" + "module name" + name_16))) + (if (namespace-get-root-expand-ctx m-ns_16) + (void) + (let-values () + (namespace-set-root-expand-ctx! + m-ns_16 + (let-values (((temp60_6) (namespace-mpi m-ns_16))) + (make-root-expand-context.1 + #f + null + unsafe-undefined + unsafe-undefined + temp60_6))))) + (let-values (((ns52_0) ns_94) + ((temp53_3) (namespace-mpi m-ns_16)) + ((phase54_1) phase_139)) + (namespace-module-make-available!.1 + unsafe-undefined + ns52_0 + temp53_3 + phase54_1)) + m-ns_16))))))))))))))) + (case-lambda + ((mod_18) (begin 'module->namespace (module->namespace_0 mod_18 unsafe-undefined))) + ((mod_19 ns14_4) (module->namespace_0 mod_19 ns14_4))))) + (define-values + (1/namespace-unprotect-module) + (let-values (((namespace-unprotect-module_0) + (lambda (insp17_0 mod18_0 ns16_3) + (begin + 'namespace-unprotect-module + (let-values (((insp_25) insp17_0)) + (let-values (((mod_20) mod18_0)) + (let-values (((ns_114) (if (eq? ns16_3 unsafe-undefined) (1/current-namespace) ns16_3))) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (inspector? insp_25) + (void) + (let-values () + (raise-argument-error + 'namespace-unprotect-module + "inspector?" + insp_25))) + (values)))) + (let-values ((() + (begin + (if (1/module-path? mod_20) + (void) + (let-values () + (raise-argument-error + 'namespace-unprotect-module + "module-path?" + mod_20))) + (values)))) + (let-values ((() + (begin + (if (1/namespace? ns_114) + (void) + (let-values () + (raise-argument-error + 'namespace-unprotect-module + "namespace?" + ns_114))) + (values)))) + (let-values (((name_73) + (let-values (((mod62_0) mod_20) ((temp63_5) #f)) + (reference->resolved-module-path.1 temp63_5 mod62_0)))) + (let-values (((phase_140) (namespace-phase ns_114))) + (let-values (((m-ns_0) + (let-values (((ns64_1) ns_114) + ((name65_0) name_73) + ((phase66_1) phase_140)) + (namespace->module-namespace.1 + #f + #f + void + ns64_1 + name65_0 + phase66_1)))) + (begin + (if m-ns_0 + (void) + (let-values () + (raise-arguments-error + 'namespace-unprotect-module + "module not instantiated" + "module name" + name_73))) + (if (inspector-superior? insp_25 (namespace-inspector m-ns_0)) + (let-values () + (set-namespace-inspector! + m-ns_0 + (make-inspector (current-code-inspector)))) + (void))))))))))))))))))) + (case-lambda + ((insp_26 mod_21) + (begin 'namespace-unprotect-module (namespace-unprotect-module_0 insp_26 mod_21 unsafe-undefined))) + ((insp_27 mod_22 ns16_0) (namespace-unprotect-module_0 insp_27 mod_22 ns16_0))))) + (define-values + (namespace->module/complain) + (lambda (who_33 ns_115 name_74) + (begin + (let-values (((or-part_513) (namespace->module ns_115 name_74))) + (if or-part_513 + or-part_513 + (raise-arguments-error who_33 "unknown module in the current namespace" "name" name_74)))))) + (define-values + (module-reference?) + (lambda (mod_23) + (begin + (let-values (((or-part_514) (1/module-path? mod_23))) + (if or-part_514 + or-part_514 + (let-values (((or-part_515) (1/module-path-index? mod_23))) + (if or-part_515 or-part_515 (1/resolved-module-path? mod_23)))))))) + (define-values (module-reference-str) "(or/c module-path? module-path-index? resolved-module-path?)") + (define-values + (reference->resolved-module-path.1) + (lambda (load?19_0 mod21_0) + (begin + 'reference->resolved-module-path + (let-values (((mod_24) mod21_0)) + (let-values (((load?_7) load?19_0)) + (let-values () + (if (1/resolved-module-path? mod_24) + (let-values () mod_24) + (let-values () + (let-values (((mpi_63) (if (1/module-path-index? mod_24) mod_24 (1/module-path-index-join mod_24 #f)))) + (1/module-path-index-resolve mpi_63 load?_7)))))))))) + (define-values + (read-linklet-bundle-or-directory) + (lambda (in_5) + (begin + (letrec-values (((read-linklet-or-directory_0) + (lambda (initial?_0) + (begin + 'read-linklet-or-directory + (let-values (((start-pos_11) (- (file-position in_5) 2))) + (let-values (((vers-len_0) (min 63 (read-byte in_5)))) + (let-values (((vers_0) (read-bytes vers-len_0 in_5))) + (let-values ((() + (begin + (if (equal? vers_0 version-bytes$1) + (void) + (let-values () + (raise-read-error + '|loading code| + "version mismatch" + "expected" + (version) + "found" + (bytes->string/utf-8 vers_0 '#\?) + "in" + (let-values (((n_58) (object-name in_5))) + (if (path? n_58) + (unquoted-printing-string (path->string n_58)) + in_5))))) + (values)))) + (let-values (((vm-len_0) (min 63 (read-byte in_5)))) + (let-values (((vm_0) (read-bytes vm-len_0 in_5))) + (let-values (((as-correlated-linklet?_3) + (equal? vm_0 correlated-linklet-vm-bytes))) + (let-values ((() + (begin + (if (let-values (((or-part_13) as-correlated-linklet?_3)) + (if or-part_13 or-part_13 (equal? vm_0 vm-bytes$1))) + (void) + (let-values () + (raise-read-error + '|loading code| + "virtual-machine mismatch" + "expected" + (bytes->string/utf-8 vm-bytes$1) + "found" + (bytes->string/utf-8 vm_0 '#\?) + "in" + (let-values (((n_59) (object-name in_5))) + (if (path? n_59) + (unquoted-printing-string (path->string n_59)) + in_5))))) + (values)))) + (let-values (((tag_1) (read-byte in_5))) + (if (eqv? tag_1 (char->integer '#\B)) + (let-values () + (let-values (((sha-1_0) (read-bytes 20 in_5))) + (let-values (((b-ht_0) + (if as-correlated-linklet?_3 + (read-correlated-linklet-bundle-hash in_5) + (1/read-linklet-bundle-hash in_5)))) + (begin + (if (hash? b-ht_0) + (void) + (let-values () + (raise-read-error + 'read-linklet-bundle-hash + "bad read result" + "expected" + "hash/c" + "found" + (format "~s" b-ht_0) + "in" + (let-values (((n_60) (object-name in_5))) + (if (path? n_60) (path->string n_60) in_5))))) + (1/hash->linklet-bundle + (add-hash-code + (if initial?_0 (strip-submodule-references b-ht_0) b-ht_0) + sha-1_0)))))) + (if (eqv? tag_1 (char->integer '#\D)) + (let-values () + (begin + (if initial?_0 + (void) + (let-values () + (raise-read-error + 'read-compiled-linklet + "expected a linklet bundle"))) + (read-bundle-directory_0 start-pos_11))) + (let-values () + (raise-read-error + 'read-compiled-linklet + "expected a `B` or `D`")))))))))))))))) + ((read-bundle-directory_0) + (lambda (pos_129) + (begin + 'read-bundle-directory + (let-values (((count_1) (read-int in_5))) + (let-values (((position-to-name_0) + ((letrec-values (((loop_127) + (lambda (count_2 accum_10) + (begin + 'loop + (if (zero? count_2) + (let-values () accum_10) + (let-values () + (let-values (((bstr_25) + (read-bytes (read-int in_5) in_5))) + (let-values (((offset_6) (read-int in_5))) + (let-values (((len_69) (read-int in_5))) + (begin + (read-int in_5) + (read-int in_5) + (loop_127 + (sub1 count_2) + (hash-set + accum_10 + offset_6 + bstr_25)))))))))))) + loop_127) + count_1 + (hasheqv)))) + ((letrec-values (((loop_119) + (lambda (count_3 accum_13) + (begin + 'loop + (if (zero? count_3) + (let-values () + (list->bundle-directory accum_13 1/hash->linklet-directory)) + (let-values () + (let-values (((name_75) + (hash-ref + position-to-name_0 + (- (file-position in_5) pos_129) + #f))) + (let-values ((() + (begin + (if name_75 + (void) + (let-values () + (raise-read-error + 'read-compiled-linklet + "bundle not at an expected file position"))) + (values)))) + (let-values (((bstr_26) (read-bytes 2 in_5))) + (let-values (((bundle_16) + (if (equal? #"#~" bstr_26) + (let-values () + (read-linklet-or-directory_0 #f)) + (if (equal? #"#f" bstr_26) + (let-values () #f) + (let-values () + (raise-read-error + 'read-compiled-linklet + "expected a `#~` or `#f` for a bundle")))))) + (loop_119 + (sub1 count_3) + (cons + (cons (decode-name name_75 0) bundle_16) + accum_13)))))))))))) + loop_119) + count_1 + '()))))))) + (read-linklet-or-directory_0 #t))))) + (define-values (read-int) (lambda (in_80) (begin (integer-bytes->integer (read-bytes 4 in_80) #f #f)))) + (define-values + (decode-name) + (lambda (bstr_27 pos_141) + (begin + (let-values (((blen_0) (bytes-length bstr_27))) + (let-values (((bad-bundle_0) + (lambda () (begin 'bad-bundle (raise-read-error 'read-compiled-linklet "malformed bundle"))))) + (if (= pos_141 blen_0) + (let-values () '()) + (if (> pos_141 blen_0) + (let-values () (bad-bundle_0)) + (let-values () + (let-values (((len_70) (bytes-ref bstr_27 pos_141))) + (begin + (if (> (+ pos_141 len_70 1) blen_0) (let-values () (bad-bundle_0)) (void)) + (if (= len_70 255) + (let-values () + (let-values (((len_71) (integer-bytes->integer bstr_27 #f #f (add1 pos_141) (+ pos_141 5)))) + (begin + (if (> (+ pos_141 len_71 1) blen_0) (let-values () (bad-bundle_0)) (void)) + (cons + (string->symbol + (bytes->string/utf-8 (subbytes bstr_27 (+ pos_141 5) (+ pos_141 5 len_71)) '#\?)) + (decode-name bstr_27 (+ pos_141 5 len_71)))))) + (let-values () + (cons + (string->symbol + (bytes->string/utf-8 (subbytes bstr_27 (add1 pos_141) (+ pos_141 1 len_70)) '#\?)) + (decode-name bstr_27 (+ pos_141 1 len_70))))))))))))))) + (define-values + (list->bundle-directory) + (lambda (l_11 hash->linklet-directory_0) + (begin + ((letrec-values (((loop_128) + (lambda (l_73 prev-len_1 stack_0 accum_14) + (begin + 'loop + (begin + (if (null? l_73) + (let-values () (raise-read-error 'read-compiled-linklet "invalid bundle sequence")) + (void)) + (let-values (((p_66) (car l_73))) + (let-values (((path_15) (car p_66))) + (let-values (((v_215) (cdr p_66))) + (let-values (((len_72) (length path_15))) + (begin + (if (< len_72 prev-len_1) + (let-values () + (raise-read-error 'read-compiled-linklet "invalid bundle sequence")) + (void)) + ((letrec-values (((sloop_0) + (lambda (prev-len_2 stack_1 accum_15) + (begin + 'sloop + (if (> len_72 (add1 prev-len_2)) + (let-values () + (sloop_0 + (add1 prev-len_2) + (cons accum_15 stack_1) + (hasheq))) + (let-values () + (let-values (((path_16) + (list-tail + path_15 + (max 0 (sub1 prev-len_2))))) + (if (= len_72 prev-len_2) + (let-values () + (let-values (((accum_16) + (if v_215 + (hash-set accum_15 #f v_215) + accum_15))) + (if (zero? len_72) + (hash->linklet-directory_0 accum_16) + (loop_128 + (cdr l_73) + (sub1 prev-len_2) + (cdr stack_1) + (hash-set + (car stack_1) + (car path_16) + (hash->linklet-directory_0 accum_16)))))) + (let-values () + (let-values (((path_17) + (if (positive? prev-len_2) + (cdr path_16) + path_16))) + (loop_128 + (cdr l_73) + prev-len_2 + stack_1 + (hash-set + accum_15 + (car path_17) + (hash->linklet-directory_0 + (if v_215 + (hasheq #f v_215) + (hasheq))))))))))))))) + sloop_0) + prev-len_1 + stack_0 + accum_14))))))))))) + loop_128) + l_11 + 0 + '() + (hasheq))))) + (define-values (strip-submodule-references) (lambda (b-ht_1) (begin (hash-remove (hash-remove b-ht_1 'pre) 'post)))) + (define-values + (add-hash-code) + (lambda (b-ht_2 sha-1_1) + (begin + (if (bytes=? sha-1_1 #"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0") b-ht_2 (hash-set b-ht_2 'hash-code sha-1_1))))) + (define-values + (raise-read-error) + (lambda (who_34 msg_1 . details_0) + (begin + (raise + (exn:fail:read + (apply + string-append + (format "~a: ~a" who_34 msg_1) + ((letrec-values (((loop_129) + (lambda (details_1) + (begin + 'loop + (if (null? details_1) + (let-values () null) + (let-values () + (list* + "\n " + (car details_1) + ": " + (format "~v" (cadr details_1)) + (loop_129 (cddr details_1))))))))) + loop_129) + details_0)) + (current-continuation-marks) + null))))) + (define-values + (read-syntax$1) + (lambda (src_2 in_27) + (begin + 'read-syntax + (if (default-read-handler? in_27) + (let-values () + (begin + (maybe-flush-stdout in_27) + (let-values (((in18_1) in_27) ((temp19_7) #t) ((src20_0) src_2)) + (read*.1 temp19_7 #f #f unsafe-undefined #f src20_0 in18_1)))) + (let-values () (values ((port-read-handler in_27) in_27 src_2))))))) + (define-values + (read-syntax/recursive$1) + (lambda (src_3 in_31 start_73 readtable_4 graph?_1) + (begin + 'read-syntax/recursive + (let-values (((in21_4) in_31) + ((temp22_7) #t) + ((temp23_8) #t) + ((src24_0) src_3) + ((start25_0) start_73) + ((readtable26_0) readtable_4) + ((temp27_4) (not graph?_1))) + (read*.1 temp22_7 start25_0 temp27_4 readtable26_0 temp23_8 src24_0 in21_4))))) + (define-values + (read$1) + (lambda (in_32) + (begin + 'read + (if (default-read-handler? in_32) + (let-values () + (begin + (maybe-flush-stdout in_32) + (let-values (((in28_1) in_32) ((temp29_4) #f)) (read*.1 temp29_4 #f #f unsafe-undefined #f #f in28_1)))) + (let-values () (values ((port-read-handler in_32) in_32))))))) + (define-values + (read/recursive$1) + (lambda (in_44 start_74 readtable_5 graph?_2) + (begin + 'read/recursive + (let-values (((in30_0) in_44) + ((temp31_7) #f) + ((temp32_9) #t) + ((start33_0) start_74) + ((readtable34_0) readtable_5) + ((temp35_2) (not graph?_2))) + (read*.1 temp31_7 start33_0 temp35_2 readtable34_0 temp32_9 #f in30_0))))) + (define-values + (read*.1) + (lambda (for-syntax?1_0 init-c4_0 local-graph?6_1 readtable5_0 recursive?2_0 source3_0 in13_2) + (begin + 'read* + (let-values (((in_81) in13_2)) + (let-values (((for-syntax?_11) for-syntax?1_0)) + (let-values (((recursive?_1) recursive?2_0)) + (let-values (((source_51) source3_0)) + (let-values (((init-c_3) init-c4_0)) + (let-values (((readtable_6) + (if (eq? readtable5_0 unsafe-undefined) (1/current-readtable) readtable5_0))) + (let-values (((local-graph?_2) local-graph?6_1)) + (let-values () + (begin + (if log-performance? (let-values () (start-performance-region 'read)) (void)) + (begin0 + (let-values () + (let-values (((in36_0) in_81) + ((for-syntax?37_0) for-syntax?_11) + ((recursive?38_0) recursive?_1) + ((source39_0) source_51) + ((temp40_3) (if for-syntax?_11 read-to-syntax #f)) + ((init-c41_0) init-c_3) + ((readtable42_0) readtable_6) + ((local-graph?43_0) local-graph?_2) + ((read-linklet-bundle-or-directory44_0) read-linklet-bundle-or-directory) + ((call-with-root-namespace45_0) call-with-root-namespace) + ((locked-dynamic-require46_0) locked-dynamic-require) + ((read-module-declared?47_0) read-module-declared?) + ((read-coerce48_0) read-coerce) + ((read-coerce-key49_0) read-coerce-key)) + (read.1 + call-with-root-namespace45_0 + read-coerce48_0 + read-coerce-key49_0 + locked-dynamic-require46_0 + for-syntax?37_0 + init-c41_0 + unsafe-undefined + local-graph?43_0 + read-module-declared?47_0 + unsafe-undefined + read-linklet-bundle-or-directory44_0 + readtable42_0 + recursive?38_0 + source39_0 + temp40_3 + in36_0))) + (if log-performance? (let-values () (end-performance-region)) (void))))))))))))))) + (define-values + (read-language$1) + (lambda (in_82 fail-thunk_0) + (begin + 'read-language + (let-values (((in50_2) in_82) + ((fail-thunk51_0) fail-thunk_0) + ((temp52_5) #t) + ((read-to-syntax53_0) read-to-syntax) + ((read-linklet-bundle-or-directory54_0) read-linklet-bundle-or-directory) + ((call-with-root-namespace55_0) call-with-root-namespace) + ((locked-dynamic-require56_0) locked-dynamic-require) + ((read-module-declared?57_0) read-module-declared?) + ((read-coerce58_0) read-coerce) + ((read-coerce-key59_0) read-coerce-key)) + (read-language.1 + call-with-root-namespace55_0 + read-coerce58_0 + read-coerce-key59_0 + locked-dynamic-require56_0 + temp52_5 + read-module-declared?57_0 + read-linklet-bundle-or-directory54_0 + read-to-syntax53_0 + in50_2 + fail-thunk51_0))))) + (define-values + (read-to-syntax) + (lambda (s-exp_4 srcloc_17 rep_1) + (begin + (let-values (((the-struct_61) empty-syntax)) + (if (syntax?$1 the-struct_61) + (let-values (((content*60_1) (datum-intern-literal s-exp_4)) + ((srcloc61_0) srcloc_17) + ((props62_0) + (let-values (((tmp_79) rep_1)) + (if (equal? tmp_79 '#\[) + (let-values () original-square-props) + (if (equal? tmp_79 '#\{) + (let-values () original-curly-props) + (let-values () original-props)))))) + (syntax2.1 + content*60_1 + (syntax-scopes the-struct_61) + (syntax-shifted-multi-scopes the-struct_61) + (syntax-mpi-shifts the-struct_61) + srcloc61_0 + props62_0 + (syntax-inspector the-struct_61))) + (raise-argument-error 'struct-copy "syntax?" the-struct_61)))))) + (define-values (original-props) (syntax-props (syntax-property$1 empty-syntax original-property-sym #t))) + (define-values + (original-square-props) + (syntax-props (syntax-property$1 (syntax-property$1 empty-syntax original-property-sym #t) 'paren-shape '#\[))) + (define-values + (original-curly-props) + (syntax-props (syntax-property$1 (syntax-property$1 empty-syntax original-property-sym #t) 'paren-shape '#\{))) + (define-values (read-module-declared?) (lambda (mod-path_29) (begin (1/module-declared? mod-path_29 #t)))) + (define-values + (read-coerce) + (lambda (for-syntax?_12 v_255 srcloc_18) + (begin + (if (not for-syntax?_12) + (let-values () (if (syntax?$1 v_255) (let-values () (syntax->datum$1 v_255)) (let-values () v_255))) + (if (syntax?$1 v_255) + (let-values () v_255) + (if (list? v_255) + (let-values () + (read-to-syntax + (reverse$1 + (let-values (((lst_205) v_255)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_205))) + ((letrec-values (((for-loop_279) + (lambda (fold-var_248 lst_303) + (begin + 'for-loop + (if (pair? lst_303) + (let-values (((e_96) (unsafe-car lst_303)) + ((rest_177) (unsafe-cdr lst_303))) + (let-values (((fold-var_249) + (let-values (((fold-var_250) fold-var_248)) + (let-values (((fold-var_251) + (let-values () + (cons + (let-values () + (read-coerce #t e_96 srcloc_18)) + fold-var_250)))) + (values fold-var_251))))) + (if (not #f) (for-loop_279 fold-var_249 rest_177) fold-var_249))) + fold-var_248))))) + for-loop_279) + null + lst_205)))) + srcloc_18 + #f)) + (if (pair? v_255) + (let-values () + (read-to-syntax + (cons (read-coerce #t (car v_255) srcloc_18) (read-coerce #t (cdr v_255) srcloc_18)) + srcloc_18 + #f)) + (let-values () (read-to-syntax v_255 srcloc_18 #f))))))))) + (define-values + (read-coerce-key) + (lambda (for-syntax?_13 k_26) + (begin (if for-syntax?_13 (let-values () (datum-intern-literal k_26)) (let-values () k_26))))) + (define-values (default-read-handler) #f) + (define-values + (default-read-handler?) + (lambda (in_83) + (begin + (if (not default-read-handler) + (let-values () (begin (set! default-read-handler (port-read-handler in_83)) #t)) + (let-values () (eq? default-read-handler (port-read-handler in_83))))))) + (define-values (orig-input-port) (current-input-port)) + (define-values (orig-output-port) (current-output-port)) + (define-values (orig-error-port) (current-error-port)) + (define-values + (maybe-flush-stdout) + (lambda (in_84) + (begin + (if (eq? in_84 orig-input-port) + (let-values () (begin (flush-output orig-output-port) (flush-output orig-error-port))) + (void))))) + (define-values + (call-with-root-namespace) + (lambda (thunk_10) + (begin + (let-values (((root-ns_0) (namespace-root-namespace (1/current-namespace)))) + (if root-ns_0 + (with-continuation-mark + parameterization-key + (extend-parameterization (continuation-mark-set-first #f parameterization-key) 1/current-namespace root-ns_0) + (let-values () (thunk_10))) + (thunk_10)))))) + (define-values + (locked-dynamic-require) + (let-values (((locked-dynamic-require_0) + (lambda (mod16_0 sym17_0 fail-thunk15_0) + (begin + 'locked-dynamic-require + (let-values (((mod_25) mod16_0)) + (let-values (((sym_97) sym17_0)) + (let-values (((fail-thunk_1) fail-thunk15_0)) + (let-values () + (registry-call-with-lock + (namespace-module-registry$1 (1/current-namespace)) + (lambda () + (if fail-thunk_1 + (1/dynamic-require mod_25 sym_97 fail-thunk_1) + (1/dynamic-require mod_25 sym_97)))))))))))) + (case-lambda + ((mod_26 sym_29) (begin (locked-dynamic-require_0 mod_26 sym_29 #f))) + ((mod_27 sym_98 fail-thunk15_1) (locked-dynamic-require_0 mod_27 sym_98 fail-thunk15_1))))) + (define-values + (1/read-syntax) + (let-values (((read-syntax_0) + (lambda (src1_0 in2_0) + (begin + 'read-syntax + (let-values (((src_4) (if (eq? src1_0 unsafe-undefined) (object-name (current-input-port)) src1_0))) + (let-values (((in_50) (if (eq? in2_0 unsafe-undefined) (current-input-port) in2_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (input-port? in_50) + (void) + (let-values () (raise-argument-error 'read-syntax "input-port?" in_50))) + (read-syntax$1 src_4 in_50))))))))))) + (case-lambda + (() (begin 'read-syntax (read-syntax_0 unsafe-undefined unsafe-undefined))) + ((src_5 in2_1) (read-syntax_0 src_5 in2_1)) + ((src1_1) (read-syntax_0 src1_1 unsafe-undefined))))) + (define-values + (1/read-syntax/recursive) + (let-values (((read-syntax/recursive_0) + (lambda (src3_0 in4_2 start5_0 readtable6_1 graph?7_0) + (begin + 'read-syntax/recursive + (let-values (((src_6) (if (eq? src3_0 unsafe-undefined) (object-name (current-input-port)) src3_0))) + (let-values (((in_64) (if (eq? in4_2 unsafe-undefined) (current-input-port) in4_2))) + (let-values (((start_75) start5_0)) + (let-values (((readtable_0) + (if (eq? readtable6_1 unsafe-undefined) (1/current-readtable) readtable6_1))) + (let-values (((graph?_3) graph?7_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (input-port? in_64) + (void) + (let-values () + (raise-argument-error 'read-syntax/recursive "input-port?" in_64))) + (if ((lambda (x_95) + (let-values (((or-part_85) (not x_95))) + (if or-part_85 or-part_85 (char? x_95)))) + start_75) + (void) + (let-values () + (raise-argument-error 'read-syntax/recursive "(or/c char? #f)" start_75))) + (if ((lambda (x_96) + (let-values (((or-part_86) (not x_96))) + (if or-part_86 or-part_86 (1/readtable? x_96)))) + readtable_0) + (void) + (let-values () + (raise-argument-error + 'read-syntax/recursive + "(or/c readtable? #f)" + readtable_0))) + (read-syntax/recursive$1 src_6 in_64 start_75 readtable_0 graph?_3)))))))))))))) + (case-lambda + (() + (begin 'read-syntax/recursive (read-syntax/recursive_0 unsafe-undefined unsafe-undefined #f unsafe-undefined #t))) + ((src_7 in_7 start_53 readtable_7 graph?7_1) (read-syntax/recursive_0 src_7 in_7 start_53 readtable_7 graph?7_1)) + ((src_8 in_42 start_17 readtable6_2) (read-syntax/recursive_0 src_8 in_42 start_17 readtable6_2 #t)) + ((src_9 in_55 start5_1) (read-syntax/recursive_0 src_9 in_55 start5_1 unsafe-undefined #t)) + ((src_10 in4_3) (read-syntax/recursive_0 src_10 in4_3 #f unsafe-undefined #t)) + ((src3_1) (read-syntax/recursive_0 src3_1 unsafe-undefined #f unsafe-undefined #t))))) + (define-values + (1/read) + (let-values (((read_0) + (lambda (in8_3) + (begin + 'read + (let-values (((in_15) (if (eq? in8_3 unsafe-undefined) (current-input-port) in8_3))) + (let-values () + (let-values () + (let-values () + (begin + (if (input-port? in_15) + (void) + (let-values () (raise-argument-error 'read "input-port?" in_15))) + (read$1 in_15)))))))))) + (case-lambda (() (begin 'read (read_0 unsafe-undefined))) ((in8_4) (read_0 in8_4))))) + (define-values + (1/read/recursive) + (let-values (((read/recursive_0) + (lambda (in9_5 start10_0 readtable11_0 graph?12_0) + (begin + 'read/recursive + (let-values (((in_81) (if (eq? in9_5 unsafe-undefined) (current-input-port) in9_5))) + (let-values (((start_76) start10_0)) + (let-values (((readtable_8) + (if (eq? readtable11_0 unsafe-undefined) (1/current-readtable) readtable11_0))) + (let-values (((graph?_4) graph?12_0)) + (let-values () + (let-values () + (let-values () + (begin + (if (input-port? in_81) + (void) + (let-values () (raise-argument-error 'read/recursive "input-port?" in_81))) + (if ((lambda (x_97) + (let-values (((or-part_37) (not x_97))) + (if or-part_37 or-part_37 (char? x_97)))) + start_76) + (void) + (let-values () (raise-argument-error 'read/recursive "(or/c char? #f)" start_76))) + (if ((lambda (x_41) + (let-values (((or-part_516) (not x_41))) + (if or-part_516 or-part_516 (1/readtable? x_41)))) + readtable_8) + (void) + (let-values () + (raise-argument-error 'read/recursive "(or/c readtable? #f)" readtable_8))) + (read/recursive$1 in_81 start_76 readtable_8 graph?_4))))))))))))) + (case-lambda + (() (begin 'read/recursive (read/recursive_0 unsafe-undefined #f unsafe-undefined #t))) + ((in_85 start_43 readtable_9 graph?12_1) (read/recursive_0 in_85 start_43 readtable_9 graph?12_1)) + ((in_38 start_77 readtable11_1) (read/recursive_0 in_38 start_77 readtable11_1 #t)) + ((in_86 start10_1) (read/recursive_0 in_86 start10_1 unsafe-undefined #t)) + ((in9_6) (read/recursive_0 in9_6 #f unsafe-undefined #t))))) + (define-values + (1/read-language) + (let-values (((read-language_0) + (lambda (in13_3 fail-thunk14_0) + (begin + 'read-language + (let-values (((in_87) (if (eq? in13_3 unsafe-undefined) (current-input-port) in13_3))) + (let-values (((fail-thunk_2) + (if (eq? fail-thunk14_0 unsafe-undefined) read-language-fail-thunk fail-thunk14_0))) + (let-values () + (let-values () + (let-values () + (begin + (if (input-port? in_87) + (void) + (let-values () (raise-argument-error 'read-language "input-port?" in_87))) + (if ((lambda (p_24) (if (procedure? p_24) (procedure-arity-includes? p_24 0) #f)) + fail-thunk_2) + (void) + (let-values () + (raise-argument-error + 'read-language + "(procedure-arity-includes/c 0)" + fail-thunk_2))) + (read-language$1 + in_87 + (if (eq? fail-thunk_2 read-language-fail-thunk) #f fail-thunk_2)))))))))))) + (case-lambda + (() (begin 'read-language (read-language_0 unsafe-undefined unsafe-undefined))) + ((in_88 fail-thunk14_1) (read-language_0 in_88 fail-thunk14_1)) + ((in13_4) (read-language_0 in13_4 unsafe-undefined))))) + (define-values (read-language-fail-thunk) (lambda () (begin (error "fail")))) + (define-values + (declare-primitive-module!) + (lambda (name_76 inst_7 in-ns_0 protected_0 cross-phase-persistent?_3) + (begin + (let-values (((mpi_64) (1/module-path-index-join (list 'quote name_76) #f))) + (let-values (((in-ns1_0) in-ns_0) + ((temp2_6) + (let-values (((temp4_0) (1/current-module-declare-source)) + ((cross-phase-persistent?5_0) cross-phase-persistent?_3) + ((temp6_6) (zero? (hash-count protected_0))) + ((mpi7_0) mpi_64) + ((temp8_7) + (hasheqv + 0 + (let-values (((lst_44) (1/instance-variable-names inst_7))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_44))) + ((letrec-values (((for-loop_55) + (lambda (table_218 lst_23) + (begin + 'for-loop + (if (pair? lst_23) + (let-values (((sym_71) (unsafe-car lst_23)) + ((rest_19) (unsafe-cdr lst_23))) + (let-values (((table_176) + (let-values (((table_219) table_218)) + (let-values (((table_220) + (let-values () + (let-values (((key_103 + val_88) + (let-values () + (let-values (((binding_26) + (let-values (((mpi10_0) + mpi_64) + ((temp11_6) + 0) + ((sym12_0) + sym_71)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + mpi10_0 + temp11_6 + sym12_0)))) + (values + sym_71 + (if (hash-ref + protected_0 + sym_71 + #f) + (provided1.1 + binding_26 + #t + #f) + binding_26)))))) + (hash-set + table_219 + key_103 + val_88))))) + (values table_220))))) + (if (not #f) + (for-loop_55 table_176 rest_19) + table_176))) + table_218))))) + for-loop_55) + '#hash() + lst_44))))) + ((temp9_9) + (lambda (data-box_5 + ns_116 + phase-shift_16 + phase-level_25 + self_30 + bulk-binding-registry_21 + insp_28) + (if (= 0 phase-level_25) + (let-values () + (begin + (let-values (((lst_325) (1/instance-variable-names inst_7))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_325))) + ((letrec-values (((for-loop_101) + (lambda (lst_279) + (begin + 'for-loop + (if (pair? lst_279) + (let-values (((sym_99) (unsafe-car lst_279)) + ((rest_189) (unsafe-cdr lst_279))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((val_89) + (1/instance-variable-value + inst_7 + sym_99))) + (namespace-set-variable! + ns_116 + 0 + sym_99 + val_89))) + (values))))) + (values))))) + (if (not #f) + (for-loop_101 rest_189) + (values)))) + (values)))))) + for-loop_101) + lst_325))) + (void))) + (void))))) + (make-module.1 + cross-phase-persistent?5_0 + void + unsafe-undefined + temp9_9 + #f + 0 + 0 + temp6_6 + unsafe-undefined + #f + void + #f + temp8_7 + null + mpi7_0 + temp4_0 + null + #f))) + ((temp3_9) (substitute-module-declare-name name_76))) + (declare-module!.1 #t in-ns1_0 temp2_6 temp3_9)))))) + (define-values + (1/prop:exn:missing-module 1/exn:missing-module? 1/exn:missing-module-accessor) + (make-struct-type-property + 'missing-module + (lambda (v_28 info_0) + (begin + (if (if (procedure? v_28) (procedure-arity-includes? v_28 1) #f) + (void) + (let-values () + (raise-argument-error 'guard-for-prop:exn:missing-module "(procedure-arity-includes/c 1)" v_28))) + v_28)))) + (define-values + (1/struct:exn:fail:filesystem:missing-module + 1/make-exn:fail:filesystem:missing-module + 1/exn:fail:filesystem:missing-module? + 1/exn:fail:filesystem:missing-module-path) + (let-values (((struct:_23 make-_23 ?_23 -ref_23 -set!_23) + (let-values () + (let-values () + (make-struct-type + 'exn:fail:filesystem:missing-module + struct:exn:fail:filesystem + 1 + 0 + #f + (list + (cons 1/prop:exn:missing-module (lambda (e_97) (1/exn:fail:filesystem:missing-module-path e_97)))) + #f + #f + '(0) + #f + 'exn:fail:filesystem:missing-module))))) + (values struct:_23 make-_23 ?_23 (make-struct-field-accessor -ref_23 0 'path)))) + (define-values + (1/struct:exn:fail:syntax:missing-module + 1/make-exn:fail:syntax:missing-module + 1/exn:fail:syntax:missing-module? + 1/exn:fail:syntax:missing-module-path) + (let-values (((struct:_58 make-_58 ?_58 -ref_58 -set!_58) + (let-values () + (let-values () + (make-struct-type + 'exn:fail:syntax:missing-module + 1/struct:exn:fail:syntax + 1 + 0 + #f + (list + (cons 1/prop:exn:missing-module (lambda (e_98) (1/exn:fail:syntax:missing-module-path e_98)))) + #f + #f + '(0) + #f + 'exn:fail:syntax:missing-module))))) + (values struct:_58 make-_58 ?_58 (make-struct-field-accessor -ref_58 0 'path)))) + (define-values + (1/current-module-path-for-load) + (make-parameter + #f + (lambda (v_227) + (begin + (if (let-values (((or-part_83) (not v_227))) + (if or-part_83 + or-part_83 + (let-values (((or-part_58) (1/module-path? v_227))) + (if or-part_58 or-part_58 (if (syntax?$1 v_227) (1/module-path? (syntax->datum$1 v_227)) #f))))) + (void) + (let-values () + (raise-argument-error + 'current-module-path-for-load + (string-append + "(or/c module-path?" + " (and/c syntax? (lambda (stx) (module-path? (syntax->datum stx))))" + " #f)") + v_227))) + v_227)) + 'current-module-path-for-load)) + (define-values + (maybe-raise-missing-module) + (lambda (name_77 filename_0 pre_0 rel_1 post_0 errstr_0) + (begin + (let-values (((path_18) (1/current-module-path-for-load))) + (if path_18 + (let-values () + (begin + (if (syntax?$1 path_18) + (let-values () + (raise + (1/make-exn:fail:syntax:missing-module + (format + (string-append + "~a: cannot open module file\n" + " module path: ~a\n" + " path: ~a~a~a~a\n" + " system error: ~a") + (if (1/syntax-srcloc path_18) (srcloc->string (1/syntax-srcloc path_18)) name_77) + (syntax->datum$1 path_18) + filename_0 + pre_0 + rel_1 + post_0 + errstr_0) + (current-continuation-marks) + (list path_18) + (syntax->datum$1 path_18)))) + (void)) + (raise + (1/make-exn:fail:filesystem:missing-module + (format + (string-append + "~a: cannot open module file\n" + " module path: ~a\n" + " path: ~a~a~a~a\n" + " system error: ~a") + name_77 + path_18 + filename_0 + pre_0 + rel_1 + post_0 + errstr_0) + (current-continuation-marks) + path_18)))) + (void)))))) + (define-values + (1/local-expand) + (let-values (((local-expand_0) + (lambda (s2_9 context3_0 stop-ids4_0 intdefs1_0) + (begin + 'local-expand + (let-values (((s_12) s2_9)) + (let-values (((context_10) context3_0)) + (let-values (((stop-ids_2) stop-ids4_0)) + (let-values (((intdefs_4) intdefs1_0)) + (let-values () + (let-values (((temp41_0) 'local-expand) + ((s42_1) s_12) + ((context43_0) context_10) + ((stop-ids44_0) stop-ids_2) + ((intdefs45_0) intdefs_4)) + (do-local-expand.1 + #f + #f + #t + unsafe-undefined + #f + #f + #f + temp41_0 + s42_1 + context43_0 + stop-ids44_0 + intdefs45_0))))))))))) + (case-lambda + ((s_529 context_11 stop-ids_3) (begin 'local-expand (local-expand_0 s_529 context_11 stop-ids_3 #f))) + ((s_496 context_12 stop-ids_4 intdefs1_1) (local-expand_0 s_496 context_12 stop-ids_4 intdefs1_1))))) + (define-values + (1/local-expand/capture-lifts) + (let-values (((local-expand/capture-lifts_0) + (lambda (s7_1 context8_0 stop-ids9_0 intdefs5_0 lift-key6_0) + (begin + 'local-expand/capture-lifts + (let-values (((s_505) s7_1)) + (let-values (((context_13) context8_0)) + (let-values (((stop-ids_5) stop-ids9_0)) + (let-values (((intdefs_5) intdefs5_0)) + (let-values (((lift-key_4) + (if (eq? lift-key6_0 unsafe-undefined) (generate-lift-key) lift-key6_0))) + (let-values () + (let-values (((temp46_5) 'local-expand) + ((s47_0) s_505) + ((context48_0) context_13) + ((stop-ids49_0) stop-ids_5) + ((intdefs50_0) intdefs_5) + ((temp51_6) #t) + ((lift-key52_0) lift-key_4)) + (do-local-expand.1 + #f + temp51_6 + #t + lift-key52_0 + #f + #f + #f + temp46_5 + s47_0 + context48_0 + stop-ids49_0 + intdefs50_0)))))))))))) + (case-lambda + ((s_532 context_14 stop-ids_6) + (begin + 'local-expand/capture-lifts + (local-expand/capture-lifts_0 s_532 context_14 stop-ids_6 #f unsafe-undefined))) + ((s_534 context_15 stop-ids_7 intdefs_6 lift-key6_1) + (local-expand/capture-lifts_0 s_534 context_15 stop-ids_7 intdefs_6 lift-key6_1)) + ((s_548 context_16 stop-ids_8 intdefs5_1) + (local-expand/capture-lifts_0 s_548 context_16 stop-ids_8 intdefs5_1 unsafe-undefined))))) + (define-values + (1/local-transformer-expand) + (let-values (((local-transformer-expand_0) + (lambda (s11_2 context12_0 stop-ids13_0 intdefs10_0) + (begin + 'local-transformer-expand + (let-values (((s_92) s11_2)) + (let-values (((context_17) context12_0)) + (let-values (((stop-ids_9) stop-ids13_0)) + (let-values (((intdefs_7) intdefs10_0)) + (let-values () + (let-values (((temp53_4) 'local-expand) + ((s54_1) s_92) + ((context55_0) context_17) + ((stop-ids56_0) stop-ids_9) + ((intdefs57_0) intdefs_7) + ((temp58_3) #t)) + (do-local-expand.1 + temp58_3 + #f + #t + unsafe-undefined + #f + #f + #f + temp53_4 + s54_1 + context55_0 + stop-ids56_0 + intdefs57_0))))))))))) + (case-lambda + ((s_94 context_18 stop-ids_10) + (begin 'local-transformer-expand (local-transformer-expand_0 s_94 context_18 stop-ids_10 #f))) + ((s_79 context_19 stop-ids_11 intdefs10_1) (local-transformer-expand_0 s_79 context_19 stop-ids_11 intdefs10_1))))) + (define-values + (1/local-transformer-expand/capture-lifts) + (let-values (((local-transformer-expand/capture-lifts_0) + (lambda (s16_2 context17_0 stop-ids18_0 intdefs14_0 lift-key15_0) + (begin + 'local-transformer-expand/capture-lifts + (let-values (((s_549) s16_2)) + (let-values (((context_20) context17_0)) + (let-values (((stop-ids_12) stop-ids18_0)) + (let-values (((intdefs_8) intdefs14_0)) + (let-values (((lift-key_5) + (if (eq? lift-key15_0 unsafe-undefined) (generate-lift-key) lift-key15_0))) + (let-values () + (let-values (((temp59_5) 'local-expand) + ((s60_0) s_549) + ((context61_1) context_20) + ((stop-ids62_0) stop-ids_12) + ((intdefs63_0) intdefs_8) + ((temp64_0) #t) + ((temp65_3) #t) + ((lift-key66_0) lift-key_5)) + (do-local-expand.1 + temp64_0 + temp65_3 + #t + lift-key66_0 + #f + #f + #f + temp59_5 + s60_0 + context61_1 + stop-ids62_0 + intdefs63_0)))))))))))) + (case-lambda + ((s_27 context_21 stop-ids_13) + (begin + 'local-transformer-expand/capture-lifts + (local-transformer-expand/capture-lifts_0 s_27 context_21 stop-ids_13 #f unsafe-undefined))) + ((s_508 context_22 stop-ids_14 intdefs_9 lift-key15_1) + (local-transformer-expand/capture-lifts_0 s_508 context_22 stop-ids_14 intdefs_9 lift-key15_1)) + ((s_550 context_23 stop-ids_15 intdefs14_1) + (local-transformer-expand/capture-lifts_0 s_550 context_23 stop-ids_15 intdefs14_1 unsafe-undefined))))) + (define-values + (1/syntax-local-expand-expression) + (let-values (((syntax-local-expand-expression_0) + (lambda (s20_2 opaque-only?19_0) + (begin + 'syntax-local-expand-expression + (let-values (((s_551) s20_2)) + (let-values (((opaque-only?_0) opaque-only?19_0)) + (let-values () + (let-values (((exp-s_11) + (let-values (((temp67_3) 'syntax-local-expand-expression) + ((s68_0) s_551) + ((temp69_3) 'expression) + ((null70_0) null) + ((temp71_5) #f) + ((opaque-only?72_0) opaque-only?_0) + ((temp73_5) #t) + ((temp74_2) #t) + ((temp75_3) #f)) + (do-local-expand.1 + #f + #f + temp75_3 + unsafe-undefined + temp73_5 + opaque-only?72_0 + temp74_2 + temp67_3 + s68_0 + temp69_3 + null70_0 + temp71_5)))) + (let-values (((ctx_78) (let-values () (get-current-expand-context.1 #f 'unexpected)))) + (let-values (((ae_1) + (flip-introduction-scopes + (datum->syntax$1 + #f + (already-expanded1.1 + (if (parsed? exp-s_11) + exp-s_11 + (flip-introduction-scopes exp-s_11 ctx_78)) + (expand-context-binding-layer ctx_78))) + ctx_78))) + (begin + (let-values (((obs_31) (expand-context-observer ctx_78))) + (if obs_31 + (let-values () (let-values () (call-expand-observe obs_31 'opaque-expr ae_1))) + (void))) + (let-values (((obs_59) (expand-context-observer ctx_78))) + (if obs_59 + (let-values () (let-values () (call-expand-observe obs_59 'exit-local exp-s_11))) + (void))) + (values (if (not opaque-only?_0) exp-s_11 #f) ae_1)))))))))))) + (case-lambda + ((s_314) (begin 'syntax-local-expand-expression (syntax-local-expand-expression_0 s_314 #f))) + ((s_499 opaque-only?19_1) (syntax-local-expand-expression_0 s_499 opaque-only?19_1))))) + (define-values + (do-local-expand.1) + (lambda (as-transformer?22_0 + capture-lifts?21_0 + keep-#%expression?24_0 + lift-key25_0 + skip-log-exit?27_0 + to-parsed-ok?23_1 + track-to-be-defined?26_0 + who36_1 + s-or-s-exp37_0 + context38_0 + stop-ids39_0 + intdefs35_0) + (begin + 'do-local-expand + (let-values (((who_35) who36_1)) + (let-values (((s-or-s-exp_0) s-or-s-exp37_0)) + (let-values (((context_24) context38_0)) + (let-values (((stop-ids_16) stop-ids39_0)) + (let-values (((intdefs_10) intdefs35_0)) + (let-values (((capture-lifts?_0) capture-lifts?21_0)) + (let-values (((as-transformer?_6) as-transformer?22_0)) + (let-values (((to-parsed-ok?_1) to-parsed-ok?23_1)) + (let-values (((keep-#%expression?_2) keep-#%expression?24_0)) + (let-values (((lift-key_6) + (if (eq? lift-key25_0 unsafe-undefined) + (if (let-values (((or-part_46) capture-lifts?_0)) + (if or-part_46 or-part_46 as-transformer?_6)) + (generate-lift-key) + #f) + lift-key25_0))) + (let-values (((track-to-be-defined?_1) track-to-be-defined?26_0)) + (let-values (((skip-log-exit?_0) skip-log-exit?27_0)) + (let-values () + (begin + (if log-performance? + (let-values () (start-performance-region 'expand 'local-expand)) + (void)) + (begin0 + (let-values () + (let-values (((s_57) (datum->syntax$1 #f s-or-s-exp_0))) + (let-values ((() + (begin + (if (let-values (((or-part_50) (list? context_24))) + (if or-part_50 + or-part_50 + (memq + context_24 + (if as-transformer?_6 + '(expression top-level) + '(expression top-level module module-begin))))) + (void) + (let-values () + (raise-argument-error + who_35 + (if as-transformer?_6 + "(or/c 'expression 'top-level list?)" + "(or/c 'expression 'top-level 'module 'module-begin list?)") + context_24))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_517) (not stop-ids_16))) + (if or-part_517 + or-part_517 + (if (list? stop-ids_16) + (andmap2 identifier? stop-ids_16) + #f))) + (void) + (let-values () + (raise-argument-error + who_35 + "(or/c (listof identifier?) #f)" + stop-ids_16))) + (values)))) + (let-values ((() + (begin + (if (intdefs-or-false? intdefs_10) + (void) + (let-values () + (raise-argument-error + who_35 + intdefs-or-false?-string + intdefs_10))) + (values)))) + (let-values (((ctx_79) + (let-values (((who76_0) who_35)) + (get-current-expand-context.1 #f who76_0)))) + (let-values (((phase_141) + (if as-transformer?_6 + (add1 (expand-context-phase ctx_79)) + (expand-context-phase ctx_79)))) + (let-values (((local-ctx_1) + (let-values (((ctx77_0) ctx_79) + ((context78_0) context_24) + ((phase79_1) phase_141) + ((intdefs80_0) intdefs_10) + ((stop-ids81_0) stop-ids_16) + ((to-parsed-ok?82_0) to-parsed-ok?_1) + ((temp83_1) + (let-values (((or-part_109) + keep-#%expression?_2)) + (if or-part_109 + or-part_109 + (if (expand-context-in-local-expand? + ctx_79) + (expand-context-keep-#%expression? + ctx_79) + #f)))) + ((track-to-be-defined?84_0) + track-to-be-defined?_1)) + (make-local-expand-context.1 + context78_0 + intdefs80_0 + temp83_1 + phase79_1 + stop-ids81_0 + to-parsed-ok?82_0 + track-to-be-defined?84_0 + ctx77_0)))) + (let-values ((() + (begin + (with-continuation-mark + current-expand-context + #f + (let-values () + (if (expand-context-skip-visit-available? ctx_79) + (void) + (let-values () + (namespace-visit-available-modules! + (expand-context-namespace ctx_79) + phase_141))))) + (values)))) + (let-values ((() + (begin + (let-values (((obs_60) + (expand-context-observer + local-ctx_1))) + (if obs_60 + (let-values () + (let-values () + (call-expand-observe + obs_60 + 'enter-local + s_57))) + (void))) + (values)))) + (let-values (((input-s_1) + (let-values (((temp85_6) + (flip-introduction-scopes + s_57 + ctx_79)) + ((intdefs86_0) intdefs_10)) + (add-intdef-scopes.1 + unsafe-undefined + #f + temp85_6 + intdefs86_0)))) + (let-values ((() + (begin + (if as-transformer?_6 + (let-values () + (let-values (((obs_61) + (expand-context-observer + local-ctx_1))) + (if obs_61 + (let-values () + (let-values () + (call-expand-observe + obs_61 + 'phase-up))) + (void)))) + (void)) + (values)))) + (let-values ((() + (begin + (let-values (((obs_62) + (expand-context-observer + local-ctx_1))) + (if obs_62 + (let-values () + (let-values () + (call-expand-observe + obs_62 + 'local-pre + input-s_1))) + (void))) + (values)))) + (let-values ((() + (begin + (if stop-ids_16 + (let-values () + (let-values (((obs_63) + (expand-context-observer + local-ctx_1))) + (if obs_63 + (let-values () + (let-values () + (call-expand-observe + obs_63 + 'start))) + (void)))) + (void)) + (values)))) + (let-values (((output-s_0) + (with-continuation-mark + current-expand-context + #f + (let-values () + (if (if as-transformer?_6 + capture-lifts?_0 + #f) + (let-values () + (let-values (((input-s87_0) + input-s_1) + ((local-ctx88_0) + local-ctx_1) + ((context89_0) + context_24) + ((temp90_3) #f) + ((temp91_5) #t) + ((lift-key92_0) + lift-key_6) + ((temp93_2) #t) + ((temp94_3) #t)) + (expand-transformer.1 + temp93_2 + temp91_5 + context89_0 + temp90_3 + temp94_3 + lift-key92_0 + input-s87_0 + local-ctx88_0))) + (if as-transformer?_6 + (let-values () + (let-values (((input-s95_0) + input-s_1) + ((local-ctx96_0) + local-ctx_1) + ((context97_0) + context_24) + ((temp98_3) #f) + ((temp99_2) + (eq? + 'top-level + context_24)) + ((lift-key100_0) + lift-key_6) + ((temp101_1) #t)) + (expand-transformer.1 + #f + temp99_2 + context97_0 + temp98_3 + temp101_1 + lift-key100_0 + input-s95_0 + local-ctx96_0))) + (if capture-lifts?_0 + (let-values () + (let-values (((input-s102_0) + input-s_1) + ((local-ctx103_0) + local-ctx_1) + ((temp104_3) #t) + ((lift-key105_0) + lift-key_6) + ((temp106_4) #t)) + (expand/capture-lifts.1 + temp106_4 + temp104_3 + #f + lift-key105_0 + input-s102_0 + local-ctx103_0))) + (let-values () + (let-values (((input-s107_0) + input-s_1) + ((local-ctx108_0) + local-ctx_1)) + (expand.1 + #f + #f + input-s107_0 + local-ctx108_0)))))))))) + (let-values ((() + (begin + (let-values (((obs_64) + (expand-context-observer + local-ctx_1))) + (if obs_64 + (let-values () + (let-values () + (call-expand-observe + obs_64 + 'local-post + output-s_0))) + (void))) + (values)))) + (let-values (((result-s_8) + (if (parsed? output-s_0) + output-s_0 + (flip-introduction-scopes + output-s_0 + ctx_79)))) + (begin + (if skip-log-exit?_0 + (void) + (let-values () + (let-values (((obs_65) + (expand-context-observer + local-ctx_1))) + (if obs_65 + (let-values () + (let-values () + (call-expand-observe + obs_65 + 'exit-local + result-s_8))) + (void))))) + result-s_8)))))))))))))))))) + (if log-performance? + (let-values () (end-performance-region)) + (void)))))))))))))))))))) + (define-values + (transform-syntax-vals) + (lambda (f_41 vs_1) + (begin + (reverse$1 + (let-values (((lst_82) vs_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_82))) + ((letrec-values (((for-loop_98) + (lambda (fold-var_293 lst_83) + (begin + 'for-loop + (if (pair? lst_83) + (let-values (((v_55) (unsafe-car lst_83)) ((rest_39) (unsafe-cdr lst_83))) + (let-values (((fold-var_243) + (let-values (((fold-var_99) fold-var_293)) + (let-values (((fold-var_100) + (let-values () + (cons + (let-values () + (if (syntax?$1 v_55) (f_41 v_55) v_55)) + fold-var_99)))) + (values fold-var_100))))) + (if (not #f) (for-loop_98 fold-var_243 rest_39) fold-var_243))) + fold-var_293))))) + for-loop_98) + null + lst_82))))))) + (define-values + (1/syntax-local-apply-transformer) + (lambda (transformer_0 binding-id_0 context_25 intdef-ctx_0 . args_11) + (begin + 'syntax-local-apply-transformer + (let-values () + (let-values () + (let-values ((() + (begin + (if (procedure? transformer_0) + (void) + (let-values () + (raise-argument-error 'syntax-local-apply-transformer "procedure?" transformer_0))) + (values)))) + (let-values ((() + (begin + (if ((lambda (binding-id_1) + (let-values (((or-part_86) (identifier? binding-id_1))) + (if or-part_86 or-part_86 (eq? binding-id_1 #f)))) + binding-id_0) + (void) + (let-values () + (raise-argument-error + 'syntax-local-apply-transformer + "(or/c identifier? #f)" + binding-id_0))) + (values)))) + (let-values ((() + (begin + (if ((lambda (context_26) + (let-values (((or-part_144) (list? context_26))) + (if or-part_144 + or-part_144 + (memq context_26 '(expression top-level module module-begin))))) + context_25) + (void) + (let-values () + (raise-argument-error + 'syntax-local-apply-transformer + "(or/c 'expression 'top-level 'module 'module-begin list?)" + context_25))) + (values)))) + (let-values ((() + (begin + (if ((lambda (intdef-ctx_1) + (let-values (((or-part_4) (not intdef-ctx_1))) + (if or-part_4 or-part_4 (1/internal-definition-context? intdef-ctx_1)))) + intdef-ctx_0) + (void) + (let-values () + (raise-argument-error + 'syntax-local-apply-transformer + "(or/c internal-definition-context? #f)" + intdef-ctx_0))) + (values)))) + (let-values (((ctx_14) + (let-values (((who2_1) 'syntax-local-apply-transformer)) + (get-current-expand-context.1 #f who2_1)))) + (let-values (((local-ctx_2) + (let-values (((ctx3_0) ctx_14) + ((context4_0) context_25) + ((intdef-ctx5_0) intdef-ctx_0)) + (make-local-expand-context.1 + context4_0 + intdef-ctx5_0 + #t + unsafe-undefined + #f + #f + #f + ctx3_0)))) + (let-values (((scoped-args_0) + (transform-syntax-vals + (lambda (s_461) + (let-values (((temp6_7) (flip-introduction-scopes s_461 ctx_14)) + ((intdef-ctx7_0) intdef-ctx_0)) + (add-intdef-scopes.1 unsafe-undefined #f temp6_7 intdef-ctx7_0))) + args_11))) + (let-values (((scoped-binding-id_0) + (if binding-id_0 (flip-introduction-scopes binding-id_0 ctx_14) #f))) + (let-values (((output-vals_0) + (with-continuation-mark + current-expand-context + #f + (let-values () + (apply-transformer + 'syntax-local-apply-transformer + transformer_0 + scoped-binding-id_0 + scoped-args_0 + local-ctx_2))))) + (let-values (((result-vals_0) + (transform-syntax-vals + (lambda (s_51) (flip-introduction-scopes s_51 ctx_14)) + output-vals_0))) + (apply values result-vals_0)))))))))))))))) + (define-values + (apply-transformer) + (lambda (who_36 transformer_1 binding-id_2 args_12 ctx_57) + (begin + (let-values (((binding_27 insp-of-t_7) + (if binding-id_2 + (let-values (((binding_28) + (let-values (((binding-id8_0) binding-id_2) + ((temp9_10) (expand-context-phase ctx_57)) + ((temp10_11) 'ambiguous) + ((temp11_7) #t)) + (resolve+shift.1 temp10_11 #f null temp11_7 #f binding-id8_0 temp9_10)))) + (begin + (if (not binding_28) + (let-values () (error who_36 "unbound identifier: ~v" binding-id_2)) + (void)) + (let-values (((t_33 primitive?_9 insp-of-t_8 protected?_11) + (let-values (((binding12_0) binding_28) + ((ctx13_0) ctx_57) + ((binding-id14_0) binding-id_2) + ((temp15_9) #t)) + (lookup.1 #f temp15_9 binding12_0 ctx13_0 binding-id14_0)))) + (values binding_28 insp-of-t_8)))) + (values #f #f)))) + (let-values (((intro-scope_3) (new-scope 'macro))) + (let-values (((use-scopes_2) (maybe-create-use-site-scope ctx_57 binding_27))) + (let-values (((scope-arg_0) + (lambda (s_459) + (begin + 'scope-arg + (let-values (((intro-s_1) (add-scope s_459 intro-scope_3))) + (let-values (((use-s_3) (add-scopes intro-s_1 use-scopes_2))) use-s_3)))))) + (let-values (((scoped-args_1) (transform-syntax-vals scope-arg_0 args_12))) + (let-values (((transformed-vals_0) + (apply-transformer-in-context + transformer_1 + scoped-args_1 + ctx_57 + intro-scope_3 + use-scopes_2 + binding-id_2 + insp-of-t_7))) + (let-values (((scope-res_0) + (lambda (s_163) + (begin + 'scope-res + (let-values (((result-s_9) (flip-scope s_163 intro-scope_3))) + (let-values (((post-s_2) (maybe-add-post-expansion result-s_9 ctx_57))) + post-s_2)))))) + (let-values (((result-vals_1) (transform-syntax-vals scope-res_0 transformed-vals_0))) + result-vals_1))))))))))) + (define-values + (apply-transformer-in-context) + (lambda (transformer_2 args_13 ctx_80 intro-scope_4 use-scopes_3 binding-id_3 insp-of-t_9) + (begin + (let-values (((m-ctx_1) + (let-values (((v_96) ctx_80)) + (let-values (((the-struct_85) v_96)) + (if (expand-context/outer? the-struct_85) + (let-values (((current-introduction-scopes16_0) (list intro-scope_4)) + ((current-use-scopes17_0) use-scopes_3) + ((inner18_0) (root-expand-context/outer-inner v_96))) + (expand-context/outer1.1 + inner18_0 + (root-expand-context/outer-post-expansion the-struct_85) + (root-expand-context/outer-use-site-scopes the-struct_85) + (root-expand-context/outer-frame-id the-struct_85) + (expand-context/outer-context the-struct_85) + (expand-context/outer-env the-struct_85) + (expand-context/outer-scopes the-struct_85) + (expand-context/outer-def-ctx-scopes the-struct_85) + (expand-context/outer-binding-layer the-struct_85) + (expand-context/outer-reference-records the-struct_85) + (expand-context/outer-only-immediate? the-struct_85) + (expand-context/outer-need-eventually-defined the-struct_85) + current-introduction-scopes16_0 + current-use-scopes17_0 + (expand-context/outer-name the-struct_85))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_85)))))) + (let-values (((transformed-vals_1) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + (namespace->namespace-at-phase + (expand-context-namespace ctx_80) + (add1 (expand-context-phase ctx_80)))) + (let-values () + (with-continuation-mark + current-expand-context + m-ctx_1 + (with-continuation-mark + current-module-code-inspector + (let-values (((a_71) insp-of-t_9) ((b_107) (current-module-code-inspector))) + (if (eq? a_71 b_107) + (let-values () a_71) + (if (not a_71) + (let-values () #f) + (if (not b_107) + (let-values () #f) + (if (inspector-superior? a_71 b_107) + (let-values () b_107) + (if (inspector-superior? b_107 a_71) (let-values () a_71) (let-values () #f))))))) + (let-values () + (call-with-continuation-barrier + (lambda () (call-with-values (lambda () (apply transformer_2 args_13)) list)))))))))) + transformed-vals_1))))) + (define-values + (1/syntax-tainted?) + (lambda (s_0) + (begin + 'syntax-tainted? + (let-values () + (let-values () + (begin + (if (syntax?$1 s_0) (void) (let-values () (raise-argument-error 'syntax-tainted? "syntax?" s_0))) + (syntax-tainted?$1 s_0))))))) + (define-values + (1/syntax-arm) + (let-values (((syntax-arm_0) + (lambda (s3_2 maybe-insp1_0 use-mode?2_0) + (begin + 'syntax-arm + (let-values (((s_307) s3_2)) + (let-values (((maybe-insp_0) maybe-insp1_0)) + (let-values () + (let-values () + (let-values () + (let-values () + (begin + (if (syntax?$1 s_307) + (void) + (let-values () (raise-argument-error 'syntax-arm "syntax?" s_307))) + (if (let-values (((or-part_0) (not maybe-insp_0))) + (if or-part_0 or-part_0 (inspector? maybe-insp_0))) + (void) + (let-values () + (raise-argument-error 'syntax-arm "(or/c inspector? #f)" maybe-insp_0))) + s_307))))))))))) + (case-lambda + ((s_88) (begin 'syntax-arm (syntax-arm_0 s_88 #f #f))) + ((s_13 maybe-insp_1 use-mode?2_1) (syntax-arm_0 s_13 maybe-insp_1 use-mode?2_1)) + ((s_48 maybe-insp1_1) (syntax-arm_0 s_48 maybe-insp1_1 #f))))) + (define-values + (1/syntax-disarm) + (lambda (s_496 maybe-insp_2) + (begin + 'syntax-disarm + (let-values () + (let-values () + (begin + (if (syntax?$1 s_496) (void) (let-values () (raise-argument-error 'syntax-disarm "syntax?" s_496))) + (if (let-values (((or-part_84) (not maybe-insp_2))) (if or-part_84 or-part_84 (inspector? maybe-insp_2))) + (void) + (let-values () (raise-argument-error 'syntax-disarm "(or/c inspector? #f)" maybe-insp_2))) + s_496)))))) + (define-values + (1/syntax-rearm) + (let-values (((syntax-rearm_0) + (lambda (s5_4 from-s6_0 use-mode?4_0) + (begin + 'syntax-rearm + (let-values (((s_497) s5_4)) + (let-values (((from-s_2) from-s6_0)) + (let-values () + (let-values () + (let-values () + (let-values () + (begin + (if (syntax?$1 s_497) + (void) + (let-values () (raise-argument-error 'syntax-rearm "syntax?" s_497))) + (if (syntax?$1 from-s_2) + (void) + (let-values () (raise-argument-error 'syntax-rearm "syntax?" from-s_2))) + s_497))))))))))) + (case-lambda + ((s_552 from-s_3) (begin 'syntax-rearm (syntax-rearm_0 s_552 from-s_3 #f))) + ((s_503 from-s_4 use-mode?4_1) (syntax-rearm_0 s_503 from-s_4 use-mode?4_1))))) + (define-values + (1/syntax-taint) + (lambda (s_461) + (begin + 'syntax-taint + (let-values () + (let-values () + (begin + (if (syntax?$1 s_461) (void) (let-values () (raise-argument-error 'syntax-taint "syntax?" s_461))) + (syntax-taint$1 s_461))))))) + (define-values + (struct:serialized-syntax + serialized-syntax1.1 + serialized-syntax? + serialized-syntax-version + serialized-syntax-mpis + serialized-syntax-base-mpi-pos + serialized-syntax-data + serialized-syntax-need-registry?) + (let-values (((struct:_2 make-_2 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () + (make-struct-type + 'serialized-syntax + #f + 5 + 0 + #f + null + 'prefab + #f + '(0 1 2 3 4) + #f + 'serialized-syntax))))) + (values + struct:_2 + make-_2 + ?_2 + (make-struct-field-accessor -ref_2 0 'version) + (make-struct-field-accessor -ref_2 1 'mpis) + (make-struct-field-accessor -ref_2 2 'base-mpi-pos) + (make-struct-field-accessor -ref_2 3 'data) + (make-struct-field-accessor -ref_2 4 'need-registry?)))) + (define-values + (1/syntax-serialize) + (let-values (((syntax-serialize_0) + (lambda (stx5_0 base-mpi2_0 preserve-prop-keys3_0 provides-namespace4_0) + (begin + 'syntax-serialize + (let-values (((stx_13) stx5_0)) + (let-values (((base-mpi_0) base-mpi2_0)) + (let-values (((preserve-prop-keys_2) preserve-prop-keys3_0)) + (let-values (((provides-namespace_0) + (if (eq? provides-namespace4_0 unsafe-undefined) + (1/current-namespace) + provides-namespace4_0))) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if (syntax?$1 stx_13) + (void) + (let-values () + (raise-argument-error 'syntax-serialize "syntax?" stx_13))) + (values)))) + (let-values ((() + (begin + (if ((lambda (x_98) + (let-values (((or-part_84) (not x_98))) + (if or-part_84 or-part_84 (1/module-path-index? x_98)))) + base-mpi_0) + (void) + (let-values () + (raise-argument-error + 'syntax-serialize + "(or/c module-path-index? #f)" + base-mpi_0))) + (values)))) + (let-values ((() + (begin + (if ((lambda (l_74) (if (list? l_74) (andmap2 symbol? l_74) #f)) + preserve-prop-keys_2) + (void) + (let-values () + (raise-argument-error + 'syntax-serialize + "(listof symbol?)" + preserve-prop-keys_2))) + (values)))) + (let-values ((() + (begin + (if ((lambda (x_99) + (let-values (((or-part_74) (not x_99))) + (if or-part_74 or-part_74 (1/namespace? x_99)))) + provides-namespace_0) + (void) + (let-values () + (raise-argument-error + 'syntax-serialize + "(or/c namespace? #f)" + provides-namespace_0))) + (values)))) + (let-values (((mpis_23) (make-module-path-index-table))) + (let-values (((base-mpi-pos_0) + (if base-mpi_0 + (add-module-path-index!/pos mpis_23 base-mpi_0) + #f))) + (let-values (((data_2) + (let-values (((stx10_0) stx_13) + ((mpis11_0) mpis_23) + ((temp12_9) #t) + ((temp13_8) + (let-values (((lst_319) preserve-prop-keys_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_319))) + ((letrec-values (((for-loop_300) + (lambda (table_221 + lst_104) + (begin + 'for-loop + (if (pair? lst_104) + (let-values (((k_59) + (unsafe-car + lst_104)) + ((rest_49) + (unsafe-cdr + lst_104))) + (let-values (((table_192) + (let-values (((table_216) + table_221)) + (let-values (((table_104) + (let-values () + (let-values (((key_30 + val_90) + (let-values () + (values + k_59 + #t)))) + (hash-set + table_216 + key_30 + val_90))))) + (values + table_104))))) + (if (not #f) + (for-loop_300 + table_192 + rest_49) + table_192))) + table_221))))) + for-loop_300) + '#hasheq() + lst_319)))) + ((temp14_8) + (if provides-namespace_0 + (lambda (modname_0) + (begin + 'temp14 + (not + (namespace->module + provides-namespace_0 + modname_0)))) + (lambda (modname_1) (begin 'temp14 #t))))) + (generate-deserialize.1 + temp12_9 + temp14_8 + mpis11_0 + temp13_8 + #t + stx10_0)))) + (serialized-syntax1.1 + (version) + (let-values (((mpis15_0) mpis_23) ((temp16_10) #t)) + (generate-module-path-index-deserialize.1 temp16_10 mpis15_0)) + base-mpi-pos_0 + data_2 + (if provides-namespace_0 #t #f)))))))))))))))))))) + (case-lambda + ((stx_14) (begin 'syntax-serialize (syntax-serialize_0 stx_14 #f '() unsafe-undefined))) + ((stx_15 base-mpi_1 preserve-prop-keys_3 provides-namespace4_1) + (syntax-serialize_0 stx_15 base-mpi_1 preserve-prop-keys_3 provides-namespace4_1)) + ((stx_16 base-mpi_2 preserve-prop-keys3_1) + (syntax-serialize_0 stx_16 base-mpi_2 preserve-prop-keys3_1 unsafe-undefined)) + ((stx_17 base-mpi2_1) (syntax-serialize_0 stx_17 base-mpi2_1 '() unsafe-undefined))))) + (define-values + (1/syntax-deserialize) + (let-values (((syntax-deserialize_0) + (lambda (data7_0 base-mpi6_0) + (begin + 'syntax-deserialize + (let-values (((data_3) data7_0)) + (let-values (((base-mpi_3) base-mpi6_0)) + (let-values () + (let-values () + (let-values () + (let-values ((() + (begin + (if ((lambda (x_100) + (let-values (((or-part_9) (not x_100))) + (if or-part_9 or-part_9 (1/module-path-index? x_100)))) + base-mpi_3) + (void) + (let-values () + (raise-argument-error + 'syntax-deserialize + "(or/c module-path-index? #f)" + base-mpi_3))) + (values)))) + (let-values ((() + (begin + (if (serialized-syntax? data_3) + (void) + (let-values () + (raise-arguments-error + 'syntax-deserialize + "invalid serialized form" + "value" + data_3))) + (values)))) + (let-values ((() + (begin + (if (equal? (version) (serialized-syntax-version data_3)) + (void) + (let-values () + (raise-arguments-error + 'syntax-deserialize + "version mismatch" + "expected" + (version) + "found" + (serialized-syntax-version data_3)))) + (values)))) + (let-values ((() + (begin + (if (eq? (current-code-inspector) initial-code-inspector) + (void) + (let-values () + (error + 'syntax-deserialize + "deserialization disallowed by code inspector"))) + (values)))) + (let-values (((orig-mpis_0) + (deserialize-module-path-index-data + (serialized-syntax-mpis data_3)))) + (let-values (((orig-base-mpi_0) + (if base-mpi_3 + (let-values (((pos_120) + (serialized-syntax-base-mpi-pos data_3))) + (if pos_120 (vector-ref orig-mpis_0 pos_120) #f)) + #f))) + (let-values (((shifted-mpis_0) + (if orig-base-mpi_0 + (let-values (((len_73) (vector-length orig-mpis_0))) + (begin + (if (exact-nonnegative-integer? len_73) + (void) + (let-values () + (raise-argument-error + 'for/vector + "exact-nonnegative-integer?" + len_73))) + (let-values (((v_37) (make-vector len_73 0))) + (begin + (if (zero? len_73) + (void) + (let-values () + (let-values (((vec_86 len_49) + (let-values (((vec_85) orig-mpis_0)) + (begin + (check-vector vec_85) + (values + vec_85 + (unsafe-vector-length + vec_85)))))) + (begin + #f + ((letrec-values (((for-loop_274) + (lambda (i_212 pos_142) + (begin + 'for-loop + (if (unsafe-fx< + pos_142 + len_49) + (let-values (((mpi_65) + (unsafe-vector-ref + vec_86 + pos_142))) + (let-values (((i_194) + (let-values (((i_20) + i_212)) + (let-values (((i_113) + (let-values () + (begin + (unsafe-vector*-set! + v_37 + i_20 + (let-values () + (module-path-index-shift + mpi_65 + orig-base-mpi_0 + base-mpi_3))) + (unsafe-fx+ + 1 + i_20))))) + (values + i_113))))) + (if (if (not + ((lambda x_101 + (unsafe-fx= + i_194 + len_73)) + mpi_65)) + (not #f) + #f) + (for-loop_274 + i_194 + (unsafe-fx+ + 1 + pos_142)) + i_194))) + i_212))))) + for-loop_274) + 0 + 0))))) + v_37)))) + orig-mpis_0))) + (let-values (((bulk-binding-registry_22) + (if (serialized-syntax-need-registry? data_3) + (namespace-bulk-binding-registry (1/current-namespace)) + #f))) + (deserialize-data + shifted-mpis_0 + #f + bulk-binding-registry_22 + (serialized-syntax-data data_3))))))))))))))))))) + (case-lambda + ((data_4) (begin 'syntax-deserialize (syntax-deserialize_0 data_4 #f))) + ((data_5 base-mpi6_1) (syntax-deserialize_0 data_5 base-mpi6_1))))) + (define-values + (1/variable-reference->empty-namespace) + (lambda (vr_0) + (begin + 'variable-reference->empty-namespace + (let-values () + (let-values () + (begin + (if (1/variable-reference? vr_0) + (void) + (let-values () (raise-argument-error 'variable-reference->empty-namespace "variable-reference?" vr_0))) + (let-values (((temp2_7) (1/variable-reference->namespace vr_0))) + (new-namespace.1 #t unsafe-undefined temp2_7)))))))) + (define-values + (1/variable-reference->namespace) + (lambda (vr_1) + (begin + 'variable-reference->namespace + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/variable-reference? vr_1) + (void) + (let-values () + (raise-argument-error 'variable-reference->namespace "variable-reference?" vr_1))) + (values)))) + (let-values (((ns_62) (variable-reference->namespace* vr_1))) + (let-values (((mpi_66) (namespace-mpi ns_62))) + (begin + (if (non-self-module-path-index? mpi_66) + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + ns_62) + (let-values () + (let-values (((ns4_2) ns_62) ((mpi5_1) mpi_66) ((temp6_8) (namespace-0-phase ns_62))) + (namespace-module-make-available!.1 unsafe-undefined ns4_2 mpi5_1 temp6_8))))) + (void)) + ns_62))))))))) + (define-values + (variable-reference->namespace*) + (lambda (vr_2) + (begin + (let-values (((inst_8) (1/variable-reference->instance vr_2))) + (if (symbol? inst_8) + (let-values () + (1/module->namespace (list 'quote inst_8) (1/instance-data (1/variable-reference->instance vr_2 #t)))) + (if (not inst_8) + (let-values () (1/instance-data (1/variable-reference->instance vr_2 #t))) + (let-values () (1/instance-data inst_8)))))))) + (define-values + (1/variable-reference->module-path-index) + (lambda (vr_3) + (begin + 'variable-reference->module-path-index + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/variable-reference? vr_3) + (void) + (let-values () + (raise-argument-error 'variable-reference->module-path-index "variable-reference?" vr_3))) + (values)))) + (let-values (((mpi_67) (namespace-mpi (variable-reference->namespace* vr_3)))) + (if (top-level-module-path-index? mpi_67) #f mpi_67)))))))) + (define-values + (1/variable-reference->resolved-module-path) + (lambda (vr_4) + (begin + 'variable-reference->resolved-module-path + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/variable-reference? vr_4) + (void) + (let-values () + (raise-argument-error + 'variable-reference->resolved-module-path + "variable-reference?" + vr_4))) + (values)))) + (let-values (((mpi_27) (1/variable-reference->module-path-index vr_4))) + (if mpi_27 (1/module-path-index-resolve mpi_27) #f)))))))) + (define-values + (1/variable-reference->module-source) + (lambda (vr_5) + (begin + 'variable-reference->module-source + (let-values () + (let-values () + (let-values ((() + (begin + (if (1/variable-reference? vr_5) + (void) + (let-values () + (raise-argument-error 'variable-reference->module-source "variable-reference?" vr_5))) + (values)))) + (let-values (((ns_117) (variable-reference->namespace* vr_5))) (namespace-source-name ns_117)))))))) + (define-values + (1/variable-reference->phase) + (lambda (vr_6) + (begin + 'variable-reference->phase + (let-values () + (let-values () + (begin + (if (1/variable-reference? vr_6) + (void) + (let-values () (raise-argument-error 'variable-reference->phase "variable-reference?" vr_6))) + (namespace-phase (variable-reference->namespace* vr_6)))))))) + (define-values + (1/variable-reference->module-base-phase) + (lambda (vr_7) + (begin + 'variable-reference->module-base-phase + (let-values () + (let-values () + (begin + (if (1/variable-reference? vr_7) + (void) + (let-values () (raise-argument-error 'variable-reference->module-base-phase "variable-reference?" vr_7))) + (namespace-0-phase (variable-reference->namespace* vr_7)))))))) + (define-values + (1/variable-reference->module-declaration-inspector) + (lambda (vr_8) + (begin + 'variable-reference->module-declaration-inspector + (let-values () + (let-values () + (begin + (if (1/variable-reference? vr_8) + (void) + (let-values () + (raise-argument-error 'variable-reference->module-declaration-inspector "variable-reference?" vr_8))) + (if (1/variable-reference->instance vr_8) + (let-values () + (raise-arguments-error + 'variable-reference->module-declaration-inspector + "variable reference does not refer to an anonymous module variable" + "variable reference" + vr_8)) + (void)) + (let-values (((or-part_145) (namespace-declaration-inspector (variable-reference->namespace* vr_8)))) + (if or-part_145 + or-part_145 + (raise-arguments-error + 'variable-reference->module-declaration-inspector + "given variable reference is not from a module"))))))))) + (define-values + (primitive-ids) + (seteq + 'syntax? + 'syntax-e + 'syntax->datum + 'datum->syntax + 'bound-identifier=? + 'free-identifier=? + 'free-transformer-identifier=? + 'free-template-identifier=? + 'free-label-identifier=? + 'identifier-binding + 'identifier-transformer-binding + 'identifier-template-binding + 'identifier-label-binding + 'identifier-binding-symbol + 'identifier-prune-lexical-context + 'syntax-debug-info + 'syntax-track-origin + 'syntax-shift-phase-level + 'syntax-source-module + 'identifier-prune-to-source-module + 'syntax-srcloc + 'syntax-source + 'syntax-line + 'syntax-column + 'syntax-position + 'syntax-span + 'syntax->list + 'syntax-property + 'syntax-property-remove + 'syntax-property-preserved? + 'syntax-property-symbol-keys + 'syntax-original? + 'syntax-tainted? + 'syntax-arm + 'syntax-disarm + 'syntax-rearm + 'syntax-taint + 'syntax-binding-set + 'syntax-binding-set? + 'syntax-binding-set-extend + 'syntax-binding-set->syntax + 'syntax-serialize + 'syntax-deserialize + 'raise-syntax-error + 'struct:exn:fail:syntax + 'exn:fail:syntax + 'make-exn:fail:syntax + 'exn:fail:syntax? + 'exn:fail:syntax-exprs + 'struct:exn:fail:syntax:unbound + 'exn:fail:syntax:unbound + 'make-exn:fail:syntax:unbound + 'exn:fail:syntax:unbound? + 'current-module-path-for-load + 'prop:exn:missing-module + 'exn:missing-module? + 'exn:missing-module-accessor + 'struct:exn:fail:filesystem:missing-module + 'exn:fail:filesystem:missing-module + 'make-exn:fail:filesystem:missing-module + 'exn:fail:filesystem:missing-module? + 'exn:fail:filesystem:missing-module-path + 'struct:exn:fail:syntax:missing-module + 'exn:fail:syntax:missing-module + 'make-exn:fail:syntax:missing-module + 'exn:fail:syntax:missing-module? + 'exn:fail:syntax:missing-module-path + 'syntax-transforming? + 'syntax-transforming-with-lifts? + 'syntax-transforming-module-expression? + 'syntax-local-transforming-module-provides? + 'syntax-local-context + 'syntax-local-introduce + 'syntax-local-identifier-as-binding + 'syntax-local-phase-level + 'syntax-local-name + 'make-syntax-introducer + 'make-interned-syntax-introducer + 'make-syntax-delta-introducer + 'syntax-local-make-delta-introducer + 'syntax-local-value + 'syntax-local-value/immediate + 'syntax-local-lift-expression + 'syntax-local-lift-values-expression + 'syntax-local-lift-context + 'syntax-local-lift-module + 'syntax-local-lift-require + 'syntax-local-lift-provide + 'syntax-local-lift-module-end-declaration + 'syntax-local-module-defined-identifiers + 'syntax-local-module-required-identifiers + 'syntax-local-module-exports + 'syntax-local-submodules + 'syntax-local-module-interned-scope-symbols + 'syntax-local-get-shadower + 'syntax-local-apply-transformer + 'local-expand + 'local-expand/capture-lifts + 'local-transformer-expand + 'local-transformer-expand/capture-lifts + 'syntax-local-expand-expression + 'internal-definition-context? + 'syntax-local-make-definition-context + 'syntax-local-bind-syntaxes + 'internal-definition-context-binding-identifiers + 'internal-definition-context-introduce + 'internal-definition-context-seal + 'identifier-remove-from-definition-context + 'internal-definition-context-add-scopes + 'internal-definition-context-splice-binding-identifier + 'make-set!-transformer + 'prop:set!-transformer + 'set!-transformer? + 'set!-transformer-procedure + 'rename-transformer? + 'prop:rename-transformer + 'make-rename-transformer + 'rename-transformer-target + 'prop:liberal-define-context + 'liberal-define-context? + 'prop:expansion-contexts + 'module-path? + 'resolved-module-path? + 'make-resolved-module-path + 'resolved-module-path-name + 'module-path-index? + 'module-path-index-resolve + 'module-path-index-join + 'module-path-index-split + 'module-path-index-submodule + 'current-module-name-resolver + 'current-module-declare-name + 'current-module-declare-source + 'current-namespace + 'namespace-module-registry + 'namespace? + 'variable-reference->empty-namespace + 'variable-reference->namespace + 'variable-reference->resolved-module-path + 'variable-reference->module-path-index + 'variable-reference->module-source + 'variable-reference->phase + 'variable-reference->module-base-phase + 'variable-reference->module-declaration-inspector + 'read-syntax + 'read-syntax/recursive)) + (void + (begin + (let-values (((temp1_5) 'syntax?) ((syntax?2_0) syntax?$1)) (add-core-primitive!.1 #f temp1_5 syntax?2_0)) + (let-values (((temp3_10) 'syntax-e) ((syntax-e4_0) 1/syntax-e)) (add-core-primitive!.1 #f temp3_10 syntax-e4_0)) + (let-values (((temp5_11) 'syntax->datum) ((syntax->datum6_0) 1/syntax->datum)) + (add-core-primitive!.1 #f temp5_11 syntax->datum6_0)) + (let-values (((temp7_7) 'datum->syntax) ((datum->syntax8_0) 1/datum->syntax)) + (add-core-primitive!.1 #f temp7_7 datum->syntax8_0)) + (let-values (((temp9_11) 'bound-identifier=?) ((bound-identifier=?10_0) 1/bound-identifier=?)) + (add-core-primitive!.1 #f temp9_11 bound-identifier=?10_0)) + (let-values (((temp11_8) 'free-identifier=?) ((free-identifier=?12_0) 1/free-identifier=?)) + (add-core-primitive!.1 #f temp11_8 free-identifier=?12_0)) + (let-values (((temp13_9) 'free-transformer-identifier=?) + ((free-transformer-identifier=?14_0) 1/free-transformer-identifier=?)) + (add-core-primitive!.1 #f temp13_9 free-transformer-identifier=?14_0)) + (let-values (((temp15_10) 'free-template-identifier=?) + ((free-template-identifier=?16_0) 1/free-template-identifier=?)) + (add-core-primitive!.1 #f temp15_10 free-template-identifier=?16_0)) + (let-values (((temp17_2) 'free-label-identifier=?) ((free-label-identifier=?18_0) 1/free-label-identifier=?)) + (add-core-primitive!.1 #f temp17_2 free-label-identifier=?18_0)) + (let-values (((temp19_8) 'identifier-binding) ((identifier-binding20_0) 1/identifier-binding)) + (add-core-primitive!.1 #f temp19_8 identifier-binding20_0)) + (let-values (((temp21_9) 'identifier-transformer-binding) + ((identifier-transformer-binding22_0) 1/identifier-transformer-binding)) + (add-core-primitive!.1 #f temp21_9 identifier-transformer-binding22_0)) + (let-values (((temp23_9) 'identifier-template-binding) + ((identifier-template-binding24_0) 1/identifier-template-binding)) + (add-core-primitive!.1 #f temp23_9 identifier-template-binding24_0)) + (let-values (((temp25_6) 'identifier-label-binding) ((identifier-label-binding26_0) 1/identifier-label-binding)) + (add-core-primitive!.1 #f temp25_6 identifier-label-binding26_0)) + (let-values (((temp27_5) 'identifier-binding-symbol) ((identifier-binding-symbol28_0) 1/identifier-binding-symbol)) + (add-core-primitive!.1 #f temp27_5 identifier-binding-symbol28_0)) + (let-values (((temp29_5) 'identifier-prune-lexical-context) + ((identifier-prune-lexical-context30_0) 1/identifier-prune-lexical-context)) + (add-core-primitive!.1 #f temp29_5 identifier-prune-lexical-context30_0)) + (let-values (((temp31_8) 'syntax-debug-info) ((syntax-debug-info32_0) 1/syntax-debug-info)) + (add-core-primitive!.1 #f temp31_8 syntax-debug-info32_0)) + (let-values (((temp33_8) 'syntax-track-origin) ((syntax-track-origin34_0) 1/syntax-track-origin)) + (add-core-primitive!.1 #f temp33_8 syntax-track-origin34_0)) + (let-values (((temp35_3) 'syntax-shift-phase-level) ((syntax-shift-phase-level36_0) 1/syntax-shift-phase-level)) + (add-core-primitive!.1 #f temp35_3 syntax-shift-phase-level36_0)) + (let-values (((temp37_5) 'syntax-source-module) ((syntax-source-module38_0) 1/syntax-source-module)) + (add-core-primitive!.1 #f temp37_5 syntax-source-module38_0)) + (let-values (((temp39_6) 'identifier-prune-to-source-module) + ((identifier-prune-to-source-module40_0) 1/identifier-prune-to-source-module)) + (add-core-primitive!.1 #f temp39_6 identifier-prune-to-source-module40_0)) + (let-values (((temp41_8) 'syntax-srcloc) ((syntax-srcloc42_0) 1/syntax-srcloc)) + (add-core-primitive!.1 #f temp41_8 syntax-srcloc42_0)) + (let-values (((temp43_4) 'syntax-source) ((syntax-source44_0) 1/syntax-source)) + (add-core-primitive!.1 #f temp43_4 syntax-source44_0)) + (let-values (((temp45_3) 'syntax-line) ((syntax-line46_0) 1/syntax-line)) + (add-core-primitive!.1 #f temp45_3 syntax-line46_0)) + (let-values (((temp47_2) 'syntax-column) ((syntax-column48_0) 1/syntax-column)) + (add-core-primitive!.1 #f temp47_2 syntax-column48_0)) + (let-values (((temp49_4) 'syntax-position) ((syntax-position50_0) 1/syntax-position)) + (add-core-primitive!.1 #f temp49_4 syntax-position50_0)) + (let-values (((temp51_7) 'syntax-span) ((syntax-span52_0) 1/syntax-span)) + (add-core-primitive!.1 #f temp51_7 syntax-span52_0)) + (let-values (((temp53_5) 'syntax->list) ((syntax->list54_0) 1/syntax->list)) + (add-core-primitive!.1 #f temp53_5 syntax->list54_0)) + (let-values (((temp55_2) 'syntax-property) ((syntax-property56_0) syntax-property$1)) + (add-core-primitive!.1 #f temp55_2 syntax-property56_0)) + (let-values (((temp57_1) 'syntax-property-remove) ((syntax-property-remove58_0) 1/syntax-property-remove)) + (add-core-primitive!.1 #f temp57_1 syntax-property-remove58_0)) + (let-values (((temp59_6) 'syntax-property-preserved?) + ((syntax-property-preserved?60_0) 1/syntax-property-preserved?)) + (add-core-primitive!.1 #f temp59_6 syntax-property-preserved?60_0)) + (let-values (((temp61_5) 'syntax-property-symbol-keys) + ((syntax-property-symbol-keys62_0) 1/syntax-property-symbol-keys)) + (add-core-primitive!.1 #f temp61_5 syntax-property-symbol-keys62_0)) + (let-values (((temp63_6) 'syntax-original?) ((syntax-original?64_0) 1/syntax-original?)) + (add-core-primitive!.1 #f temp63_6 syntax-original?64_0)) + (let-values (((temp65_4) 'syntax-tainted?) ((syntax-tainted?66_0) 1/syntax-tainted?)) + (add-core-primitive!.1 #f temp65_4 syntax-tainted?66_0)) + (let-values (((temp67_3) 'syntax-arm) ((syntax-arm68_0) 1/syntax-arm)) + (add-core-primitive!.1 #f temp67_3 syntax-arm68_0)) + (let-values (((temp69_3) 'syntax-disarm) ((syntax-disarm70_0) 1/syntax-disarm)) + (add-core-primitive!.1 #f temp69_3 syntax-disarm70_0)) + (let-values (((temp71_5) 'syntax-rearm) ((syntax-rearm72_0) 1/syntax-rearm)) + (add-core-primitive!.1 #f temp71_5 syntax-rearm72_0)) + (let-values (((temp73_5) 'syntax-taint) ((syntax-taint74_0) 1/syntax-taint)) + (add-core-primitive!.1 #f temp73_5 syntax-taint74_0)) + (let-values (((temp75_3) 'syntax-binding-set) ((syntax-binding-set76_0) 1/syntax-binding-set)) + (add-core-primitive!.1 #f temp75_3 syntax-binding-set76_0)) + (let-values (((temp77_4) 'syntax-binding-set?) ((syntax-binding-set?78_0) 1/syntax-binding-set?)) + (add-core-primitive!.1 #f temp77_4 syntax-binding-set?78_0)) + (let-values (((temp79_4) 'syntax-binding-set-extend) ((syntax-binding-set-extend80_0) 1/syntax-binding-set-extend)) + (add-core-primitive!.1 #f temp79_4 syntax-binding-set-extend80_0)) + (let-values (((temp81_3) 'syntax-binding-set->syntax) + ((syntax-binding-set->syntax82_0) 1/syntax-binding-set->syntax)) + (add-core-primitive!.1 #f temp81_3 syntax-binding-set->syntax82_0)) + (let-values (((temp83_2) 'syntax-serialize) ((syntax-serialize84_0) 1/syntax-serialize)) + (add-core-primitive!.1 #f temp83_2 syntax-serialize84_0)) + (let-values (((temp85_7) 'syntax-deserialize) ((syntax-deserialize86_0) 1/syntax-deserialize)) + (add-core-primitive!.1 #f temp85_7 syntax-deserialize86_0)) + (let-values (((temp87_1) 'raise-syntax-error) ((raise-syntax-error88_0) raise-syntax-error$1)) + (add-core-primitive!.1 #f temp87_1 raise-syntax-error88_0)) + (let-values (((temp89_2) 'struct:exn:fail:syntax) ((struct:exn:fail:syntax90_0) 1/struct:exn:fail:syntax)) + (add-core-primitive!.1 #f temp89_2 struct:exn:fail:syntax90_0)) + (let-values (((temp91_6) 'exn:fail:syntax) ((exn:fail:syntax92_0) make-exn:fail:syntax$1)) + (add-core-primitive!.1 #f temp91_6 exn:fail:syntax92_0)) + (let-values (((temp93_3) 'make-exn:fail:syntax) ((make-exn:fail:syntax94_0) make-exn:fail:syntax$1)) + (add-core-primitive!.1 #f temp93_3 make-exn:fail:syntax94_0)) + (let-values (((temp95_2) 'exn:fail:syntax?) ((exn:fail:syntax?96_0) 1/exn:fail:syntax?)) + (add-core-primitive!.1 #f temp95_2 exn:fail:syntax?96_0)) + (let-values (((temp97_1) 'exn:fail:syntax-exprs) ((exn:fail:syntax-exprs98_0) 1/exn:fail:syntax-exprs)) + (add-core-primitive!.1 #f temp97_1 exn:fail:syntax-exprs98_0)) + (let-values (((temp99_3) 'struct:exn:fail:syntax:unbound) + ((struct:exn:fail:syntax:unbound100_0) 1/struct:exn:fail:syntax:unbound)) + (add-core-primitive!.1 #f temp99_3 struct:exn:fail:syntax:unbound100_0)) + (let-values (((temp101_2) 'exn:fail:syntax:unbound) ((exn:fail:syntax:unbound102_0) make-exn:fail:syntax:unbound$1)) + (add-core-primitive!.1 #f temp101_2 exn:fail:syntax:unbound102_0)) + (let-values (((temp103_4) 'make-exn:fail:syntax:unbound) + ((make-exn:fail:syntax:unbound104_0) make-exn:fail:syntax:unbound$1)) + (add-core-primitive!.1 #f temp103_4 make-exn:fail:syntax:unbound104_0)) + (let-values (((temp105_3) 'exn:fail:syntax:unbound?) ((exn:fail:syntax:unbound?106_0) 1/exn:fail:syntax:unbound?)) + (add-core-primitive!.1 #f temp105_3 exn:fail:syntax:unbound?106_0)) + (let-values (((temp107_4) 'current-module-path-for-load) + ((current-module-path-for-load108_0) 1/current-module-path-for-load)) + (add-core-primitive!.1 #f temp107_4 current-module-path-for-load108_0)) + (let-values (((temp109_1) 'prop:exn:missing-module) ((prop:exn:missing-module110_0) 1/prop:exn:missing-module)) + (add-core-primitive!.1 #f temp109_1 prop:exn:missing-module110_0)) + (let-values (((temp111_2) 'exn:missing-module?) ((exn:missing-module?112_0) 1/exn:missing-module?)) + (add-core-primitive!.1 #f temp111_2 exn:missing-module?112_0)) + (let-values (((temp113_3) 'exn:missing-module-accessor) + ((exn:missing-module-accessor114_0) 1/exn:missing-module-accessor)) + (add-core-primitive!.1 #f temp113_3 exn:missing-module-accessor114_0)) + (let-values (((temp115_2) 'struct:exn:fail:filesystem:missing-module) + ((struct:exn:fail:filesystem:missing-module116_0) 1/struct:exn:fail:filesystem:missing-module)) + (add-core-primitive!.1 #f temp115_2 struct:exn:fail:filesystem:missing-module116_0)) + (let-values (((temp117_4) 'exn:fail:filesystem:missing-module) + ((exn:fail:filesystem:missing-module118_0) 1/make-exn:fail:filesystem:missing-module)) + (add-core-primitive!.1 #f temp117_4 exn:fail:filesystem:missing-module118_0)) + (let-values (((temp119_1) 'make-exn:fail:filesystem:missing-module) + ((make-exn:fail:filesystem:missing-module120_0) 1/make-exn:fail:filesystem:missing-module)) + (add-core-primitive!.1 #f temp119_1 make-exn:fail:filesystem:missing-module120_0)) + (let-values (((temp121_3) 'exn:fail:filesystem:missing-module?) + ((exn:fail:filesystem:missing-module?122_0) 1/exn:fail:filesystem:missing-module?)) + (add-core-primitive!.1 #f temp121_3 exn:fail:filesystem:missing-module?122_0)) + (let-values (((temp123_0) 'exn:fail:filesystem:missing-module-path) + ((exn:fail:filesystem:missing-module-path124_0) 1/exn:fail:filesystem:missing-module-path)) + (add-core-primitive!.1 #f temp123_0 exn:fail:filesystem:missing-module-path124_0)) + (let-values (((temp125_3) 'struct:exn:fail:syntax:missing-module) + ((struct:exn:fail:syntax:missing-module126_0) 1/struct:exn:fail:syntax:missing-module)) + (add-core-primitive!.1 #f temp125_3 struct:exn:fail:syntax:missing-module126_0)) + (let-values (((temp127_1) 'exn:fail:syntax:missing-module) + ((exn:fail:syntax:missing-module128_0) 1/make-exn:fail:syntax:missing-module)) + (add-core-primitive!.1 #f temp127_1 exn:fail:syntax:missing-module128_0)) + (let-values (((temp129_5) 'make-exn:fail:syntax:missing-module) + ((make-exn:fail:syntax:missing-module130_0) 1/make-exn:fail:syntax:missing-module)) + (add-core-primitive!.1 #f temp129_5 make-exn:fail:syntax:missing-module130_0)) + (let-values (((temp131_3) 'exn:fail:syntax:missing-module?) + ((exn:fail:syntax:missing-module?132_0) 1/exn:fail:syntax:missing-module?)) + (add-core-primitive!.1 #f temp131_3 exn:fail:syntax:missing-module?132_0)) + (let-values (((temp133_3) 'exn:fail:syntax:missing-module-path) + ((exn:fail:syntax:missing-module-path134_0) 1/exn:fail:syntax:missing-module-path)) + (add-core-primitive!.1 #f temp133_3 exn:fail:syntax:missing-module-path134_0)) + (let-values (((temp135_1) 'syntax-transforming?) ((syntax-transforming?136_0) 1/syntax-transforming?)) + (add-core-primitive!.1 #f temp135_1 syntax-transforming?136_0)) + (let-values (((temp137_2) 'syntax-transforming-with-lifts?) + ((syntax-transforming-with-lifts?138_0) 1/syntax-transforming-with-lifts?)) + (add-core-primitive!.1 #f temp137_2 syntax-transforming-with-lifts?138_0)) + (let-values (((temp139_0) 'syntax-transforming-module-expression?) + ((syntax-transforming-module-expression?140_0) 1/syntax-transforming-module-expression?)) + (add-core-primitive!.1 #f temp139_0 syntax-transforming-module-expression?140_0)) + (let-values (((temp141_2) 'syntax-local-transforming-module-provides?) + ((syntax-local-transforming-module-provides?142_0) 1/syntax-local-transforming-module-provides?)) + (add-core-primitive!.1 #f temp141_2 syntax-local-transforming-module-provides?142_0)) + (let-values (((temp143_2) 'syntax-local-context) ((syntax-local-context144_0) 1/syntax-local-context)) + (add-core-primitive!.1 #f temp143_2 syntax-local-context144_0)) + (let-values (((temp145_1) 'syntax-local-introduce) ((syntax-local-introduce146_0) 1/syntax-local-introduce)) + (add-core-primitive!.1 #f temp145_1 syntax-local-introduce146_0)) + (let-values (((temp147_2) 'syntax-local-identifier-as-binding) + ((syntax-local-identifier-as-binding148_0) 1/syntax-local-identifier-as-binding)) + (add-core-primitive!.1 #f temp147_2 syntax-local-identifier-as-binding148_0)) + (let-values (((temp149_3) 'syntax-local-phase-level) ((syntax-local-phase-level150_0) 1/syntax-local-phase-level)) + (add-core-primitive!.1 #f temp149_3 syntax-local-phase-level150_0)) + (let-values (((temp151_3) 'syntax-local-name) ((syntax-local-name152_0) 1/syntax-local-name)) + (add-core-primitive!.1 #f temp151_3 syntax-local-name152_0)) + (let-values (((temp153_2) 'make-syntax-introducer) ((make-syntax-introducer154_0) 1/make-syntax-introducer)) + (add-core-primitive!.1 #f temp153_2 make-syntax-introducer154_0)) + (let-values (((temp155_2) 'make-interned-syntax-introducer) + ((make-interned-syntax-introducer156_0) 1/make-interned-syntax-introducer)) + (add-core-primitive!.1 #f temp155_2 make-interned-syntax-introducer156_0)) + (let-values (((temp157_3) 'make-syntax-delta-introducer) + ((make-syntax-delta-introducer158_0) 1/make-syntax-delta-introducer)) + (add-core-primitive!.1 #f temp157_3 make-syntax-delta-introducer158_0)) + (let-values (((temp159_0) 'syntax-local-make-delta-introducer) + ((syntax-local-make-delta-introducer160_0) 1/syntax-local-make-delta-introducer)) + (add-core-primitive!.1 #f temp159_0 syntax-local-make-delta-introducer160_0)) + (let-values (((temp161_0) 'syntax-local-value) ((syntax-local-value162_0) 1/syntax-local-value) ((temp163_2) #t)) + (add-core-primitive!.1 temp163_2 temp161_0 syntax-local-value162_0)) + (let-values (((temp164_1) 'syntax-local-value/immediate) + ((syntax-local-value/immediate165_0) 1/syntax-local-value/immediate) + ((temp166_0) #t)) + (add-core-primitive!.1 temp166_0 temp164_1 syntax-local-value/immediate165_0)) + (let-values (((temp167_0) 'syntax-local-lift-expression) + ((syntax-local-lift-expression168_0) 1/syntax-local-lift-expression)) + (add-core-primitive!.1 #f temp167_0 syntax-local-lift-expression168_0)) + (let-values (((temp169_2) 'syntax-local-lift-values-expression) + ((syntax-local-lift-values-expression170_0) 1/syntax-local-lift-values-expression)) + (add-core-primitive!.1 #f temp169_2 syntax-local-lift-values-expression170_0)) + (let-values (((temp171_1) 'syntax-local-lift-context) + ((syntax-local-lift-context172_0) 1/syntax-local-lift-context)) + (add-core-primitive!.1 #f temp171_1 syntax-local-lift-context172_0)) + (let-values (((temp173_1) 'syntax-local-lift-module) ((syntax-local-lift-module174_0) 1/syntax-local-lift-module)) + (add-core-primitive!.1 #f temp173_1 syntax-local-lift-module174_0)) + (let-values (((temp175_1) 'syntax-local-lift-require) + ((syntax-local-lift-require176_0) 1/syntax-local-lift-require)) + (add-core-primitive!.1 #f temp175_1 syntax-local-lift-require176_0)) + (let-values (((temp177_0) 'syntax-local-lift-provide) + ((syntax-local-lift-provide178_0) 1/syntax-local-lift-provide)) + (add-core-primitive!.1 #f temp177_0 syntax-local-lift-provide178_0)) + (let-values (((temp179_0) 'syntax-local-lift-module-end-declaration) + ((syntax-local-lift-module-end-declaration180_0) 1/syntax-local-lift-module-end-declaration)) + (add-core-primitive!.1 #f temp179_0 syntax-local-lift-module-end-declaration180_0)) + (let-values (((temp181_1) 'syntax-local-module-defined-identifiers) + ((syntax-local-module-defined-identifiers182_0) 1/syntax-local-module-defined-identifiers)) + (add-core-primitive!.1 #f temp181_1 syntax-local-module-defined-identifiers182_0)) + (let-values (((temp183_2) 'syntax-local-module-required-identifiers) + ((syntax-local-module-required-identifiers184_0) 1/syntax-local-module-required-identifiers)) + (add-core-primitive!.1 #f temp183_2 syntax-local-module-required-identifiers184_0)) + (let-values (((temp185_1) 'syntax-local-module-exports) + ((syntax-local-module-exports186_0) 1/syntax-local-module-exports)) + (add-core-primitive!.1 #f temp185_1 syntax-local-module-exports186_0)) + (let-values (((temp187_0) 'syntax-local-submodules) ((syntax-local-submodules188_0) 1/syntax-local-submodules)) + (add-core-primitive!.1 #f temp187_0 syntax-local-submodules188_0)) + (let-values (((temp189_2) 'syntax-local-module-interned-scope-symbols) + ((syntax-local-module-interned-scope-symbols190_0) 1/syntax-local-module-interned-scope-symbols)) + (add-core-primitive!.1 #f temp189_2 syntax-local-module-interned-scope-symbols190_0)) + (let-values (((temp191_0) 'syntax-local-get-shadower) + ((syntax-local-get-shadower192_0) 1/syntax-local-get-shadower)) + (add-core-primitive!.1 #f temp191_0 syntax-local-get-shadower192_0)) + (let-values (((temp193_1) 'syntax-local-apply-transformer) + ((syntax-local-apply-transformer194_0) 1/syntax-local-apply-transformer)) + (add-core-primitive!.1 #f temp193_1 syntax-local-apply-transformer194_0)) + (let-values (((temp195_1) 'local-expand) ((local-expand196_0) 1/local-expand) ((temp197_2) #t)) + (add-core-primitive!.1 temp197_2 temp195_1 local-expand196_0)) + (let-values (((temp198_1) 'local-expand/capture-lifts) + ((local-expand/capture-lifts199_0) 1/local-expand/capture-lifts) + ((temp200_2) #t)) + (add-core-primitive!.1 temp200_2 temp198_1 local-expand/capture-lifts199_0)) + (let-values (((temp201_0) 'local-transformer-expand) + ((local-transformer-expand202_0) 1/local-transformer-expand) + ((temp203_2) #t)) + (add-core-primitive!.1 temp203_2 temp201_0 local-transformer-expand202_0)) + (let-values (((temp204_2) 'local-transformer-expand/capture-lifts) + ((local-transformer-expand/capture-lifts205_0) 1/local-transformer-expand/capture-lifts) + ((temp206_0) #t)) + (add-core-primitive!.1 temp206_0 temp204_2 local-transformer-expand/capture-lifts205_0)) + (let-values (((temp207_2) 'syntax-local-expand-expression) + ((syntax-local-expand-expression208_0) 1/syntax-local-expand-expression) + ((temp209_0) #t)) + (add-core-primitive!.1 temp209_0 temp207_2 syntax-local-expand-expression208_0)) + (let-values (((temp210_0) 'internal-definition-context?) + ((internal-definition-context?211_0) 1/internal-definition-context?)) + (add-core-primitive!.1 #f temp210_0 internal-definition-context?211_0)) + (let-values (((temp212_1) 'syntax-local-make-definition-context) + ((syntax-local-make-definition-context213_0) 1/syntax-local-make-definition-context)) + (add-core-primitive!.1 #f temp212_1 syntax-local-make-definition-context213_0)) + (let-values (((temp214_1) 'syntax-local-bind-syntaxes) + ((syntax-local-bind-syntaxes215_0) 1/syntax-local-bind-syntaxes)) + (add-core-primitive!.1 #f temp214_1 syntax-local-bind-syntaxes215_0)) + (let-values (((temp216_1) 'internal-definition-context-binding-identifiers) + ((internal-definition-context-binding-identifiers217_0) + 1/internal-definition-context-binding-identifiers)) + (add-core-primitive!.1 #f temp216_1 internal-definition-context-binding-identifiers217_0)) + (let-values (((temp218_1) 'internal-definition-context-introduce) + ((internal-definition-context-introduce219_0) 1/internal-definition-context-introduce)) + (add-core-primitive!.1 #f temp218_1 internal-definition-context-introduce219_0)) + (let-values (((temp220_1) 'internal-definition-context-seal) + ((internal-definition-context-seal221_0) 1/internal-definition-context-seal)) + (add-core-primitive!.1 #f temp220_1 internal-definition-context-seal221_0)) + (let-values (((temp222_0) 'identifier-remove-from-definition-context) + ((identifier-remove-from-definition-context223_0) 1/identifier-remove-from-definition-context)) + (add-core-primitive!.1 #f temp222_0 identifier-remove-from-definition-context223_0)) + (let-values (((temp224_1) 'internal-definition-context-add-scopes) + ((internal-definition-context-add-scopes225_0) 1/internal-definition-context-add-scopes)) + (add-core-primitive!.1 #f temp224_1 internal-definition-context-add-scopes225_0)) + (let-values (((temp226_0) 'internal-definition-context-splice-binding-identifier) + ((internal-definition-context-splice-binding-identifier227_0) + 1/internal-definition-context-splice-binding-identifier)) + (add-core-primitive!.1 #f temp226_0 internal-definition-context-splice-binding-identifier227_0)) + (let-values (((temp228_1) 'make-set!-transformer) ((make-set!-transformer229_0) 1/make-set!-transformer)) + (add-core-primitive!.1 #f temp228_1 make-set!-transformer229_0)) + (let-values (((temp230_0) 'prop:set!-transformer) ((prop:set!-transformer231_0) 1/prop:set!-transformer)) + (add-core-primitive!.1 #f temp230_0 prop:set!-transformer231_0)) + (let-values (((temp232_1) 'set!-transformer?) ((set!-transformer?233_0) 1/set!-transformer?)) + (add-core-primitive!.1 #f temp232_1 set!-transformer?233_0)) + (let-values (((temp234_0) 'set!-transformer-procedure) + ((set!-transformer-procedure235_0) 1/set!-transformer-procedure)) + (add-core-primitive!.1 #f temp234_0 set!-transformer-procedure235_0)) + (let-values (((temp236_2) 'rename-transformer?) ((rename-transformer?237_0) 1/rename-transformer?)) + (add-core-primitive!.1 #f temp236_2 rename-transformer?237_0)) + (let-values (((temp238_2) 'prop:rename-transformer) ((prop:rename-transformer239_0) 1/prop:rename-transformer)) + (add-core-primitive!.1 #f temp238_2 prop:rename-transformer239_0)) + (let-values (((temp240_1) 'make-rename-transformer) ((make-rename-transformer241_0) 1/make-rename-transformer)) + (add-core-primitive!.1 #f temp240_1 make-rename-transformer241_0)) + (let-values (((temp242_1) 'rename-transformer-target) + ((rename-transformer-target243_0) 1/rename-transformer-target)) + (add-core-primitive!.1 #f temp242_1 rename-transformer-target243_0)) + (let-values (((temp244_2) 'prop:liberal-define-context) + ((prop:liberal-define-context245_0) 1/prop:liberal-define-context)) + (add-core-primitive!.1 #f temp244_2 prop:liberal-define-context245_0)) + (let-values (((temp246_1) 'liberal-define-context?) + ((liberal-define-context?247_0) has-liberal-define-context-property?)) + (add-core-primitive!.1 #f temp246_1 liberal-define-context?247_0)) + (let-values (((temp248_1) 'prop:expansion-contexts) ((prop:expansion-contexts249_0) 1/prop:expansion-contexts)) + (add-core-primitive!.1 #f temp248_1 prop:expansion-contexts249_0)) + (let-values (((temp250_0) 'module-path?) ((module-path?251_0) 1/module-path?)) + (add-core-primitive!.1 #f temp250_0 module-path?251_0)) + (let-values (((temp252_1) 'resolved-module-path?) ((resolved-module-path?253_0) 1/resolved-module-path?)) + (add-core-primitive!.1 #f temp252_1 resolved-module-path?253_0)) + (let-values (((temp254_0) 'make-resolved-module-path) + ((make-resolved-module-path255_0) 1/make-resolved-module-path)) + (add-core-primitive!.1 #f temp254_0 make-resolved-module-path255_0)) + (let-values (((temp256_0) 'resolved-module-path-name) + ((resolved-module-path-name257_0) 1/resolved-module-path-name)) + (add-core-primitive!.1 #f temp256_0 resolved-module-path-name257_0)) + (let-values (((temp258_0) 'module-path-index?) ((module-path-index?259_0) 1/module-path-index?)) + (add-core-primitive!.1 #f temp258_0 module-path-index?259_0)) + (let-values (((temp260_1) 'module-path-index-resolve) + ((module-path-index-resolve261_0) 1/module-path-index-resolve)) + (add-core-primitive!.1 #f temp260_1 module-path-index-resolve261_0)) + (let-values (((temp262_0) 'module-path-index-join) ((module-path-index-join263_0) 1/module-path-index-join)) + (add-core-primitive!.1 #f temp262_0 module-path-index-join263_0)) + (let-values (((temp264_0) 'module-path-index-split) ((module-path-index-split265_0) 1/module-path-index-split)) + (add-core-primitive!.1 #f temp264_0 module-path-index-split265_0)) + (let-values (((temp266_0) 'module-path-index-submodule) + ((module-path-index-submodule267_0) 1/module-path-index-submodule)) + (add-core-primitive!.1 #f temp266_0 module-path-index-submodule267_0)) + (let-values (((temp268_1) 'current-module-name-resolver) + ((current-module-name-resolver269_0) 1/current-module-name-resolver) + ((temp270_0) #t)) + (add-core-primitive!.1 temp270_0 temp268_1 current-module-name-resolver269_0)) + (let-values (((temp271_1) 'current-module-declare-name) + ((current-module-declare-name272_0) 1/current-module-declare-name)) + (add-core-primitive!.1 #f temp271_1 current-module-declare-name272_0)) + (let-values (((temp273_0) 'current-module-declare-source) + ((current-module-declare-source274_0) 1/current-module-declare-source)) + (add-core-primitive!.1 #f temp273_0 current-module-declare-source274_0)) + (let-values (((temp275_0) 'current-namespace) ((current-namespace276_0) 1/current-namespace)) + (add-core-primitive!.1 #f temp275_0 current-namespace276_0)) + (let-values (((temp277_0) 'namespace-module-registry) + ((namespace-module-registry278_0) namespace-module-registry$1)) + (add-core-primitive!.1 #f temp277_0 namespace-module-registry278_0)) + (let-values (((temp279_0) 'namespace?) ((namespace?280_0) 1/namespace?)) + (add-core-primitive!.1 #f temp279_0 namespace?280_0)) + (let-values (((temp281_0) 'variable-reference->empty-namespace) + ((variable-reference->empty-namespace282_0) 1/variable-reference->empty-namespace)) + (add-core-primitive!.1 #f temp281_0 variable-reference->empty-namespace282_0)) + (let-values (((temp283_0) 'variable-reference->namespace) + ((variable-reference->namespace284_0) 1/variable-reference->namespace)) + (add-core-primitive!.1 #f temp283_0 variable-reference->namespace284_0)) + (let-values (((temp285_0) 'variable-reference->resolved-module-path) + ((variable-reference->resolved-module-path286_0) 1/variable-reference->resolved-module-path)) + (add-core-primitive!.1 #f temp285_0 variable-reference->resolved-module-path286_0)) + (let-values (((temp287_0) 'variable-reference->module-path-index) + ((variable-reference->module-path-index288_0) 1/variable-reference->module-path-index)) + (add-core-primitive!.1 #f temp287_0 variable-reference->module-path-index288_0)) + (let-values (((temp289_0) 'variable-reference->module-source) + ((variable-reference->module-source290_0) 1/variable-reference->module-source)) + (add-core-primitive!.1 #f temp289_0 variable-reference->module-source290_0)) + (let-values (((temp291_1) 'variable-reference->phase) + ((variable-reference->phase292_0) 1/variable-reference->phase)) + (add-core-primitive!.1 #f temp291_1 variable-reference->phase292_0)) + (let-values (((temp293_1) 'variable-reference->module-base-phase) + ((variable-reference->module-base-phase294_0) 1/variable-reference->module-base-phase)) + (add-core-primitive!.1 #f temp293_1 variable-reference->module-base-phase294_0)) + (let-values (((temp295_0) 'variable-reference->module-declaration-inspector) + ((variable-reference->module-declaration-inspector296_0) + 1/variable-reference->module-declaration-inspector)) + (add-core-primitive!.1 #f temp295_0 variable-reference->module-declaration-inspector296_0)) + (let-values (((temp297_1) 'read-syntax) ((read-syntax298_0) 1/read-syntax)) + (add-core-primitive!.1 #f temp297_1 read-syntax298_0)) + (let-values (((temp299_0) 'read-syntax/recursive) ((read-syntax/recursive300_0) 1/read-syntax/recursive)) + (add-core-primitive!.1 #f temp299_0 read-syntax/recursive300_0)))) + (define-values + (declare-kernel-module!.1) + (lambda (main-ids1_0 read-ids2_0 ns5_0) + (begin + 'declare-kernel-module! + (let-values (((ns_1) ns5_0)) + (let-values (((main-ids_0) main-ids1_0)) + (let-values (((read-ids_0) read-ids2_0)) + (let-values () + (begin + (let-values (((temp43_5) '#%kernel) + ((temp44_5) '#%runtime) + ((temp45_4) (set-union primitive-ids (set-union main-ids_0 read-ids_0))) + ((temp46_6) + (hasheq + 'variable-reference? + 1/variable-reference? + 'variable-reference-constant? + 1/variable-reference-constant? + 'variable-reference-from-unsafe? + 1/variable-reference-from-unsafe?)) + ((ns47_1) ns_1)) + (copy-runtime-module!.1 '#hasheq() temp46_6 ns47_1 #t #f temp45_4 temp44_5 temp43_5)) + (let-values (((temp48_7) '#%kernel) ((temp49_5) '(#%core #%runtime #%main #%read)) ((ns50_1) ns_1)) + (declare-reexporting-module!.1 ns50_1 #t temp48_7 temp49_5)))))))))) + (define-values + (copy-runtime-module!.1) + (lambda (alts10_0 extras11_0 namespace8_0 primitive?12_0 protected?13_0 skip9_0 to7_0 name21_0) + (begin + 'copy-runtime-module! + (let-values (((name_78) name21_0)) + (let-values (((to-name_0) (if (eq? to7_0 unsafe-undefined) name_78 to7_0))) + (let-values (((ns_8) namespace8_0)) + (let-values (((skip-syms_0) (if (eq? skip9_0 unsafe-undefined) (seteq) skip9_0))) + (let-values (((alts_0) alts10_0)) + (let-values (((extras_0) extras11_0)) + (let-values (((primitive?_10) primitive?12_0)) + (let-values (((protected?_12) protected?13_0)) + (let-values () + (let-values (((prims_0) (1/primitive-table name_78))) + (let-values ((() + (begin + (let-values (((ht_166) prims_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_166))) + ((letrec-values (((for-loop_301) + (lambda (i_20) + (begin + 'for-loop + (if i_20 + (let-values (((sym_100) + (hash-iterate-key ht_166 i_20))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (register-built-in-symbol! + sym_100)) + (values))))) + (values))))) + (if (not #f) + (for-loop_301 + (hash-iterate-next ht_166 i_20)) + (values)))) + (values)))))) + for-loop_301) + (hash-iterate-first ht_166)))) + (values)))) + (let-values () + (let-values (((ht_78) + (let-values (((ht_156) prims_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_156))) + ((letrec-values (((for-loop_1) + (lambda (table_222 i_116) + (begin + 'for-loop + (if i_116 + (let-values (((sym_101 val_91) + (hash-iterate-key+value + ht_156 + i_116))) + (let-values (((table_223) + (let-values (((table_87) + table_222)) + (if (set-member? + skip-syms_0 + sym_101) + table_87 + (let-values (((table_224) + table_87)) + (let-values (((table_225) + (let-values () + (let-values (((key_96 + val_92) + (let-values () + (values + sym_101 + (let-values (((or-part_41) + (hash-ref + alts_0 + sym_101 + #f))) + (if or-part_41 + or-part_41 + val_91)))))) + (hash-set + table_224 + key_96 + val_92))))) + (values table_225))))))) + (if (not #f) + (for-loop_1 + table_223 + (hash-iterate-next ht_156 i_116)) + table_223))) + table_222))))) + for-loop_1) + '#hasheq() + (hash-iterate-first ht_156)))))) + (let-values (((ht+extras_0) + (let-values (((ht_165) extras_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_165))) + ((letrec-values (((for-loop_302) + (lambda (ht_167 i_213) + (begin + 'for-loop + (if i_213 + (let-values (((k_60 v_111) + (hash-iterate-key+value + ht_165 + i_213))) + (let-values (((ht_50) + (let-values (((ht_65) ht_167)) + (let-values (((ht_30) + (let-values () + (hash-set + ht_65 + k_60 + v_111)))) + (values ht_30))))) + (if (not #f) + (for-loop_302 + ht_50 + (hash-iterate-next ht_165 i_213)) + ht_50))) + ht_167))))) + for-loop_302) + ht_78 + (hash-iterate-first ht_165)))))) + (let-values (((to-name51_0) to-name_0) + ((ht+extras52_0) ht+extras_0) + ((ns53_0) ns_8) + ((primitive?54_0) primitive?_10) + ((protected?55_0) protected?_12)) + (declare-hash-based-module!.1 + ns53_0 + primitive?54_0 + null + protected?55_0 + #f + to-name51_0 + ht+extras52_0))))))))))))))))))) + (define-values + (declare-hash-based-module!.1) + (lambda (namespace23_0 primitive?24_0 protected26_0 protected?25_0 register-builtin?27_0 name33_0 ht34_0) + (begin + 'declare-hash-based-module! + (let-values (((name_79) name33_0)) + (let-values (((ht_168) ht34_0)) + (let-values (((ns_118) namespace23_0)) + (let-values (((primitive?_11) primitive?24_0)) + (let-values (((protected?_13) protected?25_0)) + (let-values (((protected-syms_0) protected26_0)) + (let-values (((register-builtin?_0) register-builtin?27_0)) + (let-values () + (let-values (((mpi_7) (1/module-path-index-join (list 'quote name_79) #f))) + (let-values (((ns56_0) ns_118) + ((temp57_2) + (let-values (((temp59_7) #t) + ((primitive?60_0) primitive?_11) + ((temp61_6) #t) + ((temp62_4) (if (not protected?_13) (null? protected-syms_0) #f)) + ((mpi63_0) mpi_7) + ((temp64_6) + (hasheqv + 0 + (let-values (((ht_169) ht_168)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_169))) + ((letrec-values (((for-loop_303) + (lambda (table_226 i_214) + (begin + 'for-loop + (if i_214 + (let-values (((sym_102) + (hash-iterate-key + ht_169 + i_214))) + (let-values (((table_5) + (let-values (((table_6) + table_226)) + (let-values (((table_7) + (let-values () + (let-values (((key_8 + val_1) + (let-values () + (let-values ((() + (begin + (if register-builtin?_0 + (let-values () + (register-built-in-symbol! + sym_102)) + (void)) + (values)))) + (let-values (((binding_29) + (let-values (((mpi66_0) + mpi_7) + ((temp67_4) + 0) + ((sym68_0) + sym_102)) + (make-module-binding.1 + #f + null + #f + #f + unsafe-undefined + unsafe-undefined + 0 + unsafe-undefined + mpi66_0 + temp67_4 + sym68_0)))) + (values + sym_102 + (if (let-values (((or-part_518) + protected?_13)) + (if or-part_518 + or-part_518 + (member + sym_102 + protected-syms_0))) + (provided1.1 + binding_29 + #t + #f) + binding_29))))))) + (hash-set + table_6 + key_8 + val_1))))) + (values + table_7))))) + (if (not #f) + (for-loop_303 + table_5 + (hash-iterate-next + ht_169 + i_214)) + table_5))) + table_226))))) + for-loop_303) + '#hash() + (hash-iterate-first ht_169)))))) + ((temp65_5) + (lambda (data-box_6 + ns_119 + phase-shift_17 + phase-level_26 + self_31 + bulk-binding-registry_23 + insp_29) + (if (= 0 phase-level_26) + (let-values () + (begin + (let-values (((ht_170) ht_168)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_170))) + ((letrec-values (((for-loop_304) + (lambda (i_215) + (begin + 'for-loop + (if i_215 + (let-values (((sym_103 val_93) + (hash-iterate-key+value + ht_170 + i_215))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (namespace-set-variable! + ns_119 + 0 + sym_103 + val_93 + #t)) + (values))))) + (values))))) + (if (not #f) + (for-loop_304 + (hash-iterate-next + ht_170 + i_215)) + (values)))) + (values)))))) + for-loop_304) + (hash-iterate-first ht_170)))) + (void))) + (void))))) + (make-module.1 + temp59_7 + void + unsafe-undefined + temp65_5 + #f + 0 + 0 + temp62_4 + unsafe-undefined + temp61_6 + void + primitive?60_0 + temp64_6 + null + mpi63_0 + #f + null + #f))) + ((temp58_4) (1/module-path-index-resolve mpi_7))) + (declare-module!.1 #t ns56_0 temp57_2 temp58_4)))))))))))))) + (define-values + (declare-reexporting-module!.1) + (lambda (namespace37_0 reexport?36_0 name40_0 require-names41_0) + (begin + 'declare-reexporting-module! + (let-values (((name_80) name40_0)) + (let-values (((require-names_0) require-names41_0)) + (let-values (((reexport?_0) reexport?36_0)) + (let-values (((ns_120) namespace37_0)) + (let-values () + (let-values (((mpi_68) (1/module-path-index-join (list 'quote name_80) #f))) + (let-values (((require-mpis_0) + (reverse$1 + (let-values (((lst_326) require-names_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_326))) + ((letrec-values (((for-loop_305) + (lambda (fold-var_262 lst_324) + (begin + 'for-loop + (if (pair? lst_324) + (let-values (((require-name_0) (unsafe-car lst_324)) + ((rest_188) (unsafe-cdr lst_324))) + (let-values (((fold-var_294) + (let-values (((fold-var_295) fold-var_262)) + (let-values (((fold-var_296) + (let-values () + (cons + (let-values () + (1/module-path-index-join + (list + 'quote + require-name_0) + #f)) + fold-var_295)))) + (values fold-var_296))))) + (if (not #f) + (for-loop_305 fold-var_294 rest_188) + fold-var_294))) + fold-var_262))))) + for-loop_305) + null + lst_326)))))) + (let-values (((ns69_0) ns_120) + ((temp70_5) + (let-values (((temp72_3) #t) + ((temp73_6) #t) + ((mpi74_0) mpi_68) + ((temp75_4) (list (cons 0 require-mpis_0))) + ((temp76_1) + (if reexport?_0 + (hasheqv + 0 + (let-values (((lst_327) require-mpis_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_327))) + ((letrec-values (((for-loop_306) + (lambda (table_227 lst_290) + (begin + 'for-loop + (if (pair? lst_290) + (let-values (((require-mpi_0) + (unsafe-car lst_290)) + ((rest_190) + (unsafe-cdr lst_290))) + (let-values (((table_228) + (let-values (((id*_12) + (namespace->module + ns_120 + (1/module-path-index-resolve + require-mpi_0)))) + (begin + #t + ((letrec-values (((for-loop_307) + (lambda (table_229) + (begin + 'for-loop + (let-values (((m_32) + id*_12)) + (let-values (((table_32) + (let-values (((ht_171) + (hash-ref + (shift-provides-module-path-index + (module-provides + m_32) + (module-self + m_32) + require-mpi_0) + 0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-in-hash + ht_171))) + ((letrec-values (((for-loop_308) + (lambda (table_230 + i_216) + (begin + 'for-loop + (if i_216 + (let-values (((sym_104 + binding_30) + (hash-iterate-key+value + ht_171 + i_216))) + (let-values (((table_165) + (let-values (((table_166) + table_230)) + (let-values (((table_231) + (let-values () + (let-values (((key_104 + val_94) + (let-values () + (values + sym_104 + binding_30)))) + (hash-set + table_166 + key_104 + val_94))))) + (values + table_231))))) + (if (not + #f) + (for-loop_308 + table_165 + (hash-iterate-next + ht_171 + i_216)) + table_165))) + table_230))))) + for-loop_308) + table_229 + (hash-iterate-first + ht_171)))))) + table_32)))))) + for-loop_307) + table_227))))) + (if (not #f) + (for-loop_306 table_228 rest_190) + table_228))) + table_227))))) + for-loop_306) + '#hash() + lst_327)))) + '#hasheqv())) + ((void77_0) void)) + (make-module.1 + temp72_3 + void + unsafe-undefined + void77_0 + #f + 0 + 0 + #f + unsafe-undefined + temp73_6 + void + #f + temp76_1 + temp75_4 + mpi74_0 + #f + null + #f))) + ((temp71_6) (1/module-path-index-resolve mpi_68))) + (declare-module!.1 #t ns69_0 temp70_5 temp71_6)))))))))))) + (define-values + (read-primitives) + (hasheq + 'read + 1/read + 'read/recursive + 1/read/recursive + 'read-language + 1/read-language + 'string->number + 1/string->number + 'current-reader-guard + 1/current-reader-guard + 'read-square-bracket-as-paren + 1/read-square-bracket-as-paren + 'read-curly-brace-as-paren + 1/read-curly-brace-as-paren + 'read-square-bracket-with-tag + 1/read-square-bracket-with-tag + 'read-curly-brace-with-tag + 1/read-curly-brace-with-tag + 'read-cdot + 1/read-cdot + 'read-accept-graph + 1/read-accept-graph + 'read-accept-compiled + 1/read-accept-compiled + 'read-accept-box + 1/read-accept-box + 'read-decimal-as-inexact + 1/read-decimal-as-inexact + 'read-single-flonum + 1/read-single-flonum + 'read-accept-dot + 1/read-accept-dot + 'read-accept-infix-dot + 1/read-accept-infix-dot + 'read-accept-quasiquote + 1/read-accept-quasiquote + 'read-accept-reader + 1/read-accept-reader + 'read-accept-lang + 1/read-accept-lang + 'current-readtable + 1/current-readtable + 'readtable? + 1/readtable? + 'make-readtable + 1/make-readtable + 'readtable-mapping + 1/readtable-mapping + 'special-comment? + 1/special-comment? + 'make-special-comment + 1/make-special-comment + 'special-comment-value + 1/special-comment-value)) + (define-values + (main-primitives) + (hasheq + 'eval + eval$1 + 'eval-syntax + 1/eval-syntax + 'compile + compile$1 + 'compile-syntax + 1/compile-syntax + 'expand + 1/expand + 'expand-syntax + 1/expand-syntax + 'expand-once + 1/expand-once + 'expand-syntax-once + 1/expand-syntax-once + 'expand-to-top-form + 1/expand-to-top-form + 'expand-syntax-to-top-form + 1/expand-syntax-to-top-form + 'dynamic-require + 1/dynamic-require + 'dynamic-require-for-syntax + 1/dynamic-require-for-syntax + 'load + 1/load + 'load-extension + 1/load-extension + 'load/use-compiled + 1/load/use-compiled + 'current-eval + 1/current-eval + 'current-compile + 1/current-compile + 'current-load + 1/current-load + 'current-load/use-compiled + 1/current-load/use-compiled + 'collection-path + 1/collection-path + 'collection-file-path + 1/collection-file-path + 'find-library-collection-paths + 1/find-library-collection-paths + 'find-library-collection-links + 1/find-library-collection-links + 'find-compiled-file-roots + 1/find-compiled-file-roots + 'current-library-collection-paths + 1/current-library-collection-paths + 'current-library-collection-links + 1/current-library-collection-links + 'use-compiled-file-paths + 1/use-compiled-file-paths + 'current-compiled-file-roots + 1/current-compiled-file-roots + 'use-compiled-file-check + 1/use-compiled-file-check + 'use-collection-link-paths + 1/use-collection-link-paths + 'use-user-specific-search-paths + 1/use-user-specific-search-paths + 'compiled-expression? + 1/compiled-expression? + 'compiled-module-expression? + 1/compiled-module-expression? + 'module-compiled-name + 1/module-compiled-name + 'module-compiled-submodules + 1/module-compiled-submodules + 'module-compiled-language-info + 1/module-compiled-language-info + 'module-compiled-imports + 1/module-compiled-imports + 'module-compiled-exports + 1/module-compiled-exports + 'module-compiled-indirect-exports + 1/module-compiled-indirect-exports + 'compiled-expression-recompile + 1/compiled-expression-recompile + 'make-empty-namespace + 1/make-empty-namespace + 'namespace-attach-module + 1/namespace-attach-module + 'namespace-attach-module-declaration + 1/namespace-attach-module-declaration + 'namespace-symbol->identifier + 1/namespace-symbol->identifier + 'namespace-module-identifier + 1/namespace-module-identifier + 'namespace-syntax-introduce + 1/namespace-syntax-introduce + 'namespace-require + 1/namespace-require + 'namespace-require/copy + 1/namespace-require/copy + 'namespace-require/constant + 1/namespace-require/constant + 'namespace-require/expansion-time + 1/namespace-require/expansion-time + 'namespace-variable-value + 1/namespace-variable-value + 'namespace-set-variable-value! + 1/namespace-set-variable-value! + 'namespace-undefine-variable! + 1/namespace-undefine-variable! + 'namespace-mapped-symbols + 1/namespace-mapped-symbols + 'namespace-base-phase + 1/namespace-base-phase + 'namespace-call-with-registry-lock + 1/namespace-call-with-registry-lock + 'module-declared? + 1/module-declared? + 'module-predefined? + 1/module-predefined? + 'module->language-info + 1/module->language-info + 'module->imports + 1/module->imports + 'module->exports + 1/module->exports + 'module->indirect-exports + 1/module->indirect-exports + 'module-compiled-cross-phase-persistent? + 1/module-compiled-cross-phase-persistent? + 'module-provide-protected? + 1/module-provide-protected? + 'module->namespace + 1/module->namespace + 'namespace-unprotect-module + 1/namespace-unprotect-module)) + (define-values + (utils-primitives) + (hasheq + 'path-string? + path-string? + 'normal-case-path + normal-case-path + 'path-replace-extension + path-replace-extension + 'path-add-extension + path-add-extension + 'reroot-path + reroot-path + 'path-list-string->path-list + path-list-string->path-list + 'find-executable-path + find-executable-path + 'call-with-default-reading-parameterization + call-with-default-reading-parameterization + 'collection-path + 1/collection-path + 'collection-file-path + 1/collection-file-path + 'find-library-collection-paths + 1/find-library-collection-paths + 'find-library-collection-links + 1/find-library-collection-links + 'load/use-compiled + 1/load/use-compiled + 'find-main-config + find-main-config + 'find-main-collects + find-main-collects)) + (define-values + (expobs-primitives) + (hasheq 'current-expand-observe current-expand-observe 'syntax-local-expand-observer syntax-local-expand-observer)) + (define-values + (struct:TH-place-channel TH-place-channel TH-place-channel? TH-place-channel-ref TH-place-channel-set!) + (make-struct-type 'TH-place-channel #f 2 0 #f (list (cons prop:evt (lambda (x_102) (TH-place-channel-ref x_102 0)))))) + (define-values + (TH-place-channel-in TH-place-channel-out) + (values (lambda (x_103) (TH-place-channel-ref x_103 0)) (lambda (x_91) (TH-place-channel-ref x_91 1)))) + (define-values + (place-struct-primitives) + (hasheq + 'struct:TH-place-channel + struct:TH-place-channel + 'TH-place-channel + TH-place-channel + 'TH-place-channel? + TH-place-channel? + 'TH-place-channel-in + TH-place-channel-in + 'TH-place-channel-out + TH-place-channel-out)) + (define-values + (1/linklet-directory?) + (lambda (v_28) + (begin + 'linklet-directory? + (let-values (((or-part_1) (linklet-directory?$1 v_28))) (if or-part_1 or-part_1 (compiled-in-memory? v_28)))))) + (define-values + (1/linklet-directory->hash) + (lambda (ld_15) + (begin + 'linklet-directory->hash + (linklet-directory->hash$1 (if (compiled-in-memory? ld_15) (compiled-in-memory-linklet-directory ld_15) ld_15))))) + (define-values + (1/linklet?) + (lambda (l_2) + (begin 'linklet? (let-values (((or-part_3) (linklet?$1 l_2))) (if or-part_3 or-part_3 (correlated-linklet? l_2)))))) + (define-values + (1/recompile-linklet) + (case-lambda + ((lnk_0) (begin 'recompile-linklet (recompile-linklet$1 (force-compile-linklet lnk_0)))) + ((lnk_1 name_42) (recompile-linklet$1 (force-compile-linklet lnk_1) name_42)) + ((lnk_2 name_38 import-keys_0) (recompile-linklet$1 (force-compile-linklet lnk_2) name_38 import-keys_0)) + ((lnk_3 name_44 import-keys_1 get-import_0) + (recompile-linklet$1 (force-compile-linklet lnk_3) name_44 import-keys_1 get-import_0)) + ((lnk_4 name_45 import-keys_2 get-import_1 options_0) + (recompile-linklet$1 (force-compile-linklet lnk_4) name_45 import-keys_2 get-import_1 options_0)))) + (define-values (1/eval-linklet) (lambda (lnk_5) (begin 'eval-linklet (eval-linklet$1 (force-compile-linklet lnk_5))))) + (define-values + (1/instantiate-linklet) + (let-values (((instantiate-linklet_0) + (lambda (lnk3_0 import-instances4_0 target-instance1_0 use-prompt?2_0) + (begin + 'instantiate-linklet + (let-values (((lnk_6) lnk3_0)) + (let-values (((import-instances_2) import-instances4_0)) + (let-values (((target-instance_0) target-instance1_0)) + (let-values (((use-prompt?_0) use-prompt?2_0)) + (let-values () + (instantiate-linklet$1 + (force-compile-linklet lnk_6) + import-instances_2 + target-instance_0 + use-prompt?_0)))))))))) + (case-lambda + ((lnk_7 import-instances_3) (begin 'instantiate-linklet (instantiate-linklet_0 lnk_7 import-instances_3 #f #f))) + ((lnk_8 import-instances_4 target-instance_1 use-prompt?2_1) + (instantiate-linklet_0 lnk_8 import-instances_4 target-instance_1 use-prompt?2_1)) + ((lnk_9 import-instances_5 target-instance1_1) + (instantiate-linklet_0 lnk_9 import-instances_5 target-instance1_1 #f))))) + (define-values + (1/linklet-import-variables) + (lambda (lnk_10) (begin 'linklet-import-variables (linklet-import-variables$1 (force-compile-linklet lnk_10))))) + (define-values + (1/linklet-export-variables) + (lambda (lnk_11) (begin 'linklet-export-variables (linklet-export-variables$1 (force-compile-linklet lnk_11))))) + (define-values + (1/linklet-body-reserved-symbol?) + (lambda (s_506) + (begin + 'linklet-body-reserved-symbol? + (let-values () + (let-values () + (begin + (if (symbol? s_506) + (void) + (let-values () (raise-argument-error 'linklet-body-reserved-symbol? "symbol?" s_506))) + (built-in-symbol? s_506))))))) + (define-values + (linklet-primitives) + (hasheq + 'primitive-table + 1/primitive-table + 'primitive->compiled-position + 1/primitive->compiled-position + 'compiled-position->primitive + 1/compiled-position->primitive + 'primitive-in-category? + 1/primitive-in-category? + 'primitive-lookup + 1/primitive-lookup + 'compile-linklet + 1/compile-linklet + 'instance? + 1/instance? + 'make-instance + 1/make-instance + 'instance-name + 1/instance-name + 'instance-data + 1/instance-data + 'instance-variable-names + 1/instance-variable-names + 'instance-variable-value + 1/instance-variable-value + 'instance-set-variable-value! + 1/instance-set-variable-value! + 'instance-unset-variable! + 1/instance-unset-variable! + 'instance-describe-variable! + 1/instance-describe-variable! + 'linklet-virtual-machine-bytes + 1/linklet-virtual-machine-bytes + 'write-linklet-bundle-hash + 1/write-linklet-bundle-hash + 'read-linklet-bundle-hash + 1/read-linklet-bundle-hash + 'variable-reference? + 1/variable-reference? + 'variable-reference->instance + 1/variable-reference->instance + 'variable-reference-constant? + 1/variable-reference-constant? + 'variable-reference-from-unsafe? + 1/variable-reference-from-unsafe?)) + (define-values + (linklet-expander-primitives) + (hasheq + 'linklet-directory? + 1/linklet-directory? + 'linklet-directory->hash + 1/linklet-directory->hash + 'hash->linklet-directory + 1/hash->linklet-directory + 'linklet-bundle? + 1/linklet-bundle? + 'linklet-bundle->hash + 1/linklet-bundle->hash + 'hash->linklet-bundle + 1/hash->linklet-bundle + 'linklet-body-reserved-symbol? + 1/linklet-body-reserved-symbol? + 'linklet? + 1/linklet? + 'recompile-linklet + 1/recompile-linklet + 'eval-linklet + 1/eval-linklet + 'instantiate-linklet + 1/instantiate-linklet + 'linklet-import-variables + 1/linklet-import-variables + 'linklet-export-variables + 1/linklet-export-variables)) + (define-values + (with-module-reading-parameterization) + (lambda (thunk_3) + (begin + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/read-accept-reader + #t + 1/read-accept-lang + #t + 1/read-accept-compiled + #t + read-case-sensitive + #t + 1/read-square-bracket-as-paren + #t + 1/read-curly-brace-as-paren + #t + 1/read-square-bracket-with-tag + #f + 1/read-curly-brace-with-tag + #f + 1/read-accept-box + #t + read-accept-bar-quote + #t + 1/read-accept-graph + #t + 1/read-decimal-as-inexact + #t + 1/read-cdot + #f + 1/read-accept-dot + #t + 1/read-accept-infix-dot + #t + 1/read-accept-quasiquote + #t + 1/current-readtable + #f) + (let-values () (thunk_3)))))) + (define-values + (check-module-form) + (lambda (exp_9 filename_1) + (begin + (if (let-values (((or-part_70) (eof-object? exp_9))) (if or-part_70 or-part_70 (eof-object? (1/syntax-e exp_9)))) + (let-values () + (if filename_1 + (error + 'load-handler + (string-append "expected a `module' declaration, but found end-of-file\n" " file: ~a") + filename_1) + #f)) + (if (1/compiled-module-expression? (1/syntax-e exp_9)) + (let-values () exp_9) + (if (if (syntax?$1 exp_9) + (if (pair? (1/syntax-e exp_9)) + (if (eq? 'module (1/syntax-e (car (1/syntax-e exp_9)))) + (let-values (((r_40) (cdr (1/syntax-e exp_9)))) + (let-values (((r_3) (if (syntax?$1 r_40) (1/syntax-e r_40) r_40))) + (if (pair? r_3) (identifier? (car r_3)) #f))) + #f) + #f) + #f) + (let-values () + (1/datum->syntax exp_9 (cons (1/namespace-module-identifier) (cdr (1/syntax-e exp_9))) exp_9 exp_9)) + (let-values () + (if filename_1 + (error + 'default-load-handler + (string-append "expected a `module' declaration, but found something else\n" " file: ~a") + filename_1) + #f)))))))) + (define-values + (default-load-handler) + (lambda (path_19 expected-mod_0) + (begin + (let-values ((() + (begin + (if (path-string? path_19) + (void) + (let-values () (raise-argument-error 'default-load-handler "path-string?" path_19))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_12) (not expected-mod_0))) + (if or-part_12 + or-part_12 + (let-values (((or-part_3) (symbol? expected-mod_0))) + (if or-part_3 + or-part_3 + (if (pair? expected-mod_0) + (if (list? expected-mod_0) + (if (let-values (((or-part_31) (not (car expected-mod_0)))) + (if or-part_31 or-part_31 (symbol? (car expected-mod_0)))) + (andmap2 symbol? (cdr expected-mod_0)) + #f) + #f) + #f))))) + (void) + (let-values () + (raise-argument-error + 'default-load-handler + "(or/c #f symbol? (cons/c (or/c #f symbol?) (non-empty-listof symbol?)))" + expected-mod_0))) + (values)))) + (let-values (((maybe-count-lines!_0) + (lambda (i_147) + (begin + 'maybe-count-lines! + (if (regexp-match? '#rx"[.]zo$" path_19) + (void) + (let-values () (port-count-lines! i_147))))))) + (if expected-mod_0 + (let-values () + ((call-with-input-module-file + path_19 + (lambda (i_217) + (begin + (maybe-count-lines!_0 i_217) + (with-module-reading-parameterization+delay-source + path_19 + (lambda () + (let-values (((c2_21) (linklet-directory-start i_217))) + (if c2_21 + ((lambda (pos_124) + (let-values (((b-pos_0) + (search-directory i_217 pos_124 (encode-symbols expected-mod_0)))) + (if b-pos_0 + (let-values () + (begin + (file-position i_217 b-pos_0) + (let-values (((or-part_71) (cached-bundle i_217))) + (if or-part_71 + or-part_71 + (let-values (((v_57) (1/read i_217))) + (if (1/compiled-module-expression? v_57) + (lambda () ((1/current-eval) v_57)) + (error + 'default-load-handler + (string-append + "expected a compiled module\n" + " in: ~e\n" + " found: ~e") + (object-name i_217) + v_57))))))) + (if (pair? expected-mod_0) + (let-values () void) + (let-values () + (error + 'default-load-handler + (string-append "could not find main module\n" " in: ~e") + (object-name i_217))))))) + c2_21) + (if (if (pair? expected-mod_0) (not (car expected-mod_0)) #f) + (let-values () void) + (let-values (((c1_32) (cached-bundle i_217))) + (if c1_32 + ((lambda (thunk_11) thunk_11) c1_32) + (let-values () + (let-values (((s_48) (1/read-syntax (object-name i_217) i_217))) + (let-values ((() + (begin + (if (eof-object? s_48) + (let-values () + (error + 'default-load-handler + (string-append + "expected a `module' declaration;\n" + " found end-of-file\n" + " in: ~e") + (object-name i_217))) + (void)) + (values)))) + (let-values (((m-s_0) (check-module-form s_48 path_19))) + (let-values (((s2_10) (1/read-syntax (object-name i_217) i_217))) + (begin + (if (eof-object? s2_10) + (void) + (let-values () + (error + 'default-load-handler + (string-append + "expected a `module' declaration;\n" + " found an extra form\n" + " in: ~e\n" + " found: ~.s") + (object-name i_217) + s2_10))) + (lambda () ((1/current-eval) m-s_0)))))))))))))))))))) + (let-values () + (let-values (((add-top-interaction_0) + (lambda (s_47) + (begin + 'add-top-interaction + (1/namespace-syntax-introduce + (1/datum->syntax #f (cons '#%top-interaction s_47) s_47)))))) + (let-values (((path1_0) path_19) + ((temp2_8) + (lambda (i_218) + (begin + (maybe-count-lines!_0 i_218) + ((letrec-values (((loop_5) + (lambda (vals_8) + (begin + 'loop + (let-values (((s_497) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/read-accept-compiled + #t + 1/read-accept-reader + #t + 1/read-accept-lang + #t) + (let-values () + (if (load-on-demand-enabled) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + read-on-demand-source + (path->complete-path path_19)) + (let-values () + (1/read-syntax + (object-name i_218) + i_218))) + (1/read-syntax + (object-name i_218) + i_218)))))) + (if (eof-object? s_497) + (apply values vals_8) + (loop_5 + (call-with-continuation-prompt + (lambda () + (call-with-values + (lambda () + ((1/current-eval) (add-top-interaction_0 s_497))) + list)) + (default-continuation-prompt-tag) + (lambda args_14 + (apply + abort-current-continuation + (default-continuation-prompt-tag) + args_14)))))))))) + loop_5) + (list (void))))))) + (call-with-input-file*.1 'binary path1_0 temp2_8))))))))))) + (define-values (version-bytes) (string->bytes/utf-8 (version))) + (define-values (version-length) (bytes-length version-bytes)) + (define-values (vm-bytes) (string->bytes/utf-8 (symbol->string (system-type 'vm)))) + (define-values (vm-length) (bytes-length vm-bytes)) + (define-values + (linklet-bundle-or-directory-start) + (lambda (i_219 tag_2) + (begin + (let-values (((version-length_0) (string-length (version)))) + (let-values (((vm-length_0) (string-length (symbol->string (system-type 'vm))))) + (if (equal? (peek-byte i_219) (char->integer '#\#)) + (if (equal? (peek-byte i_219 1) (char->integer '#\~)) + (if (equal? (peek-byte i_219 2) version-length_0) + (if (equal? (peek-bytes version-length_0 3 i_219) version-bytes) + (if (equal? (peek-byte i_219 (+ 3 version-length_0)) vm-length_0) + (if (equal? (peek-bytes vm-length_0 (+ 4 version-length_0) i_219) vm-bytes) + (if (equal? (peek-byte i_219 (+ 4 version-length_0 vm-length_0)) (char->integer tag_2)) + (+ version-length_0 vm-length_0 5) + #f) + #f) + #f) + #f) + #f) + #f) + #f)))))) + (define-values + (linklet-directory-start) + (lambda (i_87) + (begin (let-values (((pos_143) (linklet-bundle-or-directory-start i_87 '#\D))) (if pos_143 (+ pos_143 4) #f))))) + (define-values + (linklet-bundle-hash-code) + (lambda (i_220) + (begin + (let-values (((pos_141) (linklet-bundle-or-directory-start i_220 '#\B))) + (let-values (((hash-code_0) (if pos_141 (peek-bytes 20 pos_141 i_220) #f))) + (if (bytes? hash-code_0) + (if (= 20 (bytes-length hash-code_0)) + (if (let-values (((vec_14 len_70) + (let-values (((vec_73) hash-code_0)) + (begin (check-bytes vec_73) (values vec_73 (unsafe-bytes-length vec_73)))))) + (begin + #f + ((letrec-values (((for-loop_101) + (lambda (result_62 pos_144) + (begin + 'for-loop + (if (unsafe-fx< pos_144 len_70) + (let-values (((c_87) (unsafe-bytes-ref vec_14 pos_144))) + (let-values (((result_128) + (let-values () + (let-values (((result_80) + (let-values () + (let-values () (not (eq? c_87 0)))))) + (values result_80))))) + (if (if (not ((lambda x_104 result_128) c_87)) (not #f) #f) + (for-loop_101 result_128 (unsafe-fx+ 1 pos_144)) + result_128))) + result_62))))) + for-loop_101) + #f + 0))) + hash-code_0 + #f) + #f) + #f)))))) + (define-values + (cached-bundle) + (lambda (i_42) + (begin + (let-values (((c3_9) (module-cache-ref (make-module-cache-key (linklet-bundle-hash-code i_42))))) + (if c3_9 + ((lambda (declare-module_0) (lambda () (declare-module_0 (1/current-namespace)))) c3_9) + (let-values () #f)))))) + (define-values + (read-number) + (lambda (i_1) + (begin + (let-values (((read-byte/not-eof_0) + (lambda (i_221) + (begin + 'read-byte/not-eof + (let-values (((v_218) (read-byte i_221))) (if (eof-object? v_218) 0 v_218)))))) + (bitwise-ior + (read-byte/not-eof_0 i_1) + (arithmetic-shift (read-byte/not-eof_0 i_1) 8) + (arithmetic-shift (read-byte/not-eof_0 i_1) 16) + (arithmetic-shift (read-byte/not-eof_0 i_1) 24)))))) + (define-values + (search-directory) + (lambda (i_222 pos_145 bstr_28) + (begin + (if (zero? pos_145) + (let-values () #f) + (let-values () + (let-values ((() (begin (file-position i_222 pos_145) (values)))) + (let-values (((name-len_0) (read-number i_222))) + (let-values (((v_205) (read-bytes name-len_0 i_222))) + (begin + (if (if (bytes? v_205) (= (bytes-length v_205) name-len_0) #f) + (void) + (let-values () + (error + 'deafult-load-handler + (string-append + "failure getting submodule path\n" + " in: ~e\n" + " at position: ~a\n" + " expected bytes: ~a\n" + " read bytes: ~e") + (object-name i_222) + pos_145 + name-len_0 + v_205))) + (if (bytes=? bstr_28 v_205) + (let-values () (read-number i_222)) + (if (bytesbytes/utf-8 + (symbol->string s_553)))) + (let-values (((len_74) + (bytes-length bstr_29))) + (if (< len_74 255) + (let-values () + (bytes-append + (bytes len_74) + bstr_29)) + (let-values () + (bytes-append + 255 + (integer->integer-bytes + len_74 + 4 + #f + #f) + bstr_29)))))) + fold-var_85)))) + (values fold-var_102))))) + (if (not #f) (for-loop_309 fold-var_70 rest_191) fold-var_70))) + fold-var_69))))) + for-loop_309) + null + lst_284)))))))))) + (define-values + (with-module-reading-parameterization+delay-source) + (lambda (path_20 thunk_12) + (begin + (if (load-on-demand-enabled) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + read-on-demand-source + (path->complete-path path_20)) + (let-values () (with-module-reading-parameterization thunk_12))) + (with-module-reading-parameterization thunk_12))))) + (define-values + (call-with-input-module-file) + (lambda (path_21 proc_10) + (begin + (let-values (((i_212) #f)) + (dynamic-wind + (lambda () + (set! i_212 (let-values (((path3_0) path_21) ((temp4_8) #t)) (open-input-file.1 temp4_8 'binary path3_0)))) + (lambda () (proc_10 i_212)) + (lambda () (close-input-port i_212))))))) + (define-values (dll-suffix) (system-type 'so-suffix)) + (define-values + (default-load/use-compiled) + (let-values (((resolve_0) + (lambda (s_554) + (begin + 'resolve + (if (complete-path? s_554) + s_554 + (let-values (((d_15) (current-load-relative-directory))) + (if d_15 (path->complete-path s_554 d_15) s_554))))))) + (let-values (((date-of-1_0) + (lambda (a_72) + (begin + 'date-of-1 + (let-values (((v_263) (file-or-directory-modify-seconds a_72 #f (lambda () #f)))) + (if v_263 (cons a_72 v_263) #f)))))) + (let-values (((date-of_0) + (lambda (a_73 modes_1 roots_1) + (begin + 'date-of + (ormap2 + (lambda (root-dir_0) + (ormap2 + (lambda (compiled-dir_0) + (let-values (((a_74) (a_73 root-dir_0 compiled-dir_0))) (date-of-1_0 a_74))) + modes_1)) + roots_1))))) + (let-values (((date>=?_0) + (lambda (modes_2 roots_2 a_75 bm_0) + (begin + 'date>=? + (if a_75 + (let-values (((am_0) (date-of_0 a_75 modes_2 roots_2))) + (let-values (((or-part_60) (if (not bm_0) am_0 #f))) + (if or-part_60 + or-part_60 + (if am_0 (if bm_0 (if (>= (cdr am_0) (cdr bm_0)) am_0 #f) #f) #f)))) + #f))))) + (let-values (((with-dir*_0) + (lambda (base_25 t_34) + (begin + 'with-dir* + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + current-load-relative-directory + (if (path? base_25) base_25 (current-directory))) + (let-values () (t_34))))))) + (lambda (path_22 expect-module_0) + (begin + (let-values ((() + (begin + (if (path-string? path_22) + (void) + (let-values () (raise-argument-error 'load/use-compiled "path-string?" path_22))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_519) (not expect-module_0))) + (if or-part_519 + or-part_519 + (let-values (((or-part_92) (symbol? expect-module_0))) + (if or-part_92 + or-part_92 + (if (list? expect-module_0) + (if (> (length expect-module_0) 1) + (if (let-values (((or-part_520) (symbol? (car expect-module_0)))) + (if or-part_520 or-part_520 (not (car expect-module_0)))) + (andmap2 symbol? (cdr expect-module_0)) + #f) + #f) + #f))))) + (void) + (let-values () + (raise-argument-error + 'load/use-compiled + "(or/c #f symbol? (cons/c (or/c #f symbol?) (non-empty-listof symbol?)))" + path_22))) + (values)))) + (let-values (((name_81) (if expect-module_0 (1/current-module-declare-name) #f))) + (let-values (((ns-hts_0) + (if name_81 + (registry-table-ref (namespace-module-registry$1 (1/current-namespace))) + #f))) + (let-values (((use-path/src_0) (if ns-hts_0 (hash-ref (cdr ns-hts_0) name_81 #f) #f))) + (if use-path/src_0 + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-module-declare-source + (cadr use-path/src_0)) + (let-values () + (with-dir*_0 + (caddr use-path/src_0) + (lambda () ((1/current-load) (car use-path/src_0) expect-module_0))))) + (let-values (((orig-path_0) (resolve_0 path_22))) + (let-values (((base_26 orig-file_0 dir?_10) (split-path path_22))) + (let-values (((file_1 alt-file_0) + (if expect-module_0 + (let-values (((b_108) (path->bytes orig-file_0))) + (let-values (((len_58) (bytes-length b_108))) + (if (if (>= len_58 4) + (bytes=? #".rkt" (subbytes b_108 (- len_58 4))) + #f) + (let-values () + (values + orig-file_0 + (bytes->path + (bytes-append (subbytes b_108 0 (- len_58 4)) #".ss")))) + (let-values () (values orig-file_0 #f))))) + (values orig-file_0 #f)))) + (let-values (((path_23) + (if (eq? file_1 orig-file_0) orig-path_0 (build-path base_26 file_1)))) + (let-values (((alt-path_0) + (if alt-file_0 + (if (eq? alt-file_0 orig-file_0) + orig-path_0 + (build-path base_26 alt-file_0)) + #f))) + (let-values (((base_27) (if (eq? base_26 'relative) 'same base_26))) + (let-values (((modes_3) (1/use-compiled-file-paths))) + (let-values (((roots_3) (1/current-compiled-file-roots))) + (let-values (((reroot_0) + (lambda (p_79 d_51) + (begin + 'reroot + (if (eq? d_51 'same) + (let-values () p_79) + (if (relative-path? d_51) + (let-values () (build-path p_79 d_51)) + (let-values () (reroot-path p_79 d_51)))))))) + (let-values (((main-path-d_0) (date-of-1_0 path_23))) + (let-values (((alt-path-d_0) + (if alt-path_0 + (if (not main-path-d_0) (date-of-1_0 alt-path_0) #f) + #f))) + (let-values (((path-d_0) + (let-values (((or-part_177) main-path-d_0)) + (if or-part_177 or-part_177 alt-path-d_0)))) + (let-values (((get-so_0) + (lambda (file_2 rep-sfx?_0) + (begin + 'get-so + (if (eq? 'racket (system-type 'vm)) + (lambda (root-dir_1 compiled-dir_1) + (build-path + (reroot_0 base_27 root-dir_1) + compiled-dir_1 + "native" + (system-library-subpath) + (if rep-sfx?_0 + (path-add-extension file_2 dll-suffix) + file_2))) + #f))))) + (let-values (((zo_0) + (lambda (root-dir_2 compiled-dir_2) + (begin + 'zo + (build-path + (reroot_0 base_27 root-dir_2) + compiled-dir_2 + (path-add-extension file_1 #".zo")))))) + (let-values (((alt-zo_0) + (lambda (root-dir_3 compiled-dir_3) + (begin + 'alt-zo + (build-path + (reroot_0 base_27 root-dir_3) + compiled-dir_3 + (path-add-extension alt-file_0 #".zo")))))) + (let-values (((so_0) (get-so_0 file_1 #t))) + (let-values (((alt-so_0) (get-so_0 alt-file_0 #t))) + (let-values (((try-main?_0) + (let-values (((or-part_53) main-path-d_0)) + (if or-part_53 + or-part_53 + (not alt-path-d_0))))) + (let-values (((try-alt?_0) + (if alt-file_0 + (let-values (((or-part_521) + alt-path-d_0)) + (if or-part_521 + or-part_521 + (not main-path-d_0))) + #f))) + (let-values (((with-dir_0) + (lambda (t_35) + (begin + 'with-dir + (with-dir*_0 base_27 t_35))))) + (let-values (((c4_2) + (if so_0 + (if try-main?_0 + (date>=?_0 + modes_3 + roots_3 + so_0 + path-d_0) + #f) + #f))) + (if c4_2 + ((lambda (so-d_0) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-module-declare-source + #f) + (let-values () + (with-dir_0 + (lambda () + ((current-load-extension) + (car so-d_0) + expect-module_0)))))) + c4_2) + (let-values (((c3_10) + (if alt-so_0 + (if try-alt?_0 + (date>=?_0 + modes_3 + roots_3 + alt-so_0 + alt-path-d_0) + #f) + #f))) + (if c3_10 + ((lambda (so-d_1) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-module-declare-source + alt-path_0) + (let-values () + (with-dir_0 + (lambda () + ((current-load-extension) + (car so-d_1) + expect-module_0)))))) + c3_10) + (let-values (((c2_22) + (if try-main?_0 + (date>=?_0 + modes_3 + roots_3 + zo_0 + path-d_0) + #f))) + (if c2_22 + ((lambda (zo-d_0) + (begin + (register-zo-path + name_81 + ns-hts_0 + (car zo-d_0) + #f + base_27) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-module-declare-source + #f) + (let-values () + (with-dir_0 + (lambda () + ((1/current-load) + (car zo-d_0) + expect-module_0))))))) + c2_22) + (let-values (((c1_33) + (if try-alt?_0 + (date>=?_0 + modes_3 + roots_3 + alt-zo_0 + path-d_0) + #f))) + (if c1_33 + ((lambda (zo-d_1) + (begin + (register-zo-path + name_81 + ns-hts_0 + (car zo-d_1) + alt-path_0 + base_27) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-module-declare-source + alt-path_0) + (let-values () + (with-dir_0 + (lambda () + ((1/current-load) + (car zo-d_1) + expect-module_0))))))) + c1_33) + (if (let-values (((or-part_93) + (not + (pair? + expect-module_0)))) + (if or-part_93 + or-part_93 + (let-values (((or-part_94) + (car + expect-module_0))) + (if or-part_94 + or-part_94 + (is-compiled-file? + (if try-main?_0 + path_23 + alt-path_0)))))) + (let-values () + (let-values (((p_80) + (if try-main?_0 + path_23 + alt-path_0))) + (if (if (pair? + expect-module_0) + (not + (file-exists? p_80)) + #f) + (void) + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-module-declare-source + (if expect-module_0 + (if (not try-main?_0) + p_80 + #f) + #f)) + (let-values () + (with-dir_0 + (lambda () + ((1/current-load) + p_80 + expect-module_0))))))))) + (void)))))))))))))))))))))))))))))))))))))))))))) + (define-values + (register-zo-path) + (lambda (name_82 ns-hts_1 path_24 src-path_0 base_28) + (begin (if ns-hts_1 (let-values () (hash-set! (cdr ns-hts_1) name_82 (list path_24 src-path_0 base_28))) (void))))) + (define-values + (is-compiled-file?) + (lambda (p_81) + (begin + (if (file-exists? p_81) + (let-values (((p1_2) p_81) ((linklet-directory-start2_0) linklet-directory-start)) + (call-with-input-file*.1 'binary p1_2 linklet-directory-start2_0)) + #f)))) + (define-values (default-reader-guard) (lambda (path_25) (begin path_25))) + (define-values (cell.1) (unsafe-make-place-local (make-weak-hasheq))) + (define-values + (registry-table-ref) + (lambda (reg_0) + (begin + (let-values (((e_99) (hash-ref (unsafe-place-local-ref cell.1) reg_0 #f))) (if e_99 (ephemeron-value e_99) #f))))) + (define-values + (registry-table-set!) + (lambda (reg_1 v_264) (begin (hash-set! (unsafe-place-local-ref cell.1) reg_1 (make-ephemeron reg_1 v_264))))) + (define-values (cell.2) (unsafe-make-place-local (make-weak-hasheq))) + (define-values + (path-cache-get) + (lambda (p_82 reg_2) + (begin + (let-values (((cache_3) (hash-ref (unsafe-place-local-ref cell.2) reg_2 '#hash()))) (hash-ref cache_3 p_82 #f))))) + (define-values + (path-cache-set!) + (lambda (p_83 reg_3 v_265) + (begin + (let-values (((current-cache_0) (hash-ref (unsafe-place-local-ref cell.2) reg_3 '#hash()))) + (let-values (((cache_4) (if (= (hash-count current-cache_0) 1024) '#hash() current-cache_0))) + (hash-set! (unsafe-place-local-ref cell.2) reg_3 (hash-set cache_4 p_83 v_265))))))) + (define-values (-loading-filename) (gensym)) + (define-values (-loading-prompt-tag) (make-continuation-prompt-tag 'module-loading)) + (define-values (cell.3) (unsafe-make-place-local #f)) + (define-values (cell.4) (unsafe-make-place-local #f)) + (define-values + (split-relative-string) + (lambda (s_477 coll-mode?_0) + (begin + (let-values (((l_75) + ((letrec-values (((loop_130) + (lambda (s_555) + (begin + 'loop + (let-values (((len_11) (string-length s_555))) + ((letrec-values (((iloop_2) + (lambda (i_223) + (begin + 'iloop + (if (= i_223 len_11) + (let-values () (list s_555)) + (if (char=? '#\/ (string-ref s_555 i_223)) + (let-values () + (cons + (substring s_555 0 i_223) + (loop_130 (substring s_555 (add1 i_223))))) + (let-values () (iloop_2 (add1 i_223))))))))) + iloop_2) + 0)))))) + loop_130) + s_477))) + (if coll-mode?_0 + l_75 + ((letrec-values (((loop_131) + (lambda (l_76) + (begin + 'loop + (if (null? (cdr l_76)) + (values null (car l_76)) + (let-values (((c_151 f_25) (loop_131 (cdr l_76)))) + (values (cons (car l_76) c_151) f_25))))))) + loop_131) + l_75)))))) + (define-values + (format-source-location) + (lambda (stx_18) + (begin + (srcloc->string + (srcloc + (1/syntax-source stx_18) + (1/syntax-line stx_18) + (1/syntax-column stx_18) + (1/syntax-position stx_18) + (1/syntax-span stx_18)))))) + (define-values (cell.5) (unsafe-make-place-local #f)) + (define-values (cell.6) (unsafe-make-place-local #f)) + (define-values + (prep-planet-resolver!) + (lambda () + (begin + (if (unsafe-place-local-ref cell.6) + (void) + (let-values () + (with-continuation-mark + parameterization-key + (unsafe-place-local-ref cell.5) + (unsafe-place-local-set! + cell.6 + (1/dynamic-require '(lib "planet/resolver.rkt") 'planet-module-name-resolver)))))))) + (define-values + (standard-module-name-resolver) + (case-lambda + ((s_556 from-namespace_1) + (begin + (begin + (if (1/resolved-module-path? s_556) + (void) + (let-values () (raise-argument-error 'standard-module-name-resolver "resolved-module-path?" s_556))) + (if (let-values (((or-part_522) (not from-namespace_1))) + (if or-part_522 or-part_522 (1/namespace? from-namespace_1))) + (void) + (let-values () (raise-argument-error 'standard-module-name-resolver "(or/c #f namespace?)" from-namespace_1))) + (if (unsafe-place-local-ref cell.6) (let-values () ((unsafe-place-local-ref cell.6) s_556)) (void)) + (let-values (((hts_1) + (let-values (((or-part_523) + (registry-table-ref (namespace-module-registry$1 (1/current-namespace))))) + (if or-part_523 + or-part_523 + (let-values (((hts_2) (cons (make-hasheq) (make-hasheq)))) + (begin + (registry-table-set! (namespace-module-registry$1 (1/current-namespace)) hts_2) + hts_2)))))) + (begin + (hash-set! (car hts_1) s_556 'declared) + (if from-namespace_1 + (let-values () + (let-values (((root-name_2) + (if (pair? (1/resolved-module-path-name s_556)) + (1/make-resolved-module-path (car (1/resolved-module-path-name s_556))) + s_556)) + ((from-hts_0) (registry-table-ref (namespace-module-registry$1 from-namespace_1)))) + (if from-hts_0 + (let-values () + (let-values (((use-path/src_1) (hash-ref (cdr from-hts_0) root-name_2 #f))) + (if use-path/src_1 (let-values () (hash-set! (cdr hts_1) root-name_2 use-path/src_1)) (void)))) + (void)))) + (void))))))) + ((s_327 relto_0 stx_19) + (begin + (log-message (current-logger) 'error "default module name resolver called with three arguments (deprecated)" #f) + (standard-module-name-resolver s_327 relto_0 stx_19 #t))) + ((s_204 relto_1 stx_20 load?_8) + (let-values ((() + (begin + (if (1/module-path? s_204) + (void) + (let-values () + (if (syntax?$1 stx_20) + (raise-syntax-error$1 #f "bad module path" stx_20) + (raise-argument-error 'standard-module-name-resolver "module-path?" s_204)))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_307) (not relto_1))) + (if or-part_307 or-part_307 (1/resolved-module-path? relto_1))) + (void) + (let-values () + (raise-argument-error + 'standard-module-name-resolver + "(or/c #f resolved-module-path?)" + relto_1))) + (values)))) + (let-values ((() + (begin + (if (let-values (((or-part_524) (not stx_20))) (if or-part_524 or-part_524 (syntax?$1 stx_20))) + (void) + (let-values () + (raise-argument-error 'standard-module-name-resolver "(or/c #f syntax?)" stx_20))) + (values)))) + (let-values (((flatten-sub-path_0) + (lambda (base_29 orig-l_3) + (begin + 'flatten-sub-path + ((letrec-values (((loop_125) + (lambda (a_76 l_77) + (begin + 'loop + (if (null? l_77) + (let-values () + (if (null? a_76) base_29 (cons base_29 (reverse$1 a_76)))) + (if (equal? (car l_77) "..") + (let-values () + (if (null? a_76) + (error + 'standard-module-name-resolver + "too many \"..\"s in submodule path: ~.s" + (list* + 'submod + (if (equal? base_29 ".") + base_29 + (if (path? base_29) + base_29 + (list (if (symbol? base_29) 'quote 'file) base_29))) + orig-l_3)) + (loop_125 (cdr a_76) (cdr l_77)))) + (let-values () (loop_125 (cons (car l_77) a_76) (cdr l_77))))))))) + loop_125) + null + orig-l_3))))) + (if (if (pair? s_204) (eq? (car s_204) 'quote) #f) + (let-values () (1/make-resolved-module-path (cadr s_204))) + (if (if (pair? s_204) + (if (eq? (car s_204) 'submod) (if (pair? (cadr s_204)) (eq? (caadr s_204) 'quote) #f) #f) + #f) + (let-values () (1/make-resolved-module-path (flatten-sub-path_0 (cadadr s_204) (cddr s_204)))) + (if (if (pair? s_204) + (if (eq? (car s_204) 'submod) + (if (let-values (((or-part_525) (equal? (cadr s_204) "."))) + (if or-part_525 or-part_525 (equal? (cadr s_204) ".."))) + (if relto_1 + (let-values (((p_84) (1/resolved-module-path-name relto_1))) + (let-values (((or-part_526) (symbol? p_84))) + (if or-part_526 or-part_526 (if (pair? p_84) (symbol? (car p_84)) #f)))) + #f) + #f) + #f) + #f) + (let-values () + (let-values (((rp_0) (1/resolved-module-path-name relto_1))) + (1/make-resolved-module-path + (flatten-sub-path_0 + (if (pair? rp_0) (car rp_0) rp_0) + (let-values (((r_52) (if (equal? (cadr s_204) "..") (cdr s_204) (cddr s_204)))) + (if (pair? rp_0) (append (cdr rp_0) r_52) r_52)))))) + (if (if (pair? s_204) (eq? (car s_204) 'planet) #f) + (let-values () + (begin + (prep-planet-resolver!) + ((unsafe-place-local-ref cell.6) + s_204 + relto_1 + stx_20 + load?_8 + #f + (unsafe-place-local-ref cell.5)))) + (if (if (pair? s_204) + (if (eq? (car s_204) 'submod) (if (pair? (cadr s_204)) (eq? (caadr s_204) 'planet) #f) #f) + #f) + (let-values () + (begin + (prep-planet-resolver!) + ((unsafe-place-local-ref cell.6) + (cadr s_204) + relto_1 + stx_20 + load?_8 + (cddr s_204) + (unsafe-place-local-ref cell.5)))) + (let-values () + (let-values (((get-dir_0) + (lambda () + (begin + 'get-dir + (let-values (((or-part_182) + (if relto_1 + (if (eq? relto_1 (unsafe-place-local-ref cell.3)) + (unsafe-place-local-ref cell.4) + (let-values (((p_16) (1/resolved-module-path-name relto_1))) + (let-values (((p_85) (if (pair? p_16) (car p_16) p_16))) + (if (path? p_85) + (let-values (((base_30 n_61 d?_0) (split-path p_85))) + (begin + (unsafe-place-local-set! cell.3 relto_1) + (unsafe-place-local-set! cell.4 base_30) + base_30)) + #f)))) + #f))) + (if or-part_182 + or-part_182 + (let-values (((or-part_166) (current-load-relative-directory))) + (if or-part_166 or-part_166 (current-directory)))))))) + ((get-reg_0) + (lambda () (begin 'get-reg (namespace-module-registry$1 (1/current-namespace))))) + ((show-collection-err_0) + (lambda (msg_2) + (begin + 'show-collection-err + (let-values (((msg_3) + (string-append + (let-values (((or-part_68) + (if stx_20 + (if (error-print-source-location) + (format-source-location stx_20) + #f) + #f))) + (if or-part_68 or-part_68 "standard-module-name-resolver")) + ": " + (regexp-replace + '#rx"\n" + msg_2 + (format "\n for module path: ~s\n" s_204))))) + (raise + (if stx_20 + (1/make-exn:fail:syntax:missing-module + msg_3 + (current-continuation-marks) + (list (syntax-taint$1 stx_20)) + s_204) + (1/make-exn:fail:filesystem:missing-module + msg_3 + (current-continuation-marks) + s_204))))))) + ((invent-collection-dir_0) + (lambda (f-file_0 col_13 col-path_0 fail_13) + (begin + 'invent-collection-dir + (lambda (msg_4) + (string->uninterned-symbol + (path->string + (build-path (apply build-path col_13 col-path_0) f-file_0))))))) + ((ss->rkt_0) + (lambda (s_557) + (begin + 'ss->rkt + (let-values (((len_75) (string-length s_557))) + (if (if (>= len_75 3) + (if (equal? '#\. (string-ref s_557 (- len_75 3))) + (if (equal? '#\s (string-ref s_557 (- len_75 2))) + (equal? '#\s (string-ref s_557 (- len_75 1))) + #f) + #f) + #f) + (string-append (substring s_557 0 (- len_75 3)) ".rkt") + s_557))))) + ((path-ss->rkt_0) + (lambda (p_86) + (begin + 'path-ss->rkt + (let-values (((base_31 name_83 dir?_11) (split-path p_86))) + (if (regexp-match '#rx"[.]ss$" (path->bytes name_83)) + (path-replace-extension p_86 #".rkt") + p_86))))) + ((s_206) + (if (if (pair? s_204) (eq? 'submod (car s_204)) #f) + (let-values (((v_266) (cadr s_204))) + (if (let-values (((or-part_527) (equal? v_266 "."))) + (if or-part_527 or-part_527 (equal? v_266 ".."))) + (if relto_1 + (let-values (((p_87) (1/resolved-module-path-name relto_1))) + (if (pair? p_87) (car p_87) p_87)) + (error + 'standard-module-name-resolver + "no base path for relative submodule path: ~.s" + s_204)) + v_266)) + s_204)) + ((subm-path_0) + (if (if (pair? s_204) (eq? 'submod (car s_204)) #f) + (let-values (((p_88) + (if (if (let-values (((or-part_528) (equal? (cadr s_204) "."))) + (if or-part_528 or-part_528 (equal? (cadr s_204) ".."))) + relto_1 + #f) + (let-values (((p_30) (1/resolved-module-path-name relto_1)) + ((r_53) + (if (equal? (cadr s_204) "..") + (cdr s_204) + (cddr s_204)))) + (if (pair? p_30) + (flatten-sub-path_0 (car p_30) (append (cdr p_30) r_53)) + (flatten-sub-path_0 p_30 r_53))) + (flatten-sub-path_0 + "." + (if (equal? (cadr s_204) "..") (cdr s_204) (cddr s_204)))))) + (if (pair? p_88) (cdr p_88) #f)) + #f))) + (let-values (((s-parsed_0) + (if (symbol? s_206) + (let-values () + (let-values (((or-part_529) (path-cache-get s_206 (get-reg_0)))) + (if or-part_529 + or-part_529 + (let-values (((cols_0 file_3) + (split-relative-string (symbol->string s_206) #f))) + (let-values (((f-file_1) + (if (null? cols_0) + "main.rkt" + (string-append file_3 ".rkt")))) + (let-values (((col_14) (if (null? cols_0) file_3 (car cols_0)))) + (let-values (((col-path_1) (if (null? cols_0) null (cdr cols_0)))) + (find-col-file + (if (not subm-path_0) + show-collection-err_0 + (invent-collection-dir_0 + f-file_1 + col_14 + col-path_1 + show-collection-err_0)) + col_14 + col-path_1 + f-file_1 + #t)))))))) + (if (string? s_206) + (let-values () + (let-values (((dir_5) (get-dir_0))) + (let-values (((or-part_530) (path-cache-get (cons s_206 dir_5) #f))) + (if or-part_530 + or-part_530 + (let-values (((cols_1 file_4) (split-relative-string s_206 #f))) + (if (null? cols_1) + (build-path dir_5 (ss->rkt_0 file_4)) + (apply + build-path + dir_5 + (append + (map2 + (lambda (s_515) + (if (string=? s_515 ".") + (let-values () 'same) + (if (string=? s_515 "..") + (let-values () 'up) + (let-values () s_515)))) + cols_1) + (list (ss->rkt_0 file_4)))))))))) + (if (path? s_206) + (let-values () + (path-ss->rkt_0 + (simplify-path + (if (complete-path? s_206) + s_206 + (path->complete-path s_206 (get-dir_0)))))) + (if (eq? (car s_206) 'lib) + (let-values () + (let-values (((or-part_313) (path-cache-get s_206 (get-reg_0)))) + (if or-part_313 + or-part_313 + (let-values (((cols_2 file_5) + (split-relative-string (cadr s_206) #f))) + (let-values (((old-style?_0) + (if (null? (cddr s_206)) + (if (null? cols_2) + (regexp-match? '#rx"[.]" file_5) + #f) + #t))) + (let-values (((f-file_2) + (if old-style?_0 + (ss->rkt_0 file_5) + (if (null? cols_2) + "main.rkt" + (if (regexp-match? '#rx"[.]" file_5) + (ss->rkt_0 file_5) + (string-append file_5 ".rkt")))))) + (let-values (((cols_3) + (if old-style?_0 + (append + (if (null? (cddr s_206)) + '("mzlib") + (apply + append + (map2 + (lambda (p_89) + (split-relative-string p_89 #t)) + (cddr s_206)))) + cols_2) + (if (null? cols_2) (list file_5) cols_2)))) + (find-col-file + show-collection-err_0 + (car cols_3) + (cdr cols_3) + f-file_2 + #t)))))))) + (if (eq? (car s_206) 'file) + (let-values () + (path-ss->rkt_0 + (simplify-path + (path->complete-path + (expand-user-path (cadr s_206)) + (get-dir_0))))) + (void)))))))) + (if (symbol? s-parsed_0) + (let-values () (1/make-resolved-module-path (cons s-parsed_0 subm-path_0))) + (if (not + (let-values (((or-part_508) (path? s-parsed_0))) + (if or-part_508 or-part_508 (vector? s-parsed_0)))) + (let-values () + (if stx_20 + (raise-syntax-error$1 + 'require + (format "bad module path~a" (if s-parsed_0 (car s-parsed_0) "")) + stx_20) + (raise-argument-error 'standard-module-name-resolver "module-path?" s_206))) + (let-values () + (let-values (((filename_2) + (if (vector? s-parsed_0) + (vector-ref s-parsed_0 0) + (simplify-path (cleanse-path s-parsed_0) #f)))) + (let-values (((normal-filename_0) + (if (vector? s-parsed_0) + (vector-ref s-parsed_0 1) + (normal-case-path filename_2)))) + (let-values (((base_32 name_84 dir?_12) + (if (vector? s-parsed_0) + (values 'ignored (vector-ref s-parsed_0 2) 'ignored) + (split-path filename_2)))) + (let-values (((no-sfx_0) + (if (vector? s-parsed_0) + (vector-ref s-parsed_0 3) + (path-replace-extension name_84 #"")))) + (let-values (((root-modname_0) + (if (vector? s-parsed_0) + (vector-ref s-parsed_0 4) + (1/make-resolved-module-path filename_2)))) + (let-values (((hts_3) + (let-values (((or-part_168) (registry-table-ref (get-reg_0)))) + (if or-part_168 + or-part_168 + (let-values (((hts_4) (cons (make-hasheq) (make-hasheq)))) + (begin + (registry-table-set! (get-reg_0) hts_4) + hts_4)))))) + (let-values (((modname_2) + (if subm-path_0 + (1/make-resolved-module-path + (cons + (1/resolved-module-path-name root-modname_0) + subm-path_0)) + root-modname_0))) + (begin + (if load?_8 + (let-values () + (let-values (((got_0) (hash-ref (car hts_3) modname_2 #f))) + (if got_0 + (void) + (let-values () + (let-values (((loading_0) + (let-values (((tag_3) + (if (continuation-prompt-available? + -loading-prompt-tag) + -loading-prompt-tag + (default-continuation-prompt-tag)))) + (continuation-mark-set-first + #f + -loading-filename + null + tag_3))) + ((nsr_0) (get-reg_0))) + (begin + (for-each2 + (lambda (s_558) + (if (if (equal? (cdr s_558) normal-filename_0) + (eq? (car s_558) nsr_0) + #f) + (let-values () + (error + 'standard-module-name-resolver + "cycle in loading\n at path: ~a\n paths:~a" + filename_2 + (apply + string-append + ((letrec-values (((loop_132) + (lambda (l_78) + (begin + 'loop + (if (null? l_78) + '() + (list* + "\n " + (path->string + (cdar l_78)) + (loop_132 + (cdr l_78)))))))) + loop_132) + (reverse$1 loading_0))))) + (void))) + loading_0) + ((if (continuation-prompt-available? + -loading-prompt-tag) + (lambda (f_42) (f_42)) + (lambda (f_43) + (call-with-continuation-prompt + f_43 + -loading-prompt-tag))) + (lambda () + (with-continuation-mark + -loading-filename + (cons (cons nsr_0 normal-filename_0) loading_0) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-module-declare-name + root-modname_0 + 1/current-module-path-for-load + ((if stx_20 + (lambda (p_90) + (1/datum->syntax #f p_90 stx_20)) + values) + (if (symbol? s_206) + (let-values () s_206) + (if (if (pair? s_206) + (eq? (car s_206) 'lib) + #f) + (let-values () s_206) + (let-values () + (if (1/resolved-module-path? + root-modname_0) + (let-values (((src_11) + (1/resolved-module-path-name + root-modname_0))) + (if (symbol? src_11) + (list 'quote src_11) + src_11)) + root-modname_0)))))) + (let-values () + ((1/current-load/use-compiled) + filename_2 + (let-values (((sym_105) + (string->symbol + (path->string no-sfx_0)))) + (if subm-path_0 + (if (hash-ref (car hts_3) root-modname_0 #f) + (cons #f subm-path_0) + (cons sym_105 subm-path_0)) + sym_105)))))))))))))) + (void)) + (if (if (not (vector? s-parsed_0)) + (if load?_8 + (let-values (((or-part_531) (string? s_206))) + (if or-part_531 + or-part_531 + (let-values (((or-part_532) (symbol? s_206))) + (if or-part_532 + or-part_532 + (if (pair? s_206) (eq? (car s_206) 'lib) #f))))) + #f) + #f) + (let-values () + (path-cache-set! + (if (string? s_206) (cons s_206 (get-dir_0)) s_206) + (if (string? s_206) #f (get-reg_0)) + (vector + filename_2 + normal-filename_0 + name_84 + no-sfx_0 + root-modname_0))) + (void)) + modname_2)))))))))))))))))))))))))) + (define-values + (default-eval-handler) + (lambda (s_120) + (begin + (1/eval + s_120 + (1/current-namespace) + (let-values (((c_152) (1/current-compile))) + (lambda (e_100 ns_121) + (if (eq? ns_121 (1/current-namespace)) + (c_152 e_100 #t) + (with-continuation-mark + parameterization-key + (extend-parameterization (continuation-mark-set-first #f parameterization-key) 1/current-namespace ns_121) + (let-values () (c_152 e_100 #t)))))))))) + (define-values + (default-compile-handler) + (lambda (s_121 immediate-eval?_0) (begin (1/compile s_121 (1/current-namespace) (not immediate-eval?_0))))) + (define-values + (default-read-interaction) + (lambda (src_12 in_89) + (begin + (begin + (if (input-port? in_89) + (void) + (let-values () (raise-argument-error 'default-read-interaction "input-port?" in_89))) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/read-accept-reader + #t + 1/read-accept-lang + #f) + (let-values () (1/read-syntax src_12 in_89))))))) + (define-values + (boot) + (lambda () + (begin + (begin + (unsafe-place-local-set! cell.1 (make-weak-hasheq)) + (unsafe-place-local-set! cell.2 (make-weak-hasheq)) + (seal) + (1/current-module-name-resolver standard-module-name-resolver) + (1/current-load/use-compiled default-load/use-compiled) + (1/current-reader-guard default-reader-guard) + (1/current-eval default-eval-handler) + (1/current-compile default-compile-handler) + (1/current-load default-load-handler) + (current-read-interaction default-read-interaction))))) + (define-values + (seal) + (lambda () + (begin (unsafe-place-local-set! cell.5 (reparameterize (continuation-mark-set-first #f parameterization-key)))))) + (define-values (get-original-parameterization) (lambda () (begin (unsafe-place-local-ref cell.5)))) + (define-values + (boot-primitives) + (hash 'boot boot 'seal seal 'get-original-parameterization get-original-parameterization)) + (define-values + (prepare-next-phase-namespace) + (lambda (ctx_81) + (begin + (let-values (((phase_45) (add1 (expand-context-phase ctx_81)))) + (let-values (((ns_61) (namespace->namespace-at-phase (expand-context-namespace ctx_81) phase_45))) + (namespace-visit-available-modules! ns_61 phase_45)))))) + (define-values + (expand-body.1) + (lambda (source1_0 stratified?2_0 bodys5_0 ctx6_1) + (begin + 'expand-body + (let-values (((bodys_7) bodys5_0)) + (let-values (((ctx_82) ctx6_1)) + (let-values (((s_505) source1_0)) + (let-values (((stratified?_0) stratified?2_0)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_66) (expand-context-observer ctx_82))) + (if obs_66 + (let-values () (let-values () (call-expand-observe obs_66 'enter-block bodys_7))) + (void))) + (values)))) + (let-values (((inside-sc_0) (new-scope 'intdef))) + (let-values (((init-bodys_0) + (reverse$1 + (let-values (((lst_325) bodys_7)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_325))) + ((letrec-values (((for-loop_101) + (lambda (fold-var_80 lst_179) + (begin + 'for-loop + (if (pair? lst_179) + (let-values (((body_9) (unsafe-car lst_179)) + ((rest_192) (unsafe-cdr lst_179))) + (let-values (((fold-var_196) + (let-values (((fold-var_12) fold-var_80)) + (let-values (((fold-var_238) + (let-values () + (cons + (let-values () + (add-scope + body_9 + inside-sc_0)) + fold-var_12)))) + (values fold-var_238))))) + (if (not #f) + (for-loop_101 fold-var_196 rest_192) + fold-var_196))) + fold-var_80))))) + for-loop_101) + null + lst_325)))))) + (let-values ((() + (begin + (let-values (((obs_67) (expand-context-observer ctx_82))) + (if obs_67 + (let-values () + (let-values () + (call-expand-observe obs_67 'block-renames init-bodys_0 bodys_7))) + (void))) + (values)))) + (let-values (((phase_142) (expand-context-phase ctx_82))) + (let-values (((frame-id_7) (make-reference-record))) + (let-values (((def-ctx-scopes_6) (box null))) + (let-values (((body-ctx_0) + (let-values (((v_215) ctx_82)) + (let-values (((the-struct_86) v_215)) + (if (expand-context/outer? the-struct_86) + (let-values (((context51_0) (list (make-liberal-define-context))) + ((name52_0) #f) + ((only-immediate?53_0) #t) + ((def-ctx-scopes54_0) def-ctx-scopes_6) + ((post-expansion55_0) + (lambda (s_312) + (begin + 'post-expansion55 + (add-scope s_312 inside-sc_0)))) + ((scopes56_0) + (cons inside-sc_0 (expand-context-scopes ctx_82))) + ((use-site-scopes57_0) (box null)) + ((frame-id58_1) frame-id_7) + ((reference-records59_0) + (cons + frame-id_7 + (expand-context-reference-records ctx_82))) + ((inner60_0) (root-expand-context/outer-inner v_215))) + (expand-context/outer1.1 + inner60_0 + post-expansion55_0 + use-site-scopes57_0 + frame-id58_1 + context51_0 + (expand-context/outer-env the-struct_86) + scopes56_0 + def-ctx-scopes54_0 + (expand-context/outer-binding-layer the-struct_86) + reference-records59_0 + only-immediate?53_0 + (expand-context/outer-need-eventually-defined the-struct_86) + (expand-context/outer-current-introduction-scopes the-struct_86) + (expand-context/outer-current-use-scopes the-struct_86) + name52_0)) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_86)))))) + (let-values (((maybe-increment-binding-layer_0) + (lambda (ids_30 body-ctx_1) + (begin + 'maybe-increment-binding-layer + (if (eq? + (expand-context-binding-layer body-ctx_1) + (expand-context-binding-layer ctx_82)) + (increment-binding-layer ids_30 body-ctx_1 inside-sc_0) + (expand-context-binding-layer body-ctx_1)))))) + (let-values (((name_85) (expand-context-name ctx_82))) + ((letrec-values (((loop_129) + (lambda (body-ctx_2 + bodys_8 + done-bodys_0 + val-idss_0 + val-keyss_0 + val-rhss_0 + track-stxs_0 + trans-idss_1 + trans-stxs_0 + stx-clauses_0 + dups_0 + just-saw-define-syntaxes?_0) + (begin + 'loop + (if (null? bodys_8) + (let-values () + (let-values (((body-ctx61_0) body-ctx_2) + ((frame-id62_0) frame-id_7) + ((def-ctx-scopes63_0) def-ctx-scopes_6) + ((temp64_1) (reverse$1 val-idss_0)) + ((temp65_1) (reverse$1 val-keyss_0)) + ((temp66_6) (reverse$1 val-rhss_0)) + ((temp67_5) (reverse$1 track-stxs_0)) + ((temp68_4) (reverse$1 stx-clauses_0)) + ((temp69_4) (reverse$1 done-bodys_0)) + ((init-bodys70_0) init-bodys_0) + ((s71_0) s_505) + ((stratified?72_0) stratified?_0) + ((just-saw-define-syntaxes?73_0) + just-saw-define-syntaxes?_0) + ((name74_0) name_85) + ((temp75_5) (reverse$1 trans-idss_1)) + ((temp76_2) (reverse$1 trans-stxs_0))) + (finish-expanding-body.1 + temp75_5 + temp76_2 + just-saw-define-syntaxes?73_0 + name74_0 + init-bodys70_0 + s71_0 + stratified?72_0 + body-ctx61_0 + frame-id62_0 + def-ctx-scopes63_0 + temp64_1 + temp65_1 + temp66_6 + temp67_5 + temp68_4 + temp69_4))) + (let-values () + (let-values (((rest-bodys_0) (cdr bodys_8))) + (let-values ((() + (begin + (let-values (((obs_68) + (expand-context-observer + body-ctx_2))) + (if obs_68 + (let-values () + (let-values () + (call-expand-observe + obs_68 + 'next))) + (void))) + (values)))) + (let-values (((exp-body_0) + (let-values (((temp77_5) (car bodys_8)) + ((temp78_3) + (if (if name_85 + (null? + (cdr bodys_8)) + #f) + (let-values (((v_110) + body-ctx_2)) + (let-values (((the-struct_87) + v_110)) + (if (expand-context/outer? + the-struct_87) + (let-values (((name79_0) + name_85) + ((inner80_0) + (root-expand-context/outer-inner + v_110))) + (expand-context/outer1.1 + inner80_0 + (root-expand-context/outer-post-expansion + the-struct_87) + (root-expand-context/outer-use-site-scopes + the-struct_87) + (root-expand-context/outer-frame-id + the-struct_87) + (expand-context/outer-context + the-struct_87) + (expand-context/outer-env + the-struct_87) + (expand-context/outer-scopes + the-struct_87) + (expand-context/outer-def-ctx-scopes + the-struct_87) + (expand-context/outer-binding-layer + the-struct_87) + (expand-context/outer-reference-records + the-struct_87) + (expand-context/outer-only-immediate? + the-struct_87) + (expand-context/outer-need-eventually-defined + the-struct_87) + (expand-context/outer-current-introduction-scopes + the-struct_87) + (expand-context/outer-current-use-scopes + the-struct_87) + name79_0)) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_87)))) + body-ctx_2))) + (expand.1 #f #f temp77_5 temp78_3)))) + (let-values (((tmp_80) + (core-form-sym exp-body_0 phase_142))) + (if (equal? tmp_80 'begin) + (let-values () + (let-values ((() + (begin + (let-values (((obs_69) + (expand-context-observer + body-ctx_2))) + (if obs_69 + (let-values () + (let-values () + (call-expand-observe + obs_69 + 'prim-begin + exp-body_0))) + (void))) + (values)))) + (let-values (((ok?_19 begin81_0 e82_0) + (let-values (((s_510) + exp-body_0)) + (let-values (((orig-s_39) + s_510)) + (let-values (((begin81_1 + e82_1) + (let-values (((s_174) + (if (syntax?$1 + s_510) + (syntax-e$1 + s_510) + s_510))) + (if (pair? + s_174) + (let-values (((begin83_0) + (let-values (((s_30) + (car + s_174))) + s_30)) + ((e84_0) + (let-values (((s_559) + (cdr + s_174))) + (let-values (((s_560) + (if (syntax?$1 + s_559) + (syntax-e$1 + s_559) + s_559))) + (let-values (((flat-s_25) + (to-syntax-list.1 + s_560))) + (if (not + flat-s_25) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_39)) + (let-values () + flat-s_25))))))) + (values + begin83_0 + e84_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_39))))) + (values + #t + begin81_1 + e82_1)))))) + (let-values (((track_0) + (lambda (e_18) + (begin + 'track + (syntax-track-origin$1 + e_18 + exp-body_0))))) + (let-values (((splice-bodys_0) + (append + (map2 track_0 e82_0) + rest-bodys_0))) + (begin + (let-values (((obs_70) + (expand-context-observer + body-ctx_2))) + (if obs_70 + (let-values () + (let-values () + (call-expand-observe + obs_70 + 'splice + splice-bodys_0))) + (void))) + (loop_129 + body-ctx_2 + splice-bodys_0 + done-bodys_0 + val-idss_0 + val-keyss_0 + val-rhss_0 + track-stxs_0 + trans-idss_1 + trans-stxs_0 + stx-clauses_0 + dups_0 + just-saw-define-syntaxes?_0))))))) + (if (equal? tmp_80 'define-values) + (let-values () + (let-values ((() + (begin + (let-values (((obs_39) + (expand-context-observer + body-ctx_2))) + (if obs_39 + (let-values () + (let-values () + (call-expand-observe + obs_39 + 'prim-define-values + exp-body_0))) + (void))) + (values)))) + (let-values (((ok?_34 + define-values85_0 + id86_0 + rhs87_1) + (let-values (((s_561) + exp-body_0)) + (let-values (((orig-s_40) + s_561)) + (let-values (((define-values85_1 + id86_1 + rhs87_2) + (let-values (((s_62) + (if (syntax?$1 + s_561) + (syntax-e$1 + s_561) + s_561))) + (if (pair? + s_62) + (let-values (((define-values88_0) + (let-values (((s_562) + (car + s_62))) + s_562)) + ((id89_0 + rhs90_0) + (let-values (((s_563) + (cdr + s_62))) + (let-values (((s_321) + (if (syntax?$1 + s_563) + (syntax-e$1 + s_563) + s_563))) + (if (pair? + s_321) + (let-values (((id91_0) + (let-values (((s_564) + (car + s_321))) + (let-values (((s_64) + (if (syntax?$1 + s_564) + (syntax-e$1 + s_564) + s_564))) + (let-values (((flat-s_26) + (to-syntax-list.1 + s_64))) + (if (not + flat-s_26) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_40)) + (let-values () + (let-values (((id_113) + (let-values (((lst_213) + flat-s_26)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_213))) + ((letrec-values (((for-loop_310) + (lambda (id_101 + lst_112) + (begin + 'for-loop + (if (pair? + lst_112) + (let-values (((s_199) + (unsafe-car + lst_112)) + ((rest_193) + (unsafe-cdr + lst_112))) + (let-values (((id_114) + (let-values (((id_115) + id_101)) + (let-values (((id_116) + (let-values () + (let-values (((id94_0) + (let-values () + (if (let-values (((or-part_110) + (if (syntax?$1 + s_199) + (symbol? + (syntax-e$1 + s_199)) + #f))) + (if or-part_110 + or-part_110 + (symbol? + s_199))) + s_199 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_40 + s_199))))) + (cons + id94_0 + id_115))))) + (values + id_116))))) + (if (not + #f) + (for-loop_310 + id_114 + rest_193) + id_114))) + id_101))))) + for-loop_310) + null + lst_213))))) + (reverse$1 + id_113)))))))) + ((rhs92_0) + (let-values (((s_67) + (cdr + s_321))) + (let-values (((s_325) + (if (syntax?$1 + s_67) + (syntax-e$1 + s_67) + s_67))) + (if (pair? + s_325) + (let-values (((rhs93_0) + (let-values (((s_90) + (car + s_325))) + s_90)) + (() + (let-values (((s_511) + (cdr + s_325))) + (let-values (((s_68) + (if (syntax?$1 + s_511) + (syntax-e$1 + s_511) + s_511))) + (if (null? + s_68) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_40)))))) + (values + rhs93_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_40)))))) + (values + id91_0 + rhs92_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_40)))))) + (values + define-values88_0 + id89_0 + rhs90_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_40))))) + (values + #t + define-values85_1 + id86_1 + rhs87_2)))))) + (let-values (((ids_31) + (remove-use-site-scopes + id86_0 + body-ctx_2))) + (let-values ((() + (begin + (let-values (((obs_71) + (expand-context-observer + body-ctx_2))) + (if obs_71 + (let-values () + (let-values () + (call-expand-observe + obs_71 + 'rename-one + (list + ids_31 + rhs87_1)))) + (void))) + (values)))) + (let-values (((new-dups_0) + (let-values (((ids95_0) + ids_31) + ((phase96_1) + phase_142) + ((exp-body97_0) + exp-body_0) + ((dups98_0) + dups_0)) + (check-no-duplicate-ids.1 + unsafe-undefined + ids95_0 + phase96_1 + exp-body97_0 + dups98_0)))) + (let-values (((counter_1) + (root-expand-context-counter + ctx_82))) + (let-values (((local-sym_0) + (if (expand-context-normalize-locals? + ctx_82) + 'loc + #f))) + (let-values (((keys_5) + (reverse$1 + (let-values (((lst_119) + ids_31)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_119))) + ((letrec-values (((for-loop_136) + (lambda (fold-var_127 + lst_120) + (begin + 'for-loop + (if (pair? + lst_120) + (let-values (((id_108) + (unsafe-car + lst_120)) + ((rest_59) + (unsafe-cdr + lst_120))) + (let-values (((fold-var_128) + (let-values (((fold-var_129) + fold-var_127)) + (let-values (((fold-var_130) + (let-values () + (cons + (let-values () + (let-values (((id99_1) + id_108) + ((phase100_0) + phase_142) + ((counter101_0) + counter_1) + ((frame-id102_0) + frame-id_7) + ((exp-body103_0) + exp-body_0) + ((local-sym104_0) + local-sym_0)) + (add-local-binding!.1 + frame-id102_0 + exp-body103_0 + local-sym104_0 + id99_1 + phase100_0 + counter101_0))) + fold-var_129)))) + (values + fold-var_130))))) + (if (not + #f) + (for-loop_136 + fold-var_128 + rest_59) + fold-var_128))) + fold-var_127))))) + for-loop_136) + null + lst_119)))))) + (let-values (((extended-env_0) + (let-values (((lst_218) + keys_5) + ((lst_289) + ids_31)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_218))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_289))) + ((letrec-values (((for-loop_311) + (lambda (env_18 + lst_329 + lst_81) + (begin + 'for-loop + (if (if (pair? + lst_329) + (pair? + lst_81) + #f) + (let-values (((key_105) + (unsafe-car + lst_329)) + ((rest_38) + (unsafe-cdr + lst_329)) + ((id_117) + (unsafe-car + lst_81)) + ((rest_194) + (unsafe-cdr + lst_81))) + (let-values (((env_13) + (let-values (((env_19) + env_18)) + (let-values (((env_20) + (let-values () + (env-extend + env_19 + key_105 + (local-variable1.1 + id_117))))) + (values + env_20))))) + (if (not + #f) + (for-loop_311 + env_13 + rest_38 + rest_194) + env_13))) + env_18))))) + for-loop_311) + (expand-context-env + body-ctx_2) + lst_218 + lst_289))))) + (loop_129 + (let-values (((v_267) + body-ctx_2)) + (let-values (((the-struct_88) + v_267)) + (if (expand-context/outer? + the-struct_88) + (let-values (((env105_0) + extended-env_0) + ((binding-layer106_0) + (maybe-increment-binding-layer_0 + ids_31 + body-ctx_2)) + ((inner107_0) + (root-expand-context/outer-inner + v_267))) + (expand-context/outer1.1 + inner107_0 + (root-expand-context/outer-post-expansion + the-struct_88) + (root-expand-context/outer-use-site-scopes + the-struct_88) + (root-expand-context/outer-frame-id + the-struct_88) + (expand-context/outer-context + the-struct_88) + env105_0 + (expand-context/outer-scopes + the-struct_88) + (expand-context/outer-def-ctx-scopes + the-struct_88) + binding-layer106_0 + (expand-context/outer-reference-records + the-struct_88) + (expand-context/outer-only-immediate? + the-struct_88) + (expand-context/outer-need-eventually-defined + the-struct_88) + (expand-context/outer-current-introduction-scopes + the-struct_88) + (expand-context/outer-current-use-scopes + the-struct_88) + (expand-context/outer-name + the-struct_88))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_88)))) + rest-bodys_0 + null + (cons + ids_31 + (append + (reverse$1 + (let-values (((lst_330) + done-bodys_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_330))) + ((letrec-values (((for-loop_312) + (lambda (fold-var_297 + lst_331) + (begin + 'for-loop + (if (pair? + lst_331) + (let-values (((done-body_0) + (unsafe-car + lst_331)) + ((rest_195) + (unsafe-cdr + lst_331))) + (let-values (((fold-var_261) + (let-values (((fold-var_41) + fold-var_297)) + (let-values (((fold-var_42) + (let-values () + (cons + (let-values () + null) + fold-var_41)))) + (values + fold-var_42))))) + (if (not + #f) + (for-loop_312 + fold-var_261 + rest_195) + fold-var_261))) + fold-var_297))))) + for-loop_312) + null + lst_330)))) + val-idss_0)) + (cons + keys_5 + (append + (reverse$1 + (let-values (((lst_323) + done-bodys_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_323))) + ((letrec-values (((for-loop_299) + (lambda (fold-var_263 + lst_332) + (begin + 'for-loop + (if (pair? + lst_332) + (let-values (((done-body_1) + (unsafe-car + lst_332)) + ((rest_196) + (unsafe-cdr + lst_332))) + (let-values (((fold-var_295) + (let-values (((fold-var_296) + fold-var_263)) + (let-values (((fold-var_298) + (let-values () + (cons + (let-values () + null) + fold-var_296)))) + (values + fold-var_298))))) + (if (not + #f) + (for-loop_299 + fold-var_295 + rest_196) + fold-var_295))) + fold-var_263))))) + for-loop_299) + null + lst_323)))) + val-keyss_0)) + (cons + rhs87_1 + (append + (reverse$1 + (let-values (((lst_333) + done-bodys_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_333))) + ((letrec-values (((for-loop_313) + (lambda (fold-var_299 + lst_334) + (begin + 'for-loop + (if (pair? + lst_334) + (let-values (((done-body_2) + (unsafe-car + lst_334)) + ((rest_197) + (unsafe-cdr + lst_334))) + (let-values (((fold-var_215) + (let-values (((fold-var_300) + fold-var_299)) + (let-values (((fold-var_301) + (let-values () + (cons + (let-values () + (no-binds + done-body_2 + s_505 + phase_142)) + fold-var_300)))) + (values + fold-var_301))))) + (if (not + #f) + (for-loop_313 + fold-var_215 + rest_197) + fold-var_215))) + fold-var_299))))) + for-loop_313) + null + lst_333)))) + val-rhss_0)) + (cons + (let-values (((body-ctx108_0) + body-ctx_2) + ((exp-body109_0) + exp-body_0) + ((temp110_1) + #t)) + (keep-as-needed.1 + temp110_1 + #f + #f + body-ctx108_0 + exp-body109_0)) + (append + (reverse$1 + (let-values (((lst_114) + done-bodys_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_114))) + ((letrec-values (((for-loop_122) + (lambda (fold-var_111 + lst_115) + (begin + 'for-loop + (if (pair? + lst_115) + (let-values (((done-body_3) + (unsafe-car + lst_115)) + ((rest_57) + (unsafe-cdr + lst_115))) + (let-values (((fold-var_112) + (let-values (((fold-var_113) + fold-var_111)) + (let-values (((fold-var_114) + (let-values () + (cons + (let-values () + #f) + fold-var_113)))) + (values + fold-var_114))))) + (if (not + #f) + (for-loop_122 + fold-var_112 + rest_57) + fold-var_112))) + fold-var_111))))) + for-loop_122) + null + lst_114)))) + track-stxs_0)) + trans-idss_1 + trans-stxs_0 + stx-clauses_0 + new-dups_0 + #f))))))))))) + (if (equal? tmp_80 'define-syntaxes) + (let-values () + (let-values ((() + (begin + (let-values (((obs_72) + (expand-context-observer + body-ctx_2))) + (if obs_72 + (let-values () + (let-values () + (call-expand-observe + obs_72 + 'prim-define-syntaxes + exp-body_0))) + (void))) + (values)))) + (let-values (((ok?_35 + define-syntaxes111_0 + id112_0 + rhs113_0) + (let-values (((s_212) + exp-body_0)) + (let-values (((orig-s_41) + s_212)) + (let-values (((define-syntaxes111_1 + id112_1 + rhs113_1) + (let-values (((s_215) + (if (syntax?$1 + s_212) + (syntax-e$1 + s_212) + s_212))) + (if (pair? + s_215) + (let-values (((define-syntaxes114_0) + (let-values (((s_565) + (car + s_215))) + s_565)) + ((id115_0 + rhs116_0) + (let-values (((s_566) + (cdr + s_215))) + (let-values (((s_114) + (if (syntax?$1 + s_566) + (syntax-e$1 + s_566) + s_566))) + (if (pair? + s_114) + (let-values (((id117_0) + (let-values (((s_516) + (car + s_114))) + (let-values (((s_115) + (if (syntax?$1 + s_516) + (syntax-e$1 + s_516) + s_516))) + (let-values (((flat-s_27) + (to-syntax-list.1 + s_115))) + (if (not + flat-s_27) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_41)) + (let-values () + (let-values (((id_118) + (let-values (((lst_335) + flat-s_27)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_335))) + ((letrec-values (((for-loop_126) + (lambda (id_119 + lst_126) + (begin + 'for-loop + (if (pair? + lst_126) + (let-values (((s_567) + (unsafe-car + lst_126)) + ((rest_198) + (unsafe-cdr + lst_126))) + (let-values (((id_120) + (let-values (((id_121) + id_119)) + (let-values (((id_122) + (let-values () + (let-values (((id120_1) + (let-values () + (if (let-values (((or-part_533) + (if (syntax?$1 + s_567) + (symbol? + (syntax-e$1 + s_567)) + #f))) + (if or-part_533 + or-part_533 + (symbol? + s_567))) + s_567 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_41 + s_567))))) + (cons + id120_1 + id_121))))) + (values + id_122))))) + (if (not + #f) + (for-loop_126 + id_120 + rest_198) + id_120))) + id_119))))) + for-loop_126) + null + lst_335))))) + (reverse$1 + id_118)))))))) + ((rhs118_0) + (let-values (((s_216) + (cdr + s_114))) + (let-values (((s_335) + (if (syntax?$1 + s_216) + (syntax-e$1 + s_216) + s_216))) + (if (pair? + s_335) + (let-values (((rhs119_0) + (let-values (((s_481) + (car + s_335))) + s_481)) + (() + (let-values (((s_305) + (cdr + s_335))) + (let-values (((s_217) + (if (syntax?$1 + s_305) + (syntax-e$1 + s_305) + s_305))) + (if (null? + s_217) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_41)))))) + (values + rhs119_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_41)))))) + (values + id117_0 + rhs118_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_41)))))) + (values + define-syntaxes114_0 + id115_0 + rhs116_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_41))))) + (values + #t + define-syntaxes111_1 + id112_1 + rhs113_1)))))) + (let-values (((ids_32) + (remove-use-site-scopes + id112_0 + body-ctx_2))) + (let-values ((() + (begin + (let-values (((obs_73) + (expand-context-observer + body-ctx_2))) + (if obs_73 + (let-values () + (let-values () + (call-expand-observe + obs_73 + 'rename-one + (list + ids_32 + rhs113_0)))) + (void))) + (values)))) + (let-values (((new-dups_1) + (let-values (((ids121_0) + ids_32) + ((phase122_0) + phase_142) + ((exp-body123_0) + exp-body_0) + ((dups124_0) + dups_0)) + (check-no-duplicate-ids.1 + unsafe-undefined + ids121_0 + phase122_0 + exp-body123_0 + dups124_0)))) + (let-values (((counter_6) + (root-expand-context-counter + ctx_82))) + (let-values (((local-sym_3) + (if (expand-context-normalize-locals? + ctx_82) + 'mac + #f))) + (let-values (((keys_6) + (reverse$1 + (let-values (((lst_48) + ids_32)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_48))) + ((letrec-values (((for-loop_314) + (lambda (fold-var_302 + lst_336) + (begin + 'for-loop + (if (pair? + lst_336) + (let-values (((id_123) + (unsafe-car + lst_336)) + ((rest_199) + (unsafe-cdr + lst_336))) + (let-values (((fold-var_303) + (let-values (((fold-var_304) + fold-var_302)) + (let-values (((fold-var_305) + (let-values () + (cons + (let-values () + (let-values (((id125_0) + id_123) + ((phase126_0) + phase_142) + ((counter127_0) + counter_6) + ((frame-id128_0) + frame-id_7) + ((exp-body129_0) + exp-body_0) + ((local-sym130_0) + local-sym_3)) + (add-local-binding!.1 + frame-id128_0 + exp-body129_0 + local-sym130_0 + id125_0 + phase126_0 + counter127_0))) + fold-var_304)))) + (values + fold-var_305))))) + (if (not + #f) + (for-loop_314 + fold-var_303 + rest_199) + fold-var_303))) + fold-var_302))))) + for-loop_314) + null + lst_48)))))) + (let-values ((() + (begin + (let-values (((obs_74) + (expand-context-observer + body-ctx_2))) + (if obs_74 + (let-values () + (let-values () + (call-expand-observe + obs_74 + 'prepare-env))) + (void))) + (values)))) + (let-values ((() + (begin + (prepare-next-phase-namespace + ctx_82) + (values)))) + (let-values ((() + (begin + (let-values (((obs_20) + (expand-context-observer + body-ctx_2))) + (if obs_20 + (let-values () + (let-values () + (call-expand-observe + obs_20 + 'enter-bind))) + (void))) + (values)))) + (let-values (((vals_9) + (eval-for-syntaxes-binding + 'define-syntaxes + rhs113_0 + ids_32 + body-ctx_2))) + (let-values (((extended-env_1) + (let-values (((lst_137) + keys_6) + ((lst_337) + vals_9) + ((lst_338) + ids_32)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_137))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_337))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_338))) + ((letrec-values (((for-loop_315) + (lambda (env_21 + lst_339 + lst_340 + lst_341) + (begin + 'for-loop + (if (if (pair? + lst_339) + (if (pair? + lst_340) + (pair? + lst_341) + #f) + #f) + (let-values (((key_106) + (unsafe-car + lst_339)) + ((rest_200) + (unsafe-cdr + lst_339)) + ((val_95) + (unsafe-car + lst_340)) + ((rest_201) + (unsafe-cdr + lst_340)) + ((id_124) + (unsafe-car + lst_341)) + ((rest_202) + (unsafe-cdr + lst_341))) + (let-values (((env_22) + (let-values (((env_23) + env_21)) + (let-values (((env_24) + (let-values () + (begin + (maybe-install-free=id-in-context! + val_95 + id_124 + phase_142 + body-ctx_2) + (env-extend + env_23 + key_106 + val_95))))) + (values + env_24))))) + (if (not + #f) + (for-loop_315 + env_22 + rest_200 + rest_201 + rest_202) + env_22))) + env_21))))) + for-loop_315) + (expand-context-env + body-ctx_2) + lst_137 + lst_337 + lst_338))))) + (begin + (let-values (((obs_75) + (expand-context-observer + body-ctx_2))) + (if obs_75 + (let-values () + (let-values () + (call-expand-observe + obs_75 + 'exit-bind))) + (void))) + (loop_129 + (let-values (((v_268) + body-ctx_2)) + (let-values (((the-struct_89) + v_268)) + (if (expand-context/outer? + the-struct_89) + (let-values (((env131_0) + extended-env_1) + ((binding-layer132_0) + (maybe-increment-binding-layer_0 + ids_32 + body-ctx_2)) + ((inner133_0) + (root-expand-context/outer-inner + v_268))) + (expand-context/outer1.1 + inner133_0 + (root-expand-context/outer-post-expansion + the-struct_89) + (root-expand-context/outer-use-site-scopes + the-struct_89) + (root-expand-context/outer-frame-id + the-struct_89) + (expand-context/outer-context + the-struct_89) + env131_0 + (expand-context/outer-scopes + the-struct_89) + (expand-context/outer-def-ctx-scopes + the-struct_89) + binding-layer132_0 + (expand-context/outer-reference-records + the-struct_89) + (expand-context/outer-only-immediate? + the-struct_89) + (expand-context/outer-need-eventually-defined + the-struct_89) + (expand-context/outer-current-introduction-scopes + the-struct_89) + (expand-context/outer-current-use-scopes + the-struct_89) + (expand-context/outer-name + the-struct_89))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_89)))) + rest-bodys_0 + done-bodys_0 + val-idss_0 + val-keyss_0 + val-rhss_0 + track-stxs_0 + (cons + ids_32 + trans-idss_1) + (cons + (let-values (((body-ctx134_0) + body-ctx_2) + ((exp-body135_0) + exp-body_0) + ((temp136_5) + #t)) + (keep-as-needed.1 + temp136_5 + #f + #f + body-ctx134_0 + exp-body135_0)) + trans-stxs_0) + (cons + (datum->syntax$1 + #f + (list + ids_32 + rhs113_0) + exp-body_0) + stx-clauses_0) + new-dups_1 + #t)))))))))))))))) + (let-values () + (if stratified?_0 + (let-values () + (begin + (if (null? done-bodys_0) + (void) + (let-values () + (error + "internal error: accumulated expressions not empty"))) + (loop_129 + body-ctx_2 + null + (if (if (null? val-idss_0) + (null? trans-idss_1) + #f) + (reverse$1 + (cons exp-body_0 rest-bodys_0)) + (list + (datum->syntax$1 + #f + (cons + (core-id + '#%stratified-body + phase_142) + (cons + exp-body_0 + rest-bodys_0))))) + val-idss_0 + val-keyss_0 + val-rhss_0 + track-stxs_0 + trans-idss_1 + trans-stxs_0 + stx-clauses_0 + dups_0 + #f))) + (let-values () + (loop_129 + body-ctx_2 + rest-bodys_0 + (cons exp-body_0 done-bodys_0) + val-idss_0 + val-keyss_0 + val-rhss_0 + track-stxs_0 + trans-idss_1 + trans-stxs_0 + stx-clauses_0 + dups_0 + #f))))))))))))))))) + loop_129) + body-ctx_0 + init-bodys_0 + null + null + null + null + null + null + null + null + (make-check-no-duplicate-table) + #f))))))))))))))))))) + (define-values + (finish-expanding-body.1) + (lambda (disappeared-transformer-bindings13_0 + disappeared-transformer-forms14_0 + just-saw-define-syntaxes?11_0 + name12_1 + original-bodys8_0 + source9_0 + stratified?10_0 + body-ctx22_0 + frame-id23_0 + def-ctx-scopes24_0 + val-idss25_0 + val-keyss26_0 + val-rhss27_0 + track-stxs28_0 + stx-clauses29_0 + done-bodys30_0) + (begin + 'finish-expanding-body + (let-values (((body-ctx_3) body-ctx22_0)) + (let-values (((frame-id_12) frame-id23_0)) + (let-values (((def-ctx-scopes_7) def-ctx-scopes24_0)) + (let-values (((val-idss_1) val-idss25_0)) + (let-values (((val-keyss_1) val-keyss26_0)) + (let-values (((val-rhss_1) val-rhss27_0)) + (let-values (((track-stxs_1) track-stxs28_0)) + (let-values (((stx-clauses_1) stx-clauses29_0)) + (let-values (((done-bodys_1) done-bodys30_0)) + (let-values (((init-bodys_1) original-bodys8_0)) + (let-values (((s_349) source9_0)) + (let-values (((stratified?_1) stratified?10_0)) + (let-values (((just-saw-define-syntaxes?_1) just-saw-define-syntaxes?11_0)) + (let-values (((name_86) name12_1)) + (let-values (((disappeared-transformer-bindings_0) + disappeared-transformer-bindings13_0)) + (let-values (((disappeared-transformer-forms_0) disappeared-transformer-forms14_0)) + (let-values () + (let-values ((() + (begin + (if (let-values (((or-part_328) (null? done-bodys_1))) + (if or-part_328 or-part_328 just-saw-define-syntaxes?_1)) + (let-values () + (raise-syntax-error$1 + (string->symbol "begin (possibly implicit)") + "no expression after a sequence of internal definitions" + (datum->syntax$1 #f (cons 'begin init-bodys_1) s_349) + #f + init-bodys_1)) + (void)) + (values)))) + (let-values (((finish-ctx_0) + (let-values (((v_269) + (accumulate-def-ctx-scopes + body-ctx_3 + def-ctx-scopes_7))) + (let-values (((the-struct_20) v_269)) + (if (expand-context/outer? the-struct_20) + (let-values (((context137_0) 'expression) + ((use-site-scopes138_0) (box null)) + ((only-immediate?139_0) #f) + ((def-ctx-scopes140_0) #f) + ((post-expansion141_0) #f) + ((inner142_0) + (root-expand-context/outer-inner v_269))) + (expand-context/outer1.1 + inner142_0 + post-expansion141_0 + use-site-scopes138_0 + (root-expand-context/outer-frame-id the-struct_20) + context137_0 + (expand-context/outer-env the-struct_20) + (expand-context/outer-scopes the-struct_20) + def-ctx-scopes140_0 + (expand-context/outer-binding-layer the-struct_20) + (expand-context/outer-reference-records the-struct_20) + only-immediate?139_0 + (expand-context/outer-need-eventually-defined + the-struct_20) + (expand-context/outer-current-introduction-scopes + the-struct_20) + (expand-context/outer-current-use-scopes the-struct_20) + (expand-context/outer-name the-struct_20))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_20)))))) + (let-values (((finish-bodys_0) + (lambda () + (begin + 'finish-bodys + (let-values (((last-i_1) (sub1 (length done-bodys_1)))) + (let-values ((() + (begin + (let-values (((obs_76) + (expand-context-observer + body-ctx_3))) + (if obs_76 + (let-values () + (let-values () + (call-expand-observe + obs_76 + 'enter-list + done-bodys_1))) + (void))) + (values)))) + (let-values (((exp-bodys_0) + (reverse$1 + (let-values (((lst_342) done-bodys_1) + ((start_31) 0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_342))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-naturals start_31))) + ((letrec-values (((for-loop_63) + (lambda (fold-var_306 + lst_343 + pos_47) + (begin + 'for-loop + (if (if (pair? + lst_343) + #t + #f) + (let-values (((done-body_4) + (unsafe-car + lst_343)) + ((rest_203) + (unsafe-cdr + lst_343)) + ((i_224) + pos_47)) + (let-values (((fold-var_307) + (let-values (((fold-var_308) + fold-var_306)) + (let-values (((fold-var_309) + (let-values () + (cons + (let-values () + (begin + (let-values (((obs_77) + (expand-context-observer + body-ctx_3))) + (if obs_77 + (let-values () + (let-values () + (call-expand-observe + obs_77 + 'next))) + (void))) + (let-values (((done-body143_0) + done-body_4) + ((temp144_5) + (if (if name_86 + (= + i_224 + last-i_1) + #f) + (let-values (((v_270) + finish-ctx_0)) + (let-values (((the-struct_90) + v_270)) + (if (expand-context/outer? + the-struct_90) + (let-values (((name145_0) + name_86) + ((inner146_0) + (root-expand-context/outer-inner + v_270))) + (expand-context/outer1.1 + inner146_0 + (root-expand-context/outer-post-expansion + the-struct_90) + (root-expand-context/outer-use-site-scopes + the-struct_90) + (root-expand-context/outer-frame-id + the-struct_90) + (expand-context/outer-context + the-struct_90) + (expand-context/outer-env + the-struct_90) + (expand-context/outer-scopes + the-struct_90) + (expand-context/outer-def-ctx-scopes + the-struct_90) + (expand-context/outer-binding-layer + the-struct_90) + (expand-context/outer-reference-records + the-struct_90) + (expand-context/outer-only-immediate? + the-struct_90) + (expand-context/outer-need-eventually-defined + the-struct_90) + (expand-context/outer-current-introduction-scopes + the-struct_90) + (expand-context/outer-current-use-scopes + the-struct_90) + name145_0)) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_90)))) + finish-ctx_0))) + (expand.1 + #f + #f + done-body143_0 + temp144_5)))) + fold-var_308)))) + (values + fold-var_309))))) + (if (not + #f) + (for-loop_63 + fold-var_307 + rest_203 + (+ + pos_47 + 1)) + fold-var_307))) + fold-var_306))))) + for-loop_63) + null + lst_342 + start_31)))))) + (begin + (let-values (((obs_57) + (expand-context-observer + body-ctx_3))) + (if obs_57 + (let-values () + (let-values () + (call-expand-observe + obs_57 + 'exit-list + exp-bodys_0))) + (void))) + (reference-record-clear! frame-id_12) + exp-bodys_0)))))))) + (if (if (null? val-idss_1) (null? disappeared-transformer-bindings_0) #f) + (let-values () + (begin + (let-values (((obs_78) (expand-context-observer finish-ctx_0))) + (if obs_78 + (let-values () + (let-values () (call-expand-observe obs_78 'block->list))) + (void))) + (finish-bodys_0))) + (let-values () + (let-values ((() + (begin + (let-values (((obs_79) + (expand-context-observer finish-ctx_0))) + (if obs_79 + (let-values () + (let-values () + (call-expand-observe + obs_79 + 'block->letrec + val-idss_1 + val-rhss_1 + done-bodys_1))) + (void))) + (values)))) + (let-values (((exp-s_12) + (let-values (((val-idss147_0) val-idss_1) + ((val-keyss148_0) val-keyss_1) + ((val-rhss149_0) val-rhss_1) + ((track-stxs150_0) track-stxs_1) + ((temp151_4) (not stratified?_1)) + ((frame-id152_0) frame-id_12) + ((finish-ctx153_0) finish-ctx_0) + ((s154_0) s_349) + ((temp155_3) (pair? stx-clauses_1)) + ((finish-bodys156_0) finish-bodys_0) + ((temp157_4) #f)) + (expand-and-split-bindings-by-reference.1 + finish-ctx153_0 + frame-id152_0 + finish-bodys156_0 + temp155_3 + s154_0 + temp151_4 + temp157_4 + val-idss147_0 + val-keyss148_0 + val-rhss149_0 + track-stxs150_0)))) + (if (expand-context-to-parsed? body-ctx_3) + (list exp-s_12) + (let-values (((exp-s_13) + (attach-disappeared-transformer-bindings + exp-s_12 + disappeared-transformer-bindings_0))) + (let-values (((tracked-exp-s_0) + (let-values (((lst_344) + disappeared-transformer-forms_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_344))) + ((letrec-values (((for-loop_316) + (lambda (exp-s_14 lst_345) + (begin + 'for-loop + (if (pair? lst_345) + (let-values (((form_1) + (unsafe-car + lst_345)) + ((rest_204) + (unsafe-cdr + lst_345))) + (let-values (((exp-s_15) + (let-values (((exp-s_16) + exp-s_14)) + (if form_1 + (let-values (((exp-s_17) + exp-s_16)) + (let-values (((exp-s_18) + (let-values () + (syntax-track-origin$1 + exp-s_17 + form_1)))) + (values + exp-s_18))) + exp-s_16)))) + (if (not #f) + (for-loop_316 + exp-s_15 + rest_204) + exp-s_15))) + exp-s_14))))) + for-loop_316) + exp-s_13 + lst_344))))) + (begin + (let-values (((obs_80) + (expand-context-observer finish-ctx_0))) + (if obs_80 + (let-values () + (let-values () + (call-expand-observe + obs_80 + 'finish-block + (list tracked-exp-s_0)))) + (void))) + (list tracked-exp-s_0)))))))))))))))))))))))))))))))) + (define-values + (expand-and-split-bindings-by-reference.1) + (lambda (ctx34_0 + frame-id33_0 + get-body37_0 + had-stxes?36_0 + source35_0 + split?32_0 + track?38_0 + idss46_0 + keyss47_0 + rhss48_0 + track-stxs49_0) + (begin + 'expand-and-split-bindings-by-reference + (let-values (((idss_1) idss46_0)) + (let-values (((keyss_0) keyss47_0)) + (let-values (((rhss_1) rhss48_0)) + (let-values (((track-stxs_2) track-stxs49_0)) + (let-values (((split?_0) split?32_0)) + (let-values (((frame-id_13) frame-id33_0)) + (let-values (((ctx_83) ctx34_0)) + (let-values (((s_568) source35_0)) + (let-values () + (let-values (((get-body_0) get-body37_0)) + (let-values (((track?_1) track?38_0)) + (let-values () + (let-values (((phase_143) (expand-context-phase ctx_83))) + ((letrec-values (((loop_133) + (lambda (idss_2 + keyss_1 + rhss_2 + track-stxs_3 + accum-idss_0 + accum-keyss_0 + accum-rhss_0 + accum-track-stxs_0 + track?_2 + get-list?_0) + (begin + 'loop + (if (null? idss_2) + (let-values () + (if (if (null? accum-idss_0) get-list?_0 #f) + (let-values () (get-body_0)) + (let-values () + (let-values (((exp-body_1) (get-body_0))) + (let-values (((result-s_10) + (if (expand-context-to-parsed? ctx_83) + (if (null? accum-idss_0) + (parsed-let-values17.1 + (keep-properties-only s_568) + null + null + exp-body_1) + (parsed-letrec-values18.1 + (keep-properties-only s_568) + (reverse$1 accum-idss_0) + (reverse$1 + (map2 + list + accum-keyss_0 + accum-rhss_0)) + exp-body_1)) + (let-values (((track?158_0) track?_2) + ((s159_0) s_568) + ((temp160_3) + (list* + (if (null? accum-idss_0) + (core-id + 'let-values + phase_143) + (core-id + 'letrec-values + phase_143)) + (build-clauses + accum-idss_0 + accum-rhss_0 + accum-track-stxs_0) + exp-body_1))) + (rebuild.1 + track?158_0 + s159_0 + temp160_3))))) + (if get-list?_0 (list result-s_10) result-s_10)))))) + (let-values () + (let-values ((() + (begin + (let-values (((obs_81) + (expand-context-observer + ctx_83))) + (if obs_81 + (let-values () + (let-values () + (call-expand-observe obs_81 'next))) + (void))) + (values)))) + (let-values (((ids_33) (car idss_2))) + (let-values (((expanded-rhs_0) + (let-values (((temp161_1) (car rhss_2)) + ((temp162_0) + (as-named-context + ctx_83 + ids_33))) + (expand.1 #f #f temp161_1 temp162_0)))) + (let-values (((track-stx_0) (car track-stxs_3))) + (let-values (((local-or-forward-references?_0) + (reference-record-forward-references? + frame-id_13))) + (let-values ((() + (begin + (reference-record-bound! + frame-id_13 + (car keyss_1)) + (values)))) + (let-values (((forward-references?_0) + (reference-record-forward-references? + frame-id_13))) + (if (if (not local-or-forward-references?_0) + split?_0 + #f) + (let-values () + (let-values ((() + (begin + (if (null? accum-idss_0) + (void) + (let-values () + (error + "internal error: accumulated ids not empty"))) + (values)))) + (let-values (((exp-rest_0) + (loop_133 + (cdr idss_2) + (cdr keyss_1) + (cdr rhss_2) + (cdr track-stxs_3) + null + null + null + null + #f + #t))) + (let-values (((result-s_11) + (if (expand-context-to-parsed? + ctx_83) + (parsed-let-values17.1 + (keep-properties-only + s_568) + (list ids_33) + (list + (list + (car keyss_1) + expanded-rhs_0)) + exp-rest_0) + (let-values (((track?163_0) + track?_2) + ((s164_0) + s_568) + ((temp165_1) + (list* + (core-id + 'let-values + phase_143) + (list + (build-clause + ids_33 + expanded-rhs_0 + track-stx_0)) + exp-rest_0))) + (rebuild.1 + track?163_0 + s164_0 + temp165_1))))) + (if get-list?_0 + (list result-s_11) + result-s_11))))) + (if (if (not forward-references?_0) + (let-values (((or-part_382) split?_0)) + (if or-part_382 + or-part_382 + (null? (cdr idss_2)))) + #f) + (let-values () + (let-values (((exp-rest_1) + (loop_133 + (cdr idss_2) + (cdr keyss_1) + (cdr rhss_2) + (cdr track-stxs_3) + null + null + null + null + #f + #t))) + (let-values (((result-s_12) + (if (expand-context-to-parsed? + ctx_83) + (parsed-letrec-values18.1 + (keep-properties-only + s_568) + (reverse$1 + (cons + ids_33 + accum-idss_0)) + (reverse$1 + (cons + (list + (car keyss_1) + expanded-rhs_0) + (map2 + list + accum-keyss_0 + accum-rhss_0))) + exp-rest_1) + (let-values (((track?166_0) + track?_2) + ((s167_0) + s_568) + ((temp168_2) + (list* + (core-id + 'letrec-values + phase_143) + (build-clauses + (cons + ids_33 + accum-idss_0) + (cons + expanded-rhs_0 + accum-rhss_0) + (cons + track-stx_0 + accum-track-stxs_0)) + exp-rest_1))) + (rebuild.1 + track?166_0 + s167_0 + temp168_2))))) + (if get-list?_0 + (list result-s_12) + result-s_12)))) + (let-values () + (loop_133 + (cdr idss_2) + (cdr keyss_1) + (cdr rhss_2) + (cdr track-stxs_3) + (cons ids_33 accum-idss_0) + (cons (car keyss_1) accum-keyss_0) + (cons expanded-rhs_0 accum-rhss_0) + (cons track-stx_0 accum-track-stxs_0) + track?_2 + get-list?_0))))))))))))))))) + loop_133) + idss_1 + keyss_0 + rhss_1 + track-stxs_2 + null + null + null + null + track?_1 + #f))))))))))))))))) + (define-values + (build-clauses) + (lambda (accum-idss_1 accum-rhss_1 accum-track-stxs_1) + (begin (map2 build-clause (reverse$1 accum-idss_1) (reverse$1 accum-rhss_1) (reverse$1 accum-track-stxs_1))))) + (define-values + (build-clause) + (lambda (ids_34 rhs_19 track-stx_1) + (begin + (let-values (((clause_2) (datum->syntax$1 #f (list ids_34 rhs_19)))) + (if track-stx_1 (syntax-track-origin$1 clause_2 track-stx_1) clause_2))))) + (define-values + (no-binds) + (lambda (expr_12 s_420 phase_144) + (begin + (let-values (((s-runtime-stx_0) (syntax-shift-phase-level$1 runtime-stx phase_144))) + (datum->syntax$1 + (core-id '#%app phase_144) + (list (core-id 'begin phase_144) expr_12 (list (datum->syntax$1 s-runtime-stx_0 'values))) + s_420))))) + (define-values + (lambda-clause-expander) + (lambda (s_3 formals_1 bodys_9 ctx_13) + (begin + (let-values (((sc_36) (if (not (expand-context-parsing-expanded? ctx_13)) (new-scope 'local) #f))) + (let-values (((phase_145) (expand-context-phase ctx_13))) + (let-values (((ids_35) (parse-and-flatten-formals formals_1 sc_36 s_3))) + (let-values ((() + (begin + (let-values (((ids15_0) ids_35) + ((phase16_0) phase_145) + ((s17_0) s_3) + ((temp18_8) "argument name")) + (check-no-duplicate-ids.1 temp18_8 ids15_0 phase16_0 s17_0 unsafe-undefined)) + (values)))) + (let-values (((counter_7) (root-expand-context-counter ctx_13))) + (let-values (((local-sym_4) (if (expand-context-normalize-locals? ctx_13) 'arg #f))) + (let-values (((keys_7) + (reverse$1 + (let-values (((lst_319) ids_35)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_319))) + ((letrec-values (((for-loop_300) + (lambda (fold-var_31 lst_104) + (begin + 'for-loop + (if (pair? lst_104) + (let-values (((id_125) (unsafe-car lst_104)) + ((rest_49) (unsafe-cdr lst_104))) + (let-values (((fold-var_241) + (let-values (((fold-var_181) fold-var_31)) + (let-values (((fold-var_123) + (let-values () + (cons + (let-values () + (if sc_36 + (let-values (((id19_2) + id_125) + ((phase20_1) + phase_145) + ((counter21_0) + counter_7) + ((s22_2) + s_3) + ((local-sym23_0) + local-sym_4)) + (add-local-binding!.1 + #f + s22_2 + local-sym23_0 + id19_2 + phase20_1 + counter21_0)) + (existing-binding-key + id_125 + (expand-context-phase + ctx_13)))) + fold-var_181)))) + (values fold-var_123))))) + (if (not #f) + (for-loop_300 fold-var_241 rest_49) + fold-var_241))) + fold-var_31))))) + for-loop_300) + null + lst_319)))))) + (let-values (((body-env_0) + (let-values (((lst_25) keys_7) ((lst_28) ids_35)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_25))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_28))) + ((letrec-values (((for-loop_207) + (lambda (env_25 lst_106 lst_61) + (begin + 'for-loop + (if (if (pair? lst_106) (pair? lst_61) #f) + (let-values (((key_60) (unsafe-car lst_106)) + ((rest_205) (unsafe-cdr lst_106)) + ((id_126) (unsafe-car lst_61)) + ((rest_206) (unsafe-cdr lst_61))) + (let-values (((env_26) + (let-values (((env_27) env_25)) + (let-values (((env_28) + (let-values () + (env-extend + env_27 + key_60 + (local-variable1.1 + id_126))))) + (values env_28))))) + (if (not #f) + (for-loop_207 env_26 rest_205 rest_206) + env_26))) + env_25))))) + for-loop_207) + (expand-context-env ctx_13) + lst_25 + lst_28))))) + (let-values (((sc-formals_0) (if sc_36 (add-scope formals_1 sc_36) formals_1))) + (let-values (((sc-bodys_0) + (if sc_36 + (reverse$1 + (let-values (((lst_21) bodys_9)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_21))) + ((letrec-values (((for-loop_14) + (lambda (fold-var_236 lst_22) + (begin + 'for-loop + (if (pair? lst_22) + (let-values (((body_10) (unsafe-car lst_22)) + ((rest_7) (unsafe-cdr lst_22))) + (let-values (((fold-var_101) + (let-values (((fold-var_84) + fold-var_236)) + (let-values (((fold-var_70) + (let-values () + (cons + (let-values () + (add-scope + body_10 + sc_36)) + fold-var_84)))) + (values fold-var_70))))) + (if (not #f) + (for-loop_14 fold-var_101 rest_7) + fold-var_101))) + fold-var_236))))) + for-loop_14) + null + lst_21)))) + bodys_9))) + (let-values ((() + (begin + (let-values (((obs_36) (expand-context-observer ctx_13))) + (if obs_36 + (let-values () + (let-values () + (call-expand-observe obs_36 'lambda-renames sc-formals_0 sc-bodys_0))) + (void))) + (values)))) + (let-values (((body-ctx_4) + (let-values (((v_134) ctx_13)) + (let-values (((the-struct_91) v_134)) + (if (expand-context/outer? the-struct_91) + (let-values (((env24_0) body-env_0) + ((scopes25_0) + (if sc_36 + (cons sc_36 (expand-context-scopes ctx_13)) + (expand-context-scopes ctx_13))) + ((binding-layer26_0) + (if sc_36 + (increment-binding-layer ids_35 ctx_13 sc_36) + (expand-context-binding-layer ctx_13))) + ((frame-id27_1) #f) + ((inner28_0) (root-expand-context/outer-inner v_134))) + (expand-context/outer1.1 + inner28_0 + (root-expand-context/outer-post-expansion the-struct_91) + (root-expand-context/outer-use-site-scopes the-struct_91) + frame-id27_1 + (expand-context/outer-context the-struct_91) + env24_0 + scopes25_0 + (expand-context/outer-def-ctx-scopes the-struct_91) + binding-layer26_0 + (expand-context/outer-reference-records the-struct_91) + (expand-context/outer-only-immediate? the-struct_91) + (expand-context/outer-need-eventually-defined the-struct_91) + (expand-context/outer-current-introduction-scopes the-struct_91) + (expand-context/outer-current-use-scopes the-struct_91) + (expand-context/outer-name the-struct_91))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_91)))))) + (let-values (((exp-body_2) + (if sc_36 + (let-values (((sc-bodys29_0) sc-bodys_0) + ((body-ctx30_0) body-ctx_4) + ((temp31_9) + (let-values (((ctx32_0) ctx_13) + ((s33_0) s_3) + ((temp34_4) #t)) + (keep-as-needed.1 #f temp34_4 #f ctx32_0 s33_0)))) + (expand-body.1 temp31_9 #f sc-bodys29_0 body-ctx30_0)) + (reverse$1 + (let-values (((lst_109) sc-bodys_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_109))) + ((letrec-values (((for-loop_31) + (lambda (fold-var_19 lst_29) + (begin + 'for-loop + (if (pair? lst_29) + (let-values (((sc-body_0) + (unsafe-car lst_29)) + ((rest_175) + (unsafe-cdr lst_29))) + (let-values (((fold-var_20) + (let-values (((fold-var_21) + fold-var_19)) + (let-values (((fold-var_76) + (let-values () + (cons + (let-values () + (let-values (((sc-body35_0) + sc-body_0) + ((body-ctx36_0) + body-ctx_4)) + (expand.1 + #f + #f + sc-body35_0 + body-ctx36_0))) + fold-var_21)))) + (values fold-var_76))))) + (if (not #f) + (for-loop_31 fold-var_20 rest_175) + fold-var_20))) + fold-var_19))))) + for-loop_31) + null + lst_109))))))) + (values + (if (expand-context-to-parsed? ctx_13) + (unflatten-like-formals keys_7 formals_1) + sc-formals_0) + exp-body_2))))))))))))))))) + (void + (add-core-form!* + 'lambda + (lambda (s_26 ctx_84) + (let-values ((() + (begin + (let-values (((obs_82) (expand-context-observer ctx_84))) + (if obs_82 + (let-values () (let-values () (call-expand-observe obs_82 'prim-lambda s_26))) + (void))) + (values)))) + (let-values (((ok?_36 lambda37_0 formals38_0 body39_0) + (let-values (((s_569) s_26)) + (let-values (((orig-s_42) s_569)) + (let-values (((lambda37_1 formals38_1 body39_1) + (let-values (((s_570) (if (syntax?$1 s_569) (syntax-e$1 s_569) s_569))) + (if (pair? s_570) + (let-values (((lambda40_0) (let-values (((s_30) (car s_570))) s_30)) + ((formals41_0 body42_0) + (let-values (((s_559) (cdr s_570))) + (let-values (((s_560) + (if (syntax?$1 s_559) + (syntax-e$1 s_559) + s_559))) + (if (pair? s_560) + (let-values (((formals43_0) + (let-values (((s_33) (car s_560))) s_33)) + ((body44_0) + (let-values (((s_34) (cdr s_560))) + (let-values (((s_97) + (if (syntax?$1 s_34) + (syntax-e$1 s_34) + s_34))) + (let-values (((flat-s_28) + (to-syntax-list.1 s_97))) + (if (not flat-s_28) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_42)) + (if (null? flat-s_28) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_42)) + (let-values () flat-s_28)))))))) + (values formals43_0 body44_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_42)))))) + (values lambda40_0 formals41_0 body42_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_42))))) + (values #t lambda37_1 formals38_1 body39_1)))))) + (let-values (((rebuild-s_4) + (let-values (((ctx45_0) ctx_84) ((s46_1) s_26) ((temp47_6) #t)) + (keep-as-needed.1 #f #f temp47_6 ctx45_0 s46_1)))) + (let-values (((formals_2 body_11) (lambda-clause-expander s_26 formals38_0 body39_0 ctx_84))) + (if (expand-context-to-parsed? ctx_84) + (parsed-lambda5.1 rebuild-s_4 formals_2 body_11) + (let-values (((rebuild-s48_0) rebuild-s_4) ((temp49_0) (list* lambda37_0 formals_2 body_11))) + (rebuild.1 #t rebuild-s48_0 temp49_0)))))))))) + (void + (add-core-form!* + 'λ + (lambda (s_317) + (let-values (((ok?_37 lam-id50_0 formals51_0 _52_0) + (let-values (((s_571) s_317)) + (let-values (((orig-s_43) s_571)) + (let-values (((lam-id50_1 formals51_1 _52_1) + (let-values (((s_321) (if (syntax?$1 s_571) (syntax-e$1 s_571) s_571))) + (if (pair? s_321) + (let-values (((lam-id53_0) (let-values (((s_64) (car s_321))) s_64)) + ((formals54_0 _55_0) + (let-values (((s_65) (cdr s_321))) + (let-values (((s_197) + (if (syntax?$1 s_65) (syntax-e$1 s_65) s_65))) + (if (pair? s_197) + (let-values (((formals56_0) + (let-values (((s_572) (car s_197))) s_572)) + ((_57_0) + (let-values (((s_198) (cdr s_197))) + (let-values (((s_199) + (if (syntax?$1 s_198) + (syntax-e$1 s_198) + s_198))) + (let-values (((flat-s_29) + (to-syntax-list.1 s_199))) + (if (not flat-s_29) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_43)) + (if (null? flat-s_29) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_43)) + (let-values () flat-s_29)))))))) + (values formals56_0 _57_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_43)))))) + (values lam-id53_0 formals54_0 _55_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_43))))) + (values #t lam-id50_1 formals51_1 _52_1)))))) + (let-values (((ids_27) (parse-and-flatten-formals formals51_0 #f s_317))) + (let-values (((ctx_85) (let-values (((temp62_5) #t)) (get-current-expand-context.1 temp62_5 'unexpected)))) + (let-values (((phase_146) (if ctx_85 (expand-context-phase ctx_85) 0))) + (begin + (let-values (((ids58_0) ids_27) ((phase59_1) phase_146) ((s60_1) s_317) ((temp61_7) "argument name")) + (check-no-duplicate-ids.1 temp61_7 ids58_0 phase59_1 s60_1 unsafe-undefined)) + (datum->syntax$1 + s_317 + (cons + (datum->syntax$1 (syntax-shift-phase-level$1 core-stx phase_146) 'lambda lam-id50_0 lam-id50_0) + (cdr (syntax-e$1 s_317))) + s_317 + s_317))))))))) + (void + (add-core-form!* + 'case-lambda + (lambda (s_326 ctx_2) + (let-values ((() + (begin + (let-values (((obs_83) (expand-context-observer ctx_2))) + (if obs_83 + (let-values () (let-values () (call-expand-observe obs_83 'prim-case-lambda s_326))) + (void))) + (values)))) + (let-values (((ok?_38 case-lambda63_0 formals64_0 body65_0) + (let-values (((s_573) s_326)) + (let-values (((orig-s_44) s_573)) + (let-values (((case-lambda63_1 formals64_1 body65_1) + (let-values (((s_45) (if (syntax?$1 s_573) (syntax-e$1 s_573) s_573))) + (if (pair? s_45) + (let-values (((case-lambda66_0) (let-values (((s_574) (car s_45))) s_574)) + ((formals67_0 body68_0) + (let-values (((s_73) (cdr s_45))) + (let-values (((s_103) + (if (syntax?$1 s_73) (syntax-e$1 s_73) s_73))) + (let-values (((flat-s_30) (to-syntax-list.1 s_103))) + (if (not flat-s_30) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_44)) + (let-values () + (let-values (((formals_3 body_12) + (let-values (((lst_346) flat-s_30)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_346))) + ((letrec-values (((for-loop_317) + (lambda (formals_4 + body_13 + lst_347) + (begin + 'for-loop + (if (pair? + lst_347) + (let-values (((s_76) + (unsafe-car + lst_347)) + ((rest_207) + (unsafe-cdr + lst_347))) + (let-values (((formals_5 + body_14) + (let-values (((formals_6) + formals_4) + ((body_15) + body_13)) + (let-values (((formals_7 + body_16) + (let-values () + (let-values (((formals75_0 + body76_0) + (let-values () + (let-values (((s_206) + (if (syntax?$1 + s_76) + (syntax-e$1 + s_76) + s_76))) + (if (pair? + s_206) + (let-values (((formals69_0) + (let-values (((s_207) + (car + s_206))) + s_207)) + ((body70_0) + (let-values (((s_208) + (cdr + s_206))) + (let-values (((s_209) + (if (syntax?$1 + s_208) + (syntax-e$1 + s_208) + s_208))) + (let-values (((flat-s_3) + (to-syntax-list.1 + s_209))) + (if (not + flat-s_3) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_44)) + (if (null? + flat-s_3) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_44)) + (let-values () + flat-s_3)))))))) + (values + formals69_0 + body70_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_44)))))) + (values + (cons + formals75_0 + formals_6) + (cons + body76_0 + body_15)))))) + (values + formals_7 + body_16))))) + (if (not + #f) + (for-loop_317 + formals_5 + body_14 + rest_207) + (values + formals_5 + body_14)))) + (values + formals_4 + body_13)))))) + for-loop_317) + null + null + lst_346))))) + (values + (reverse$1 formals_3) + (reverse$1 body_12)))))))))) + (values case-lambda66_0 formals67_0 body68_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_44))))) + (values #t case-lambda63_1 formals64_1 body65_1)))))) + (let-values (((ok?_39 case-lambda71_0 clause72_0) + (let-values (((s_106) s_326)) + (let-values (((orig-s_45) s_106)) + (let-values (((case-lambda71_1 clause72_1) + (let-values (((s_575) (if (syntax?$1 s_106) (syntax-e$1 s_106) s_106))) + (if (pair? s_575) + (let-values (((case-lambda73_0) (let-values (((s_576) (car s_575))) s_576)) + ((clause74_0) + (let-values (((s_577) (cdr s_575))) + (let-values (((s_107) + (if (syntax?$1 s_577) + (syntax-e$1 s_577) + s_577))) + (let-values (((flat-s_31) (to-syntax-list.1 s_107))) + (if (not flat-s_31) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_45)) + (let-values () flat-s_31))))))) + (values case-lambda73_0 clause74_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_45))))) + (values #t case-lambda71_1 clause72_1)))))) + (let-values (((rebuild-s_5) + (let-values (((ctx77_1) ctx_2) ((s78_0) s_326) ((temp79_5) #t)) + (keep-as-needed.1 #f #f temp79_5 ctx77_1 s78_0)))) + (let-values (((clauses_0) + (reverse$1 + (let-values (((lst_348) formals64_0) ((lst_123) body65_0) ((lst_349) clause72_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_348))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_123))) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_349))) + ((letrec-values (((for-loop_318) + (lambda (fold-var_310 lst_350 lst_57 lst_351) + (begin + 'for-loop + (if (if (pair? lst_350) (if (pair? lst_57) (pair? lst_351) #f) #f) + (let-values (((formals_8) (unsafe-car lst_350)) + ((rest_208) (unsafe-cdr lst_350)) + ((body_17) (unsafe-car lst_57)) + ((rest_209) (unsafe-cdr lst_57)) + ((clause_3) (unsafe-car lst_351)) + ((rest_26) (unsafe-cdr lst_351))) + (let-values (((fold-var_311) + (let-values (((fold-var_312) fold-var_310)) + (let-values (((fold-var_313) + (let-values () + (cons + (let-values () + (let-values ((() + (begin + (let-values (((obs_84) + (expand-context-observer + ctx_2))) + (if obs_84 + (let-values () + (let-values () + (call-expand-observe + obs_84 + 'next))) + (void))) + (values)))) + (let-values (((rebuild-clause_0) + (let-values (((ctx80_1) + ctx_2) + ((clause81_0) + clause_3)) + (keep-as-needed.1 + #f + #f + #f + ctx80_1 + clause81_0)))) + (let-values (((exp-formals_0 + exp-body_3) + (lambda-clause-expander + s_326 + formals_8 + body_17 + ctx_2))) + (if (expand-context-to-parsed? + ctx_2) + (list + exp-formals_0 + exp-body_3) + (let-values (((rebuild-clause82_0) + rebuild-clause_0) + ((temp83_3) + (list* + exp-formals_0 + exp-body_3))) + (rebuild.1 + #t + rebuild-clause82_0 + temp83_3))))))) + fold-var_312)))) + (values fold-var_313))))) + (if (not #f) + (for-loop_318 fold-var_311 rest_208 rest_209 rest_26) + fold-var_311))) + fold-var_310))))) + for-loop_318) + null + lst_348 + lst_123 + lst_349)))))) + (if (expand-context-to-parsed? ctx_2) + (parsed-case-lambda6.1 rebuild-s_5 clauses_0) + (let-values (((rebuild-s84_0) rebuild-s_5) ((temp85_8) (list* case-lambda63_0 clauses_0))) + (rebuild.1 #t rebuild-s84_0 temp85_8))))))))))) + (define-values + (parse-and-flatten-formals) + (lambda (all-formals_0 sc_37 s_114) + (begin + ((letrec-values (((loop_134) + (lambda (formals_9) + (begin + 'loop + (if (identifier? formals_9) + (let-values () (list (if sc_37 (add-scope formals_9 sc_37) formals_9))) + (if (syntax?$1 formals_9) + (let-values () + (let-values (((p_91) (syntax-e$1 formals_9))) + (if (pair? p_91) + (let-values () (loop_134 p_91)) + (if (null? p_91) + (let-values () null) + (let-values () (raise-syntax-error$1 #f "not an identifier" s_114 p_91)))))) + (if (pair? formals_9) + (let-values () + (begin + (if (identifier? (car formals_9)) + (void) + (let-values () + (raise-syntax-error$1 #f "not an identifier" s_114 (car formals_9)))) + (cons + (if sc_37 (add-scope (car formals_9) sc_37) (car formals_9)) + (loop_134 (cdr formals_9))))) + (if (null? formals_9) + (let-values () null) + (let-values () + (raise-syntax-error$1 "bad argument sequence" s_114 all-formals_0)))))))))) + loop_134) + all-formals_0)))) + (define-values + (unflatten-like-formals) + (lambda (keys_8 formals_10) + (begin + ((letrec-values (((loop_135) + (lambda (keys_9 formals_11) + (begin + 'loop + (if (null? formals_11) + (let-values () null) + (if (pair? formals_11) + (let-values () (cons (car keys_9) (loop_135 (cdr keys_9) (cdr formals_11)))) + (if (syntax?$1 formals_11) + (let-values () (loop_135 keys_9 (syntax-e$1 formals_11))) + (let-values () (car keys_9))))))))) + loop_135) + keys_8 + formals_10)))) + (define-values + (make-let-values-form.1) + (lambda (log-tag1_0 rec?3_0 split-by-reference?4_0 syntaxes?2_0) + (begin + 'make-let-values-form + (let-values (((log-tag_1) log-tag1_0)) + (let-values (((syntaxes?_0) syntaxes?2_0)) + (let-values (((rec?_1) rec?3_0)) + (let-values (((split-by-reference?_0) split-by-reference?4_0)) + (let-values () + (lambda (s_335 ctx_86) + (let-values ((() + (begin + (let-values (((obs_85) (expand-context-observer ctx_86))) + (if obs_85 + (let-values () (let-values () (call-expand-observe obs_85 log-tag_1 s_335))) + (void))) + (values)))) + (let-values (((ok?_40 + letrec-syntaxes+values86_0 + id:trans87_0 + trans-rhs88_0 + id:val89_0 + val-rhs90_0 + body91_0) + (let-values (((s_578) s_335)) + (if (if syntaxes?_0 #t #f) + (let-values (((orig-s_46) s_578)) + (let-values (((letrec-syntaxes+values86_1 + id:trans87_1 + trans-rhs88_1 + id:val89_1 + val-rhs90_1 + body91_1) + (let-values (((s_229) + (if (syntax?$1 s_578) (syntax-e$1 s_578) s_578))) + (if (pair? s_229) + (let-values (((letrec-syntaxes+values92_0) + (let-values (((s_579) (car s_229))) s_579)) + ((id:trans93_0 + trans-rhs94_0 + id:val95_0 + val-rhs96_0 + body97_0) + (let-values (((s_495) (cdr s_229))) + (let-values (((s_232) + (if (syntax?$1 s_495) + (syntax-e$1 s_495) + s_495))) + (if (pair? s_232) + (let-values (((id:trans98_0 trans-rhs99_0) + (let-values (((s_340) + (car s_232))) + (let-values (((s_341) + (if (syntax?$1 + s_340) + (syntax-e$1 + s_340) + s_340))) + (let-values (((flat-s_32) + (to-syntax-list.1 + s_341))) + (if (not flat-s_32) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)) + (let-values () + (let-values (((id:trans_0 + trans-rhs_0) + (let-values (((lst_139) + flat-s_32)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_139))) + ((letrec-values (((for-loop_319) + (lambda (id:trans_1 + trans-rhs_1 + lst_352) + (begin + 'for-loop + (if (pair? + lst_352) + (let-values (((s_350) + (unsafe-car + lst_352)) + ((rest_210) + (unsafe-cdr + lst_352))) + (let-values (((id:trans_2 + trans-rhs_2) + (let-values (((id:trans_3) + id:trans_1) + ((trans-rhs_3) + trans-rhs_1)) + (let-values (((id:trans_4 + trans-rhs_4) + (let-values () + (let-values (((id:trans129_0 + trans-rhs130_0) + (let-values () + (let-values (((s_580) + (if (syntax?$1 + s_350) + (syntax-e$1 + s_350) + s_350))) + (if (pair? + s_580) + (let-values (((id:trans103_0) + (let-values (((s_581) + (car + s_580))) + (let-values (((s_582) + (if (syntax?$1 + s_581) + (syntax-e$1 + s_581) + s_581))) + (let-values (((flat-s_33) + (to-syntax-list.1 + s_582))) + (if (not + flat-s_33) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)) + (let-values () + (let-values (((id:trans_5) + (let-values (((lst_353) + flat-s_33)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_353))) + ((letrec-values (((for-loop_320) + (lambda (id:trans_6 + lst_354) + (begin + 'for-loop + (if (pair? + lst_354) + (let-values (((s_235) + (unsafe-car + lst_354)) + ((rest_211) + (unsafe-cdr + lst_354))) + (let-values (((id:trans_7) + (let-values (((id:trans_8) + id:trans_6)) + (let-values (((id:trans_9) + (let-values () + (let-values (((id:trans131_0) + (let-values () + (if (let-values (((or-part_204) + (if (syntax?$1 + s_235) + (symbol? + (syntax-e$1 + s_235)) + #f))) + (if or-part_204 + or-part_204 + (symbol? + s_235))) + s_235 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_46 + s_235))))) + (cons + id:trans131_0 + id:trans_8))))) + (values + id:trans_9))))) + (if (not + #f) + (for-loop_320 + id:trans_7 + rest_211) + id:trans_7))) + id:trans_6))))) + for-loop_320) + null + lst_353))))) + (reverse$1 + id:trans_5)))))))) + ((trans-rhs104_0) + (let-values (((s_239) + (cdr + s_580))) + (let-values (((s_240) + (if (syntax?$1 + s_239) + (syntax-e$1 + s_239) + s_239))) + (if (pair? + s_240) + (let-values (((trans-rhs105_0) + (let-values (((s_241) + (car + s_240))) + s_241)) + (() + (let-values (((s_242) + (cdr + s_240))) + (let-values (((s_243) + (if (syntax?$1 + s_242) + (syntax-e$1 + s_242) + s_242))) + (if (null? + s_243) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + trans-rhs105_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + id:trans103_0 + trans-rhs104_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + (cons + id:trans129_0 + id:trans_3) + (cons + trans-rhs130_0 + trans-rhs_3)))))) + (values + id:trans_4 + trans-rhs_4))))) + (if (not + #f) + (for-loop_319 + id:trans_2 + trans-rhs_2 + rest_210) + (values + id:trans_2 + trans-rhs_2)))) + (values + id:trans_1 + trans-rhs_1)))))) + for-loop_319) + null + null + lst_139))))) + (values + (reverse$1 + id:trans_0) + (reverse$1 + trans-rhs_0))))))))) + ((id:val100_0 + val-rhs101_0 + body102_0) + (let-values (((s_583) + (cdr s_232))) + (let-values (((s_363) + (if (syntax?$1 + s_583) + (syntax-e$1 + s_583) + s_583))) + (if (pair? s_363) + (let-values (((id:val106_0 + val-rhs107_0) + (let-values (((s_584) + (car + s_363))) + (let-values (((s_366) + (if (syntax?$1 + s_584) + (syntax-e$1 + s_584) + s_584))) + (let-values (((flat-s_34) + (to-syntax-list.1 + s_366))) + (if (not + flat-s_34) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)) + (let-values () + (let-values (((id:val_0 + val-rhs_0) + (let-values (((lst_355) + flat-s_34)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_355))) + ((letrec-values (((for-loop_321) + (lambda (id:val_1 + val-rhs_1 + lst_356) + (begin + 'for-loop + (if (pair? + lst_356) + (let-values (((s_372) + (unsafe-car + lst_356)) + ((rest_212) + (unsafe-cdr + lst_356))) + (let-values (((id:val_2 + val-rhs_2) + (let-values (((id:val_3) + id:val_1) + ((val-rhs_3) + val-rhs_1)) + (let-values (((id:val_4 + val-rhs_4) + (let-values () + (let-values (((id:val132_0 + val-rhs133_0) + (let-values () + (let-values (((s_585) + (if (syntax?$1 + s_372) + (syntax-e$1 + s_372) + s_372))) + (if (pair? + s_585) + (let-values (((id:val109_0) + (let-values (((s_586) + (car + s_585))) + (let-values (((s_467) + (if (syntax?$1 + s_586) + (syntax-e$1 + s_586) + s_586))) + (let-values (((flat-s_35) + (to-syntax-list.1 + s_467))) + (if (not + flat-s_35) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)) + (let-values () + (let-values (((id:val_5) + (let-values (((lst_357) + flat-s_35)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_357))) + ((letrec-values (((for-loop_322) + (lambda (id:val_6 + lst_358) + (begin + 'for-loop + (if (pair? + lst_358) + (let-values (((s_250) + (unsafe-car + lst_358)) + ((rest_213) + (unsafe-cdr + lst_358))) + (let-values (((id:val_7) + (let-values (((id:val_8) + id:val_6)) + (let-values (((id:val_9) + (let-values () + (let-values (((id:val134_0) + (let-values () + (if (let-values (((or-part_534) + (if (syntax?$1 + s_250) + (symbol? + (syntax-e$1 + s_250)) + #f))) + (if or-part_534 + or-part_534 + (symbol? + s_250))) + s_250 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_46 + s_250))))) + (cons + id:val134_0 + id:val_8))))) + (values + id:val_9))))) + (if (not + #f) + (for-loop_322 + id:val_7 + rest_213) + id:val_7))) + id:val_6))))) + for-loop_322) + null + lst_357))))) + (reverse$1 + id:val_5)))))))) + ((val-rhs110_0) + (let-values (((s_587) + (cdr + s_585))) + (let-values (((s_252) + (if (syntax?$1 + s_587) + (syntax-e$1 + s_587) + s_587))) + (if (pair? + s_252) + (let-values (((val-rhs111_0) + (let-values (((s_523) + (car + s_252))) + s_523)) + (() + (let-values (((s_588) + (cdr + s_252))) + (let-values (((s_589) + (if (syntax?$1 + s_588) + (syntax-e$1 + s_588) + s_588))) + (if (null? + s_589) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + val-rhs111_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + id:val109_0 + val-rhs110_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + (cons + id:val132_0 + id:val_3) + (cons + val-rhs133_0 + val-rhs_3)))))) + (values + id:val_4 + val-rhs_4))))) + (if (not + #f) + (for-loop_321 + id:val_2 + val-rhs_2 + rest_212) + (values + id:val_2 + val-rhs_2)))) + (values + id:val_1 + val-rhs_1)))))) + for-loop_321) + null + null + lst_355))))) + (values + (reverse$1 + id:val_0) + (reverse$1 + val-rhs_0))))))))) + ((body108_0) + (let-values (((s_469) + (cdr + s_363))) + (let-values (((s_590) + (if (syntax?$1 + s_469) + (syntax-e$1 + s_469) + s_469))) + (let-values (((flat-s_36) + (to-syntax-list.1 + s_590))) + (if (not + flat-s_36) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)) + (if (null? + flat-s_36) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)) + (let-values () + flat-s_36)))))))) + (values + id:val106_0 + val-rhs107_0 + body108_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + id:trans98_0 + trans-rhs99_0 + id:val100_0 + val-rhs101_0 + body102_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_46)))))) + (values + letrec-syntaxes+values92_0 + id:trans93_0 + trans-rhs94_0 + id:val95_0 + val-rhs96_0 + body97_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_46))))) + (values + #t + letrec-syntaxes+values86_1 + id:trans87_1 + trans-rhs88_1 + id:val89_1 + val-rhs90_1 + body91_1))) + (values #f #f #f #f #f #f #f))))) + (let-values (((ok?_41 let-values112_0 id:val113_0 val-rhs114_0 body115_0) + (let-values (((s_591) s_335)) + (if (if (not syntaxes?_0) #t #f) + (let-values (((orig-s_47) s_591)) + (let-values (((let-values112_1 id:val113_1 val-rhs114_1 body115_1) + (let-values (((s_141) + (if (syntax?$1 s_591) (syntax-e$1 s_591) s_591))) + (if (pair? s_141) + (let-values (((let-values116_0) + (let-values (((s_380) (car s_141))) s_380)) + ((id:val117_0 val-rhs118_0 body119_0) + (let-values (((s_381) (cdr s_141))) + (let-values (((s_382) + (if (syntax?$1 s_381) + (syntax-e$1 s_381) + s_381))) + (if (pair? s_382) + (let-values (((id:val120_0 val-rhs121_0) + (let-values (((s_386) + (car + s_382))) + (let-values (((s_387) + (if (syntax?$1 + s_386) + (syntax-e$1 + s_386) + s_386))) + (let-values (((flat-s_37) + (to-syntax-list.1 + s_387))) + (if (not flat-s_37) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)) + (let-values () + (let-values (((id:val_10 + val-rhs_5) + (let-values (((lst_359) + flat-s_37)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_359))) + ((letrec-values (((for-loop_323) + (lambda (id:val_11 + val-rhs_6 + lst_360) + (begin + 'for-loop + (if (pair? + lst_360) + (let-values (((s_592) + (unsafe-car + lst_360)) + ((rest_214) + (unsafe-cdr + lst_360))) + (let-values (((id:val_12 + val-rhs_7) + (let-values (((id:val_13) + id:val_11) + ((val-rhs_8) + val-rhs_6)) + (let-values (((id:val_14 + val-rhs_9) + (let-values () + (let-values (((id:val135_0 + val-rhs136_0) + (let-values () + (let-values (((s_143) + (if (syntax?$1 + s_592) + (syntax-e$1 + s_592) + s_592))) + (if (pair? + s_143) + (let-values (((id:val123_0) + (let-values (((s_395) + (car + s_143))) + (let-values (((s_256) + (if (syntax?$1 + s_395) + (syntax-e$1 + s_395) + s_395))) + (let-values (((flat-s_38) + (to-syntax-list.1 + s_256))) + (if (not + flat-s_38) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)) + (let-values () + (let-values (((id:val_15) + (let-values (((lst_361) + flat-s_38)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_361))) + ((letrec-values (((for-loop_324) + (lambda (id:val_16 + lst_362) + (begin + 'for-loop + (if (pair? + lst_362) + (let-values (((s_258) + (unsafe-car + lst_362)) + ((rest_215) + (unsafe-cdr + lst_362))) + (let-values (((id:val_17) + (let-values (((id:val_18) + id:val_16)) + (let-values (((id:val_19) + (let-values () + (let-values (((id:val137_0) + (let-values () + (if (let-values (((or-part_174) + (if (syntax?$1 + s_258) + (symbol? + (syntax-e$1 + s_258)) + #f))) + (if or-part_174 + or-part_174 + (symbol? + s_258))) + s_258 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_47 + s_258))))) + (cons + id:val137_0 + id:val_18))))) + (values + id:val_19))))) + (if (not + #f) + (for-loop_324 + id:val_17 + rest_215) + id:val_17))) + id:val_16))))) + for-loop_324) + null + lst_361))))) + (reverse$1 + id:val_15)))))))) + ((val-rhs124_0) + (let-values (((s_593) + (cdr + s_143))) + (let-values (((s_260) + (if (syntax?$1 + s_593) + (syntax-e$1 + s_593) + s_593))) + (if (pair? + s_260) + (let-values (((val-rhs125_0) + (let-values (((s_594) + (car + s_260))) + s_594)) + (() + (let-values (((s_568) + (cdr + s_260))) + (let-values (((s_595) + (if (syntax?$1 + s_568) + (syntax-e$1 + s_568) + s_568))) + (if (null? + s_595) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)))))) + (values + val-rhs125_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)))))) + (values + id:val123_0 + val-rhs124_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)))))) + (values + (cons + id:val135_0 + id:val_13) + (cons + val-rhs136_0 + val-rhs_8)))))) + (values + id:val_14 + val-rhs_9))))) + (if (not + #f) + (for-loop_323 + id:val_12 + val-rhs_7 + rest_214) + (values + id:val_12 + val-rhs_7)))) + (values + id:val_11 + val-rhs_6)))))) + for-loop_323) + null + null + lst_359))))) + (values + (reverse$1 + id:val_10) + (reverse$1 + val-rhs_5))))))))) + ((body122_0) + (let-values (((s_596) + (cdr + s_382))) + (let-values (((s_148) + (if (syntax?$1 + s_596) + (syntax-e$1 + s_596) + s_596))) + (let-values (((flat-s_39) + (to-syntax-list.1 + s_148))) + (if (not flat-s_39) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)) + (if (null? + flat-s_39) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)) + (let-values () + flat-s_39)))))))) + (values + id:val120_0 + val-rhs121_0 + body122_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_47)))))) + (values + let-values116_0 + id:val117_0 + val-rhs118_0 + body119_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_47))))) + (values #t let-values112_1 id:val113_1 val-rhs114_1 body115_1))) + (values #f #f #f #f #f))))) + (let-values (((sc_38) + (if (not (expand-context-parsing-expanded? ctx_86)) (new-scope 'local) #f))) + (let-values ((() + (begin + (if (if syntaxes?_0 (not sc_38) #f) + (let-values () + (raise-syntax-error$1 + #f + "encountered `letrec-syntaxes` in form that should be fully expanded" + s_335)) + (void)) + (values)))) + (let-values (((body-sc_0) (if sc_38 (if rec?_1 (new-scope 'letrec-body) #f) #f))) + (let-values (((phase_147) (expand-context-phase ctx_86))) + (let-values (((frame-id_14) (if syntaxes?_0 (make-reference-record) #f))) + (let-values (((trans-idss_2) + (reverse$1 + (let-values (((lst_363) (if syntaxes?_0 id:trans87_0 null))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_363))) + ((letrec-values (((for-loop_325) + (lambda (fold-var_50 lst_364) + (begin + 'for-loop + (if (pair? lst_364) + (let-values (((ids_36) + (unsafe-car lst_364)) + ((rest_216) + (unsafe-cdr lst_364))) + (let-values (((fold-var_52) + (let-values (((fold-var_314) + fold-var_50)) + (let-values (((fold-var_315) + (let-values () + (cons + (let-values () + (reverse$1 + (let-values (((lst_365) + ids_36)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_365))) + ((letrec-values (((for-loop_326) + (lambda (fold-var_54 + lst_366) + (begin + 'for-loop + (if (pair? + lst_366) + (let-values (((id_127) + (unsafe-car + lst_366)) + ((rest_217) + (unsafe-cdr + lst_366))) + (let-values (((fold-var_286) + (let-values (((fold-var_287) + fold-var_54)) + (let-values (((fold-var_316) + (let-values () + (cons + (let-values () + (add-scope + id_127 + sc_38)) + fold-var_287)))) + (values + fold-var_316))))) + (if (not + #f) + (for-loop_326 + fold-var_286 + rest_217) + fold-var_286))) + fold-var_54))))) + for-loop_326) + null + lst_365))))) + fold-var_314)))) + (values + fold-var_315))))) + (if (not #f) + (for-loop_325 fold-var_52 rest_216) + fold-var_52))) + fold-var_50))))) + for-loop_325) + null + lst_363)))))) + (let-values (((trans-rhss_0) + (if syntaxes?_0 + (reverse$1 + (let-values (((lst_144) trans-rhs88_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_144))) + ((letrec-values (((for-loop_181) + (lambda (fold-var_317 lst_73) + (begin + 'for-loop + (if (pair? lst_73) + (let-values (((rhs_20) + (unsafe-car lst_73)) + ((rest_34) + (unsafe-cdr lst_73))) + (let-values (((fold-var_290) + (let-values (((fold-var_291) + fold-var_317)) + (let-values (((fold-var_318) + (let-values () + (cons + (let-values () + (add-scope + rhs_20 + sc_38)) + fold-var_291)))) + (values + fold-var_318))))) + (if (not #f) + (for-loop_181 + fold-var_290 + rest_34) + fold-var_290))) + fold-var_317))))) + for-loop_181) + null + lst_144)))) + '()))) + (let-values (((val-idss_2) + (let-values (((val-idss_3) (if syntaxes?_0 id:val89_0 id:val113_0))) + (if sc_38 + (reverse$1 + (let-values (((lst_367) val-idss_3)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_367))) + ((letrec-values (((for-loop_327) + (lambda (fold-var_319 lst_368) + (begin + 'for-loop + (if (pair? lst_368) + (let-values (((ids_37) + (unsafe-car lst_368)) + ((rest_218) + (unsafe-cdr + lst_368))) + (let-values (((fold-var_320) + (let-values (((fold-var_321) + fold-var_319)) + (let-values (((fold-var_322) + (let-values () + (cons + (let-values () + (reverse$1 + (let-values (((lst_369) + ids_37)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_369))) + ((letrec-values (((for-loop_328) + (lambda (fold-var_323 + lst_370) + (begin + 'for-loop + (if (pair? + lst_370) + (let-values (((id_128) + (unsafe-car + lst_370)) + ((rest_219) + (unsafe-cdr + lst_370))) + (let-values (((fold-var_324) + (let-values (((fold-var_325) + fold-var_323)) + (let-values (((fold-var_326) + (let-values () + (cons + (let-values () + (add-scope + id_128 + sc_38)) + fold-var_325)))) + (values + fold-var_326))))) + (if (not + #f) + (for-loop_328 + fold-var_324 + rest_219) + fold-var_324))) + fold-var_323))))) + for-loop_328) + null + lst_369))))) + fold-var_321)))) + (values + fold-var_322))))) + (if (not #f) + (for-loop_327 + fold-var_320 + rest_218) + fold-var_320))) + fold-var_319))))) + for-loop_327) + null + lst_367)))) + val-idss_3)))) + (let-values (((val-rhss_2) + (let-values (((val-rhss_3) + (if syntaxes?_0 val-rhs90_0 val-rhs114_0))) + (if (if rec?_1 sc_38 #f) + (reverse$1 + (let-values (((lst_371) val-rhss_3)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_371))) + ((letrec-values (((for-loop_329) + (lambda (fold-var_327 lst_372) + (begin + 'for-loop + (if (pair? lst_372) + (let-values (((rhs_21) + (unsafe-car + lst_372)) + ((rest_220) + (unsafe-cdr + lst_372))) + (let-values (((fold-var_328) + (let-values (((fold-var_329) + fold-var_327)) + (let-values (((fold-var_330) + (let-values () + (cons + (let-values () + (add-scope + rhs_21 + sc_38)) + fold-var_329)))) + (values + fold-var_330))))) + (if (not #f) + (for-loop_329 + fold-var_328 + rest_220) + fold-var_328))) + fold-var_327))))) + for-loop_329) + null + lst_371)))) + val-rhss_3)))) + (let-values (((val-clauses_0) + (if syntaxes?_0 + (let-values () + (let-values (((ok?_42 _138_0 _139_0 clause140_0 _141_0) + (let-values (((s_597) s_335)) + (let-values (((orig-s_48) s_597)) + (let-values (((_138_1 + _139_1 + clause140_1 + _141_1) + (let-values (((s_420) + (if (syntax?$1 + s_597) + (syntax-e$1 + s_597) + s_597))) + (if (pair? s_420) + (let-values (((_142_0) + (let-values (((s_423) + (car + s_420))) + s_423)) + ((_143_0 + clause144_0 + _145_0) + (let-values (((s_598) + (cdr + s_420))) + (let-values (((s_424) + (if (syntax?$1 + s_598) + (syntax-e$1 + s_598) + s_598))) + (if (pair? + s_424) + (let-values (((_146_0) + (let-values (((s_599) + (car + s_424))) + s_599)) + ((clause147_0 + _148_0) + (let-values (((s_600) + (cdr + s_424))) + (let-values (((s_601) + (if (syntax?$1 + s_600) + (syntax-e$1 + s_600) + s_600))) + (if (pair? + s_601) + (let-values (((clause149_0) + (let-values (((s_602) + (car + s_601))) + (let-values (((s_603) + (if (syntax?$1 + s_602) + (syntax-e$1 + s_602) + s_602))) + (let-values (((flat-s_40) + (to-syntax-list.1 + s_603))) + (if (not + flat-s_40) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_48)) + (let-values () + flat-s_40)))))) + ((_150_0) + (let-values (((s_604) + (cdr + s_601))) + s_604))) + (values + clause149_0 + _150_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_48)))))) + (values + _146_0 + clause147_0 + _148_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_48)))))) + (values + _142_0 + _143_0 + clause144_0 + _145_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_48))))) + (values + #t + _138_1 + _139_1 + clause140_1 + _141_1)))))) + clause140_0)) + (let-values () + (let-values (((ok?_43 _151_0 clause152_0 _153_0) + (let-values (((s_605) s_335)) + (let-values (((orig-s_49) s_605)) + (let-values (((_151_1 clause152_1 _153_1) + (let-values (((s_606) + (if (syntax?$1 + s_605) + (syntax-e$1 + s_605) + s_605))) + (if (pair? s_606) + (let-values (((_154_0) + (let-values (((s_187) + (car + s_606))) + s_187)) + ((clause155_0 + _156_0) + (let-values (((s_427) + (cdr + s_606))) + (let-values (((s_428) + (if (syntax?$1 + s_427) + (syntax-e$1 + s_427) + s_427))) + (if (pair? + s_428) + (let-values (((clause157_0) + (let-values (((s_431) + (car + s_428))) + (let-values (((s_432) + (if (syntax?$1 + s_431) + (syntax-e$1 + s_431) + s_431))) + (let-values (((flat-s_41) + (to-syntax-list.1 + s_432))) + (if (not + flat-s_41) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_49)) + (let-values () + flat-s_41)))))) + ((_158_0) + (let-values (((s_433) + (cdr + s_428))) + s_433))) + (values + clause157_0 + _158_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_49)))))) + (values + _154_0 + clause155_0 + _156_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_49))))) + (values + #t + _151_1 + clause152_1 + _153_1)))))) + clause152_0))))) + (let-values ((() + (begin + (let-values (((temp126_2) (list trans-idss_2 val-idss_2)) + ((phase127_0) phase_147) + ((s128_0) s_335)) + (check-no-duplicate-ids.1 + unsafe-undefined + temp126_2 + phase127_0 + s128_0 + unsafe-undefined)) + (values)))) + (let-values (((counter_8) (root-expand-context-counter ctx_86))) + (let-values (((local-sym_5) + (if (expand-context-normalize-locals? ctx_86) 'loc #f))) + (let-values (((trans-keyss_0) + (reverse$1 + (let-values (((lst_373) trans-idss_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_373))) + ((letrec-values (((for-loop_330) + (lambda (fold-var_331 lst_374) + (begin + 'for-loop + (if (pair? lst_374) + (let-values (((ids_38) + (unsafe-car + lst_374)) + ((rest_221) + (unsafe-cdr + lst_374))) + (let-values (((fold-var_332) + (let-values (((fold-var_333) + fold-var_331)) + (let-values (((fold-var_334) + (let-values () + (cons + (let-values () + (reverse$1 + (let-values (((lst_375) + ids_38)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_375))) + ((letrec-values (((for-loop_72) + (lambda (fold-var_335 + lst_76) + (begin + 'for-loop + (if (pair? + lst_76) + (let-values (((id_129) + (unsafe-car + lst_76)) + ((rest_222) + (unsafe-cdr + lst_76))) + (let-values (((fold-var_336) + (let-values (((fold-var_337) + fold-var_335)) + (let-values (((fold-var_338) + (let-values () + (cons + (let-values () + (let-values (((id159_0) + id_129) + ((phase160_0) + phase_147) + ((counter161_0) + counter_8) + ((frame-id162_0) + frame-id_14) + ((s163_0) + s_335) + ((local-sym164_0) + local-sym_5)) + (add-local-binding!.1 + frame-id162_0 + s163_0 + local-sym164_0 + id159_0 + phase160_0 + counter161_0))) + fold-var_337)))) + (values + fold-var_338))))) + (if (not + #f) + (for-loop_72 + fold-var_336 + rest_222) + fold-var_336))) + fold-var_335))))) + for-loop_72) + null + lst_375))))) + fold-var_333)))) + (values + fold-var_334))))) + (if (not #f) + (for-loop_330 + fold-var_332 + rest_221) + fold-var_332))) + fold-var_331))))) + for-loop_330) + null + lst_373)))))) + (let-values (((val-keyss_2) + (reverse$1 + (let-values (((lst_376) val-idss_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_376))) + ((letrec-values (((for-loop_331) + (lambda (fold-var_61 lst_377) + (begin + 'for-loop + (if (pair? lst_377) + (let-values (((ids_39) + (unsafe-car + lst_377)) + ((rest_223) + (unsafe-cdr + lst_377))) + (let-values (((fold-var_339) + (let-values (((fold-var_340) + fold-var_61)) + (let-values (((fold-var_341) + (let-values () + (cons + (let-values () + (reverse$1 + (let-values (((lst_378) + ids_39)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_378))) + ((letrec-values (((for-loop_332) + (lambda (fold-var_342 + lst_379) + (begin + 'for-loop + (if (pair? + lst_379) + (let-values (((id_130) + (unsafe-car + lst_379)) + ((rest_224) + (unsafe-cdr + lst_379))) + (let-values (((fold-var_343) + (let-values (((fold-var_344) + fold-var_342)) + (let-values (((fold-var_345) + (let-values () + (cons + (let-values () + (if sc_38 + (let-values (((id165_0) + id_130) + ((phase166_2) + phase_147) + ((counter167_0) + counter_8) + ((frame-id168_0) + frame-id_14) + ((s169_0) + s_335) + ((local-sym170_0) + local-sym_5)) + (add-local-binding!.1 + frame-id168_0 + s169_0 + local-sym170_0 + id165_0 + phase166_2 + counter167_0)) + (existing-binding-key + id_130 + (expand-context-phase + ctx_86)))) + fold-var_344)))) + (values + fold-var_345))))) + (if (not + #f) + (for-loop_332 + fold-var_343 + rest_224) + fold-var_343))) + fold-var_342))))) + for-loop_332) + null + lst_378))))) + fold-var_340)))) + (values + fold-var_341))))) + (if (not #f) + (for-loop_331 + fold-var_339 + rest_223) + fold-var_339))) + fold-var_61))))) + for-loop_331) + null + lst_376)))))) + (let-values (((bodys_10) + (let-values (((bodys_11) + (if syntaxes?_0 body91_0 body115_0))) + (if sc_38 + (reverse$1 + (let-values (((lst_380) bodys_11)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_380))) + ((letrec-values (((for-loop_333) + (lambda (fold-var_160 + lst_381) + (begin + 'for-loop + (if (pair? lst_381) + (let-values (((body_18) + (unsafe-car + lst_381)) + ((rest_225) + (unsafe-cdr + lst_381))) + (let-values (((fold-var_162) + (let-values (((fold-var_346) + fold-var_160)) + (let-values (((fold-var_347) + (let-values () + (cons + (let-values () + (let-values (((new-body_0) + (add-scope + body_18 + sc_38))) + (if rec?_1 + (add-scope + new-body_0 + body-sc_0) + new-body_0))) + fold-var_346)))) + (values + fold-var_347))))) + (if (not #f) + (for-loop_333 + fold-var_162 + rest_225) + fold-var_162))) + fold-var_160))))) + for-loop_333) + null + lst_380)))) + bodys_11)))) + (let-values ((() + (begin + (let-values (((obs_86) + (expand-context-observer ctx_86))) + (if obs_86 + (let-values () + (let-values () + (call-expand-observe + obs_86 + 'letX-renames + trans-idss_2 + trans-rhss_0 + val-idss_2 + val-rhss_2 + bodys_10))) + (void))) + (values)))) + (let-values ((() + (begin + (if syntaxes?_0 + (let-values () + (begin + (let-values (((obs_87) + (expand-context-observer + ctx_86))) + (if obs_87 + (let-values () + (let-values () + (call-expand-observe + obs_87 + 'prepare-env))) + (void))) + (prepare-next-phase-namespace ctx_86))) + (void)) + (values)))) + (let-values (((trans-valss_0) + (reverse$1 + (let-values (((lst_382) trans-rhss_0) + ((lst_383) trans-idss_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_382))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_383))) + ((letrec-values (((for-loop_334) + (lambda (fold-var_348 + lst_51 + lst_384) + (begin + 'for-loop + (if (if (pair? + lst_51) + (pair? + lst_384) + #f) + (let-values (((rhs_22) + (unsafe-car + lst_51)) + ((rest_226) + (unsafe-cdr + lst_51)) + ((ids_40) + (unsafe-car + lst_384)) + ((rest_23) + (unsafe-cdr + lst_384))) + (let-values (((fold-var_349) + (let-values (((fold-var_350) + fold-var_348)) + (let-values (((fold-var_351) + (let-values () + (cons + (let-values () + (let-values ((() + (begin + (let-values (((obs_88) + (expand-context-observer + ctx_86))) + (if obs_88 + (let-values () + (let-values () + (begin + (call-expand-observe + obs_88 + 'next) + (call-expand-observe + obs_88 + 'enter-bind)))) + (void))) + (values)))) + (let-values (((trans-val_1) + (eval-for-syntaxes-binding + 'letrec-syntaxes+values + rhs_22 + ids_40 + ctx_86))) + (begin + (let-values (((obs_89) + (expand-context-observer + ctx_86))) + (if obs_89 + (let-values () + (let-values () + (call-expand-observe + obs_89 + 'exit-bind))) + (void))) + trans-val_1)))) + fold-var_350)))) + (values + fold-var_351))))) + (if (not #f) + (for-loop_334 + fold-var_349 + rest_226 + rest_23) + fold-var_349))) + fold-var_348))))) + for-loop_334) + null + lst_382 + lst_383)))))) + (let-values (((rec-val-env_0) + (let-values (((lst_385) val-keyss_2) + ((lst_250) val-idss_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_385))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_250))) + ((letrec-values (((for-loop_335) + (lambda (env_29 + lst_386 + lst_252) + (begin + 'for-loop + (if (if (pair? + lst_386) + (pair? + lst_252) + #f) + (let-values (((keys_10) + (unsafe-car + lst_386)) + ((rest_227) + (unsafe-cdr + lst_386)) + ((ids_41) + (unsafe-car + lst_252)) + ((rest_228) + (unsafe-cdr + lst_252))) + (let-values (((env_30) + (let-values (((env_31) + env_29)) + (let-values (((lst_387) + keys_10) + ((lst_388) + ids_41)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_387))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_388))) + ((letrec-values (((for-loop_336) + (lambda (env_32 + lst_389 + lst_390) + (begin + 'for-loop + (if (if (pair? + lst_389) + (pair? + lst_390) + #f) + (let-values (((key_107) + (unsafe-car + lst_389)) + ((rest_229) + (unsafe-cdr + lst_389)) + ((id_131) + (unsafe-car + lst_390)) + ((rest_230) + (unsafe-cdr + lst_390))) + (let-values (((env_33) + (let-values (((env_34) + env_32)) + (let-values (((env_35) + (let-values () + (env-extend + env_34 + key_107 + (local-variable1.1 + id_131))))) + (values + env_35))))) + (if (not + #f) + (for-loop_336 + env_33 + rest_229 + rest_230) + env_33))) + env_32))))) + for-loop_336) + env_31 + lst_387 + lst_388)))))) + (if (not #f) + (for-loop_335 + env_30 + rest_227 + rest_228) + env_30))) + env_29))))) + for-loop_335) + (expand-context-env ctx_86) + lst_385 + lst_250))))) + (let-values (((rec-env_0) + (let-values (((lst_391) trans-keyss_0) + ((lst_392) trans-valss_0) + ((lst_393) trans-idss_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_391))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_392))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_393))) + ((letrec-values (((for-loop_337) + (lambda (env_36 + lst_394 + lst_395 + lst_258) + (begin + 'for-loop + (if (if (pair? + lst_394) + (if (pair? + lst_395) + (pair? + lst_258) + #f) + #f) + (let-values (((keys_11) + (unsafe-car + lst_394)) + ((rest_231) + (unsafe-cdr + lst_394)) + ((vals_10) + (unsafe-car + lst_395)) + ((rest_232) + (unsafe-cdr + lst_395)) + ((ids_42) + (unsafe-car + lst_258)) + ((rest_233) + (unsafe-cdr + lst_258))) + (let-values (((env_37) + (let-values (((env_38) + env_36)) + (let-values (((env_39) + (let-values () + (let-values (((lst_396) + keys_11) + ((lst_397) + vals_10) + ((lst_398) + ids_42)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_396))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_397))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_398))) + ((letrec-values (((for-loop_338) + (lambda (env_40 + lst_261 + lst_399 + lst_400) + (begin + 'for-loop + (if (if (pair? + lst_261) + (if (pair? + lst_399) + (pair? + lst_400) + #f) + #f) + (let-values (((key_108) + (unsafe-car + lst_261)) + ((rest_234) + (unsafe-cdr + lst_261)) + ((val_96) + (unsafe-car + lst_399)) + ((rest_235) + (unsafe-cdr + lst_399)) + ((id_132) + (unsafe-car + lst_400)) + ((rest_236) + (unsafe-cdr + lst_400))) + (let-values (((env_41) + (let-values (((env_42) + env_40)) + (let-values (((env_43) + (let-values () + (begin + (maybe-install-free=id-in-context! + val_96 + id_132 + phase_147 + ctx_86) + (env-extend + env_42 + key_108 + val_96))))) + (values + env_43))))) + (if (not + #f) + (for-loop_338 + env_41 + rest_234 + rest_235 + rest_236) + env_41))) + env_40))))) + for-loop_338) + env_38 + lst_396 + lst_397 + lst_398)))))) + (values + env_39))))) + (if (not + #f) + (for-loop_337 + env_37 + rest_231 + rest_232 + rest_233) + env_37))) + env_36))))) + for-loop_337) + rec-val-env_0 + lst_391 + lst_392 + lst_393))))) + (let-values ((() + (begin + (if syntaxes?_0 + (let-values () + (let-values (((obs_90) + (expand-context-observer + ctx_86))) + (if obs_90 + (let-values () + (let-values () + (call-expand-observe + obs_90 + 'next-group))) + (void)))) + (void)) + (values)))) + (let-values (((expr-ctx_0) + (as-expression-context ctx_86))) + (let-values (((orig-rrs_0) + (expand-context-reference-records + expr-ctx_0))) + (let-values (((rec-ctx_0) + (let-values (((v_271) expr-ctx_0)) + (let-values (((the-struct_92) + v_271)) + (if (expand-context/outer? + the-struct_92) + (let-values (((env171_0) + rec-env_0) + ((scopes172_0) + (if sc_38 + (let-values (((scopes_24) + (cons + sc_38 + (expand-context-scopes + ctx_86)))) + (if rec?_1 + (cons + body-sc_0 + scopes_24) + scopes_24)) + (expand-context-scopes + ctx_86))) + ((reference-records173_0) + (if split-by-reference?_0 + (cons + frame-id_14 + orig-rrs_0) + orig-rrs_0)) + ((binding-layer174_0) + (if sc_38 + (increment-binding-layer + (cons + trans-idss_2 + val-idss_2) + ctx_86 + sc_38) + (expand-context-binding-layer + ctx_86))) + ((inner175_0) + (root-expand-context/outer-inner + v_271))) + (expand-context/outer1.1 + inner175_0 + (root-expand-context/outer-post-expansion + the-struct_92) + (root-expand-context/outer-use-site-scopes + the-struct_92) + (root-expand-context/outer-frame-id + the-struct_92) + (expand-context/outer-context + the-struct_92) + env171_0 + scopes172_0 + (expand-context/outer-def-ctx-scopes + the-struct_92) + binding-layer174_0 + reference-records173_0 + (expand-context/outer-only-immediate? + the-struct_92) + (expand-context/outer-need-eventually-defined + the-struct_92) + (expand-context/outer-current-introduction-scopes + the-struct_92) + (expand-context/outer-current-use-scopes + the-struct_92) + (expand-context/outer-name + the-struct_92))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_92)))))) + (let-values (((letrec-values-id_0) + (if (not + (expand-context-to-parsed? + ctx_86)) + (if syntaxes?_0 + (core-id + 'letrec-values + phase_147) + let-values112_0) + #f))) + (let-values (((rebuild-s_6) + (let-values (((ctx176_1) + ctx_86) + ((s177_0) s_335) + ((temp178_0) #t)) + (keep-as-needed.1 + #f + temp178_0 + #f + ctx176_1 + s177_0)))) + (let-values (((val-name-idss_0) + (if (expand-context-to-parsed? + ctx_86) + (reverse$1 + (let-values (((lst_401) + val-idss_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_401))) + ((letrec-values (((for-loop_339) + (lambda (fold-var_352 + lst_402) + (begin + 'for-loop + (if (pair? + lst_402) + (let-values (((val-ids_0) + (unsafe-car + lst_402)) + ((rest_237) + (unsafe-cdr + lst_402))) + (let-values (((fold-var_353) + (let-values (((fold-var_354) + fold-var_352)) + (let-values (((fold-var_355) + (let-values () + (cons + (let-values () + (reverse$1 + (let-values (((lst_300) + val-ids_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_300))) + ((letrec-values (((for-loop_340) + (lambda (fold-var_356 + lst_403) + (begin + 'for-loop + (if (pair? + lst_403) + (let-values (((val-id_0) + (unsafe-car + lst_403)) + ((rest_238) + (unsafe-cdr + lst_403))) + (let-values (((fold-var_357) + (let-values (((fold-var_358) + fold-var_356)) + (let-values (((fold-var_359) + (let-values () + (cons + (let-values () + (datum->syntax$1 + #f + (syntax-e$1 + val-id_0) + val-id_0 + val-id_0)) + fold-var_358)))) + (values + fold-var_359))))) + (if (not + #f) + (for-loop_340 + fold-var_357 + rest_238) + fold-var_357))) + fold-var_356))))) + for-loop_340) + null + lst_300))))) + fold-var_354)))) + (values + fold-var_355))))) + (if (not + #f) + (for-loop_339 + fold-var_353 + rest_237) + fold-var_353))) + fold-var_352))))) + for-loop_339) + null + lst_401)))) + val-idss_2))) + (let-values (((get-body_1) + (lambda () + (begin + 'get-body + (if (expand-context-parsing-expanded? + ctx_86) + (let-values () + (reverse$1 + (let-values (((lst_404) + bodys_10)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_404))) + ((letrec-values (((for-loop_341) + (lambda (fold-var_360 + lst_405) + (begin + 'for-loop + (if (pair? + lst_405) + (let-values (((body_19) + (unsafe-car + lst_405)) + ((rest_239) + (unsafe-cdr + lst_405))) + (let-values (((fold-var_361) + (let-values (((fold-var_362) + fold-var_360)) + (let-values (((fold-var_363) + (let-values () + (cons + (let-values () + (let-values (((body179_0) + body_19) + ((rec-ctx180_0) + rec-ctx_0)) + (expand.1 + #f + #f + body179_0 + rec-ctx180_0))) + fold-var_362)))) + (values + fold-var_363))))) + (if (not + #f) + (for-loop_341 + fold-var_361 + rest_239) + fold-var_361))) + fold-var_360))))) + for-loop_341) + null + lst_404))))) + (let-values () + (let-values (((body-ctx_5) + (let-values (((v_272) + rec-ctx_0)) + (let-values (((the-struct_93) + v_272)) + (if (expand-context/outer? + the-struct_93) + (let-values (((reference-records184_0) + orig-rrs_0) + ((inner185_0) + (root-expand-context/outer-inner + v_272))) + (expand-context/outer1.1 + inner185_0 + (root-expand-context/outer-post-expansion + the-struct_93) + (root-expand-context/outer-use-site-scopes + the-struct_93) + (root-expand-context/outer-frame-id + the-struct_93) + (expand-context/outer-context + the-struct_93) + (expand-context/outer-env + the-struct_93) + (expand-context/outer-scopes + the-struct_93) + (expand-context/outer-def-ctx-scopes + the-struct_93) + (expand-context/outer-binding-layer + the-struct_93) + reference-records184_0 + (expand-context/outer-only-immediate? + the-struct_93) + (expand-context/outer-need-eventually-defined + the-struct_93) + (expand-context/outer-current-introduction-scopes + the-struct_93) + (expand-context/outer-current-use-scopes + the-struct_93) + (expand-context/outer-name + the-struct_93))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_93)))))) + (let-values (((bodys181_0) + bodys_10) + ((temp182_0) + (let-values (((body-ctx186_0) + body-ctx_5) + ((ctx187_0) + ctx_86)) + (as-tail-context.1 + ctx187_0 + body-ctx186_0))) + ((rebuild-s183_0) + rebuild-s_6)) + (expand-body.1 + rebuild-s183_0 + #f + bodys181_0 + temp182_0))))))))) + (let-values (((result-s_13) + (if (not + split-by-reference?_0) + (let-values () + (let-values (((clauses_1) + (reverse$1 + (let-values (((lst_406) + val-name-idss_0) + ((lst_407) + val-keyss_2) + ((lst_408) + val-rhss_2) + ((lst_409) + val-clauses_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_406))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_407))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_408))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_409))) + ((letrec-values (((for-loop_169) + (lambda (fold-var_364 + lst_410 + lst_411 + lst_412 + lst_413) + (begin + 'for-loop + (if (if (pair? + lst_410) + (if (pair? + lst_411) + (if (pair? + lst_412) + (pair? + lst_413) + #f) + #f) + #f) + (let-values (((ids_43) + (unsafe-car + lst_410)) + ((rest_240) + (unsafe-cdr + lst_410)) + ((keys_12) + (unsafe-car + lst_411)) + ((rest_241) + (unsafe-cdr + lst_411)) + ((rhs_23) + (unsafe-car + lst_412)) + ((rest_242) + (unsafe-cdr + lst_412)) + ((clause_4) + (unsafe-car + lst_413)) + ((rest_243) + (unsafe-cdr + lst_413))) + (let-values (((fold-var_365) + (let-values (((fold-var_366) + fold-var_364)) + (let-values (((fold-var_367) + (let-values () + (cons + (let-values () + (let-values ((() + (begin + (let-values (((obs_91) + (expand-context-observer + ctx_86))) + (if obs_91 + (let-values () + (let-values () + (call-expand-observe + obs_91 + 'next))) + (void))) + (values)))) + (let-values (((exp-rhs_4) + (let-values (((rhs188_0) + rhs_23) + ((temp189_3) + (if rec?_1 + (as-named-context + rec-ctx_0 + ids_43) + (as-named-context + expr-ctx_0 + ids_43)))) + (expand.1 + #f + #f + rhs188_0 + temp189_3)))) + (if (expand-context-to-parsed? + ctx_86) + (list + keys_12 + exp-rhs_4) + (datum->syntax$1 + #f + (list + ids_43 + exp-rhs_4) + clause_4 + clause_4))))) + fold-var_366)))) + (values + fold-var_367))))) + (if (not + #f) + (for-loop_169 + fold-var_365 + rest_240 + rest_241 + rest_242 + rest_243) + fold-var_365))) + fold-var_364))))) + for-loop_169) + null + lst_406 + lst_407 + lst_408 + lst_409)))))) + (let-values (((exp-body_4) + (get-body_1))) + (begin + (if frame-id_14 + (let-values () + (reference-record-clear! + frame-id_14)) + (void)) + (if (expand-context-to-parsed? + ctx_86) + (if rec?_1 + (parsed-letrec-values18.1 + rebuild-s_6 + val-name-idss_0 + clauses_1 + exp-body_4) + (parsed-let-values17.1 + rebuild-s_6 + val-name-idss_0 + clauses_1 + exp-body_4)) + (let-values (((rebuild-s190_0) + rebuild-s_6) + ((temp191_1) + (list* + letrec-values-id_0 + clauses_1 + exp-body_4))) + (rebuild.1 + #t + rebuild-s190_0 + temp191_1))))))) + (let-values () + (let-values (((val-idss192_0) + val-idss_2) + ((val-keyss193_0) + val-keyss_2) + ((val-rhss194_0) + val-rhss_2) + ((val-clauses195_0) + val-clauses_0) + ((temp196_0) + #t) + ((frame-id197_0) + frame-id_14) + ((rec-ctx198_0) + rec-ctx_0) + ((rebuild-s199_0) + rebuild-s_6) + ((syntaxes?200_0) + syntaxes?_0) + ((get-body201_0) + get-body_1) + ((temp202_0) + #t)) + (expand-and-split-bindings-by-reference.1 + rec-ctx198_0 + frame-id197_0 + get-body201_0 + syntaxes?200_0 + rebuild-s199_0 + temp196_0 + temp202_0 + val-idss192_0 + val-keyss193_0 + val-rhss194_0 + val-clauses195_0)))))) + (if (expand-context-to-parsed? + ctx_86) + result-s_13 + (attach-disappeared-transformer-bindings + result-s_13 + trans-idss_2)))))))))))))))))))))))))))))))))))))))))))) + (void + (add-core-form!* + 'let-values + (let-values (((temp203_3) 'prim-let-values)) (make-let-values-form.1 temp203_3 #f #f #f)))) + (void + (add-core-form!* + 'letrec-values + (let-values (((temp204_3) #t) ((temp205_1) 'prim-letrec-values)) + (make-let-values-form.1 temp205_1 temp204_3 #f #f)))) + (void + (add-core-form!* + 'letrec-syntaxes+values + (let-values (((temp206_1) #t) ((temp207_3) #t) ((temp208_2) #t) ((temp209_1) 'prim-letrec-syntaxes+values)) + (make-let-values-form.1 temp209_1 temp207_3 temp208_2 temp206_1)))) + (void + (add-core-form!* + '#%stratified-body + (lambda (s_607 ctx_87) + (let-values ((() + (begin + (let-values (((obs_92) (expand-context-observer ctx_87))) + (if obs_92 + (let-values () (let-values () (call-expand-observe obs_92 'prim-#%stratified s_607))) + (void))) + (values)))) + (let-values (((ok?_44 #%stratified-body210_0 body211_0) + (let-values (((s_608) s_607)) + (let-values (((orig-s_50) s_608)) + (let-values (((#%stratified-body210_1 body211_1) + (let-values (((s_609) (if (syntax?$1 s_608) (syntax-e$1 s_608) s_608))) + (if (pair? s_609) + (let-values (((#%stratified-body212_0) + (let-values (((s_610) (car s_609))) s_610)) + ((body213_0) + (let-values (((s_611) (cdr s_609))) + (let-values (((s_612) + (if (syntax?$1 s_611) + (syntax-e$1 s_611) + s_611))) + (let-values (((flat-s_42) (to-syntax-list.1 s_612))) + (if (not flat-s_42) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_50)) + (if (null? flat-s_42) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_50)) + (let-values () flat-s_42)))))))) + (values #%stratified-body212_0 body213_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_50))))) + (values #t #%stratified-body210_1 body211_1)))))) + (let-values (((rebuild-s_7) + (let-values (((ctx214_0) ctx_87) ((s215_0) s_607) ((temp216_2) #t)) + (keep-as-needed.1 #f temp216_2 #f ctx214_0 s215_0)))) + (let-values (((exp-body_5) + (let-values (((temp217_1) body211_0) + ((ctx218_0) ctx_87) + ((temp219_2) #t) + ((rebuild-s220_0) rebuild-s_7)) + (expand-body.1 rebuild-s220_0 temp219_2 temp217_1 ctx218_0)))) + (if (expand-context-to-parsed? ctx_87) + (parsed-begin12.1 rebuild-s_7 exp-body_5) + (let-values (((rebuild-s221_0) rebuild-s_7) + ((temp222_1) + (if (null? (cdr exp-body_5)) + (car exp-body_5) + (list* (core-id 'begin (expand-context-phase ctx_87)) exp-body_5)))) + (rebuild.1 #t rebuild-s221_0 temp222_1)))))))))) + (void + (add-core-form!* + '#%datum + (lambda (s_613 ctx_88) + (let-values ((() + (begin + (let-values (((obs_93) (expand-context-observer ctx_88))) + (if obs_93 + (let-values () (let-values () (call-expand-observe obs_93 'prim-#%datum s_613))) + (void))) + (values)))) + (let-values (((ok?_45 #%datum223_0 datum224_0) + (let-values (((s_614) s_613)) + (let-values (((orig-s_51) s_614)) + (let-values (((#%datum223_1 datum224_1) + (let-values (((s_615) (if (syntax?$1 s_614) (syntax-e$1 s_614) s_614))) + (if (pair? s_615) + (let-values (((#%datum225_0) (let-values (((s_616) (car s_615))) s_616)) + ((datum226_0) (let-values (((s_617) (cdr s_615))) s_617))) + (values #%datum225_0 datum226_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_51))))) + (values #t #%datum223_1 datum224_1)))))) + (let-values (((datum_4) datum224_0)) + (let-values ((() + (begin + (if (if (syntax?$1 datum_4) (keyword? (syntax-e$1 datum_4)) #f) + (let-values () + (raise-syntax-error$1 '#%datum "keyword misused as an expression" #f datum_4)) + (void)) + (values)))) + (let-values (((phase_148) (expand-context-phase ctx_88))) + (if (if (expand-context-to-parsed? ctx_88) (free-id-set-empty? (expand-context-stops ctx_88)) #f) + (parsed-quote14.1 (keep-properties-only~ s_613) (syntax->datum$1 datum_4)) + (syntax-track-origin$1 + (let-values (((s227_0) s_613) + ((temp228_2) (list (core-id 'quote phase_148) datum_4)) + ((temp229_0) #f)) + (rebuild.1 temp229_0 s227_0 temp228_2)) + s_613 + #%datum223_0)))))))))) + (void + (add-core-form!* + '#%app + (lambda (s_618 ctx_89) + (let-values ((() + (begin + (let-values (((obs_94) (expand-context-observer ctx_89))) + (if obs_94 + (let-values () (let-values () (call-expand-observe obs_94 'prim-#%app s_618))) + (void))) + (values)))) + (let-values (((ok?_46 #%app230_0 e231_0) + (let-values (((s_619) s_618)) + (let-values (((orig-s_52) s_619)) + (let-values (((#%app230_1 e231_1) + (let-values (((s_620) (if (syntax?$1 s_619) (syntax-e$1 s_619) s_619))) + (if (pair? s_620) + (let-values (((#%app232_0) (let-values (((s_621) (car s_620))) s_621)) + ((e233_0) + (let-values (((s_622) (cdr s_620))) + (let-values (((s_623) + (if (syntax?$1 s_622) + (syntax-e$1 s_622) + s_622))) + (let-values (((flat-s_43) (to-syntax-list.1 s_623))) + (if (not flat-s_43) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_52)) + (let-values () flat-s_43))))))) + (values #%app232_0 e233_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_52))))) + (values #t #%app230_1 e231_1)))))) + (let-values (((es_3) e231_0)) + (if (null? es_3) + (let-values () + (let-values (((phase_149) (expand-context-phase ctx_89))) + (if (expand-context-to-parsed? ctx_89) + (parsed-quote14.1 (keep-properties-only~ s_618) null) + (let-values (((s234_0) s_618) ((temp235_1) (list (core-id 'quote phase_149) null))) + (rebuild.1 #t s234_0 temp235_1))))) + (let-values () + (let-values (((keep-for-parsed?_1) keep-source-locations?)) + (let-values (((rebuild-s_8) + (let-values (((ctx236_0) ctx_89) + ((s237_0) s_618) + ((keep-for-parsed?238_0) keep-for-parsed?_1)) + (keep-as-needed.1 #f #f keep-for-parsed?238_0 ctx236_0 s237_0)))) + (let-values (((prefixless_0) (cdr (syntax-e$1 s_618)))) + (let-values (((rebuild-prefixless_0) + (if (syntax?$1 prefixless_0) + (let-values (((ctx239_0) ctx_89) + ((prefixless240_0) prefixless_0) + ((keep-for-parsed?241_0) keep-for-parsed?_1)) + (keep-as-needed.1 #f #f keep-for-parsed?241_0 ctx239_0 prefixless240_0)) + #f))) + (let-values (((expr-ctx_1) (as-expression-context ctx_89))) + (let-values ((() + (begin + (let-values (((obs_95) (expand-context-observer expr-ctx_1))) + (if obs_95 + (let-values () (let-values () (call-expand-observe obs_95 'next))) + (void))) + (values)))) + (let-values (((rest-es_0) (cdr es_3))) + (let-values (((exp-rator_0) + (let-values (((temp242_2) (car es_3)) ((expr-ctx243_0) expr-ctx_1)) + (expand.1 #f #f temp242_2 expr-ctx243_0)))) + (let-values (((exp-es_0) + (reverse$1 + (let-values (((lst_414) rest-es_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_414))) + ((letrec-values (((for-loop_342) + (lambda (fold-var_368 lst_415) + (begin + 'for-loop + (if (pair? lst_415) + (let-values (((e_101) (unsafe-car lst_415)) + ((rest_244) + (unsafe-cdr lst_415))) + (let-values (((fold-var_369) + (let-values (((fold-var_370) + fold-var_368)) + (let-values (((fold-var_371) + (let-values () + (cons + (let-values () + (begin + (let-values (((obs_96) + (expand-context-observer + expr-ctx_1))) + (if obs_96 + (let-values () + (let-values () + (call-expand-observe + obs_96 + 'next))) + (void))) + (let-values (((e244_0) + e_101) + ((expr-ctx245_0) + expr-ctx_1)) + (expand.1 + #f + #f + e244_0 + expr-ctx245_0)))) + fold-var_370)))) + (values fold-var_371))))) + (if (not #f) + (for-loop_342 fold-var_369 rest_244) + fold-var_369))) + fold-var_368))))) + for-loop_342) + null + lst_414)))))) + (if (expand-context-to-parsed? ctx_89) + (let-values () + (parsed-app7.1 + (let-values (((or-part_535) rebuild-prefixless_0)) + (if or-part_535 or-part_535 rebuild-s_8)) + exp-rator_0 + exp-es_0)) + (let-values () + (let-values (((es_4) + (let-values (((exp-es_1) (cons exp-rator_0 exp-es_0))) + (if rebuild-prefixless_0 + (let-values (((rebuild-prefixless248_0) rebuild-prefixless_0) + ((exp-es249_0) exp-es_1)) + (rebuild.1 #t rebuild-prefixless248_0 exp-es249_0)) + exp-es_1)))) + (let-values (((rebuild-s246_0) rebuild-s_8) ((temp247_1) (cons #%app230_0 es_4))) + (rebuild.1 #t rebuild-s246_0 temp247_1)))))))))))))))))))))) + (void + (add-core-form!* + 'quote + (lambda (s_624 ctx_90) + (let-values ((() + (begin + (let-values (((obs_97) (expand-context-observer ctx_90))) + (if obs_97 (let-values () (let-values () (call-expand-observe obs_97 'prim-quote #f))) (void))) + (values)))) + (let-values (((ok?_47 quote250_0 datum251_0) + (let-values (((s_625) s_624)) + (let-values (((orig-s_53) s_625)) + (let-values (((quote250_1 datum251_1) + (let-values (((s_626) (if (syntax?$1 s_625) (syntax-e$1 s_625) s_625))) + (if (pair? s_626) + (let-values (((quote252_0) (let-values (((s_627) (car s_626))) s_627)) + ((datum253_0) + (let-values (((s_628) (cdr s_626))) + (let-values (((s_629) + (if (syntax?$1 s_628) + (syntax-e$1 s_628) + s_628))) + (if (pair? s_629) + (let-values (((datum254_0) + (let-values (((s_630) (car s_629))) s_630)) + (() + (let-values (((s_631) (cdr s_629))) + (let-values (((s_632) + (if (syntax?$1 s_631) + (syntax-e$1 s_631) + s_631))) + (if (null? s_632) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_53)))))) + (values datum254_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_53)))))) + (values quote252_0 datum253_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_53))))) + (values #t quote250_1 datum251_1)))))) + (if (expand-context-to-parsed? ctx_90) + (parsed-quote14.1 (keep-properties-only~ s_624) (syntax->datum$1 datum251_0)) + s_624)))))) + (void + (add-core-form!* + 'quote-syntax + (lambda (s_633 ctx_91) + (let-values ((() + (begin + (let-values (((obs_98) (expand-context-observer ctx_91))) + (if obs_98 + (let-values () (let-values () (call-expand-observe obs_98 'prim-quote-syntax s_633))) + (void))) + (values)))) + (let-values (((ok?_48 quote-syntax255_0 datum256_0) + (let-values (((s_281) s_633)) + (if (let-values (((s_634) (if (syntax?$1 s_281) (syntax-e$1 s_281) s_281))) + (if (pair? s_634) + (if (let-values (((s_635) (car s_634))) #t) + (let-values (((s_636) (cdr s_634))) + (let-values (((s_637) (if (syntax?$1 s_636) (syntax-e$1 s_636) s_636))) + (if (pair? s_637) + (if (let-values (((s_638) (car s_637))) #t) + (let-values (((s_639) (cdr s_637))) + (let-values (((s_640) (if (syntax?$1 s_639) (syntax-e$1 s_639) s_639))) + (if (pair? s_640) + (if (let-values (((s_641) (car s_640))) + (let-values (((s_642) + (if (syntax?$1 s_641) (syntax-e$1 s_641) s_641))) + (eq? '#:local s_642))) + (let-values (((s_643) (cdr s_640))) + (let-values (((s_644) + (if (syntax?$1 s_643) (syntax-e$1 s_643) s_643))) + (null? s_644))) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((quote-syntax255_1 datum256_1) + (let-values (((s_645) (if (syntax?$1 s_281) (syntax-e$1 s_281) s_281))) + (let-values (((quote-syntax257_0) (let-values (((s_282) (car s_645))) s_282)) + ((datum258_0) + (let-values (((s_646) (cdr s_645))) + (let-values (((s_647) + (if (syntax?$1 s_646) + (syntax-e$1 s_646) + s_646))) + (let-values (((datum259_0) + (let-values (((s_283) (car s_647))) s_283)) + (() + (let-values (((s_648) (cdr s_647))) + (let-values (((s_649) + (if (syntax?$1 s_648) + (syntax-e$1 s_648) + s_648))) + (let-values ((() + (let-values (((s_284) + (car s_649))) + (let-values (((s_285) + (if (syntax?$1 + s_284) + (syntax-e$1 + s_284) + s_284))) + (values)))) + (() + (let-values (((s_286) + (cdr s_649))) + (let-values (((s_650) + (if (syntax?$1 + s_286) + (syntax-e$1 + s_286) + s_286))) + (values))))) + (values)))))) + (values datum259_0)))))) + (values quote-syntax257_0 datum258_0))))) + (values #t quote-syntax255_1 datum256_1))) + (values #f #f #f))))) + (let-values (((ok?_49 quote-syntax260_0 datum261_0) + (let-values (((s_651) s_633)) + (if (if (not ok?_48) #t #f) + (let-values (((orig-s_54) s_651)) + (let-values (((quote-syntax260_1 datum261_1) + (let-values (((s_652) (if (syntax?$1 s_651) (syntax-e$1 s_651) s_651))) + (if (pair? s_652) + (let-values (((quote-syntax262_0) + (let-values (((s_653) (car s_652))) s_653)) + ((datum263_0) + (let-values (((s_654) (cdr s_652))) + (let-values (((s_655) + (if (syntax?$1 s_654) + (syntax-e$1 s_654) + s_654))) + (if (pair? s_655) + (let-values (((datum264_0) + (let-values (((s_656) (car s_655))) + s_656)) + (() + (let-values (((s_657) (cdr s_655))) + (let-values (((s_658) + (if (syntax?$1 s_657) + (syntax-e$1 s_657) + s_657))) + (if (null? s_658) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_54)))))) + (values datum264_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_54)))))) + (values quote-syntax262_0 datum263_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_54))))) + (values #t quote-syntax260_1 datum261_1))) + (values #f #f #f))))) + (if ok?_48 + (let-values () + (let-values ((() + (begin (reference-records-all-used! (expand-context-reference-records ctx_91)) (values)))) + (let-values (((ok?_50 _265_0 _266_0 kw267_0) + (let-values (((s_659) s_633)) + (let-values (((orig-s_55) s_659)) + (let-values (((_265_1 _266_1 kw267_1) + (let-values (((s_660) (if (syntax?$1 s_659) (syntax-e$1 s_659) s_659))) + (if (pair? s_660) + (let-values (((_268_0) (let-values (((s_292) (car s_660))) s_292)) + ((_269_0 kw270_0) + (let-values (((s_661) (cdr s_660))) + (let-values (((s_662) + (if (syntax?$1 s_661) + (syntax-e$1 s_661) + s_661))) + (if (pair? s_662) + (let-values (((_271_0) + (let-values (((s_663) + (car s_662))) + s_663)) + ((kw272_0) + (let-values (((s_664) + (cdr s_662))) + (let-values (((s_294) + (if (syntax?$1 + s_664) + (syntax-e$1 + s_664) + s_664))) + (if (pair? s_294) + (let-values (((kw273_0) + (let-values (((s_296) + (car + s_294))) + s_296)) + (() + (let-values (((s_665) + (cdr + s_294))) + (let-values (((s_666) + (if (syntax?$1 + s_665) + (syntax-e$1 + s_665) + s_665))) + (if (null? + s_666) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_55)))))) + (values kw273_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_55)))))) + (values _271_0 kw272_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_55)))))) + (values _268_0 _269_0 kw270_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_55))))) + (values #t _265_1 _266_1 kw267_1)))))) + (if (expand-context-to-parsed? ctx_91) + (parsed-quote-syntax15.1 (keep-properties-only~ s_633) datum256_0) + (let-values (((s274_0) s_633) ((temp275_1) (list quote-syntax255_0 datum256_0 kw267_0))) + (rebuild.1 #t s274_0 temp275_1)))))) + (let-values () + (let-values (((use-site-scopes_3) (root-expand-context-use-site-scopes ctx_91))) + (let-values (((datum-s_0) + (remove-scopes + (remove-scopes datum261_0 (expand-context-scopes ctx_91)) + (if use-site-scopes_3 (unbox use-site-scopes_3) '())))) + (if (if (expand-context-to-parsed? ctx_91) (free-id-set-empty? (expand-context-stops ctx_91)) #f) + (parsed-quote-syntax15.1 (keep-properties-only~ s_633) datum-s_0) + (let-values (((s276_0) s_633) ((temp277_1) (list quote-syntax260_0 datum-s_0))) + (rebuild.1 #t s276_0 temp277_1))))))))))))) + (void + (add-core-form!* + 'if + (lambda (s_667 ctx_92) + (let-values ((() + (begin + (let-values (((obs_99) (expand-context-observer ctx_92))) + (if obs_99 (let-values () (let-values () (call-expand-observe obs_99 'prim-if s_667))) (void))) + (values)))) + (let-values (((ok?_51 _278_0 _279_0 _280_0) + (let-values (((s_668) s_667)) + (if (let-values (((s_669) (if (syntax?$1 s_668) (syntax-e$1 s_668) s_668))) + (if (pair? s_669) + (if (let-values (((s_670) (car s_669))) #t) + (let-values (((s_671) (cdr s_669))) + (let-values (((s_672) (if (syntax?$1 s_671) (syntax-e$1 s_671) s_671))) + (if (pair? s_672) + (if (let-values (((s_673) (car s_672))) #t) + (let-values (((s_674) (cdr s_672))) + (let-values (((s_675) (if (syntax?$1 s_674) (syntax-e$1 s_674) s_674))) + (if (pair? s_675) + (if (let-values (((s_676) (car s_675))) #t) + (let-values (((s_677) (cdr s_675))) + (let-values (((s_678) + (if (syntax?$1 s_677) (syntax-e$1 s_677) s_677))) + (null? s_678))) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((_278_1 _279_1 _280_1) + (let-values (((s_679) (if (syntax?$1 s_668) (syntax-e$1 s_668) s_668))) + (let-values (((_281_0) (let-values (((s_680) (car s_679))) s_680)) + ((_282_0 _283_0) + (let-values (((s_681) (cdr s_679))) + (let-values (((s_682) + (if (syntax?$1 s_681) + (syntax-e$1 s_681) + s_681))) + (let-values (((_284_0) + (let-values (((s_683) (car s_682))) s_683)) + ((_285_0) + (let-values (((s_684) (cdr s_682))) + (let-values (((s_685) + (if (syntax?$1 s_684) + (syntax-e$1 s_684) + s_684))) + (let-values (((_286_0) + (let-values (((s_686) + (car s_685))) + s_686)) + (() + (let-values (((s_687) + (cdr s_685))) + (let-values (((s_688) + (if (syntax?$1 + s_687) + (syntax-e$1 + s_687) + s_687))) + (values))))) + (values _286_0)))))) + (values _284_0 _285_0)))))) + (values _281_0 _282_0 _283_0))))) + (values #t _278_1 _279_1 _280_1))) + (values #f #f #f #f))))) + (let-values ((() + (begin + (if ok?_51 + (let-values () (raise-syntax-error$1 #f "missing an \"else\" expression" s_667)) + (void)) + (values)))) + (let-values (((ok?_52 if287_0 tst288_0 thn289_0 els290_0) + (let-values (((s_689) s_667)) + (let-values (((orig-s_56) s_689)) + (let-values (((if287_1 tst288_1 thn289_1 els290_1) + (let-values (((s_690) (if (syntax?$1 s_689) (syntax-e$1 s_689) s_689))) + (if (pair? s_690) + (let-values (((if291_0) (let-values (((s_691) (car s_690))) s_691)) + ((tst292_0 thn293_0 els294_0) + (let-values (((s_692) (cdr s_690))) + (let-values (((s_693) + (if (syntax?$1 s_692) + (syntax-e$1 s_692) + s_692))) + (if (pair? s_693) + (let-values (((tst295_0) + (let-values (((s_694) (car s_693))) + s_694)) + ((thn296_0 els297_0) + (let-values (((s_695) (cdr s_693))) + (let-values (((s_696) + (if (syntax?$1 s_695) + (syntax-e$1 s_695) + s_695))) + (if (pair? s_696) + (let-values (((thn298_0) + (let-values (((s_697) + (car + s_696))) + s_697)) + ((els299_0) + (let-values (((s_698) + (cdr + s_696))) + (let-values (((s_699) + (if (syntax?$1 + s_698) + (syntax-e$1 + s_698) + s_698))) + (if (pair? + s_699) + (let-values (((els300_0) + (let-values (((s_700) + (car + s_699))) + s_700)) + (() + (let-values (((s_701) + (cdr + s_699))) + (let-values (((s_702) + (if (syntax?$1 + s_701) + (syntax-e$1 + s_701) + s_701))) + (if (null? + s_702) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_56)))))) + (values + els300_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_56)))))) + (values thn298_0 els299_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_56)))))) + (values tst295_0 thn296_0 els297_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_56)))))) + (values if291_0 tst292_0 thn293_0 els294_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_56))))) + (values #t if287_1 tst288_1 thn289_1 els290_1)))))) + (let-values (((expr-ctx_2) (as-expression-context ctx_92))) + (let-values (((tail-ctx_0) + (let-values (((expr-ctx301_0) expr-ctx_2) ((ctx302_0) ctx_92)) + (as-tail-context.1 ctx302_0 expr-ctx301_0)))) + (let-values (((rebuild-s_9) + (let-values (((ctx303_0) ctx_92) ((s304_0) s_667)) + (keep-as-needed.1 #f #f #f ctx303_0 s304_0)))) + (let-values (((exp-tst_0) + (let-values (((temp305_1) tst288_0) ((expr-ctx306_0) expr-ctx_2)) + (expand.1 #f #f temp305_1 expr-ctx306_0)))) + (let-values ((() + (begin + (let-values (((obs_100) (expand-context-observer ctx_92))) + (if obs_100 + (let-values () (let-values () (call-expand-observe obs_100 'next))) + (void))) + (values)))) + (let-values (((exp-thn_0) + (let-values (((temp307_0) thn289_0) ((tail-ctx308_0) tail-ctx_0)) + (expand.1 #f #f temp307_0 tail-ctx308_0)))) + (let-values ((() + (begin + (let-values (((obs_101) (expand-context-observer ctx_92))) + (if obs_101 + (let-values () (let-values () (call-expand-observe obs_101 'next))) + (void))) + (values)))) + (let-values (((exp-els_0) + (let-values (((temp309_1) els290_0) ((tail-ctx310_0) tail-ctx_0)) + (expand.1 #f #f temp309_1 tail-ctx310_0)))) + (if (expand-context-to-parsed? ctx_92) + (parsed-if8.1 rebuild-s_9 exp-tst_0 exp-thn_0 exp-els_0) + (let-values (((rebuild-s311_0) rebuild-s_9) + ((temp312_0) (list if287_0 exp-tst_0 exp-thn_0 exp-els_0))) + (rebuild.1 #t rebuild-s311_0 temp312_0)))))))))))))))))) + (void + (add-core-form!* + 'with-continuation-mark + (lambda (s_703 ctx_93) + (let-values ((() + (begin + (let-values (((obs_102) (expand-context-observer ctx_93))) + (if obs_102 + (let-values () + (let-values () (call-expand-observe obs_102 'prim-with-continuation-mark s_703))) + (void))) + (values)))) + (let-values (((ok?_53 with-continuation-mark313_0 key314_0 val315_0 body316_0) + (let-values (((s_704) s_703)) + (let-values (((orig-s_57) s_704)) + (let-values (((with-continuation-mark313_1 key314_1 val315_1 body316_1) + (let-values (((s_705) (if (syntax?$1 s_704) (syntax-e$1 s_704) s_704))) + (if (pair? s_705) + (let-values (((with-continuation-mark317_0) + (let-values (((s_706) (car s_705))) s_706)) + ((key318_0 val319_0 body320_0) + (let-values (((s_707) (cdr s_705))) + (let-values (((s_708) + (if (syntax?$1 s_707) + (syntax-e$1 s_707) + s_707))) + (if (pair? s_708) + (let-values (((key321_0) + (let-values (((s_709) (car s_708))) s_709)) + ((val322_0 body323_0) + (let-values (((s_710) (cdr s_708))) + (let-values (((s_711) + (if (syntax?$1 s_710) + (syntax-e$1 s_710) + s_710))) + (if (pair? s_711) + (let-values (((val324_0) + (let-values (((s_712) + (car + s_711))) + s_712)) + ((body325_0) + (let-values (((s_713) + (cdr + s_711))) + (let-values (((s_714) + (if (syntax?$1 + s_713) + (syntax-e$1 + s_713) + s_713))) + (if (pair? s_714) + (let-values (((body326_0) + (let-values (((s_715) + (car + s_714))) + s_715)) + (() + (let-values (((s_716) + (cdr + s_714))) + (let-values (((s_717) + (if (syntax?$1 + s_716) + (syntax-e$1 + s_716) + s_716))) + (if (null? + s_717) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_57)))))) + (values + body326_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_57)))))) + (values val324_0 body325_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_57)))))) + (values key321_0 val322_0 body323_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_57)))))) + (values with-continuation-mark317_0 key318_0 val319_0 body320_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_57))))) + (values #t with-continuation-mark313_1 key314_1 val315_1 body316_1)))))) + (let-values (((expr-ctx_3) (as-expression-context ctx_93))) + (let-values (((rebuild-s_10) + (let-values (((ctx327_0) ctx_93) ((s328_0) s_703)) + (keep-as-needed.1 #f #f #f ctx327_0 s328_0)))) + (let-values (((exp-key_0) + (let-values (((temp329_0) key314_0) ((expr-ctx330_0) expr-ctx_3)) + (expand.1 #f #f temp329_0 expr-ctx330_0)))) + (let-values ((() + (begin + (let-values (((obs_103) (expand-context-observer ctx_93))) + (if obs_103 + (let-values () (let-values () (call-expand-observe obs_103 'next))) + (void))) + (values)))) + (let-values (((exp-val_0) + (let-values (((temp331_0) val315_0) ((expr-ctx332_0) expr-ctx_3)) + (expand.1 #f #f temp331_0 expr-ctx332_0)))) + (let-values ((() + (begin + (let-values (((obs_104) (expand-context-observer ctx_93))) + (if obs_104 + (let-values () (let-values () (call-expand-observe obs_104 'next))) + (void))) + (values)))) + (let-values (((exp-body_6) + (let-values (((temp333_0) body316_0) + ((temp334_0) + (let-values (((expr-ctx335_0) expr-ctx_3) ((ctx336_0) ctx_93)) + (as-tail-context.1 ctx336_0 expr-ctx335_0)))) + (expand.1 #f #f temp333_0 temp334_0)))) + (if (expand-context-to-parsed? ctx_93) + (parsed-with-continuation-mark10.1 rebuild-s_10 exp-key_0 exp-val_0 exp-body_6) + (let-values (((rebuild-s337_0) rebuild-s_10) + ((temp338_0) (list with-continuation-mark313_0 exp-key_0 exp-val_0 exp-body_6))) + (rebuild.1 #t rebuild-s337_0 temp338_0))))))))))))))) + (define-values + (make-begin.1) + (lambda (last-is-tail?10_0 log-tag12_0 parsed-begin13_0) + (begin + 'make-begin + (let-values (((log-tag_2) log-tag12_0)) + (let-values (((parsed-begin_0) parsed-begin13_0)) + (let-values (((last-is-tail?_0) last-is-tail?10_0)) + (let-values () + (lambda (s_718 ctx_94) + (let-values ((() + (begin + (let-values (((obs_105) (expand-context-observer ctx_94))) + (if obs_105 + (let-values () (let-values () (call-expand-observe obs_105 log-tag_2 s_718))) + (void))) + (values)))) + (let-values (((ok?_54 begin339_0 e340_0) + (let-values (((s_719) s_718)) + (let-values (((orig-s_58) s_719)) + (let-values (((begin339_1 e340_1) + (let-values (((s_720) + (if (syntax?$1 s_719) (syntax-e$1 s_719) s_719))) + (if (pair? s_720) + (let-values (((begin341_0) + (let-values (((s_721) (car s_720))) s_721)) + ((e342_0) + (let-values (((s_722) (cdr s_720))) + (let-values (((s_723) + (if (syntax?$1 s_722) + (syntax-e$1 s_722) + s_722))) + (let-values (((flat-s_44) + (to-syntax-list.1 s_723))) + (if (not flat-s_44) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_58)) + (if (null? flat-s_44) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_58)) + (let-values () flat-s_44)))))))) + (values begin341_0 e342_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_58))))) + (values #t begin339_1 e340_1)))))) + (let-values (((expr-ctx_4) + (if last-is-tail?_0 + (as-begin-expression-context ctx_94) + (as-expression-context ctx_94)))) + (let-values (((rebuild-s_11) + (let-values (((ctx343_0) ctx_94) ((s344_0) s_718)) + (keep-as-needed.1 #f #f #f ctx343_0 s344_0)))) + (let-values (((exp-es_2) + ((letrec-values (((loop_136) + (lambda (es_5) + (begin + 'loop + (if (null? es_5) + (let-values () null) + (let-values () + (let-values (((rest-es_1) (cdr es_5))) + (begin + (let-values (((obs_106) + (expand-context-observer ctx_94))) + (if obs_106 + (let-values () + (let-values () + (call-expand-observe obs_106 'next))) + (void))) + (cons + (let-values (((temp345_0) (car es_5)) + ((temp346_0) + (if (if last-is-tail?_0 + (null? rest-es_1) + #f) + (let-values (((expr-ctx347_0) + expr-ctx_4) + ((ctx348_0) ctx_94)) + (as-tail-context.1 + ctx348_0 + expr-ctx347_0)) + expr-ctx_4))) + (expand.1 #f #f temp345_0 temp346_0)) + (loop_136 rest-es_1)))))))))) + loop_136) + e340_0))) + (if (expand-context-to-parsed? ctx_94) + (parsed-begin_0 rebuild-s_11 exp-es_2) + (let-values (((rebuild-s349_0) rebuild-s_11) ((temp350_0) (cons begin339_0 exp-es_2))) + (rebuild.1 #t rebuild-s349_0 temp350_0)))))))))))))))) + (void + (add-core-form!* + 'begin + (let-values (((nonempty-begin_0) + (let-values (((temp351_0) 'prim-begin) ((parsed-begin352_0) parsed-begin12.1) ((temp353_0) #t)) + (make-begin.1 temp353_0 temp351_0 parsed-begin352_0)))) + (lambda (s_724 ctx_95) + (let-values (((context_27) (expand-context-context ctx_95))) + (if (let-values (((or-part_536) (eq? context_27 'top-level))) + (if or-part_536 or-part_536 (eq? context_27 'module))) + (let-values () + (let-values (((ok?_55 begin354_0) + (let-values (((s_725) s_724)) + (if (let-values (((s_726) (if (syntax?$1 s_725) (syntax-e$1 s_725) s_725))) + (if (pair? s_726) + (if (let-values (((s_727) (car s_726))) #t) + (let-values (((s_728) (cdr s_726))) + (let-values (((s_729) (if (syntax?$1 s_728) (syntax-e$1 s_728) s_728))) + (null? s_729))) + #f) + #f)) + (let-values () + (let-values (((begin354_1) + (let-values (((s_730) (if (syntax?$1 s_725) (syntax-e$1 s_725) s_725))) + (let-values (((begin355_0) (let-values (((s_731) (car s_730))) s_731)) + (() + (let-values (((s_732) (cdr s_730))) + (let-values (((s_733) + (if (syntax?$1 s_732) + (syntax-e$1 s_732) + s_732))) + (values))))) + (values begin355_0))))) + (values #t begin354_1))) + (values #f #f))))) + (if ok?_55 + (if (expand-context-to-parsed? ctx_95) + (parsed-begin12.1 + (let-values (((ctx356_0) ctx_95) ((s357_0) s_724)) (keep-as-needed.1 #f #f #f ctx356_0 s357_0)) + '()) + s_724) + (nonempty-begin_0 s_724 ctx_95)))) + (let-values () (nonempty-begin_0 s_724 ctx_95)))))))) + (void + (add-core-form!* + 'begin0 + (let-values (((temp358_1) 'prim-begin0) ((parsed-begin0359_0) parsed-begin013.1) ((temp360_0) #f)) + (make-begin.1 temp360_0 temp358_1 parsed-begin0359_0)))) + (define-values + (register-eventual-variable!?) + (lambda (id_133 ctx_96) + (begin + (if (if (expand-context-need-eventually-defined ctx_96) (>= (expand-context-phase ctx_96) 1) #f) + (let-values () + (begin + (hash-update! + (expand-context-need-eventually-defined ctx_96) + (expand-context-phase ctx_96) + (lambda (l_79) (cons id_133 l_79)) + null) + #t)) + (let-values () #f))))) + (define-values + (check-top-binding-is-variable) + (lambda (ctx_97 b_109 id_134 s_734) + (begin + (let-values (((t_36 primitive?_12 insp-of-t_10 protected?_14) + (let-values (((b361_0) b_109) + ((ctx362_0) ctx_97) + ((id363_0) id_134) + ((s364_0) s_734) + ((temp365_0) (expand-context-in-local-expand? ctx_97))) + (lookup.1 s364_0 temp365_0 b361_0 ctx362_0 id363_0)))) + (begin + (if (variable? t_36) + (void) + (let-values () (raise-syntax-error$1 #f "identifier does not refer to a variable" id_134 s_734))) + primitive?_12))))) + (void + (add-core-form!* + '#%top + (let-values (((...nder/expand/expr.rkt:601:1_0) + (lambda (s367_0 ctx368_0 implicit-omitted?366_0) + (begin + '...nder/expand/expr.rkt:601:1 + (let-values (((s_735) s367_0)) + (let-values (((ctx_98) ctx368_0)) + (let-values (((implicit-omitted?_0) implicit-omitted?366_0)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_107) (expand-context-observer ctx_98))) + (if obs_107 + (let-values () + (let-values () (call-expand-observe obs_107 'prim-#%top s_735))) + (void))) + (values)))) + (let-values (((id_135) + (if implicit-omitted?_0 + (let-values () s_735) + (let-values () + (let-values (((ok?_56 #%top369_0 id370_0) + (let-values (((s_736) s_735)) + (let-values (((orig-s_59) s_736)) + (let-values (((#%top369_1 id370_1) + (let-values (((s_737) + (if (syntax?$1 s_736) + (syntax-e$1 s_736) + s_736))) + (if (pair? s_737) + (let-values (((#%top371_0) + (let-values (((s_738) + (car + s_737))) + s_738)) + ((id372_0) + (let-values (((s_739) + (cdr + s_737))) + (if (let-values (((or-part_537) + (if (syntax?$1 + s_739) + (symbol? + (syntax-e$1 + s_739)) + #f))) + (if or-part_537 + or-part_537 + (symbol? + s_739))) + s_739 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_59 + s_739))))) + (values #%top371_0 id372_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_59))))) + (values #t #%top369_1 id370_1)))))) + id370_0))))) + (let-values (((b_110) + (let-values (((id373_0) id_135) + ((temp374_0) (expand-context-phase ctx_98)) + ((temp375_0) 'ambiguous)) + (resolve+shift.1 + temp375_0 + #f + null + unsafe-undefined + #f + id373_0 + temp374_0)))) + (if (eq? b_110 'ambiguous) + (let-values () (raise-ambiguous-error id_135 ctx_98)) + (if (if b_110 + (if (module-binding? b_110) + (eq? (module-binding-module b_110) (root-expand-context-self-mpi ctx_98)) + #f) + #f) + (let-values () + (begin + (if (expand-context-allow-unbound? ctx_98) + (void) + (let-values () (check-top-binding-is-variable ctx_98 b_110 id_135 s_735))) + (if (expand-context-to-parsed? ctx_98) + (parsed-id2.1 id_135 b_110 #f) + (if (top-level-module-path-index? (module-binding-module b_110)) + (let-values () s_735) + (let-values () id_135))))) + (if (local-binding? b_110) + (let-values () + (raise-unbound-syntax-error + #f + "unbound identifier" + id_135 + #f + null + (syntax-debug-info-string id_135 ctx_98))) + (if (register-eventual-variable!? id_135 ctx_98) + (let-values () + (if (expand-context-to-parsed? ctx_98) + (parsed-id2.1 id_135 b_110 #f) + id_135)) + (let-values () + (if (not (expand-context-allow-unbound? ctx_98)) + (let-values () + (raise-unbound-syntax-error + #f + "unbound identifier" + id_135 + #f + null + (syntax-debug-info-string id_135 ctx_98))) + (let-values () + (let-values (((tl-id_1) + (add-scope + id_135 + (root-expand-context-top-level-bind-scope ctx_98)))) + (let-values (((tl-b_1) + (let-values (((tl-id376_0) tl-id_1) + ((temp377_0) + (expand-context-phase ctx_98))) + (resolve.1 #f #f null #f tl-id376_0 temp377_0)))) + (if tl-b_1 + (let-values () + (if (expand-context-to-parsed? ctx_98) + (parsed-top-id4.1 tl-id_1 tl-b_1 #f) + (if implicit-omitted?_0 + (let-values () id_135) + (let-values () + (let-values (((ok?_57 #%top378_0 id379_0) + (let-values (((s_740) s_735)) + (let-values (((orig-s_60) s_740)) + (let-values (((#%top378_1 id379_1) + (let-values (((s_741) + (if (syntax?$1 + s_740) + (syntax-e$1 + s_740) + s_740))) + (if (pair? s_741) + (let-values (((#%top380_0) + (let-values (((s_742) + (car + s_741))) + s_742)) + ((id381_0) + (let-values (((s_743) + (cdr + s_741))) + (if (let-values (((or-part_538) + (if (syntax?$1 + s_743) + (symbol? + (syntax-e$1 + s_743)) + #f))) + (if or-part_538 + or-part_538 + (symbol? + s_743))) + s_743 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_60 + s_743))))) + (values + #%top380_0 + id381_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_60))))) + (values #t #%top378_1 id379_1)))))) + (let-values (((s382_0) s_735) + ((temp383_0) (cons #%top378_0 id_135))) + (rebuild.1 #t s382_0 temp383_0))))))) + (let-values () + (if (expand-context-to-parsed? ctx_98) + (parsed-top-id4.1 id_135 b_110 #f) + s_735))))))))))))))))))))))) + (case-lambda + ((s_744 ctx_99) (begin '...nder/expand/expr.rkt:601:1 (...nder/expand/expr.rkt:601:1_0 s_744 ctx_99 #f))) + ((s_745 ctx_100 implicit-omitted?366_1) + (...nder/expand/expr.rkt:601:1_0 s_745 ctx_100 implicit-omitted?366_1)))))) + (void + (add-core-form!* + 'set! + (lambda (s_746 ctx_101) + (let-values ((() + (begin + (let-values (((obs_108) (expand-context-observer ctx_101))) + (if obs_108 + (let-values () (let-values () (call-expand-observe obs_108 'prim-set! s_746))) + (void))) + (values)))) + (let-values (((ok?_58 set!384_0 id385_0 rhs386_0) + (let-values (((s_747) s_746)) + (let-values (((orig-s_61) s_747)) + (let-values (((set!384_1 id385_1 rhs386_1) + (let-values (((s_748) (if (syntax?$1 s_747) (syntax-e$1 s_747) s_747))) + (if (pair? s_748) + (let-values (((set!387_0) (let-values (((s_749) (car s_748))) s_749)) + ((id388_0 rhs389_0) + (let-values (((s_750) (cdr s_748))) + (let-values (((s_751) + (if (syntax?$1 s_750) + (syntax-e$1 s_750) + s_750))) + (if (pair? s_751) + (let-values (((id390_0) + (let-values (((s_752) (car s_751))) + (if (let-values (((or-part_539) + (if (syntax?$1 s_752) + (symbol? + (syntax-e$1 s_752)) + #f))) + (if or-part_539 + or-part_539 + (symbol? s_752))) + s_752 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_61 + s_752)))) + ((rhs391_0) + (let-values (((s_753) (cdr s_751))) + (let-values (((s_754) + (if (syntax?$1 s_753) + (syntax-e$1 s_753) + s_753))) + (if (pair? s_754) + (let-values (((rhs392_0) + (let-values (((s_755) + (car + s_754))) + s_755)) + (() + (let-values (((s_756) + (cdr + s_754))) + (let-values (((s_757) + (if (syntax?$1 + s_756) + (syntax-e$1 + s_756) + s_756))) + (if (null? s_757) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_61)))))) + (values rhs392_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_61)))))) + (values id390_0 rhs391_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_61)))))) + (values set!387_0 id388_0 rhs389_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_61))))) + (values #t set!384_1 id385_1 rhs386_1)))))) + (let-values (((orig-id_1) id385_0)) + ((letrec-values (((rename-loop_0) + (lambda (id_136 from-rename?_0) + (begin + 'rename-loop + (let-values (((binding_31) + (let-values (((id393_0) id_136) + ((temp394_0) (expand-context-phase ctx_101)) + ((temp395_0) 'ambiguous) + ((temp396_0) #t)) + (resolve+shift.1 temp395_0 #f null temp396_0 #f id393_0 temp394_0)))) + (let-values ((() + (begin + (if (eq? binding_31 'ambiguous) + (let-values () (raise-ambiguous-error id_136 ctx_101)) + (void)) + (values)))) + (let-values (((t_37 primitive?_13 insp_30 protected?_15) + (if binding_31 + (let-values (((binding397_0) binding_31) + ((ctx398_0) ctx_101) + ((s399_0) s_746)) + (lookup.1 #f #f binding397_0 ctx398_0 s399_0)) + (values #f #f #f #f)))) + (begin + (let-values (((obs_109) (expand-context-observer ctx_101))) + (if obs_109 + (let-values () + (let-values () (call-expand-observe obs_109 'resolve id_136))) + (void))) + (if (let-values (((or-part_540) (variable? t_37))) + (if or-part_540 + or-part_540 + (if (not binding_31) + (let-values (((or-part_541) + (register-eventual-variable!? id_136 ctx_101))) + (if or-part_541 + or-part_541 + (expand-context-allow-unbound? ctx_101))) + #f))) + (let-values () + (let-values ((() + (begin + (if (if (module-binding? binding_31) + (not + (inside-module-context? + (module-binding-module binding_31) + (root-expand-context-self-mpi ctx_101))) + #f) + (let-values () + (raise-syntax-error$1 + #f + "cannot mutate module-required identifier" + s_746 + id_136)) + (void)) + (values)))) + (let-values ((() + (begin + (let-values (((obs_110) + (expand-context-observer ctx_101))) + (if obs_110 + (let-values () + (let-values () + (call-expand-observe obs_110 'next))) + (void))) + (values)))) + (let-values ((() + (begin + (register-variable-referenced-if-local! + binding_31 + ctx_101) + (values)))) + (let-values (((rebuild-s_12) + (let-values (((ctx400_0) ctx_101) ((s401_0) s_746)) + (keep-as-needed.1 #f #f #f ctx400_0 s401_0)))) + (let-values (((exp-rhs_5) + (let-values (((temp402_0) rhs386_0) + ((temp403_0) + (as-expression-context ctx_101))) + (expand.1 #f #f temp402_0 temp403_0)))) + (if (expand-context-to-parsed? ctx_101) + (parsed-set!9.1 + rebuild-s_12 + (parsed-id2.1 id_136 binding_31 #f) + exp-rhs_5) + (let-values (((rebuild-s404_0) rebuild-s_12) + ((temp405_0) + (list + set!384_0 + (let-values (((id406_0) id_136) + ((t407_0) t_37) + ((temp408_0) + (free-id-set-empty-or-just-module*? + (expand-context-stops ctx_101)))) + (substitute-variable.1 + temp408_0 + id406_0 + t407_0)) + exp-rhs_5))) + (rebuild.1 #t rebuild-s404_0 temp405_0))))))))) + (if (not binding_31) + (let-values () + (raise-unbound-syntax-error + #f + "unbound identifier" + s_746 + id_136 + null + (syntax-debug-info-string id_136 ctx_101))) + (if (1/set!-transformer? t_37) + (let-values () + (if (not-in-this-expand-context? t_37 ctx_101) + (let-values () + (let-values (((temp409_0) + (avoid-current-expand-context + (substitute-set!-rename + s_746 + set!384_0 + rhs386_0 + id_136 + from-rename?_0 + ctx_101) + t_37 + ctx_101)) + ((ctx410_0) ctx_101)) + (expand.1 #f #f temp409_0 ctx410_0))) + (let-values () + (let-values (((exp-s_19 re-ctx_1) + (let-values (((t411_0) t_37) + ((insp412_0) insp_30) + ((s413_0) s_746) + ((orig-id414_0) orig-id_1) + ((ctx415_0) ctx_101) + ((binding416_0) binding_31) + ((orig-id417_0) orig-id_1)) + (apply-transformer.1 + orig-id417_0 + t411_0 + insp412_0 + s413_0 + orig-id414_0 + ctx415_0 + binding416_0)))) + (if (expand-context-just-once? ctx_101) + (let-values () exp-s_19) + (let-values () + (let-values (((exp-s418_0) exp-s_19) + ((re-ctx419_0) re-ctx_1)) + (expand.1 #f #f exp-s418_0 re-ctx419_0)))))))) + (if (1/rename-transformer? t_37) + (let-values () + (if (not-in-this-expand-context? t_37 ctx_101) + (let-values () + (let-values (((temp420_0) + (avoid-current-expand-context + (substitute-set!-rename + s_746 + set!384_0 + rhs386_0 + id_136 + from-rename?_0 + ctx_101) + t_37 + ctx_101)) + ((ctx421_0) ctx_101)) + (expand.1 #f #f temp420_0 ctx421_0))) + (let-values () + (rename-loop_0 + (apply-rename-transformer t_37 id_136 ctx_101) + #t)))) + (let-values () + (raise-syntax-error$1 + #f + "cannot mutate syntax identifier" + s_746 + id_136)))))))))))))) + rename-loop_0) + orig-id_1 + #f))))))) + (define-values + (substitute-set!-rename) + (lambda (s_758 set!-id_0 id_137 rhs-s_0 from-rename?_1 ctx_102) + (begin + (if from-rename?_1 + (let-values () (datum->syntax$1 s_758 (list set!-id_0 id_137 rhs-s_0) s_758 s_758)) + (let-values () s_758))))) + (void + (add-core-form!* + '#%variable-reference + (lambda (s_759 ctx_103) + (let-values ((() + (begin + (let-values (((obs_111) (expand-context-observer ctx_103))) + (if obs_111 + (let-values () (let-values () (call-expand-observe obs_111 'prim-#%variable-reference s_759))) + (void))) + (values)))) + (let-values (((ok?_59 #%variable-reference422_0 id423_0) + (let-values (((s_760) s_759)) + (if (let-values (((s_761) (if (syntax?$1 s_760) (syntax-e$1 s_760) s_760))) + (if (pair? s_761) + (if (let-values (((s_762) (car s_761))) #t) + (let-values (((s_763) (cdr s_761))) + (let-values (((s_764) (if (syntax?$1 s_763) (syntax-e$1 s_763) s_763))) + (if (pair? s_764) + (if (let-values (((s_765) (car s_764))) + (let-values (((or-part_542) + (if (syntax?$1 s_765) (symbol? (syntax-e$1 s_765)) #f))) + (if or-part_542 or-part_542 (symbol? s_765)))) + (let-values (((s_766) (cdr s_764))) + (let-values (((s_767) (if (syntax?$1 s_766) (syntax-e$1 s_766) s_766))) + (null? s_767))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((#%variable-reference422_1 id423_1) + (let-values (((s_768) (if (syntax?$1 s_760) (syntax-e$1 s_760) s_760))) + (let-values (((#%variable-reference424_0) + (let-values (((s_769) (car s_768))) s_769)) + ((id425_0) + (let-values (((s_770) (cdr s_768))) + (let-values (((s_771) + (if (syntax?$1 s_770) + (syntax-e$1 s_770) + s_770))) + (let-values (((id426_0) + (let-values (((s_772) (car s_771))) s_772)) + (() + (let-values (((s_773) (cdr s_771))) + (let-values (((s_774) + (if (syntax?$1 s_773) + (syntax-e$1 s_773) + s_773))) + (values))))) + (values id426_0)))))) + (values #%variable-reference424_0 id425_0))))) + (values #t #%variable-reference422_1 id423_1))) + (values #f #f #f))))) + (let-values (((ok?_60 #%variable-reference427_0 #%top428_0 id429_0) + (let-values (((s_775) s_759)) + (if (if (not ok?_59) + (let-values (((s_776) (if (syntax?$1 s_775) (syntax-e$1 s_775) s_775))) + (if (pair? s_776) + (if (let-values (((s_777) (car s_776))) #t) + (let-values (((s_778) (cdr s_776))) + (let-values (((s_779) (if (syntax?$1 s_778) (syntax-e$1 s_778) s_778))) + (if (pair? s_779) + (if (let-values (((s_780) (car s_779))) + (let-values (((s_781) (if (syntax?$1 s_780) (syntax-e$1 s_780) s_780))) + (if (pair? s_781) + (if (let-values (((s_782) (car s_781))) #t) + (let-values (((s_783) (cdr s_781))) + (let-values (((or-part_543) + (if (syntax?$1 s_783) + (symbol? (syntax-e$1 s_783)) + #f))) + (if or-part_543 or-part_543 (symbol? s_783)))) + #f) + #f))) + (let-values (((s_784) (cdr s_779))) + (let-values (((s_785) (if (syntax?$1 s_784) (syntax-e$1 s_784) s_784))) + (null? s_785))) + #f) + #f))) + #f) + #f)) + #f) + (let-values () + (let-values (((#%variable-reference427_1 #%top428_1 id429_1) + (let-values (((s_786) (if (syntax?$1 s_775) (syntax-e$1 s_775) s_775))) + (let-values (((#%variable-reference430_0) + (let-values (((s_787) (car s_786))) s_787)) + ((#%top431_0 id432_0) + (let-values (((s_788) (cdr s_786))) + (let-values (((s_789) + (if (syntax?$1 s_788) + (syntax-e$1 s_788) + s_788))) + (let-values (((#%top433_0 id434_0) + (let-values (((s_790) (car s_789))) + (let-values (((s_791) + (if (syntax?$1 s_790) + (syntax-e$1 s_790) + s_790))) + (let-values (((#%top435_0) + (let-values (((s_792) + (car + s_791))) + s_792)) + ((id436_0) + (let-values (((s_793) + (cdr + s_791))) + s_793))) + (values #%top435_0 id436_0))))) + (() + (let-values (((s_794) (cdr s_789))) + (let-values (((s_795) + (if (syntax?$1 s_794) + (syntax-e$1 s_794) + s_794))) + (values))))) + (values #%top433_0 id434_0)))))) + (values #%variable-reference430_0 #%top431_0 id432_0))))) + (values #t #%variable-reference427_1 #%top428_1 id429_1))) + (values #f #f #f #f))))) + (let-values (((ok?_61 #%variable-reference437_0) + (let-values (((s_796) s_759)) + (if (if (not (let-values (((or-part_544) ok?_59)) (if or-part_544 or-part_544 ok?_60))) + #t + #f) + (let-values (((orig-s_62) s_796)) + (let-values (((#%variable-reference437_1) + (let-values (((s_797) (if (syntax?$1 s_796) (syntax-e$1 s_796) s_796))) + (if (pair? s_797) + (let-values (((#%variable-reference438_0) + (let-values (((s_798) (car s_797))) s_798)) + (() + (let-values (((s_799) (cdr s_797))) + (let-values (((s_800) + (if (syntax?$1 s_799) + (syntax-e$1 s_799) + s_799))) + (if (null? s_800) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_62)))))) + (values #%variable-reference438_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_62))))) + (values #t #%variable-reference437_1))) + (values #f #f))))) + (if (let-values (((or-part_545) ok?_59)) (if or-part_545 or-part_545 ok?_60)) + (let-values () + (let-values ((() + (begin + (if ok?_60 + (let-values () + (let-values (((phase_150) (expand-context-phase ctx_103))) + (if (if (identifier? #%top428_0) + (free-identifier=?$1 + #%top428_0 + (core-id '#%top phase_150) + phase_150 + phase_150) + #f) + (void) + (let-values () (raise-syntax-error$1 #f "bad syntax" s_759))))) + (void)) + (values)))) + (let-values (((var-id_0) (if ok?_59 id423_0 id429_0))) + (let-values (((binding_32) + (let-values (((var-id439_0) var-id_0) + ((temp440_0) (expand-context-phase ctx_103)) + ((temp441_0) 'ambiguous)) + (resolve+shift.1 temp441_0 #f null unsafe-undefined #f var-id439_0 temp440_0)))) + (let-values ((() + (begin + (if (eq? binding_32 'ambiguous) + (let-values () (raise-ambiguous-error var-id_0 ctx_103)) + (void)) + (values)))) + (let-values ((() + (begin + (if (if (let-values (((or-part_546) binding_32)) + (if or-part_546 or-part_546 (expand-context-allow-unbound? ctx_103))) + (not (if ok?_60 (local-binding? binding_32) #f)) + #f) + (void) + (let-values () + (raise-unbound-syntax-error + #f + "unbound identifier" + s_759 + var-id_0 + null + (syntax-debug-info-string var-id_0 ctx_103)))) + (values)))) + (let-values (((primitive?_14) + (if (let-values (((or-part_547) (not binding_32))) + (if or-part_547 + or-part_547 + (if (expand-context-allow-unbound? ctx_103) ok?_60 #f))) + (let-values () #f) + (let-values () + (check-top-binding-is-variable ctx_103 binding_32 var-id_0 s_759))))) + (if (expand-context-to-parsed? ctx_103) + (parsed-#%variable-reference11.1 + (keep-properties-only~ s_759) + (if ok?_60 + (let-values () (parsed-top-id4.1 var-id_0 binding_32 #f)) + (if primitive?_14 + (let-values () (parsed-primitive-id3.1 var-id_0 binding_32 #f)) + (let-values () (parsed-id2.1 var-id_0 binding_32 #f))))) + s_759)))))))) + (let-values () + (if (expand-context-to-parsed? ctx_103) + (parsed-#%variable-reference11.1 (keep-properties-only~ s_759) #f) + s_759)))))))))) + (void + (add-core-form!* + '#%expression + (lambda (s_801 ctx_104) + (let-values ((() + (begin + (let-values (((obs_112) (expand-context-observer ctx_104))) + (if obs_112 + (let-values () (let-values () (call-expand-observe obs_112 'prim-#%expression s_801))) + (void))) + (values)))) + (let-values (((ok?_62 #%expression442_0 e443_0) + (let-values (((s_802) s_801)) + (let-values (((orig-s_63) s_802)) + (let-values (((#%expression442_1 e443_1) + (let-values (((s_803) (if (syntax?$1 s_802) (syntax-e$1 s_802) s_802))) + (if (pair? s_803) + (let-values (((#%expression444_0) (let-values (((s_804) (car s_803))) s_804)) + ((e445_0) + (let-values (((s_805) (cdr s_803))) + (let-values (((s_806) + (if (syntax?$1 s_805) + (syntax-e$1 s_805) + s_805))) + (if (pair? s_806) + (let-values (((e446_0) + (let-values (((s_807) (car s_806))) s_807)) + (() + (let-values (((s_808) (cdr s_806))) + (let-values (((s_809) + (if (syntax?$1 s_808) + (syntax-e$1 s_808) + s_808))) + (if (null? s_809) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_63)))))) + (values e446_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_63)))))) + (values #%expression444_0 e445_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_63))))) + (values #t #%expression442_1 e443_1)))))) + (let-values (((rebuild-s_13) + (let-values (((ctx447_0) ctx_104) ((s448_0) s_801) ((temp449_0) #t)) + (keep-as-needed.1 temp449_0 #f #f ctx447_0 s448_0)))) + (let-values (((exp-e_0) + (let-values (((temp450_0) e443_0) + ((temp451_0) + (let-values (((temp452_0) (as-expression-context ctx_104)) ((ctx453_0) ctx_104)) + (as-tail-context.1 ctx453_0 temp452_0)))) + (expand.1 #f #f temp450_0 temp451_0)))) + (if (expand-context-to-parsed? ctx_104) + exp-e_0 + (if (let-values (((or-part_548) + (if (expand-context-in-local-expand? ctx_104) + (expand-context-keep-#%expression? ctx_104) + #f))) + (if or-part_548 or-part_548 (eq? 'top-level (expand-context-context ctx_104)))) + (let-values () + (let-values (((rebuild-s454_0) rebuild-s_13) ((temp455_0) (list #%expression442_0 exp-e_0))) + (rebuild.1 #t rebuild-s454_0 temp455_0))) + (let-values () + (let-values (((result-s_14) (syntax-track-origin$1 exp-e_0 rebuild-s_13))) + (begin + (let-values (((obs_113) (expand-context-observer ctx_104))) + (if obs_113 + (let-values () (let-values () (call-expand-observe obs_113 'tag result-s_14))) + (void))) + result-s_14)))))))))))) + (void (add-core-form!* 'unquote (lambda (s_810 ctx_105) (raise-syntax-error$1 #f "not in quasiquote" s_810)))) + (void (add-core-form!* 'unquote-splicing (lambda (s_811 ctx_106) (raise-syntax-error$1 #f "not in quasiquote" s_811)))) + (define-values + (binding-for-transformer?) + (lambda (b_44 id_138 at-phase_12 ns_67) + (begin + (if (not at-phase_12) + (let-values () + (let-values (((m_33) + (namespace->module ns_67 (1/module-path-index-resolve (module-binding-nominal-module b_44))))) + (let-values (((b/p_4) + (hash-ref + (hash-ref (module-provides m_33) (module-binding-nominal-phase+space b_44) '#hasheq()) + (module-binding-nominal-sym b_44) + #f))) + (provided-as-transformer? b/p_4)))) + (let-values () + (let-values ((() + (begin + (namespace-visit-available-modules! ns_67 (+ at-phase_12 (module-binding-phase b_44))) + (values)))) + (let-values (((val_97 primitive?_15 insp_31 protected?_16) + (let-values (((b1_8) b_44) + ((empty-env2_0) empty-env) + ((null3_0) null) + ((ns4_0) ns_67) + ((at-phase5_0) at-phase_12) + ((id6_0) id_138)) + (binding-lookup.1 #f #f b1_8 empty-env2_0 null3_0 ns4_0 at-phase5_0 id6_0)))) + (not (variable? val_97))))))))) + (define-values (layers) '(raw phaseless spaceless id)) + (define-values (provide-form-name) 'provide) + (define-values + (parse-and-expand-provides!) + (lambda (specs_0 orig-s_64 rp_1 self_32 phase_46 ctx_107) + (begin + (let-values (((ns_0) (expand-context-namespace ctx_107))) + ((letrec-values (((loop_123) + (lambda (specs_1 at-phase_13 at-space-level_0 protected?_17 layer_6 orig-s_65) + (begin + 'loop + (let-values (((track-stxess_0 exp-specss_0) + (let-values (((track-stxes_0 exp-specs_0) + (let-values (((lst_416) specs_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_416))) + ((letrec-values (((for-loop_83) + (lambda (track-stxes_1 + exp-specs_1 + lst_24) + (begin + 'for-loop + (if (pair? lst_24) + (let-values (((spec_0) + (unsafe-car lst_24)) + ((rest_8) + (unsafe-cdr + lst_24))) + (let-values (((track-stxes_2 + exp-specs_2) + (let-values (((track-stxes_3) + track-stxes_1) + ((exp-specs_3) + exp-specs_1)) + (let-values (((track-stxes_4 + exp-specs_4) + (let-values () + (let-values (((track-stxes1_0 + exp-specs2_0) + (let-values () + (let-values (((fm_2) + (if (pair? + (syntax-e$1 + spec_0)) + (if (identifier? + (car + (syntax-e$1 + spec_0))) + (syntax-e$1 + (car + (syntax-e$1 + spec_0))) + #f) + #f))) + (let-values (((check-nested_2) + (lambda (want-layer_3) + (begin + 'check-nested + (if (member + want-layer_3 + (member + layer_6 + layers)) + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + (format + "nested `~a' not allowed" + fm_2) + orig-s_65 + spec_0))))))) + (let-values (((tmp_81) + fm_2)) + (let-values (((index_8) + (if (symbol? + tmp_81) + (hash-ref + '#hasheq((all-defined + . + 10) + (all-defined-except + . + 11) + (all-from + . + 8) + (all-from-except + . + 9) + (expand + . + 14) + (for-label + . + 3) + (for-meta + . + 1) + (for-space + . + 4) + (for-syntax + . + 2) + (prefix-all-defined + . + 12) + (prefix-all-defined-except + . + 13) + (protect + . + 5) + (rename . + 6) + (struct + . + 7)) + tmp_81 + (lambda () + 0)) + 0))) + (if (unsafe-fx< + index_8 + 7) + (if (unsafe-fx< + index_8 + 3) + (if (unsafe-fx< + index_8 + 1) + (let-values () + (if (identifier? + spec_0) + (let-values () + (begin + (parse-identifier! + spec_0 + orig-s_65 + (syntax-e$1 + spec_0) + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0)))) + (let-values () + (raise-syntax-error$1 + provide-form-name + "bad syntax" + orig-s_65 + spec_0)))) + (if (unsafe-fx< + index_8 + 2) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'raw) + (values)))) + (let-values (((ok?_63 + for-meta3_0 + phase-level4_0 + spec5_0) + (let-values (((s_313) + spec_0)) + (let-values (((orig-s_66) + s_313)) + (let-values (((for-meta3_1 + phase-level4_1 + spec5_1) + (let-values (((s_535) + (if (syntax?$1 + s_313) + (syntax-e$1 + s_313) + s_313))) + (if (pair? + s_535) + (let-values (((for-meta6_0) + (let-values (((s_163) + (car + s_535))) + s_163)) + ((phase-level7_0 + spec8_0) + (let-values (((s_79) + (cdr + s_535))) + (let-values (((s_460) + (if (syntax?$1 + s_79) + (syntax-e$1 + s_79) + s_79))) + (if (pair? + s_460) + (let-values (((phase-level9_0) + (let-values (((s_95) + (car + s_460))) + s_95)) + ((spec10_0) + (let-values (((s_36) + (cdr + s_460))) + (let-values (((s_16) + (if (syntax?$1 + s_36) + (syntax-e$1 + s_36) + s_36))) + (let-values (((flat-s_45) + (to-syntax-list.1 + s_16))) + (if (not + flat-s_45) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_66)) + (let-values () + flat-s_45))))))) + (values + phase-level9_0 + spec10_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_66)))))) + (values + for-meta6_0 + phase-level7_0 + spec8_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_66))))) + (values + #t + for-meta3_1 + phase-level4_1 + spec5_1)))))) + (let-values (((p_92) + (syntax-e$1 + phase-level4_0))) + (let-values ((() + (begin + (if (phase? + p_92) + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + "bad `for-meta' phase" + orig-s_65 + spec_0))) + (values)))) + (let-values (((track-stxes_5 + exp-specs_5) + (loop_123 + spec5_0 + (phase+ + p_92 + at-phase_13) + at-space-level_0 + protected?_17 + 'phaseless + orig-s_65))) + (values + null + (list + (syntax-track-origin* + track-stxes_5 + (let-values (((spec11_0) + spec_0) + ((temp12_10) + (list* + for-meta3_0 + phase-level4_0 + exp-specs_5))) + (rebuild.1 + #t + spec11_0 + temp12_10))))))))))) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'raw) + (values)))) + (let-values (((ok?_64 + for-syntax13_0 + spec14_0) + (let-values (((s_29) + spec_0)) + (let-values (((orig-s_67) + s_29)) + (let-values (((for-syntax13_1 + spec14_1) + (let-values (((s_550) + (if (syntax?$1 + s_29) + (syntax-e$1 + s_29) + s_29))) + (if (pair? + s_550) + (let-values (((for-syntax15_0) + (let-values (((s_308) + (car + s_550))) + s_308)) + ((spec16_0) + (let-values (((s_178) + (cdr + s_550))) + (let-values (((s_53) + (if (syntax?$1 + s_178) + (syntax-e$1 + s_178) + s_178))) + (let-values (((flat-s_46) + (to-syntax-list.1 + s_53))) + (if (not + flat-s_46) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_67)) + (let-values () + flat-s_46))))))) + (values + for-syntax15_0 + spec16_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_67))))) + (values + #t + for-syntax13_1 + spec14_1)))))) + (let-values (((track-stxes_6 + exp-specs_6) + (loop_123 + spec14_0 + (phase+ + 1 + at-phase_13) + at-space-level_0 + protected?_17 + 'phaseless + orig-s_65))) + (values + null + (list + (syntax-track-origin* + track-stxes_6 + (let-values (((spec17_0) + spec_0) + ((temp18_9) + (list* + for-syntax13_0 + exp-specs_6))) + (rebuild.1 + #t + spec17_0 + temp18_9))))))))))) + (if (unsafe-fx< + index_8 + 4) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'raw) + (values)))) + (let-values (((ok?_0 + for-label19_0 + spec20_0) + (let-values (((s_559) + spec_0)) + (let-values (((orig-s_68) + s_559)) + (let-values (((for-label19_1 + spec20_1) + (let-values (((s_33) + (if (syntax?$1 + s_559) + (syntax-e$1 + s_559) + s_559))) + (if (pair? + s_33) + (let-values (((for-label21_0) + (let-values (((s_812) + (car + s_33))) + s_812)) + ((spec22_0) + (let-values (((s_315) + (cdr + s_33))) + (let-values (((s_98) + (if (syntax?$1 + s_315) + (syntax-e$1 + s_315) + s_315))) + (let-values (((flat-s_47) + (to-syntax-list.1 + s_98))) + (if (not + flat-s_47) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_68)) + (let-values () + flat-s_47))))))) + (values + for-label21_0 + spec22_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_68))))) + (values + #t + for-label19_1 + spec20_1)))))) + (let-values (((track-stxes_7 + exp-specs_7) + (loop_123 + spec20_0 + #f + at-space-level_0 + protected?_17 + 'phaseless + orig-s_65))) + (values + null + (list + (syntax-track-origin* + track-stxes_7 + (let-values (((spec23_0) + spec_0) + ((temp24_7) + (list* + for-label19_0 + exp-specs_7))) + (rebuild.1 + #t + spec23_0 + temp24_7))))))))) + (if (unsafe-fx< + index_8 + 5) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'phaseless) + (values)))) + (let-values (((ok?_65 + for-space25_0 + space26_0 + spec27_0) + (let-values (((s_61) + spec_0)) + (let-values (((orig-s_69) + s_61)) + (let-values (((for-space25_1 + space26_1 + spec27_1) + (let-values (((s_562) + (if (syntax?$1 + s_61) + (syntax-e$1 + s_61) + s_61))) + (if (pair? + s_562) + (let-values (((for-space28_0) + (let-values (((s_322) + (car + s_562))) + s_322)) + ((space29_0 + spec30_0) + (let-values (((s_564) + (cdr + s_562))) + (let-values (((s_64) + (if (syntax?$1 + s_564) + (syntax-e$1 + s_564) + s_564))) + (if (pair? + s_64) + (let-values (((space31_0) + (let-values (((s_89) + (car + s_64))) + s_89)) + ((spec32_0) + (let-values (((s_450) + (cdr + s_64))) + (let-values (((s_572) + (if (syntax?$1 + s_450) + (syntax-e$1 + s_450) + s_450))) + (let-values (((flat-s_48) + (to-syntax-list.1 + s_572))) + (if (not + flat-s_48) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_69)) + (let-values () + flat-s_48))))))) + (values + space31_0 + spec32_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_69)))))) + (values + for-space28_0 + space29_0 + spec30_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_69))))) + (values + #t + for-space25_1 + space26_1 + spec27_1)))))) + (let-values (((space_12) + (syntax-e$1 + space26_0))) + (let-values ((() + (begin + (if (space? + space_12) + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + "bad `for-space' space" + orig-s_65 + spec_0))) + (values)))) + (let-values (((track-stxes_8 + exp-specs_8) + (loop_123 + spec27_0 + at-phase_13 + space_12 + protected?_17 + 'spaceless + orig-s_65))) + (values + null + (list + (syntax-track-origin* + track-stxes_8 + (let-values (((spec33_0) + spec_0) + ((temp34_5) + (list* + for-space25_0 + space26_0 + exp-specs_8))) + (rebuild.1 + #t + spec33_0 + temp34_5))))))))))) + (if (unsafe-fx< + index_8 + 6) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values ((() + (begin + (if protected?_17 + (let-values () + (raise-syntax-error$1 + provide-form-name + "nested `protect' not allowed" + orig-s_65 + spec_0)) + (void)) + (values)))) + (let-values (((ok?_66 + protect35_0 + p-spec36_0) + (let-values (((s_200) + spec_0)) + (let-values (((orig-s_5) + s_200)) + (let-values (((protect35_1 + p-spec36_1) + (let-values (((s_195) + (if (syntax?$1 + s_200) + (syntax-e$1 + s_200) + s_200))) + (if (pair? + s_195) + (let-values (((protect37_0) + (let-values (((s_101) + (car + s_195))) + s_101)) + ((p-spec38_0) + (let-values (((s_43) + (cdr + s_195))) + (let-values (((s_201) + (if (syntax?$1 + s_43) + (syntax-e$1 + s_43) + s_43))) + (let-values (((flat-s_1) + (to-syntax-list.1 + s_201))) + (if (not + flat-s_1) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_5)) + (let-values () + flat-s_1))))))) + (values + protect37_0 + p-spec38_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_5))))) + (values + #t + protect35_1 + p-spec36_1)))))) + (let-values (((track-stxes_9 + exp-specs_9) + (loop_123 + p-spec36_0 + at-phase_13 + at-space-level_0 + #t + layer_6 + orig-s_65))) + (values + null + (list + (syntax-track-origin* + track-stxes_9 + (let-values (((spec39_0) + spec_0) + ((temp40_4) + (list* + protect35_0 + exp-specs_9))) + (rebuild.1 + #t + spec39_0 + temp40_4)))))))))) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_67 + rename41_0 + id:from42_0 + id:to43_0) + (let-values (((s_455) + spec_0)) + (let-values (((orig-s_70) + s_455)) + (let-values (((rename41_1 + id:from42_1 + id:to43_1) + (let-values (((s_328) + (if (syntax?$1 + s_455) + (syntax-e$1 + s_455) + s_455))) + (if (pair? + s_328) + (let-values (((rename44_0) + (let-values (((s_329) + (car + s_328))) + s_329)) + ((id:from45_0 + id:to46_0) + (let-values (((s_330) + (cdr + s_328))) + (let-values (((s_74) + (if (syntax?$1 + s_330) + (syntax-e$1 + s_330) + s_330))) + (if (pair? + s_74) + (let-values (((id:from47_0) + (let-values (((s_485) + (car + s_74))) + (if (let-values (((or-part_115) + (if (syntax?$1 + s_485) + (symbol? + (syntax-e$1 + s_485)) + #f))) + (if or-part_115 + or-part_115 + (symbol? + s_485))) + s_485 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_70 + s_485)))) + ((id:to48_0) + (let-values (((s_813) + (cdr + s_74))) + (let-values (((s_76) + (if (syntax?$1 + s_813) + (syntax-e$1 + s_813) + s_813))) + (if (pair? + s_76) + (let-values (((id:to49_0) + (let-values (((s_77) + (car + s_76))) + (if (let-values (((or-part_185) + (if (syntax?$1 + s_77) + (symbol? + (syntax-e$1 + s_77)) + #f))) + (if or-part_185 + or-part_185 + (symbol? + s_77))) + s_77 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_70 + s_77)))) + (() + (let-values (((s_479) + (cdr + s_76))) + (let-values (((s_486) + (if (syntax?$1 + s_479) + (syntax-e$1 + s_479) + s_479))) + (if (null? + s_486) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_70)))))) + (values + id:to49_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_70)))))) + (values + id:from47_0 + id:to48_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_70)))))) + (values + rename44_0 + id:from45_0 + id:to46_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_70))))) + (values + #t + rename41_1 + id:from42_1 + id:to43_1)))))) + (begin + (parse-identifier! + id:from42_0 + orig-s_65 + (syntax-e$1 + id:to43_0) + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0)))))))))) + (if (unsafe-fx< + index_8 + 10) + (if (unsafe-fx< + index_8 + 8) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'phaseless) + (values)))) + (let-values (((ok?_68 + struct50_0 + id:struct51_0 + id:field52_0) + (let-values (((s_107) + spec_0)) + (let-values (((orig-s_71) + s_107)) + (let-values (((struct50_1 + id:struct51_1 + id:field52_1) + (let-values (((s_814) + (if (syntax?$1 + s_107) + (syntax-e$1 + s_107) + s_107))) + (if (pair? + s_814) + (let-values (((struct53_0) + (let-values (((s_109) + (car + s_814))) + s_109)) + ((id:struct54_0 + id:field55_0) + (let-values (((s_110) + (cdr + s_814))) + (let-values (((s_332) + (if (syntax?$1 + s_110) + (syntax-e$1 + s_110) + s_110))) + (if (pair? + s_332) + (let-values (((id:struct56_0) + (let-values (((s_111) + (car + s_332))) + (if (let-values (((or-part_529) + (if (syntax?$1 + s_111) + (symbol? + (syntax-e$1 + s_111)) + #f))) + (if or-part_529 + or-part_529 + (symbol? + s_111))) + s_111 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_71 + s_111)))) + ((id:field57_0) + (let-values (((s_112) + (cdr + s_332))) + (let-values (((s_815) + (if (syntax?$1 + s_112) + (syntax-e$1 + s_112) + s_112))) + (if (pair? + s_815) + (let-values (((id:field58_0) + (let-values (((s_816) + (car + s_815))) + (let-values (((s_487) + (if (syntax?$1 + s_816) + (syntax-e$1 + s_816) + s_816))) + (let-values (((flat-s_49) + (to-syntax-list.1 + s_487))) + (if (not + flat-s_49) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_71)) + (let-values () + (let-values (((id:field_0) + (let-values (((lst_417) + flat-s_49)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_417))) + ((letrec-values (((for-loop_231) + (lambda (id:field_1 + lst_418) + (begin + 'for-loop + (if (pair? + lst_418) + (let-values (((s_213) + (unsafe-car + lst_418)) + ((rest_245) + (unsafe-cdr + lst_418))) + (let-values (((id:field_2) + (let-values (((id:field_3) + id:field_1)) + (let-values (((id:field_4) + (let-values () + (let-values (((id:field59_0) + (let-values () + (if (let-values (((or-part_508) + (if (syntax?$1 + s_213) + (symbol? + (syntax-e$1 + s_213)) + #f))) + (if or-part_508 + or-part_508 + (symbol? + s_213))) + s_213 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_71 + s_213))))) + (cons + id:field59_0 + id:field_3))))) + (values + id:field_4))))) + (if (not + #f) + (for-loop_231 + id:field_2 + rest_245) + id:field_2))) + id:field_1))))) + for-loop_231) + null + lst_417))))) + (reverse$1 + id:field_0)))))))) + (() + (let-values (((s_566) + (cdr + s_815))) + (let-values (((s_114) + (if (syntax?$1 + s_566) + (syntax-e$1 + s_566) + s_566))) + (if (null? + s_114) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_71)))))) + (values + id:field58_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_71)))))) + (values + id:struct56_0 + id:field57_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_71)))))) + (values + struct53_0 + id:struct54_0 + id:field55_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_71))))) + (values + #t + struct50_1 + id:struct51_1 + id:field52_1)))))) + (begin + (parse-struct! + id:struct51_0 + orig-s_65 + id:field52_0 + at-phase_13 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0)))))) + (if (unsafe-fx< + index_8 + 9) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_69 + all-from60_0 + mod-path61_0) + (let-values (((s_817) + spec_0)) + (let-values (((orig-s_72) + s_817)) + (let-values (((all-from60_1 + mod-path61_1) + (let-values (((s_481) + (if (syntax?$1 + s_817) + (syntax-e$1 + s_817) + s_817))) + (if (pair? + s_481) + (let-values (((all-from62_0) + (let-values (((s_120) + (car + s_481))) + s_120)) + ((mod-path63_0) + (let-values (((s_184) + (cdr + s_481))) + (let-values (((s_306) + (if (syntax?$1 + s_184) + (syntax-e$1 + s_184) + s_184))) + (if (pair? + s_306) + (let-values (((mod-path64_0) + (let-values (((s_121) + (car + s_306))) + s_121)) + (() + (let-values (((s_219) + (cdr + s_306))) + (let-values (((s_818) + (if (syntax?$1 + s_219) + (syntax-e$1 + s_219) + s_219))) + (if (null? + s_818) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_72)))))) + (values + mod-path64_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_72)))))) + (values + all-from62_0 + mod-path63_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_72))))) + (values + #t + all-from60_1 + mod-path61_1)))))) + (begin + (parse-all-from + mod-path61_0 + orig-s_65 + self_32 + null + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17 + ctx_107) + (values + null + (list + spec_0)))))) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_70 + all-from-except65_0 + mod-path66_0 + id67_0) + (let-values (((s_819) + spec_0)) + (let-values (((orig-s_73) + s_819)) + (let-values (((all-from-except65_1 + mod-path66_1 + id67_1) + (let-values (((s_490) + (if (syntax?$1 + s_819) + (syntax-e$1 + s_819) + s_819))) + (if (pair? + s_490) + (let-values (((all-from-except68_0) + (let-values (((s_820) + (car + s_490))) + s_820)) + ((mod-path69_0 + id70_0) + (let-values (((s_821) + (cdr + s_490))) + (let-values (((s_130) + (if (syntax?$1 + s_821) + (syntax-e$1 + s_821) + s_821))) + (if (pair? + s_130) + (let-values (((mod-path71_0) + (let-values (((s_133) + (car + s_130))) + s_133)) + ((id72_0) + (let-values (((s_337) + (cdr + s_130))) + (let-values (((s_220) + (if (syntax?$1 + s_337) + (syntax-e$1 + s_337) + s_337))) + (let-values (((flat-s_50) + (to-syntax-list.1 + s_220))) + (if (not + flat-s_50) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_73)) + (let-values () + (let-values (((id_139) + (let-values (((lst_419) + flat-s_50)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_419))) + ((letrec-values (((for-loop_343) + (lambda (id_140 + lst_420) + (begin + 'for-loop + (if (pair? + lst_420) + (let-values (((s_223) + (unsafe-car + lst_420)) + ((rest_246) + (unsafe-cdr + lst_420))) + (let-values (((id_141) + (let-values (((id_30) + id_140)) + (let-values (((id_142) + (let-values () + (let-values (((id73_0) + (let-values () + (if (let-values (((or-part_549) + (if (syntax?$1 + s_223) + (symbol? + (syntax-e$1 + s_223)) + #f))) + (if or-part_549 + or-part_549 + (symbol? + s_223))) + s_223 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_73 + s_223))))) + (cons + id73_0 + id_30))))) + (values + id_142))))) + (if (not + #f) + (for-loop_343 + id_141 + rest_246) + id_141))) + id_140))))) + for-loop_343) + null + lst_419))))) + (reverse$1 + id_139))))))))) + (values + mod-path71_0 + id72_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_73)))))) + (values + all-from-except68_0 + mod-path69_0 + id70_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_73))))) + (values + #t + all-from-except65_1 + mod-path66_1 + id67_1)))))) + (begin + (parse-all-from + mod-path66_0 + orig-s_65 + self_32 + id67_0 + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17 + ctx_107) + (values + null + (list + spec_0)))))))) + (if (unsafe-fx< + index_8 + 12) + (if (unsafe-fx< + index_8 + 11) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_71 + all-defined74_0) + (let-values (((s_822) + spec_0)) + (let-values (((orig-s_74) + s_822)) + (let-values (((all-defined74_1) + (let-values (((s_138) + (if (syntax?$1 + s_822) + (syntax-e$1 + s_822) + s_822))) + (if (pair? + s_138) + (let-values (((all-defined75_0) + (let-values (((s_823) + (car + s_138))) + s_823)) + (() + (let-values (((s_824) + (cdr + s_138))) + (let-values (((s_139) + (if (syntax?$1 + s_824) + (syntax-e$1 + s_824) + s_824))) + (if (null? + s_139) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_74)))))) + (values + all-defined75_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_74))))) + (values + #t + all-defined74_1)))))) + (begin + (parse-all-from-module + self_32 + spec_0 + orig-s_65 + null + #f + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0)))))) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_72 + all-defined-except76_0 + id77_0) + (let-values (((s_518) + spec_0)) + (let-values (((orig-s_36) + s_518)) + (let-values (((all-defined-except76_1 + id77_1) + (let-values (((s_519) + (if (syntax?$1 + s_518) + (syntax-e$1 + s_518) + s_518))) + (if (pair? + s_519) + (let-values (((all-defined-except78_0) + (let-values (((s_520) + (car + s_519))) + s_520)) + ((id79_0) + (let-values (((s_339) + (cdr + s_519))) + (let-values (((s_340) + (if (syntax?$1 + s_339) + (syntax-e$1 + s_339) + s_339))) + (let-values (((flat-s_23) + (to-syntax-list.1 + s_340))) + (if (not + flat-s_23) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_36)) + (let-values () + (let-values (((id_143) + (let-values (((lst_421) + flat-s_23)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_421))) + ((letrec-values (((for-loop_152) + (lambda (id_144 + lst_422) + (begin + 'for-loop + (if (pair? + lst_422) + (let-values (((s_347) + (unsafe-car + lst_422)) + ((rest_247) + (unsafe-cdr + lst_422))) + (let-values (((id_145) + (let-values (((id_146) + id_144)) + (let-values (((id_147) + (let-values () + (let-values (((id80_0) + (let-values () + (if (let-values (((or-part_325) + (if (syntax?$1 + s_347) + (symbol? + (syntax-e$1 + s_347)) + #f))) + (if or-part_325 + or-part_325 + (symbol? + s_347))) + s_347 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_36 + s_347))))) + (cons + id80_0 + id_146))))) + (values + id_147))))) + (if (not + #f) + (for-loop_152 + id_145 + rest_247) + id_145))) + id_144))))) + for-loop_152) + null + lst_421))))) + (reverse$1 + id_143))))))))) + (values + all-defined-except78_0 + id79_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_36))))) + (values + #t + all-defined-except76_1 + id77_1)))))) + (begin + (parse-all-from-module + self_32 + spec_0 + orig-s_65 + id77_0 + #f + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0))))))) + (if (unsafe-fx< + index_8 + 13) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_73 + prefix-all-defined81_0 + id:prefix82_0) + (let-values (((s_825) + spec_0)) + (let-values (((orig-s_75) + s_825)) + (let-values (((prefix-all-defined81_1 + id:prefix82_1) + (let-values (((s_361) + (if (syntax?$1 + s_825) + (syntax-e$1 + s_825) + s_825))) + (if (pair? + s_361) + (let-values (((prefix-all-defined83_0) + (let-values (((s_826) + (car + s_361))) + s_826)) + ((id:prefix84_0) + (let-values (((s_239) + (cdr + s_361))) + (let-values (((s_240) + (if (syntax?$1 + s_239) + (syntax-e$1 + s_239) + s_239))) + (if (pair? + s_240) + (let-values (((id:prefix85_0) + (let-values (((s_241) + (car + s_240))) + (if (let-values (((or-part_550) + (if (syntax?$1 + s_241) + (symbol? + (syntax-e$1 + s_241)) + #f))) + (if or-part_550 + or-part_550 + (symbol? + s_241))) + s_241 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_75 + s_241)))) + (() + (let-values (((s_243) + (cdr + s_240))) + (let-values (((s_583) + (if (syntax?$1 + s_243) + (syntax-e$1 + s_243) + s_243))) + (if (null? + s_583) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_75)))))) + (values + id:prefix85_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_75)))))) + (values + prefix-all-defined83_0 + id:prefix84_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_75))))) + (values + #t + prefix-all-defined81_1 + id:prefix82_1)))))) + (begin + (parse-all-from-module + self_32 + spec_0 + orig-s_65 + null + (syntax-e$1 + id:prefix82_0) + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0)))))) + (if (unsafe-fx< + index_8 + 14) + (let-values () + (let-values ((() + (begin + (check-nested_2 + 'spaceless) + (values)))) + (let-values (((ok?_10 + prefix-all-defined-except86_0 + id:prefix87_0 + id88_0) + (let-values (((s_244) + spec_0)) + (let-values (((orig-s_13) + s_244)) + (let-values (((prefix-all-defined-except86_1 + id:prefix87_1 + id88_1) + (let-values (((s_245) + (if (syntax?$1 + s_244) + (syntax-e$1 + s_244) + s_244))) + (if (pair? + s_245) + (let-values (((prefix-all-defined-except89_0) + (let-values (((s_246) + (car + s_245))) + s_246)) + ((id:prefix90_0 + id91_1) + (let-values (((s_247) + (cdr + s_245))) + (let-values (((s_248) + (if (syntax?$1 + s_247) + (syntax-e$1 + s_247) + s_247))) + (if (pair? + s_248) + (let-values (((id:prefix92_0) + (let-values (((s_249) + (car + s_248))) + (if (let-values (((or-part_551) + (if (syntax?$1 + s_249) + (symbol? + (syntax-e$1 + s_249)) + #f))) + (if or-part_551 + or-part_551 + (symbol? + s_249))) + s_249 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_13 + s_249)))) + ((id93_1) + (let-values (((s_251) + (cdr + s_248))) + (let-values (((s_827) + (if (syntax?$1 + s_251) + (syntax-e$1 + s_251) + s_251))) + (let-values (((flat-s_51) + (to-syntax-list.1 + s_827))) + (if (not + flat-s_51) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_13)) + (let-values () + (let-values (((id_148) + (let-values (((lst_423) + flat-s_51)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_423))) + ((letrec-values (((for-loop_344) + (lambda (id_149 + lst_140) + (begin + 'for-loop + (if (pair? + lst_140) + (let-values (((s_828) + (unsafe-car + lst_140)) + ((rest_248) + (unsafe-cdr + lst_140))) + (let-values (((id_43) + (let-values (((id_44) + id_149)) + (let-values (((id_150) + (let-values () + (let-values (((id94_1) + (let-values () + (if (let-values (((or-part_207) + (if (syntax?$1 + s_828) + (symbol? + (syntax-e$1 + s_828)) + #f))) + (if or-part_207 + or-part_207 + (symbol? + s_828))) + s_828 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_13 + s_828))))) + (cons + id94_1 + id_44))))) + (values + id_150))))) + (if (not + #f) + (for-loop_344 + id_43 + rest_248) + id_43))) + id_149))))) + for-loop_344) + null + lst_423))))) + (reverse$1 + id_148))))))))) + (values + id:prefix92_0 + id93_1)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_13)))))) + (values + prefix-all-defined-except89_0 + id:prefix90_0 + id91_1)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_13))))) + (values + #t + prefix-all-defined-except86_1 + id:prefix87_1 + id88_1)))))) + (begin + (parse-all-from-module + self_32 + spec_0 + orig-s_65 + id88_0 + (syntax-e$1 + id:prefix87_0) + at-phase_13 + at-space-level_0 + ns_0 + rp_1 + protected?_17) + (values + null + (list + spec_0)))))) + (let-values () + (let-values (((ok?_11 + expand95_0 + id96_0 + datum97_0 + orig98_0) + (let-values (((s_829) + spec_0)) + (if (let-values (((s_830) + (if (syntax?$1 + s_829) + (syntax-e$1 + s_829) + s_829))) + (if (pair? + s_830) + (if (let-values (((s_831) + (car + s_830))) + #t) + (let-values (((s_832) + (cdr + s_830))) + (let-values (((s_833) + (if (syntax?$1 + s_832) + (syntax-e$1 + s_832) + s_832))) + (if (pair? + s_833) + (if (let-values (((s_261) + (car + s_833))) + (let-values (((s_834) + (if (syntax?$1 + s_261) + (syntax-e$1 + s_261) + s_261))) + (if (pair? + s_834) + (if (let-values (((s_398) + (car + s_834))) + (let-values (((or-part_552) + (if (syntax?$1 + s_398) + (symbol? + (syntax-e$1 + s_398)) + #f))) + (if or-part_552 + or-part_552 + (symbol? + s_398)))) + (let-values (((s_400) + (cdr + s_834))) + #t) + #f) + #f))) + (let-values (((s_401) + (cdr + s_833))) + (let-values (((s_262) + (if (syntax?$1 + s_401) + (syntax-e$1 + s_401) + s_401))) + (if (pair? + s_262) + (if (let-values (((s_402) + (car + s_262))) + #t) + (let-values (((s_403) + (cdr + s_262))) + (let-values (((s_404) + (if (syntax?$1 + s_403) + (syntax-e$1 + s_403) + s_403))) + (null? + s_404))) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((expand95_1 + id96_1 + datum97_1 + orig98_1) + (let-values (((s_405) + (if (syntax?$1 + s_829) + (syntax-e$1 + s_829) + s_829))) + (let-values (((expand99_0) + (let-values (((s_151) + (car + s_405))) + s_151)) + ((id100_1 + datum101_0 + orig102_0) + (let-values (((s_407) + (cdr + s_405))) + (let-values (((s_268) + (if (syntax?$1 + s_407) + (syntax-e$1 + s_407) + s_407))) + (let-values (((id103_0 + datum104_0) + (let-values (((s_835) + (car + s_268))) + (let-values (((s_152) + (if (syntax?$1 + s_835) + (syntax-e$1 + s_835) + s_835))) + (let-values (((id106_0) + (let-values (((s_272) + (car + s_152))) + s_272)) + ((datum107_0) + (let-values (((s_409) + (cdr + s_152))) + s_409))) + (values + id106_0 + datum107_0))))) + ((orig105_0) + (let-values (((s_542) + (cdr + s_268))) + (let-values (((s_836) + (if (syntax?$1 + s_542) + (syntax-e$1 + s_542) + s_542))) + (let-values (((orig108_0) + (let-values (((s_837) + (car + s_836))) + s_837)) + (() + (let-values (((s_838) + (cdr + s_836))) + (let-values (((s_154) + (if (syntax?$1 + s_838) + (syntax-e$1 + s_838) + s_838))) + (values))))) + (values + orig108_0)))))) + (values + id103_0 + datum104_0 + orig105_0)))))) + (values + expand99_0 + id100_1 + datum101_0 + orig102_0))))) + (values + #t + expand95_1 + id96_1 + datum97_1 + orig98_1))) + (values + #f + #f + #f + #f + #f))))) + (let-values (((ok?_74 + expand109_0 + id110_0 + datum111_0) + (let-values (((s_410) + spec_0)) + (if (if (not + ok?_11) + #t + #f) + (let-values (((orig-s_76) + s_410)) + (let-values (((expand109_1 + id110_1 + datum111_1) + (let-values (((s_839) + (if (syntax?$1 + s_410) + (syntax-e$1 + s_410) + s_410))) + (if (pair? + s_839) + (let-values (((expand112_0) + (let-values (((s_157) + (car + s_839))) + s_157)) + ((id113_1 + datum114_0) + (let-values (((s_414) + (cdr + s_839))) + (let-values (((s_158) + (if (syntax?$1 + s_414) + (syntax-e$1 + s_414) + s_414))) + (if (pair? + s_158) + (let-values (((id115_1 + datum116_0) + (let-values (((s_416) + (car + s_158))) + (let-values (((s_417) + (if (syntax?$1 + s_416) + (syntax-e$1 + s_416) + s_416))) + (if (pair? + s_417) + (let-values (((id117_1) + (let-values (((s_597) + (car + s_417))) + (if (let-values (((or-part_411) + (if (syntax?$1 + s_597) + (symbol? + (syntax-e$1 + s_597)) + #f))) + (if or-part_411 + or-part_411 + (symbol? + s_597))) + s_597 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_76 + s_597)))) + ((datum118_0) + (let-values (((s_840) + (cdr + s_417))) + s_840))) + (values + id117_1 + datum118_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_76))))) + (() + (let-values (((s_841) + (cdr + s_158))) + (let-values (((s_842) + (if (syntax?$1 + s_841) + (syntax-e$1 + s_841) + s_841))) + (if (null? + s_842) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_76)))))) + (values + id115_1 + datum116_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_76)))))) + (values + expand112_0 + id113_1 + datum114_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_76))))) + (values + #t + expand109_1 + id110_1 + datum111_1))) + (values + #f + #f + #f + #f))))) + (let-values (((ok?_75 + expand119_0 + form120_0 + _121_0) + (let-values (((s_419) + spec_0)) + (let-values (((orig-s_77) + s_419)) + (let-values (((expand119_1 + form120_1 + _121_1) + (let-values (((s_422) + (if (syntax?$1 + s_419) + (syntax-e$1 + s_419) + s_419))) + (if (pair? + s_422) + (let-values (((expand122_0) + (let-values (((s_425) + (car + s_422))) + s_425)) + ((form123_0 + _124_0) + (let-values (((s_426) + (cdr + s_422))) + (let-values (((s_843) + (if (syntax?$1 + s_426) + (syntax-e$1 + s_426) + s_426))) + (if (pair? + s_843) + (let-values (((form125_0) + (let-values (((s_601) + (car + s_843))) + s_601)) + ((_126_0) + (let-values (((s_844) + (cdr + s_843))) + s_844))) + (values + form125_0 + _126_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_77)))))) + (values + expand122_0 + form123_0 + _124_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_77))))) + (values + #t + expand119_1 + form120_1 + _121_1)))))) + (let-values (((exp-spec_0) + (let-values (((temp131_4) + form120_0) + ((temp132_3) + (let-values (((v_273) + ctx_107)) + (let-values (((the-struct_94) + v_273)) + (if (expand-context/outer? + the-struct_94) + (let-values (((def-ctx-scopes133_0) + #f) + ((inner134_0) + (let-values (((the-struct_95) + (root-expand-context/outer-inner + v_273))) + (if (expand-context/inner? + the-struct_95) + (let-values (((stops135_0) + (free-id-set + at-phase_13 + (list + (core-id + 'begin + at-phase_13))))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_95) + (root-expand-context/inner-module-scopes + the-struct_95) + (root-expand-context/inner-top-level-bind-scope + the-struct_95) + (root-expand-context/inner-all-scopes-stx + the-struct_95) + (root-expand-context/inner-defined-syms + the-struct_95) + (root-expand-context/inner-counter + the-struct_95) + (root-expand-context/inner-lift-key + the-struct_95) + (expand-context/inner-to-parsed? + the-struct_95) + (expand-context/inner-phase + the-struct_95) + (expand-context/inner-namespace + the-struct_95) + (expand-context/inner-just-once? + the-struct_95) + (expand-context/inner-module-begin-k + the-struct_95) + (expand-context/inner-allow-unbound? + the-struct_95) + (expand-context/inner-in-local-expand? + the-struct_95) + (expand-context/inner-keep-#%expression? + the-struct_95) + stops135_0 + (expand-context/inner-declared-submodule-names + the-struct_95) + (expand-context/inner-lifts + the-struct_95) + (expand-context/inner-lift-envs + the-struct_95) + (expand-context/inner-module-lifts + the-struct_95) + (expand-context/inner-require-lifts + the-struct_95) + (expand-context/inner-to-module-lifts + the-struct_95) + (expand-context/inner-requires+provides + the-struct_95) + (expand-context/inner-observer + the-struct_95) + (expand-context/inner-for-serializable? + the-struct_95) + (expand-context/inner-to-correlated-linklet? + the-struct_95) + (expand-context/inner-normalize-locals? + the-struct_95) + (expand-context/inner-parsing-expanded? + the-struct_95) + (expand-context/inner-skip-visit-available? + the-struct_95))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_95))))) + (expand-context/outer1.1 + inner134_0 + (root-expand-context/outer-post-expansion + the-struct_94) + (root-expand-context/outer-use-site-scopes + the-struct_94) + (root-expand-context/outer-frame-id + the-struct_94) + (expand-context/outer-context + the-struct_94) + (expand-context/outer-env + the-struct_94) + (expand-context/outer-scopes + the-struct_94) + def-ctx-scopes133_0 + (expand-context/outer-binding-layer + the-struct_94) + (expand-context/outer-reference-records + the-struct_94) + (expand-context/outer-only-immediate? + the-struct_94) + (expand-context/outer-need-eventually-defined + the-struct_94) + (expand-context/outer-current-introduction-scopes + the-struct_94) + (expand-context/outer-current-use-scopes + the-struct_94) + (expand-context/outer-name + the-struct_94))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_94)))))) + (expand.1 + #f + #f + temp131_4 + temp132_3)))) + (let-values ((() + (begin + (if (if (pair? + (syntax-e$1 + exp-spec_0)) + (if (identifier? + (car + (syntax-e$1 + exp-spec_0))) + (eq? + 'begin + (core-form-sym + exp-spec_0 + at-phase_13)) + #f) + #f) + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + "expansion was not a `begin' sequence" + orig-s_65 + spec_0))) + (values)))) + (let-values (((ok?_76 + begin127_0 + spec128_0) + (let-values (((s_845) + exp-spec_0)) + (let-values (((orig-s_78) + s_845)) + (let-values (((begin127_1 + spec128_1) + (let-values (((s_846) + (if (syntax?$1 + s_845) + (syntax-e$1 + s_845) + s_845))) + (if (pair? + s_846) + (let-values (((begin129_0) + (let-values (((s_847) + (car + s_846))) + s_847)) + ((spec130_0) + (let-values (((s_848) + (cdr + s_846))) + (let-values (((s_849) + (if (syntax?$1 + s_848) + (syntax-e$1 + s_848) + s_848))) + (let-values (((flat-s_52) + (to-syntax-list.1 + s_849))) + (if (not + flat-s_52) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_78)) + (let-values () + flat-s_52))))))) + (values + begin129_0 + spec130_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_78))))) + (values + #t + begin127_1 + spec128_1)))))) + (let-values (((track-stxes_10 + exp-specs_10) + (loop_123 + spec128_0 + at-phase_13 + at-space-level_0 + protected?_17 + layer_6 + (let-values (((or-part_427) + orig98_0)) + (if or-part_427 + or-part_427 + orig-s_65))))) + (values + (list* + spec_0 + exp-spec_0 + track-stxes_10) + exp-specs_10))))))))))))))))))))) + (values + (cons + track-stxes1_0 + track-stxes_3) + (cons + exp-specs2_0 + exp-specs_3)))))) + (values + track-stxes_4 + exp-specs_4))))) + (if (not #f) + (for-loop_83 + track-stxes_2 + exp-specs_2 + rest_8) + (values + track-stxes_2 + exp-specs_2)))) + (values + track-stxes_1 + exp-specs_1)))))) + for-loop_83) + null + null + lst_416))))) + (values (reverse$1 track-stxes_0) (reverse$1 exp-specs_0))))) + (values (apply append track-stxess_0) (apply append exp-specss_0))))))) + loop_123) + specs_0 + phase_46 + '#:none + #f + 'raw + orig-s_64))))) + (define-values + (parse-identifier!) + (lambda (spec_1 orig-s_79 sym_106 at-phase_14 at-space-level_1 ns_122 rp_2 protected?_18) + (begin + (let-values (((at-space_0) (space+ #f at-space-level_1))) + (let-values (((b_111) (resolve+shift/extra-inspector (add-space-scope spec_1 at-space_0) at-phase_14 ns_122))) + (let-values ((() + (begin + (if (module-binding? b_111) + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + "provided identifier is not defined or required" + orig-s_79 + spec_1))) + (values)))) + (let-values ((() + (begin + (if at-space_0 + (let-values () + (if (same-binding? + b_111 + (resolve+shift/extra-inspector + (remove-space-scope spec_1 at-space_0) + at-phase_14 + ns_122)) + (let-values () + (raise-syntax-error$1 + provide-form-name + "provided identifier is defined only outside the space" + orig-s_79 + spec_1)) + (void))) + (void)) + (values)))) + (let-values (((as-transformer?_7) (binding-for-transformer? b_111 spec_1 at-phase_14 ns_122))) + (let-values (((immed-b_0) + (let-values (((spec145_1) spec_1) ((at-phase146_0) at-phase_14) ((temp147_3) #t)) + (resolve+shift.1 #f #f null temp147_3 #f spec145_1 at-phase146_0)))) + (let-values (((rp136_0) rp_2) + ((sym137_0) sym_106) + ((temp138_2) (intern-phase+space at-phase_14 at-space_0)) + ((b139_0) b_111) + ((immed-b140_0) immed-b_0) + ((spec141_0) spec_1) + ((orig-s142_0) orig-s_79) + ((protected?143_0) protected?_18) + ((as-transformer?144_0) as-transformer?_7)) + (add-provide!.1 + protected?143_0 + as-transformer?144_0 + rp136_0 + sym137_0 + temp138_2 + b139_0 + immed-b140_0 + spec141_0 + orig-s142_0))))))))))) + (define-values + (parse-struct!) + (lambda (id:struct_0 orig-s_80 fields_0 at-phase_9 ns_123 rp_3 protected?_19) + (begin + (let-values (((mk_0) + (lambda (fmt_0) + (begin + 'mk + (let-values (((sym_107) (string->symbol (format fmt_0 (syntax-e$1 id:struct_0))))) + (datum->syntax$1 id:struct_0 sym_107 id:struct_0)))))) + (let-values (((mk2_0) + (lambda (fmt_1 field-id_0) + (begin + 'mk2 + (let-values (((sym_108) + (string->symbol + (format fmt_1 (syntax-e$1 id:struct_0) (syntax-e$1 field-id_0))))) + (datum->syntax$1 id:struct_0 sym_108 id:struct_0)))))) + (begin + (let-values (((lst_424) (list "~a" "make-~a" "struct:~a" "~a?"))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_424))) + ((letrec-values (((for-loop_345) + (lambda (lst_425) + (begin + 'for-loop + (if (pair? lst_425) + (let-values (((fmt_2) (unsafe-car lst_425)) ((rest_249) (unsafe-cdr lst_425))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((id_151) (mk_0 fmt_2))) + (parse-identifier! + id_151 + orig-s_80 + (syntax-e$1 id_151) + at-phase_9 + #f + ns_123 + rp_3 + protected?_19))) + (values))))) + (values))))) + (if (not #f) (for-loop_345 rest_249) (values)))) + (values)))))) + for-loop_345) + lst_424))) + (void) + (let-values (((lst_426) fields_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_426))) + ((letrec-values (((for-loop_346) + (lambda (lst_427) + (begin + 'for-loop + (if (pair? lst_427) + (let-values (((field_0) (unsafe-car lst_427)) ((rest_250) (unsafe-cdr lst_427))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((get-id_0) + (mk2_0 "~a-~a" field_0))) + (let-values (((set-id_0) + (mk2_0 + "set-~a-~a!" + field_0))) + (begin + (parse-identifier! + get-id_0 + orig-s_80 + (syntax-e$1 get-id_0) + at-phase_9 + #f + ns_123 + rp_3 + protected?_19) + (parse-identifier! + set-id_0 + orig-s_80 + (syntax-e$1 set-id_0) + at-phase_9 + #f + ns_123 + rp_3 + protected?_19))))) + (values))))) + (values))))) + (if (not #f) (for-loop_346 rest_250) (values)))) + (values)))))) + for-loop_346) + lst_426))) + (void))))))) + (define-values + (parse-all-from) + (lambda (mod-path-stx_0 orig-s_81 self_33 except-ids_0 at-phase_15 at-space-level_2 ns_124 rp_4 protected?_20 ctx_108) + (begin + (let-values (((mod-path_30) (syntax->datum$1 mod-path-stx_0))) + (let-values ((() + (begin + (if (1/module-path? mod-path_30) + (void) + (let-values () + (raise-syntax-error$1 provide-form-name "not a module path" orig-s_81 mod-path-stx_0))) + (values)))) + (let-values (((mpi_69) (module-path->mpi/context mod-path_30 ctx_108))) + (parse-all-from-module + mpi_69 + #f + orig-s_81 + except-ids_0 + #f + at-phase_15 + at-space-level_2 + ns_124 + rp_4 + protected?_20))))))) + (define-values + (parse-all-from-module) + (lambda (mpi_70 + matching-stx_0 + orig-s_82 + except-ids_1 + prefix-sym_0 + at-phase_16 + at-space-level_3 + ns_125 + rp_5 + protected?_21) + (begin + (let-values (((at-phase+space-shift_0) (intern-phase+space-shift at-phase_16 at-space-level_3))) + (let-values (((requireds_2) (extract-module-requires rp_5 mpi_70 at-phase+space-shift_0))) + (let-values (((phase-desc_0) + (lambda () + (begin + 'phase-desc + (string-append + (if (zero-phase? at-phase_16) + (let-values () "") + (if (label-phase? at-phase_16) + (let-values () " for-label") + (let-values () (format " for phase level ~a" at-phase_16)))) + (if (not (space+ #f at-space-level_3)) + (let-values () "") + (let-values () (format " in space level ~s" at-space-level_3)))))))) + (let-values ((() + (begin + (if requireds_2 + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + (format "cannot provide from a module without a matching require~a" (phase-desc_0)) + orig-s_82 + matching-stx_0))) + (values)))) + (let-values (((add-prefix_1) + (lambda (sym_109) + (begin + 'add-prefix + (if prefix-sym_0 + (string->symbol + (string-append (symbol->string prefix-sym_0) (symbol->string sym_109))) + sym_109))))) + (let-values (((at-phase+space_0) (phase+space+ 0 at-phase+space-shift_0))) + (let-values (((found_0) (make-hasheq))) + (begin + (let-values (((lst_428) requireds_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_428))) + ((letrec-values (((for-loop_347) + (lambda (lst_155) + (begin + 'for-loop + (if (pair? lst_155) + (let-values (((i_225) (unsafe-car lst_155)) + ((rest_77) (unsafe-cdr lst_155))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((id_152) + (required-id + i_225))) + (let-values (((phase+space_8) + (required-phase+space + i_225))) + (let-values (((phase_151) + (phase+space-phase + phase+space_8))) + (let-values (((space_13) + (phase+space-space + phase+space_8))) + (if (let-values (((or-part_450) + (if matching-stx_0 + (not + (if (eqv? + phase+space_8 + at-phase+space_0) + (free-identifier=?$1 + id_152 + (add-space-scope + (datum->syntax$1 + matching-stx_0 + (syntax-e$1 + id_152)) + space_13) + phase_151 + phase_151) + #f)) + #f))) + (if or-part_450 + or-part_450 + (let-values (((lst_429) + except-ids_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_429))) + ((letrec-values (((for-loop_348) + (lambda (result_129 + lst_430) + (begin + 'for-loop + (if (pair? + lst_430) + (let-values (((except-id_0) + (unsafe-car + lst_430)) + ((rest_251) + (unsafe-cdr + lst_430))) + (let-values (((result_130) + (let-values () + (let-values (((result_131) + (let-values () + (let-values () + (if (free-identifier=?$1 + id_152 + (add-space-scope + except-id_0 + space_13) + phase_151 + phase_151) + (hash-set! + found_0 + except-id_0 + #t) + #f))))) + (values + result_131))))) + (if (if (not + ((lambda x_105 + result_130) + except-id_0)) + (not + #f) + #f) + (for-loop_348 + result_130 + rest_251) + result_130))) + result_129))))) + for-loop_348) + #f + lst_429))))) + (void) + (let-values () + (let-values (((b_112) + (resolve+shift/extra-inspector + id_152 + phase_151 + ns_125))) + (let-values (((immed-b_1) + (let-values (((id157_0) + id_152) + ((phase158_2) + phase_151) + ((temp159_1) + #t)) + (resolve+shift.1 + #f + #f + null + temp159_1 + #f + id157_0 + phase158_2)))) + (let-values (((rp148_0) + rp_5) + ((temp149_4) + (add-prefix_1 + (syntax-e$1 + id_152))) + ((phase+space150_0) + phase+space_8) + ((b151_0) + b_112) + ((immed-b152_0) + immed-b_1) + ((id153_0) + id_152) + ((orig-s154_0) + orig-s_82) + ((protected?155_0) + protected?_21) + ((temp156_0) + (required-as-transformer? + i_225))) + (add-provide!.1 + protected?155_0 + temp156_0 + rp148_0 + temp149_4 + phase+space150_0 + b151_0 + immed-b152_0 + id153_0 + orig-s154_0))))))))))) + (values))))) + (values))))) + (if (not #f) (for-loop_347 rest_77) (values)))) + (values)))))) + for-loop_347) + lst_428))) + (void) + (if (= (hash-count found_0) (length except-ids_1)) + (void) + (let-values () + (begin + (let-values (((lst_388) except-ids_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_388))) + ((letrec-values (((for-loop_336) + (lambda (lst_431) + (begin + 'for-loop + (if (pair? lst_431) + (let-values (((except-id_1) (unsafe-car lst_431)) + ((rest_252) (unsafe-cdr lst_431))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (if (let-values (((or-part_463) + (hash-ref + found_0 + except-id_1 + #f))) + (if or-part_463 + or-part_463 + (let-values (((lst_255) + requireds_2)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_255))) + ((letrec-values (((for-loop_245) + (lambda (result_132 + lst_256) + (begin + 'for-loop + (if (pair? + lst_256) + (let-values (((i_226) + (unsafe-car + lst_256)) + ((rest_253) + (unsafe-cdr + lst_256))) + (let-values (((result_133) + (let-values () + (let-values (((result_134) + (let-values () + (let-values () + (let-values (((id_153) + (required-id + i_226))) + (let-values (((phase+space_9) + (required-phase+space + i_226))) + (let-values (((phase_152) + (phase+space-phase + phase+space_9))) + (let-values (((space_14) + (phase+space-space + phase+space_9))) + (free-identifier=?$1 + id_153 + (add-space-scope + except-id_1 + space_14) + phase_152 + phase_152))))))))) + (values + result_134))))) + (if (if (not + ((lambda x_106 + result_133) + i_226)) + (not + #f) + #f) + (for-loop_245 + result_133 + rest_253) + result_133))) + result_132))))) + for-loop_245) + #f + lst_255))))) + (void) + (let-values () + (raise-syntax-error$1 + provide-form-name + (format + (if matching-stx_0 + "excluded identifier was not defined or required in the module~a" + "excluded identifier was not required from the specified module~a") + (phase-desc_0)) + orig-s_82 + except-id_1)))) + (values))))) + (values))))) + (if (not #f) (for-loop_336 rest_252) (values)))) + (values)))))) + for-loop_336) + lst_388))) + (void))))))))))))))) + (define-values + (check-cross-phase-persistent-form) + (lambda (bodys_12 self-mpi_7) + (begin + (letrec-values (((check-body_0) + (lambda (bodys_13) + (begin + 'check-body + (begin + (let-values (((lst_432) bodys_13)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_432))) + ((letrec-values (((for-loop_349) + (lambda (lst_86) + (begin + 'for-loop + (if (pair? lst_86) + (let-values (((body_20) (unsafe-car lst_86)) + ((rest_41) (unsafe-cdr lst_86))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((p_42) + (if (expanded+parsed? + body_20) + (expanded+parsed-parsed + body_20) + body_20))) + (if (parsed-define-values? + p_42) + (let-values () + (check-expr_0 + (parsed-define-values-rhs + p_42) + (length + (parsed-define-values-syms + p_42)) + p_42)) + (if (let-values (((or-part_14) + (parsed-#%declare? + p_42))) + (if or-part_14 + or-part_14 + (let-values (((or-part_82) + (parsed-module? + p_42))) + (if or-part_82 + or-part_82 + (syntax?$1 + p_42))))) + (let-values () + (void)) + (let-values () + (disallow + p_42)))))) + (values))))) + (values))))) + (if (not #f) (for-loop_349 rest_41) (values)))) + (values)))))) + for-loop_349) + lst_432))) + (void))))) + ((check-expr_0) + (lambda (e_98 num-results_0 enclosing_15) + (begin + 'check-expr + (if (parsed-lambda? e_98) + (let-values () + (begin (check-count 1 num-results_0 enclosing_15) (check-no-disallowed-expr_0 e_98))) + (if (parsed-case-lambda? e_98) + (let-values () + (begin (check-count 1 num-results_0 enclosing_15) (check-no-disallowed-expr_0 e_98))) + (if (parsed-quote? e_98) + (let-values () + (begin + (check-datum (parsed-quote-datum e_98) e_98) + (check-count 1 num-results_0 enclosing_15))) + (if (parsed-app? e_98) + (let-values () + (let-values (((rands_1) (parsed-app-rands e_98))) + (begin + (let-values (((lst_23) rands_1)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_23))) + ((letrec-values (((for-loop_19) + (lambda (lst_87) + (begin + 'for-loop + (if (pair? lst_87) + (let-values (((rand_0) (unsafe-car lst_87)) + ((rest_254) (unsafe-cdr lst_87))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (check-expr_0 + rand_0 + 1 + e_98)) + (values))))) + (values))))) + (if (not #f) (for-loop_19 rest_254) (values)))) + (values)))))) + for-loop_19) + lst_23))) + (void) + (let-values (((tmp_82) (cross-phase-primitive-name (parsed-app-rator e_98)))) + (if (if (equal? tmp_82 'cons) #t (equal? tmp_82 'list)) + (let-values () (check-count 1 num-results_0 enclosing_15)) + (if (equal? tmp_82 'make-struct-type) + (let-values () (check-count 5 num-results_0 enclosing_15)) + (if (equal? tmp_82 'make-struct-type-property) + (let-values () (check-count 3 num-results_0 enclosing_15)) + (if (equal? tmp_82 'gensym) + (let-values () + (if (let-values (((or-part_87) (= 0 (length rands_1)))) + (if or-part_87 + or-part_87 + (if (= 1 (length rands_1)) + (quoted-string? (car rands_1)) + #f))) + (void) + (let-values () (disallow e_98)))) + (if (equal? tmp_82 'string->uninterned-symbol) + (let-values () + (if (if (= 1 (length rands_1)) (quoted-string? (car rands_1)) #f) + (void) + (let-values () (disallow e_98)))) + (let-values () (disallow e_98))))))))))) + (let-values () (check-no-disallowed-expr_0 e_98))))))))) + ((check-no-disallowed-expr_0) + (lambda (e_102) + (begin + 'check-no-disallowed-expr + (if (parsed-lambda? e_102) + (let-values () (check-body-no-disallowed-expr_0 (parsed-lambda-body e_102))) + (if (parsed-case-lambda? e_102) + (let-values () + (begin + (let-values (((lst_190) (parsed-case-lambda-clauses e_102))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_190))) + ((letrec-values (((for-loop_206) + (lambda (lst_102) + (begin + 'for-loop + (if (pair? lst_102) + (let-values (((clause_5) (unsafe-car lst_102)) + ((rest_170) (unsafe-cdr lst_102))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (check-body-no-disallowed-expr_0 + (cadr clause_5))) + (values))))) + (values))))) + (if (not #f) (for-loop_206 rest_170) (values)))) + (values)))))) + for-loop_206) + lst_190))) + (void))) + (if (if (parsed-app? e_102) + (if (eq? + 'variable-reference-from-unsafe? + (cross-phase-primitive-name (parsed-app-rator e_102))) + (andmap2 parsed-#%variable-reference? (parsed-app-rands e_102)) + #f) + #f) + (let-values () (void)) + (if (parsed-app? e_102) + (let-values () + (begin + (check-no-disallowed-expr_0 (parsed-app-rator e_102)) + (let-values (((lst_103) (parsed-app-rands e_102))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_103))) + ((letrec-values (((for-loop_106) + (lambda (lst_169) + (begin + 'for-loop + (if (pair? lst_169) + (let-values (((e_103) (unsafe-car lst_169)) + ((rest_85) (unsafe-cdr lst_169))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (check-no-disallowed-expr_0 + e_103)) + (values))))) + (values))))) + (if (not #f) (for-loop_106 rest_85) (values)))) + (values)))))) + for-loop_106) + lst_103))) + (void))) + (if (parsed-if? e_102) + (let-values () + (begin + (check-no-disallowed-expr_0 (parsed-if-tst e_102)) + (check-no-disallowed-expr_0 (parsed-if-thn e_102)) + (check-no-disallowed-expr_0 (parsed-if-els e_102)))) + (if (parsed-set!? e_102) + (let-values () + (let-values (((id_4) (parsed-set!-id e_102))) + (let-values (((normal-b_1) (parsed-id-binding id_4))) + (begin + (if (let-values (((or-part_89) (not normal-b_1))) + (if or-part_89 + or-part_89 + (let-values (((or-part_90) (parsed-top-id? id_4))) + (if or-part_90 + or-part_90 + (if (not (symbol? normal-b_1)) + (eq? (module-binding-module normal-b_1) self-mpi_7) + #f))))) + (let-values () (disallow e_102)) + (void)) + (check-no-disallowed-expr_0 (parsed-set!-rhs e_102)))))) + (if (parsed-with-continuation-mark? e_102) + (let-values () + (begin + (check-no-disallowed-expr_0 (parsed-with-continuation-mark-key e_102)) + (check-no-disallowed-expr_0 (parsed-with-continuation-mark-val e_102)) + (check-no-disallowed-expr_0 (parsed-with-continuation-mark-body e_102)))) + (if (parsed-begin? e_102) + (let-values () (check-body-no-disallowed-expr_0 (parsed-begin-body e_102))) + (if (parsed-begin0? e_102) + (let-values () + (check-body-no-disallowed-expr_0 (parsed-begin0-body e_102))) + (if (parsed-let_-values? e_102) + (let-values () + (begin + (let-values (((lst_179) (parsed-let_-values-clauses e_102))) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_179))) + ((letrec-values (((for-loop_129) + (lambda (lst_27) + (begin + 'for-loop + (if (pair? lst_27) + (let-values (((clause_6) + (unsafe-car lst_27)) + ((rest_152) + (unsafe-cdr lst_27))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (check-no-disallowed-expr_0 + (cadr + clause_6))) + (values))))) + (values))))) + (if (not #f) + (for-loop_129 rest_152) + (values)))) + (values)))))) + for-loop_129) + lst_179))) + (void) + (check-body-no-disallowed-expr_0 (parsed-let_-values-body e_102)))) + (if (let-values (((or-part_503) (parsed-quote-syntax? e_102))) + (if or-part_503 or-part_503 (parsed-#%variable-reference? e_102))) + (let-values () (disallow e_102)) + (let-values () (void)))))))))))))))) + ((check-body-no-disallowed-expr_0) + (lambda (l_35) + (begin + 'check-body-no-disallowed-expr + (begin + (let-values (((lst_26) l_35)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_26))) + ((letrec-values (((for-loop_236) + (lambda (lst_61) + (begin + 'for-loop + (if (pair? lst_61) + (let-values (((e_104) (unsafe-car lst_61)) + ((rest_205) (unsafe-cdr lst_61))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (check-no-disallowed-expr_0 + e_104)) + (values))))) + (values))))) + (if (not #f) (for-loop_236 rest_205) (values)))) + (values)))))) + for-loop_236) + lst_26))) + (void)))))) + (check-body_0 bodys_12))))) + (define-values + (check-count) + (lambda (is-num_0 expected-num_0 enclosing_16) + (begin (if (= is-num_0 expected-num_0) (void) (let-values () (disallow enclosing_16)))))) + (define-values + (check-datum) + (lambda (d_35 e_89) + (begin + (if (let-values (((or-part_516) (number? d_35))) + (if or-part_516 + or-part_516 + (let-values (((or-part_150) (boolean? d_35))) + (if or-part_150 + or-part_150 + (let-values (((or-part_24) (symbol? d_35))) + (if or-part_24 + or-part_24 + (let-values (((or-part_76) (string? d_35))) + (if or-part_76 + or-part_76 + (let-values (((or-part_77) (bytes? d_35))) (if or-part_77 or-part_77 (null? d_35))))))))))) + (let-values () (void)) + (let-values () (disallow e_89)))))) + (define-values + (quoted-string?) + (lambda (e_105) (begin (if (parsed-quote? e_105) (string? (parsed-quote-datum e_105)) #f)))) + (define-values + (cross-phase-primitive-name) + (lambda (id_154) + (begin + (if (parsed-id? id_154) + (let-values () + (let-values (((b_58) (parsed-id-binding id_154))) + (if (module-binding? b_58) + (if (eq? runtime-module-name (1/module-path-index-resolve (module-binding-module b_58))) + (module-binding-sym b_58) + #f) + #f))) + (let-values () #f))))) + (define-values + (disallow) + (lambda (body_21) + (begin + (raise-syntax-error$1 + 'module + "not allowed in a cross-phase persistent module" + (if (parsed? body_21) (datum->syntax$1 #f body_21 (parsed-s body_21)) body_21))))) + (define-values + (1/call-with-module-prompt) + (lambda (thunk_3) + (begin + 'call-with-module-prompt + (call-with-continuation-prompt thunk_3 (default-continuation-prompt-tag) module-prompt-handler)))) + (define-values + (call-with-module-prompt/value-list) + (lambda (who_37 thunk_13 ids_44 handler_5) + (begin + (1/call-with-module-prompt + (lambda () + (call-with-values + thunk_13 + (lambda vals_11 + (begin + (if (= (length vals_11) (length ids_44)) + (void) + (let-values () (raise-bindings-arity-error who_37 ids_44 vals_11))) + (handler_5 vals_11) + (apply values vals_11))))))))) + (define-values + (module-prompt-handler) + (lambda args_15 (begin (apply abort-current-continuation (default-continuation-prompt-tag) args_15)))) + (void + (add-core-form!* + 'module + (lambda (s_180 ctx_109) + (begin + (if (eq? (expand-context-context ctx_109) 'top-level) + (void) + (let-values () + (begin + (let-values (((obs_114) (expand-context-observer ctx_109))) + (if obs_114 (let-values () (let-values () (call-expand-observe obs_114 'prim-module #f))) (void))) + (raise-syntax-error$1 #f "allowed only at the top level or in a module top-level" s_180)))) + (if log-performance? (let-values () (start-performance-region 'expand 'module)) (void)) + (begin0 + (let-values () + (let-values (((s195_0) s_180) ((ctx196_0) ctx_109) ((temp197_3) #f)) + (expand-module.1 #f #f #f #f unsafe-undefined #f s195_0 ctx196_0 temp197_3))) + (if log-performance? (let-values () (end-performance-region)) (void))))))) + (void + (add-core-form!* + 'module* + (lambda (s_8 ctx_110) + (begin + (let-values (((obs_115) (expand-context-observer ctx_110))) + (if obs_115 (let-values () (let-values () (call-expand-observe obs_115 'prim-module #f))) (void))) + (raise-syntax-error$1 #f "illegal use (not in a module top-level)" s_8))))) + (void + (add-core-form!* + '#%module-begin + (lambda (s_311 ctx_111) + (begin + (let-values (((obs_116) (expand-context-observer ctx_111))) + (if obs_116 (let-values () (let-values () (call-expand-observe obs_116 'prim-module-begin #f))) (void))) + (if (eq? (expand-context-context ctx_111) 'module-begin) + (void) + (let-values () (raise-syntax-error$1 #f "not in a module-definition context" s_311))) + (if (expand-context-module-begin-k ctx_111) + (void) + (let-values () (raise-syntax-error$1 #f "not currently transforming a module" s_311))) + ((expand-context-module-begin-k ctx_111) + s_311 + (let-values (((v_274) ctx_111)) + (let-values (((the-struct_96) v_274)) + (if (expand-context/outer? the-struct_96) + (let-values (((inner198_0) + (let-values (((the-struct_97) (root-expand-context/outer-inner v_274))) + (if (expand-context/inner? the-struct_97) + (let-values (((module-begin-k199_0) #f)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi the-struct_97) + (root-expand-context/inner-module-scopes the-struct_97) + (root-expand-context/inner-top-level-bind-scope the-struct_97) + (root-expand-context/inner-all-scopes-stx the-struct_97) + (root-expand-context/inner-defined-syms the-struct_97) + (root-expand-context/inner-counter the-struct_97) + (root-expand-context/inner-lift-key the-struct_97) + (expand-context/inner-to-parsed? the-struct_97) + (expand-context/inner-phase the-struct_97) + (expand-context/inner-namespace the-struct_97) + (expand-context/inner-just-once? the-struct_97) + module-begin-k199_0 + (expand-context/inner-allow-unbound? the-struct_97) + (expand-context/inner-in-local-expand? the-struct_97) + (expand-context/inner-keep-#%expression? the-struct_97) + (expand-context/inner-stops the-struct_97) + (expand-context/inner-declared-submodule-names the-struct_97) + (expand-context/inner-lifts the-struct_97) + (expand-context/inner-lift-envs the-struct_97) + (expand-context/inner-module-lifts the-struct_97) + (expand-context/inner-require-lifts the-struct_97) + (expand-context/inner-to-module-lifts the-struct_97) + (expand-context/inner-requires+provides the-struct_97) + (expand-context/inner-observer the-struct_97) + (expand-context/inner-for-serializable? the-struct_97) + (expand-context/inner-to-correlated-linklet? the-struct_97) + (expand-context/inner-normalize-locals? the-struct_97) + (expand-context/inner-parsing-expanded? the-struct_97) + (expand-context/inner-skip-visit-available? the-struct_97))) + (raise-argument-error 'struct-copy "expand-context/inner?" the-struct_97))))) + (expand-context/outer1.1 + inner198_0 + (root-expand-context/outer-post-expansion the-struct_96) + (root-expand-context/outer-use-site-scopes the-struct_96) + (root-expand-context/outer-frame-id the-struct_96) + (expand-context/outer-context the-struct_96) + (expand-context/outer-env the-struct_96) + (expand-context/outer-scopes the-struct_96) + (expand-context/outer-def-ctx-scopes the-struct_96) + (expand-context/outer-binding-layer the-struct_96) + (expand-context/outer-reference-records the-struct_96) + (expand-context/outer-only-immediate? the-struct_96) + (expand-context/outer-need-eventually-defined the-struct_96) + (expand-context/outer-current-introduction-scopes the-struct_96) + (expand-context/outer-current-use-scopes the-struct_96) + (expand-context/outer-name the-struct_96))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_96))))))))) + (void + (add-core-form!* + '#%declare + (lambda (s_459 ctx_112) + (begin + (let-values (((obs_117) (expand-context-observer ctx_112))) + (if obs_117 (let-values () (let-values () (call-expand-observe obs_117 'prim-declare #f))) (void))) + (raise-syntax-error$1 #f "not allowed outside of a module top-level" s_459))))) + (define-values + (expand-module.1) + (lambda (always-produce-compiled?1_0 + enclosing-is-cross-phase-persistent?3_0 + enclosing-requires+provides4_0 + keep-enclosing-scope-at-phase2_0 + modules-being-compiled6_0 + mpis-for-enclosing-reset5_0 + s13_0 + init-ctx14_0 + enclosing-self15_0) + (begin + 'expand-module + (let-values (((s_18) s13_0)) + (let-values (((init-ctx_0) init-ctx14_0)) + (let-values (((enclosing-self_1) enclosing-self15_0)) + (let-values (((always-produce-compiled?_0) always-produce-compiled?1_0)) + (let-values (((keep-enclosing-scope-at-phase_0) keep-enclosing-scope-at-phase2_0)) + (let-values (((enclosing-is-cross-phase-persistent?_0) enclosing-is-cross-phase-persistent?3_0)) + (let-values (((enclosing-r+p_1) enclosing-requires+provides4_0)) + (let-values (((mpis-for-enclosing-reset_0) mpis-for-enclosing-reset5_0)) + (let-values (((modules-being-compiled_3) + (if (eq? modules-being-compiled6_0 unsafe-undefined) + (make-hasheq) + modules-being-compiled6_0))) + (let-values () + (let-values ((() + (begin + (let-values (((obs_118) (expand-context-observer init-ctx_0))) + (if obs_118 + (let-values () + (let-values () (call-expand-observe obs_118 'prim-module s_18))) + (void))) + (values)))) + (let-values (((ok?_77 module200_0 id:module-name201_0 initial-require202_0 body203_0) + (let-values (((s_449) s_18)) + (let-values (((orig-s_83) s_449)) + (let-values (((module200_1 + id:module-name201_1 + initial-require202_1 + body203_1) + (let-values (((s_60) + (if (syntax?$1 s_449) + (syntax-e$1 s_449) + s_449))) + (if (pair? s_60) + (let-values (((module204_0) + (let-values (((s_320) (car s_60))) s_320)) + ((id:module-name205_0 + initial-require206_0 + body207_0) + (let-values (((s_562) (cdr s_60))) + (let-values (((s_563) + (if (syntax?$1 s_562) + (syntax-e$1 s_562) + s_562))) + (if (pair? s_563) + (let-values (((id:module-name208_0) + (let-values (((s_564) + (car + s_563))) + (if (let-values (((or-part_139) + (if (syntax?$1 + s_564) + (symbol? + (syntax-e$1 + s_564)) + #f))) + (if or-part_139 + or-part_139 + (symbol? + s_564))) + s_564 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_83 + s_564)))) + ((initial-require209_0 + body210_0) + (let-values (((s_65) + (cdr + s_563))) + (let-values (((s_197) + (if (syntax?$1 + s_65) + (syntax-e$1 + s_65) + s_65))) + (if (pair? s_197) + (let-values (((initial-require211_0) + (let-values (((s_572) + (car + s_197))) + s_572)) + ((body212_0) + (let-values (((s_198) + (cdr + s_197))) + (let-values (((s_199) + (if (syntax?$1 + s_198) + (syntax-e$1 + s_198) + s_198))) + (let-values (((flat-s_29) + (to-syntax-list.1 + s_199))) + (if (not + flat-s_29) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_83)) + (let-values () + flat-s_29))))))) + (values + initial-require211_0 + body212_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_83)))))) + (values + id:module-name208_0 + initial-require209_0 + body210_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_83)))))) + (values + module204_0 + id:module-name205_0 + initial-require206_0 + body207_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_83))))) + (values + #t + module200_1 + id:module-name201_1 + initial-require202_1 + body203_1)))))) + (let-values (((rebuild-s_14) + (let-values (((init-ctx221_0) init-ctx_0) + ((s222_0) s_18) + ((temp223_2) #t) + ((temp224_2) #t)) + (keep-as-needed.1 #f temp224_2 temp223_2 init-ctx221_0 s222_0)))) + (let-values (((initial-require_0) (syntax->datum$1 initial-require202_0))) + (let-values ((() + (begin + (if (let-values (((or-part_553) keep-enclosing-scope-at-phase_0)) + (if or-part_553 or-part_553 (1/module-path? initial-require_0))) + (void) + (let-values () + (raise-syntax-error$1 + #f + "not a module path" + s_18 + initial-require202_0))) + (values)))) + (let-values (((phase_153) 0)) + (let-values (((module-name-sym_0) (syntax-e$1 id:module-name201_0))) + (let-values (((outside-scope_1) (new-scope 'module))) + (let-values (((inside-scope_0) (new-multi-scope module-name-sym_0))) + (let-values (((self_34) + (make-self-module-path-index + (if enclosing-self_1 + module-name-sym_0 + (string->uninterned-symbol + (symbol->string module-name-sym_0))) + enclosing-self_1))) + (let-values (((enclosing-mod_1) + (if enclosing-self_1 + (1/module-path-index-join '(submod "..") self_34) + #f))) + (let-values ((() + (begin + (if mpis-for-enclosing-reset_0 + (let-values () + (set-box! + mpis-for-enclosing-reset_0 + (cons + enclosing-mod_1 + (unbox mpis-for-enclosing-reset_0)))) + (void)) + (values)))) + (let-values (((apply-module-scopes_0) + (make-apply-module-scopes + outside-scope_1 + inside-scope_0 + init-ctx_0 + keep-enclosing-scope-at-phase_0 + self_34 + enclosing-self_1 + enclosing-mod_1))) + (let-values (((initial-require-s_0) + (apply-module-scopes_0 initial-require202_0))) + (let-values (((all-scopes-s_0) initial-require-s_0)) + (let-values (((root-ctx_6) + (let-values (((self225_0) self_34) + ((temp226_1) + (if keep-enclosing-scope-at-phase_0 + (root-expand-context-module-scopes + init-ctx_0) + null)) + ((outside-scope227_0) + outside-scope_1) + ((inside-scope228_0) inside-scope_0) + ((all-scopes-s229_0) all-scopes-s_0)) + (make-root-expand-context.1 + all-scopes-s229_0 + temp226_1 + outside-scope227_0 + inside-scope228_0 + self225_0)))) + (let-values (((new-module-scopes_0) + (root-expand-context-module-scopes root-ctx_6))) + (let-values (((frame-id_15) + (root-expand-context-frame-id root-ctx_6))) + (let-values (((make-m-ns_0) + (lambda (for-submodule?213_0 ns215_0) + (begin + 'make-m-ns + (let-values (((ns_66) ns215_0)) + (let-values (((for-submodule?_1) + (if (eq? + for-submodule?213_0 + unsafe-undefined) + (if enclosing-self_1 + #t + #f) + for-submodule?213_0))) + (let-values () + (let-values (((ns230_0) ns_66) + ((self231_0) self_34) + ((root-ctx232_0) + root-ctx_6) + ((for-submodule?233_0) + for-submodule?_1)) + (make-module-namespace.1 + for-submodule?233_0 + self231_0 + root-ctx232_0 + ns230_0))))))))) + (let-values () + (let-values () + (let-values (((m-ns_17) + (let-values (((temp234_1) + (expand-context-namespace + init-ctx_0))) + (make-m-ns_0 + unsafe-undefined + temp234_1)))) + (let-values (((ctx_113) + (let-values (((v_138) + (copy-root-expand-context + init-ctx_0 + root-ctx_6))) + (let-values (((the-struct_98) + v_138)) + (if (expand-context/outer? + the-struct_98) + (let-values (((post-expansion235_0) + (lambda (s_44) + (begin + 'post-expansion235 + (add-scope + s_44 + inside-scope_0)))) + ((inner236_0) + (let-values (((the-struct_99) + (root-expand-context/outer-inner + v_138))) + (if (expand-context/inner? + the-struct_99) + (let-values (((allow-unbound?237_0) + #f) + ((namespace238_0) + m-ns_17) + ((phase239_0) + phase_153) + ((just-once?240_0) + #f)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_99) + (root-expand-context/inner-module-scopes + the-struct_99) + (root-expand-context/inner-top-level-bind-scope + the-struct_99) + (root-expand-context/inner-all-scopes-stx + the-struct_99) + (root-expand-context/inner-defined-syms + the-struct_99) + (root-expand-context/inner-counter + the-struct_99) + (root-expand-context/inner-lift-key + the-struct_99) + (expand-context/inner-to-parsed? + the-struct_99) + phase239_0 + namespace238_0 + just-once?240_0 + (expand-context/inner-module-begin-k + the-struct_99) + allow-unbound?237_0 + (expand-context/inner-in-local-expand? + the-struct_99) + (expand-context/inner-keep-#%expression? + the-struct_99) + (expand-context/inner-stops + the-struct_99) + (expand-context/inner-declared-submodule-names + the-struct_99) + (expand-context/inner-lifts + the-struct_99) + (expand-context/inner-lift-envs + the-struct_99) + (expand-context/inner-module-lifts + the-struct_99) + (expand-context/inner-require-lifts + the-struct_99) + (expand-context/inner-to-module-lifts + the-struct_99) + (expand-context/inner-requires+provides + the-struct_99) + (expand-context/inner-observer + the-struct_99) + (expand-context/inner-for-serializable? + the-struct_99) + (expand-context/inner-to-correlated-linklet? + the-struct_99) + (expand-context/inner-normalize-locals? + the-struct_99) + (expand-context/inner-parsing-expanded? + the-struct_99) + (expand-context/inner-skip-visit-available? + the-struct_99))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_99))))) + (expand-context/outer1.1 + inner236_0 + post-expansion235_0 + (root-expand-context/outer-use-site-scopes + the-struct_98) + (root-expand-context/outer-frame-id + the-struct_98) + (expand-context/outer-context + the-struct_98) + (expand-context/outer-env + the-struct_98) + (expand-context/outer-scopes + the-struct_98) + (expand-context/outer-def-ctx-scopes + the-struct_98) + (expand-context/outer-binding-layer + the-struct_98) + (expand-context/outer-reference-records + the-struct_98) + (expand-context/outer-only-immediate? + the-struct_98) + (expand-context/outer-need-eventually-defined + the-struct_98) + (expand-context/outer-current-introduction-scopes + the-struct_98) + (expand-context/outer-current-use-scopes + the-struct_98) + (expand-context/outer-name + the-struct_98))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_98)))))) + (let-values (((bodys_14) + (let-values (((scoped-s_0) + (apply-module-scopes_0 + s_18))) + (let-values (((ok?_78 + _241_0 + _242_0 + _243_0 + body244_0) + (let-values (((s_77) + scoped-s_0)) + (let-values (((orig-s_84) + s_77)) + (let-values (((_241_1 + _242_1 + _243_1 + body244_1) + (let-values (((s_850) + (if (syntax?$1 + s_77) + (syntax-e$1 + s_77) + s_77))) + (if (pair? + s_850) + (let-values (((_245_0) + (let-values (((s_207) + (car + s_850))) + s_207)) + ((_246_0 + _247_0 + body248_0) + (let-values (((s_208) + (cdr + s_850))) + (let-values (((s_209) + (if (syntax?$1 + s_208) + (syntax-e$1 + s_208) + s_208))) + (if (pair? + s_209) + (let-values (((_249_0) + (let-values (((s_465) + (car + s_209))) + s_465)) + ((_250_0 + body251_0) + (let-values (((s_46) + (cdr + s_209))) + (let-values (((s_575) + (if (syntax?$1 + s_46) + (syntax-e$1 + s_46) + s_46))) + (if (pair? + s_575) + (let-values (((_252_0) + (let-values (((s_576) + (car + s_575))) + s_576)) + ((body253_0) + (let-values (((s_577) + (cdr + s_575))) + (let-values (((s_107) + (if (syntax?$1 + s_577) + (syntax-e$1 + s_577) + s_577))) + (let-values (((flat-s_31) + (to-syntax-list.1 + s_107))) + (if (not + flat-s_31) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_84)) + (let-values () + flat-s_31))))))) + (values + _252_0 + body253_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_84)))))) + (values + _249_0 + _250_0 + body251_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_84)))))) + (values + _245_0 + _246_0 + _247_0 + body248_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_84))))) + (values + #t + _241_1 + _242_1 + _243_1 + body244_1)))))) + body244_0)))) + (let-values (((requires+provides_7) + (let-values (((self254_0) + self_34)) + (make-requires+provides.1 + #f + self254_0)))) + (let-values (((defined-syms_11) + (root-expand-context-defined-syms + root-ctx_6))) + (let-values (((compiled-submodules_1) + (make-hasheq))) + (let-values (((compiled-module-box_0) + (box #f))) + (let-values (((mpis-to-reset_0) + (box null))) + (let-values (((initial-require!_0) + (lambda (bind?217_0) + (begin + 'initial-require! + (let-values (((bind?_3) + bind?217_0)) + (let-values () + (if (not + keep-enclosing-scope-at-phase_0) + (let-values () + (let-values (((initial-require255_0) + initial-require_0) + ((self256_0) + self_34) + ((all-scopes-s257_0) + all-scopes-s_0) + ((m-ns258_0) + m-ns_17) + ((requires+provides259_0) + requires+provides_7) + ((bind?260_0) + bind?_3) + ((temp261_1) + 'module)) + (perform-initial-require!.1 + bind?260_0 + temp261_1 + initial-require255_0 + self256_0 + all-scopes-s257_0 + m-ns258_0 + requires+provides259_0))) + (let-values () + (begin + (add-required-module! + requires+provides_7 + enclosing-mod_1 + keep-enclosing-scope-at-phase_0 + enclosing-is-cross-phase-persistent?_0) + (let-values (((requires+provides262_0) + requires+provides_7) + ((enclosing-r+p263_0) + enclosing-r+p_1) + ((enclosing-mod264_0) + enclosing-mod_1) + ((keep-enclosing-scope-at-phase265_0) + keep-enclosing-scope-at-phase_0)) + (add-enclosing-module-defined-and-required!.1 + enclosing-r+p263_0 + requires+provides262_0 + enclosing-mod264_0 + keep-enclosing-scope-at-phase265_0)) + (let-values (((m-ns266_0) + m-ns_17) + ((enclosing-mod267_0) + enclosing-mod_1) + ((keep-enclosing-scope-at-phase268_0) + keep-enclosing-scope-at-phase_0)) + (namespace-module-visit!.1 + unsafe-undefined + m-ns266_0 + enclosing-mod267_0 + keep-enclosing-scope-at-phase268_0))))))))))) + (let-values () + (let-values () + (let-values ((() + (begin + (let-values (((obs_119) + (expand-context-observer + init-ctx_0))) + (if obs_119 + (let-values () + (let-values () + (call-expand-observe + obs_119 + 'prepare-env))) + (void))) + (values)))) + (let-values ((() + (begin + (let-values (((temp220_2) + #t)) + (initial-require!_0 + temp220_2)) + (values)))) + (let-values ((() + (begin + (let-values (((obs_120) + (expand-context-observer + init-ctx_0))) + (if obs_120 + (let-values () + (let-values () + (call-expand-observe + obs_120 + 'rename-one + bodys_14))) + (void))) + (values)))) + (let-values (((again?_0) + #f)) + (letrec-values (((module-begin-k_1) + (lambda (mb-s_0 + mb-init-ctx_0) + (begin + 'module-begin-k + (let-values ((() + (begin + (if again?_0 + (let-values () + (begin + (requires+provides-reset! + requires+provides_7) + (let-values (((temp273_1) + #f)) + (initial-require!_0 + temp273_1)) + (hash-clear! + compiled-submodules_1) + (set-box! + compiled-module-box_0 + #f))) + (void)) + (values)))) + (let-values ((() + (begin + (set! again?_0 + #t) + (values)))) + (let-values (((ctx_114) + (let-values (((v_65) + mb-init-ctx_0)) + (let-values (((the-struct_100) + v_65)) + (if (expand-context/outer? + the-struct_100) + (let-values (((post-expansion274_0) + (lambda (s_851) + (begin + 'post-expansion274 + (add-scope + s_851 + inside-scope_0)))) + ((inner275_0) + (let-values (((the-struct_101) + (root-expand-context/outer-inner + v_65))) + (if (expand-context/inner? + the-struct_101) + (let-values (((module-begin-k276_0) + (lambda (s_852 + ctx_25) + (begin + 'module-begin-k276 + (let-values (((new-requires+provides_0) + (let-values (((self285_0) + self_34) + ((requires+provides286_0) + requires+provides_7)) + (make-requires+provides.1 + requires+provides286_0 + self285_0)))) + (let-values (((requires+provides277_0) + requires+provides_7) + ((compiled-submodules278_0) + compiled-submodules_1) + ((compiled-module-box279_0) + compiled-module-box_0) + ((defined-syms280_0) + defined-syms_11) + ((requires+provides281_0) + new-requires+provides_0) + ((compiled-submodules282_0) + (make-hasheq)) + ((compiled-module-box283_0) + (box + #f)) + ((defined-syms284_0) + (make-hasheq))) + (dynamic-wind + (lambda () + (begin + (set! requires+provides_7 + requires+provides281_0) + (set! compiled-submodules_1 + compiled-submodules282_0) + (set! compiled-module-box_0 + compiled-module-box283_0) + (set! defined-syms_11 + defined-syms284_0))) + (lambda () + (module-begin-k_1 + s_852 + ctx_25)) + (lambda () + (begin + (set! requires+provides_7 + requires+provides277_0) + (set! compiled-submodules_1 + compiled-submodules278_0) + (set! compiled-module-box_0 + compiled-module-box279_0) + (set! defined-syms_11 + defined-syms280_0)))))))))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_101) + (root-expand-context/inner-module-scopes + the-struct_101) + (root-expand-context/inner-top-level-bind-scope + the-struct_101) + (root-expand-context/inner-all-scopes-stx + the-struct_101) + (root-expand-context/inner-defined-syms + the-struct_101) + (root-expand-context/inner-counter + the-struct_101) + (root-expand-context/inner-lift-key + the-struct_101) + (expand-context/inner-to-parsed? + the-struct_101) + (expand-context/inner-phase + the-struct_101) + (expand-context/inner-namespace + the-struct_101) + (expand-context/inner-just-once? + the-struct_101) + module-begin-k276_0 + (expand-context/inner-allow-unbound? + the-struct_101) + (expand-context/inner-in-local-expand? + the-struct_101) + (expand-context/inner-keep-#%expression? + the-struct_101) + (expand-context/inner-stops + the-struct_101) + (expand-context/inner-declared-submodule-names + the-struct_101) + (expand-context/inner-lifts + the-struct_101) + (expand-context/inner-lift-envs + the-struct_101) + (expand-context/inner-module-lifts + the-struct_101) + (expand-context/inner-require-lifts + the-struct_101) + (expand-context/inner-to-module-lifts + the-struct_101) + (expand-context/inner-requires+provides + the-struct_101) + (expand-context/inner-observer + the-struct_101) + (expand-context/inner-for-serializable? + the-struct_101) + (expand-context/inner-to-correlated-linklet? + the-struct_101) + (expand-context/inner-normalize-locals? + the-struct_101) + (expand-context/inner-parsing-expanded? + the-struct_101) + (expand-context/inner-skip-visit-available? + the-struct_101))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_101))))) + (expand-context/outer1.1 + inner275_0 + post-expansion274_0 + (root-expand-context/outer-use-site-scopes + the-struct_100) + (root-expand-context/outer-frame-id + the-struct_100) + (expand-context/outer-context + the-struct_100) + (expand-context/outer-env + the-struct_100) + (expand-context/outer-scopes + the-struct_100) + (expand-context/outer-def-ctx-scopes + the-struct_100) + (expand-context/outer-binding-layer + the-struct_100) + (expand-context/outer-reference-records + the-struct_100) + (expand-context/outer-only-immediate? + the-struct_100) + (expand-context/outer-need-eventually-defined + the-struct_100) + (expand-context/outer-current-introduction-scopes + the-struct_100) + (expand-context/outer-current-use-scopes + the-struct_100) + (expand-context/outer-name + the-struct_100))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_100)))))) + (let-values (((added-s_4) + (add-scope + mb-s_0 + inside-scope_0))) + (let-values (((ok?_79 + #%module-begin269_0 + body270_0) + (let-values (((s_853) + added-s_4)) + (let-values (((orig-s_85) + s_853)) + (let-values (((#%module-begin269_1 + body270_1) + (let-values (((s_517) + (if (syntax?$1 + s_853) + (syntax-e$1 + s_853) + s_853))) + (if (pair? + s_517) + (let-values (((#%module-begin271_0) + (let-values (((s_130) + (car + s_517))) + s_130)) + ((body272_0) + (let-values (((s_131) + (cdr + s_517))) + (let-values (((s_132) + (if (syntax?$1 + s_131) + (syntax-e$1 + s_131) + s_131))) + (let-values (((flat-s_53) + (to-syntax-list.1 + s_132))) + (if (not + flat-s_53) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_85)) + (let-values () + flat-s_53))))))) + (values + #%module-begin271_0 + body272_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_85))))) + (values + #t + #%module-begin269_1 + body270_1)))))) + (let-values (((bodys_15) + body270_0)) + (let-values ((() + (begin + (let-values (((obs_121) + (expand-context-observer + ctx_114))) + (if obs_121 + (let-values () + (let-values () + (call-expand-observe + obs_121 + 'rename-one + added-s_4))) + (void))) + (values)))) + (let-values (((rebuild-mb-s_0) + (let-values (((ctx287_0) + ctx_114) + ((mb-s288_0) + mb-s_0)) + (keep-as-needed.1 + #f + #f + #f + ctx287_0 + mb-s288_0)))) + (let-values (((need-eventually-defined_1) + (make-hasheqv))) + (let-values (((module-ends_0) + (make-shared-module-ends))) + (let-values (((declared-keywords_0) + (make-hasheq))) + (let-values (((declared-submodule-names_3) + (make-hasheq))) + (let-values (((initial-lifted-requires_0) + (get-require-lifts + (expand-context-require-lifts + ctx_114)))) + (let-values (((expression-expanded-bodys_0) + ((letrec-values (((pass-1-and-2-loop_0) + (lambda (bodys_16 + phase_154 + keep-stops?_2 + initial-lifted-requires_1) + (begin + 'pass-1-and-2-loop + (let-values (((def-ctx-scopes_8) + (box + null))) + (let-values (((partial-body-ctx_0) + (let-values (((v_275) + ctx_114)) + (let-values (((the-struct_102) + v_275)) + (if (expand-context/outer? + the-struct_102) + (let-values (((context297_0) + 'module) + ((def-ctx-scopes298_0) + def-ctx-scopes_8) + ((need-eventually-defined299_0) + need-eventually-defined_1) + ((inner300_0) + (let-values (((the-struct_103) + (root-expand-context/outer-inner + v_275))) + (if (expand-context/inner? + the-struct_103) + (let-values (((phase301_0) + phase_154) + ((namespace302_0) + (namespace->namespace-at-phase + m-ns_17 + phase_154)) + ((stops303_0) + (free-id-set + phase_154 + (module-expand-stop-ids + phase_154))) + ((declared-submodule-names304_0) + declared-submodule-names_3) + ((lift-key305_0) + (generate-lift-key)) + ((lifts306_0) + (let-values (((temp310_0) + (make-wrap-as-definition + self_34 + frame-id_15 + inside-scope_0 + all-scopes-s_0 + defined-syms_11 + requires+provides_7))) + (make-lift-context.1 + #f + temp310_0))) + ((module-lifts307_0) + (make-module-lift-context + phase_154 + #t)) + ((require-lifts308_0) + (make-require-lift-context + phase_154 + (let-values (((m-ns311_0) + m-ns_17) + ((self312_0) + self_34) + ((requires+provides313_0) + requires+provides_7) + ((declared-submodule-names314_0) + declared-submodule-names_3)) + (make-parse-lifted-require.1 + declared-submodule-names314_0 + m-ns311_0 + self312_0 + requires+provides313_0)) + initial-lifted-requires_1)) + ((to-module-lifts309_0) + (let-values (((phase315_0) + phase_154) + ((module-ends316_0) + module-ends_0) + ((temp317_0) + #f)) + (make-to-module-lift-context.1 + temp317_0 + module-ends316_0 + phase315_0)))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_103) + (root-expand-context/inner-module-scopes + the-struct_103) + (root-expand-context/inner-top-level-bind-scope + the-struct_103) + (root-expand-context/inner-all-scopes-stx + the-struct_103) + (root-expand-context/inner-defined-syms + the-struct_103) + (root-expand-context/inner-counter + the-struct_103) + lift-key305_0 + (expand-context/inner-to-parsed? + the-struct_103) + phase301_0 + namespace302_0 + (expand-context/inner-just-once? + the-struct_103) + (expand-context/inner-module-begin-k + the-struct_103) + (expand-context/inner-allow-unbound? + the-struct_103) + (expand-context/inner-in-local-expand? + the-struct_103) + (expand-context/inner-keep-#%expression? + the-struct_103) + stops303_0 + declared-submodule-names304_0 + lifts306_0 + (expand-context/inner-lift-envs + the-struct_103) + module-lifts307_0 + require-lifts308_0 + to-module-lifts309_0 + (expand-context/inner-requires+provides + the-struct_103) + (expand-context/inner-observer + the-struct_103) + (expand-context/inner-for-serializable? + the-struct_103) + (expand-context/inner-to-correlated-linklet? + the-struct_103) + (expand-context/inner-normalize-locals? + the-struct_103) + (expand-context/inner-parsing-expanded? + the-struct_103) + (expand-context/inner-skip-visit-available? + the-struct_103))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_103))))) + (expand-context/outer1.1 + inner300_0 + (root-expand-context/outer-post-expansion + the-struct_102) + (root-expand-context/outer-use-site-scopes + the-struct_102) + (root-expand-context/outer-frame-id + the-struct_102) + context297_0 + (expand-context/outer-env + the-struct_102) + (expand-context/outer-scopes + the-struct_102) + def-ctx-scopes298_0 + (expand-context/outer-binding-layer + the-struct_102) + (expand-context/outer-reference-records + the-struct_102) + (expand-context/outer-only-immediate? + the-struct_102) + need-eventually-defined299_0 + (expand-context/outer-current-introduction-scopes + the-struct_102) + (expand-context/outer-current-use-scopes + the-struct_102) + (expand-context/outer-name + the-struct_102))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_102)))))) + (let-values (((partially-expanded-bodys_0) + (let-values (((bodys318_0) + bodys_16) + ((phase319_0) + phase_154) + ((partial-body-ctx320_0) + partial-body-ctx_0) + ((m-ns321_0) + m-ns_17) + ((self322_0) + self_34) + ((frame-id323_0) + frame-id_15) + ((requires+provides324_0) + requires+provides_7) + ((need-eventually-defined325_0) + need-eventually-defined_1) + ((all-scopes-s326_0) + all-scopes-s_0) + ((defined-syms327_0) + defined-syms_11) + ((declared-keywords328_0) + declared-keywords_0) + ((declared-submodule-names329_0) + declared-submodule-names_3) + ((compiled-submodules330_0) + compiled-submodules_1) + ((modules-being-compiled331_0) + modules-being-compiled_3) + ((mpis-to-reset332_0) + mpis-to-reset_0) + ((pass-1-and-2-loop333_0) + pass-1-and-2-loop_0)) + (partially-expand-bodys.1 + all-scopes-s326_0 + compiled-submodules330_0 + partial-body-ctx320_0 + declared-keywords328_0 + declared-submodule-names329_0 + defined-syms327_0 + frame-id323_0 + pass-1-and-2-loop333_0 + modules-being-compiled331_0 + mpis-to-reset332_0 + m-ns321_0 + need-eventually-defined325_0 + phase319_0 + requires+provides324_0 + self322_0 + bodys318_0)))) + (let-values ((() + (begin + (let-values (((obs_122) + (expand-context-observer + partial-body-ctx_0))) + (if obs_122 + (let-values () + (let-values () + (call-expand-observe + obs_122 + 'next-group))) + (void))) + (values)))) + (let-values (((body-ctx_6) + (let-values (((v_149) + (accumulate-def-ctx-scopes + partial-body-ctx_0 + def-ctx-scopes_8))) + (let-values (((the-struct_104) + v_149)) + (if (expand-context/outer? + the-struct_104) + (let-values (((def-ctx-scopes334_0) + #f) + ((post-expansion335_0) + #f) + ((inner336_0) + (let-values (((the-struct_18) + (root-expand-context/outer-inner + v_149))) + (if (expand-context/inner? + the-struct_18) + (let-values (((stops337_0) + (if keep-stops?_2 + (expand-context-stops + ctx_114) + empty-free-id-set)) + ((to-module-lifts338_0) + (let-values (((phase339_0) + phase_154) + ((module-ends340_0) + module-ends_0) + ((temp341_0) + #t)) + (make-to-module-lift-context.1 + temp341_0 + module-ends340_0 + phase339_0)))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_18) + (root-expand-context/inner-module-scopes + the-struct_18) + (root-expand-context/inner-top-level-bind-scope + the-struct_18) + (root-expand-context/inner-all-scopes-stx + the-struct_18) + (root-expand-context/inner-defined-syms + the-struct_18) + (root-expand-context/inner-counter + the-struct_18) + (root-expand-context/inner-lift-key + the-struct_18) + (expand-context/inner-to-parsed? + the-struct_18) + (expand-context/inner-phase + the-struct_18) + (expand-context/inner-namespace + the-struct_18) + (expand-context/inner-just-once? + the-struct_18) + (expand-context/inner-module-begin-k + the-struct_18) + (expand-context/inner-allow-unbound? + the-struct_18) + (expand-context/inner-in-local-expand? + the-struct_18) + (expand-context/inner-keep-#%expression? + the-struct_18) + stops337_0 + (expand-context/inner-declared-submodule-names + the-struct_18) + (expand-context/inner-lifts + the-struct_18) + (expand-context/inner-lift-envs + the-struct_18) + (expand-context/inner-module-lifts + the-struct_18) + (expand-context/inner-require-lifts + the-struct_18) + to-module-lifts338_0 + (expand-context/inner-requires+provides + the-struct_18) + (expand-context/inner-observer + the-struct_18) + (expand-context/inner-for-serializable? + the-struct_18) + (expand-context/inner-to-correlated-linklet? + the-struct_18) + (expand-context/inner-normalize-locals? + the-struct_18) + (expand-context/inner-parsing-expanded? + the-struct_18) + (expand-context/inner-skip-visit-available? + the-struct_18))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_18))))) + (expand-context/outer1.1 + inner336_0 + post-expansion335_0 + (root-expand-context/outer-use-site-scopes + the-struct_104) + (root-expand-context/outer-frame-id + the-struct_104) + (expand-context/outer-context + the-struct_104) + (expand-context/outer-env + the-struct_104) + (expand-context/outer-scopes + the-struct_104) + def-ctx-scopes334_0 + (expand-context/outer-binding-layer + the-struct_104) + (expand-context/outer-reference-records + the-struct_104) + (expand-context/outer-only-immediate? + the-struct_104) + (expand-context/outer-need-eventually-defined + the-struct_104) + (expand-context/outer-current-introduction-scopes + the-struct_104) + (expand-context/outer-current-use-scopes + the-struct_104) + (expand-context/outer-name + the-struct_104))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_104)))))) + (let-values (((partially-expanded-bodys289_0) + partially-expanded-bodys_0) + ((phase290_0) + phase_154) + ((body-ctx291_0) + body-ctx_6) + ((self292_0) + self_34) + ((declared-submodule-names293_0) + declared-submodule-names_3) + ((compiled-submodules294_0) + compiled-submodules_1) + ((modules-being-compiled295_0) + modules-being-compiled_3) + ((mpis-to-reset296_0) + mpis-to-reset_0)) + (finish-expanding-body-expressions.1 + compiled-submodules294_0 + body-ctx291_0 + declared-submodule-names293_0 + modules-being-compiled295_0 + mpis-to-reset296_0 + phase290_0 + self292_0 + partially-expanded-bodys289_0))))))))))) + pass-1-and-2-loop_0) + bodys_15 + phase_153 + (stop-at-module*? + ctx_114) + initial-lifted-requires_0))) + (let-values ((() + (begin + (let-values (((obs_123) + (expand-context-observer + ctx_114))) + (if obs_123 + (let-values () + (let-values () + (call-expand-observe + obs_123 + 'next-group))) + (void))) + (values)))) + (let-values ((() + (begin + (check-defined-by-now + need-eventually-defined_1 + self_34 + ctx_114 + requires+provides_7) + (values)))) + (let-values ((() + (begin + (let-values (((obs_124) + (expand-context-observer + ctx_114))) + (if obs_124 + (let-values () + (let-values () + (call-expand-observe + obs_124 + 'next-group))) + (void))) + (values)))) + (let-values (((fully-expanded-bodys-except-post-submodules_0) + (let-values (((expression-expanded-bodys342_0) + expression-expanded-bodys_0) + ((requires+provides343_0) + requires+provides_7) + ((declared-submodule-names344_0) + declared-submodule-names_3) + ((m-ns345_0) + m-ns_17) + ((phase346_0) + phase_153) + ((self347_0) + self_34) + ((ctx348_1) + ctx_114)) + (resolve-provides.1 + ctx348_1 + declared-submodule-names344_0 + m-ns345_0 + phase346_0 + requires+provides343_0 + self347_0 + expression-expanded-bodys342_0)))) + (let-values (((is-cross-phase-persistent?_1) + (hash-ref + declared-keywords_0 + '#:cross-phase-persistent + #f))) + (let-values ((() + (begin + (if is-cross-phase-persistent?_1 + (let-values () + (begin + (if (requires+provides-can-cross-phase-persistent? + requires+provides_7) + (void) + (let-values () + (raise-syntax-error$1 + #f + "cannot be cross-phase persistent due to required modules" + rebuild-s_14 + (hash-ref + declared-keywords_0 + '#:cross-phase-persistent)))) + (check-cross-phase-persistent-form + fully-expanded-bodys-except-post-submodules_0 + self_34))) + (void)) + (values)))) + (let-values ((() + (begin + (let-values (((obs_125) + (expand-context-observer + ctx_114))) + (if obs_125 + (let-values () + (let-values () + (call-expand-observe + obs_125 + 'next-group))) + (void))) + (values)))) + (let-values (((submod-m-ns_0) + (let-values (((m-ns349_0) + m-ns_17) + ((temp350_1) + #t)) + (make-m-ns_0 + temp350_1 + m-ns349_0)))) + (let-values (((submod-ctx_0) + (let-values (((v_276) + ctx_114)) + (let-values (((the-struct_105) + v_276)) + (if (expand-context/outer? + the-struct_105) + (let-values (((frame-id351_0) + #f) + ((post-expansion352_0) + #f) + ((inner353_0) + (let-values (((the-struct_106) + (root-expand-context/outer-inner + v_276))) + (if (expand-context/inner? + the-struct_106) + (let-values (((namespace354_0) + submod-m-ns_0)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_106) + (root-expand-context/inner-module-scopes + the-struct_106) + (root-expand-context/inner-top-level-bind-scope + the-struct_106) + (root-expand-context/inner-all-scopes-stx + the-struct_106) + (root-expand-context/inner-defined-syms + the-struct_106) + (root-expand-context/inner-counter + the-struct_106) + (root-expand-context/inner-lift-key + the-struct_106) + (expand-context/inner-to-parsed? + the-struct_106) + (expand-context/inner-phase + the-struct_106) + namespace354_0 + (expand-context/inner-just-once? + the-struct_106) + (expand-context/inner-module-begin-k + the-struct_106) + (expand-context/inner-allow-unbound? + the-struct_106) + (expand-context/inner-in-local-expand? + the-struct_106) + (expand-context/inner-keep-#%expression? + the-struct_106) + (expand-context/inner-stops + the-struct_106) + (expand-context/inner-declared-submodule-names + the-struct_106) + (expand-context/inner-lifts + the-struct_106) + (expand-context/inner-lift-envs + the-struct_106) + (expand-context/inner-module-lifts + the-struct_106) + (expand-context/inner-require-lifts + the-struct_106) + (expand-context/inner-to-module-lifts + the-struct_106) + (expand-context/inner-requires+provides + the-struct_106) + (expand-context/inner-observer + the-struct_106) + (expand-context/inner-for-serializable? + the-struct_106) + (expand-context/inner-to-correlated-linklet? + the-struct_106) + (expand-context/inner-normalize-locals? + the-struct_106) + (expand-context/inner-parsing-expanded? + the-struct_106) + (expand-context/inner-skip-visit-available? + the-struct_106))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_106))))) + (expand-context/outer1.1 + inner353_0 + post-expansion352_0 + (root-expand-context/outer-use-site-scopes + the-struct_105) + frame-id351_0 + (expand-context/outer-context + the-struct_105) + (expand-context/outer-env + the-struct_105) + (expand-context/outer-scopes + the-struct_105) + (expand-context/outer-def-ctx-scopes + the-struct_105) + (expand-context/outer-binding-layer + the-struct_105) + (expand-context/outer-reference-records + the-struct_105) + (expand-context/outer-only-immediate? + the-struct_105) + (expand-context/outer-need-eventually-defined + the-struct_105) + (expand-context/outer-current-introduction-scopes + the-struct_105) + (expand-context/outer-current-use-scopes + the-struct_105) + (expand-context/outer-name + the-struct_105))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_105)))))) + (let-values (((declare-enclosing-module_0) + (promise1.1 + (lambda () + (let-values (((fully-expanded-bodys-except-post-submodules355_0) + fully-expanded-bodys-except-post-submodules_0) + ((temp356_1) + id:module-name201_0) + ((rebuild-s357_0) + rebuild-s_14) + ((requires+provides358_0) + requires+provides_7) + ((submod-m-ns359_0) + submod-m-ns_0) + ((self360_0) + self_34) + ((enclosing-self361_0) + enclosing-self_1) + ((root-ctx362_0) + root-ctx_6) + ((submod-ctx363_0) + submod-ctx_0) + ((modules-being-compiled364_0) + modules-being-compiled_3) + ((compiled-module-box365_0) + compiled-module-box_0)) + (declare-module-for-expansion.1 + submod-ctx363_0 + enclosing-self361_0 + compiled-module-box365_0 + temp356_1 + modules-being-compiled364_0 + submod-m-ns359_0 + rebuild-s357_0 + requires+provides358_0 + root-ctx362_0 + self360_0 + fully-expanded-bodys-except-post-submodules355_0))) + #f))) + (let-values (((fully-expanded-bodys_0) + (if (stop-at-module*? + submod-ctx_0) + (let-values () + fully-expanded-bodys-except-post-submodules_0) + (let-values () + (let-values (((fully-expanded-bodys-except-post-submodules366_0) + fully-expanded-bodys-except-post-submodules_0) + ((declare-enclosing-module367_0) + declare-enclosing-module_0) + ((phase368_0) + phase_153) + ((self369_0) + self_34) + ((requires+provides370_0) + requires+provides_7) + ((is-cross-phase-persistent?371_0) + is-cross-phase-persistent?_1) + ((all-scopes-s372_0) + all-scopes-s_0) + ((mpis-to-reset373_0) + mpis-to-reset_0) + ((declared-submodule-names374_0) + declared-submodule-names_3) + ((compiled-submodules375_0) + compiled-submodules_1) + ((modules-being-compiled376_0) + modules-being-compiled_3) + ((submod-ctx377_0) + submod-ctx_0)) + (expand-post-submodules.1 + all-scopes-s372_0 + compiled-submodules375_0 + submod-ctx377_0 + declare-enclosing-module367_0 + declared-submodule-names374_0 + is-cross-phase-persistent?371_0 + modules-being-compiled376_0 + mpis-to-reset373_0 + phase368_0 + requires+provides370_0 + self369_0 + fully-expanded-bodys-except-post-submodules366_0)))))) + (if (expand-context-to-parsed? + submod-ctx_0) + (let-values () + (parsed-#%module-begin24.1 + rebuild-mb-s_0 + (parsed-only + fully-expanded-bodys_0))) + (let-values () + (let-values (((mb-result-s_0) + (let-values (((rebuild-mb-s378_0) + rebuild-mb-s_0) + ((temp379_0) + (list* + #%module-begin269_0 + (syntax-only + fully-expanded-bodys_0)))) + (rebuild.1 + #t + rebuild-mb-s378_0 + temp379_0)))) + (if (not + (expand-context-in-local-expand? + submod-ctx_0)) + (let-values () + (expanded+parsed1.1 + mb-result-s_0 + (parsed-#%module-begin24.1 + rebuild-mb-s_0 + (parsed-only + fully-expanded-bodys_0)))) + (let-values () + mb-result-s_0)))))))))))))))))))))))))))))))))) + (let-values (((mb-ctx_0) + (let-values (((v_277) + ctx_113)) + (let-values (((the-struct_21) + v_277)) + (if (expand-context/outer? + the-struct_21) + (let-values (((context380_0) + 'module-begin) + ((inner381_0) + (let-values (((the-struct_107) + (root-expand-context/outer-inner + v_277))) + (if (expand-context/inner? + the-struct_107) + (let-values (((module-begin-k382_0) + module-begin-k_1) + ((in-local-expand?383_0) + #f) + ((lifts384_0) + #f) + ((module-lifts385_0) + #f) + ((to-module-lifts386_0) + #f) + ((require-lifts387_0) + (make-require-lift-context + phase_153 + (let-values (((m-ns388_0) + m-ns_17) + ((self389_0) + self_34) + ((requires+provides390_0) + requires+provides_7) + ((temp391_0) + (make-hasheq))) + (make-parse-lifted-require.1 + temp391_0 + m-ns388_0 + self389_0 + requires+provides390_0))))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_107) + (root-expand-context/inner-module-scopes + the-struct_107) + (root-expand-context/inner-top-level-bind-scope + the-struct_107) + (root-expand-context/inner-all-scopes-stx + the-struct_107) + (root-expand-context/inner-defined-syms + the-struct_107) + (root-expand-context/inner-counter + the-struct_107) + (root-expand-context/inner-lift-key + the-struct_107) + (expand-context/inner-to-parsed? + the-struct_107) + (expand-context/inner-phase + the-struct_107) + (expand-context/inner-namespace + the-struct_107) + (expand-context/inner-just-once? + the-struct_107) + module-begin-k382_0 + (expand-context/inner-allow-unbound? + the-struct_107) + in-local-expand?383_0 + (expand-context/inner-keep-#%expression? + the-struct_107) + (expand-context/inner-stops + the-struct_107) + (expand-context/inner-declared-submodule-names + the-struct_107) + lifts384_0 + (expand-context/inner-lift-envs + the-struct_107) + module-lifts385_0 + require-lifts387_0 + to-module-lifts386_0 + (expand-context/inner-requires+provides + the-struct_107) + (expand-context/inner-observer + the-struct_107) + (expand-context/inner-for-serializable? + the-struct_107) + (expand-context/inner-to-correlated-linklet? + the-struct_107) + (expand-context/inner-normalize-locals? + the-struct_107) + (expand-context/inner-parsing-expanded? + the-struct_107) + (expand-context/inner-skip-visit-available? + the-struct_107))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_107))))) + (expand-context/outer1.1 + inner381_0 + (root-expand-context/outer-post-expansion + the-struct_21) + (root-expand-context/outer-use-site-scopes + the-struct_21) + (root-expand-context/outer-frame-id + the-struct_21) + context380_0 + (expand-context/outer-env + the-struct_21) + (expand-context/outer-scopes + the-struct_21) + (expand-context/outer-def-ctx-scopes + the-struct_21) + (expand-context/outer-binding-layer + the-struct_21) + (expand-context/outer-reference-records + the-struct_21) + (expand-context/outer-only-immediate? + the-struct_21) + (expand-context/outer-need-eventually-defined + the-struct_21) + (expand-context/outer-current-introduction-scopes + the-struct_21) + (expand-context/outer-current-use-scopes + the-struct_21) + (expand-context/outer-name + the-struct_21))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_21)))))) + (let-values (((mb-scopes-s_0) + (if keep-enclosing-scope-at-phase_0 + (apply-module-scopes_0 + s_18) + all-scopes-s_0))) + (let-values (((mb-def-ctx-scopes_0) + (box + null))) + (let-values (((mb_0) + (let-values (((bodys392_0) + bodys_14) + ((module-name-sym393_0) + module-name-sym_0) + ((mb-scopes-s394_0) + mb-scopes-s_0) + ((m-ns395_0) + m-ns_17) + ((mb-ctx396_0) + mb-ctx_0) + ((mb-def-ctx-scopes397_0) + mb-def-ctx-scopes_0) + ((phase398_0) + phase_153) + ((s399_1) + s_18)) + (ensure-module-begin.1 + mb-ctx396_0 + mb-def-ctx-scopes397_0 + m-ns395_0 + module-name-sym393_0 + phase398_0 + s399_1 + mb-scopes-s394_0 + bodys392_0)))) + (let-values ((() + (begin + (let-values (((obs_126) + (expand-context-observer + ctx_113))) + (if obs_126 + (let-values () + (let-values () + (call-expand-observe + obs_126 + 'next))) + (void))) + (values)))) + (let-values (((expanded-mb_0) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'expand + 'module-begin)) + (void)) + (begin0 + (let-values () + (let-values (((mb400_0) + mb_0) + ((temp401_0) + (let-values (((v_278) + (accumulate-def-ctx-scopes + mb-ctx_0 + mb-def-ctx-scopes_0))) + (let-values (((the-struct_108) + v_278)) + (if (expand-context/outer? + the-struct_108) + (let-values (((def-ctx-scopes402_0) + #f) + ((inner403_0) + (root-expand-context/outer-inner + v_278))) + (expand-context/outer1.1 + inner403_0 + (root-expand-context/outer-post-expansion + the-struct_108) + (root-expand-context/outer-use-site-scopes + the-struct_108) + (root-expand-context/outer-frame-id + the-struct_108) + (expand-context/outer-context + the-struct_108) + (expand-context/outer-env + the-struct_108) + (expand-context/outer-scopes + the-struct_108) + def-ctx-scopes402_0 + (expand-context/outer-binding-layer + the-struct_108) + (expand-context/outer-reference-records + the-struct_108) + (expand-context/outer-only-immediate? + the-struct_108) + (expand-context/outer-need-eventually-defined + the-struct_108) + (expand-context/outer-current-introduction-scopes + the-struct_108) + (expand-context/outer-current-use-scopes + the-struct_108) + (expand-context/outer-name + the-struct_108))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_108)))))) + (expand.1 + #f + #f + mb400_0 + temp401_0))) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (let-values (((requires_7 + provides_16) + (extract-requires-and-provides + requires+provides_7 + self_34 + self_34))) + (let-values (((result-form_0) + (if (let-values (((or-part_126) + (expand-context-to-parsed? + init-ctx_0))) + (if or-part_126 + or-part_126 + always-produce-compiled?_0)) + (parsed-module25.1 + rebuild-s_14 + #f + id:module-name201_0 + self_34 + requires_7 + provides_16 + (requires+provides-all-bindings-simple? + requires+provides_7) + (root-expand-context-encode-for-module + root-ctx_6 + self_34 + self_34) + (parsed-#%module-begin-body + (if (expanded+parsed? + expanded-mb_0) + (expanded+parsed-parsed + expanded-mb_0) + expanded-mb_0)) + (unbox + compiled-module-box_0) + compiled-submodules_1) + #f))) + (let-values (((result-s_15) + (if (not + (expand-context-to-parsed? + init-ctx_0)) + (let-values () + (let-values (((generic-self_0) + (make-generic-self-module-path-index + self_34))) + (begin + (imitate-generic-module-path-index! + self_34) + (let-values (((lst_237) + (unbox + mpis-to-reset_0))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_237))) + ((letrec-values (((for-loop_350) + (lambda (lst_433) + (begin + 'for-loop + (if (pair? + lst_433) + (let-values (((mpi_71) + (unsafe-car + lst_433)) + ((rest_255) + (unsafe-cdr + lst_433))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (imitate-generic-module-path-index! + mpi_71)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_350 + rest_255) + (values)))) + (values)))))) + for-loop_350) + lst_237))) + (void) + (let-values (((result-s_16) + (let-values (((rebuild-s404_1) + rebuild-s_14) + ((temp405_1) + (list + module200_0 + id:module-name201_0 + initial-require-s_0 + (expanded+parsed-s + expanded-mb_0)))) + (rebuild.1 + #t + rebuild-s404_1 + temp405_1)))) + (let-values (((result-s_17) + (let-values (((result-s406_0) + result-s_16) + ((self407_0) + self_34) + ((generic-self408_0) + generic-self_0)) + (syntax-module-path-index-shift.1 + #f + result-s406_0 + self407_0 + generic-self408_0 + #f)))) + (let-values (((result-s_18) + (attach-root-expand-context-properties + result-s_17 + root-ctx_6 + self_34 + generic-self_0))) + (let-values (((result-s_19) + (if (requires+provides-all-bindings-simple? + requires+provides_7) + (syntax-property$1 + result-s_18 + 'module-body-context-simple? + #t) + result-s_18))) + (begin + (let-values (((obs_127) + (expand-context-observer + init-ctx_0))) + (if obs_127 + (let-values () + (let-values () + (call-expand-observe + obs_127 + 'rename-one + result-s_19))) + (void))) + result-s_19)))))))) + (void)))) + (if (expand-context-to-parsed? + init-ctx_0) + (let-values () + result-form_0) + (if always-produce-compiled?_0 + (let-values () + (expanded+parsed1.1 + result-s_15 + result-form_0)) + (let-values () + result-s_15)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + (define-values + (ensure-module-begin.1) + (lambda (ctx20_1 def-ctx-scopes21_0 m-ns19_0 module-name-sym17_0 phase22_4 s23_0 scopes-s18_0 bodys31_0) + (begin + 'ensure-module-begin + (let-values (((bodys_17) bodys31_0)) + (let-values (((module-name-sym_1) module-name-sym17_0)) + (let-values (((scopes-s_0) scopes-s18_0)) + (let-values () + (let-values (((ctx_115) ctx20_1)) + (let-values (((def-ctx-scopes_9) def-ctx-scopes21_0)) + (let-values (((phase_155) phase22_4)) + (let-values (((s_834) s23_0)) + (let-values () + (let-values (((make-mb-ctx_0) + (lambda () + (begin + 'make-mb-ctx + (let-values (((v_279) ctx_115)) + (let-values (((the-struct_109) v_279)) + (if (expand-context/outer? the-struct_109) + (let-values (((context409_0) 'module-begin) + ((only-immediate?410_0) #t) + ((def-ctx-scopes411_0) def-ctx-scopes_9) + ((inner412_0) (root-expand-context/outer-inner v_279))) + (expand-context/outer1.1 + inner412_0 + (root-expand-context/outer-post-expansion the-struct_109) + (root-expand-context/outer-use-site-scopes the-struct_109) + (root-expand-context/outer-frame-id the-struct_109) + context409_0 + (expand-context/outer-env the-struct_109) + (expand-context/outer-scopes the-struct_109) + def-ctx-scopes411_0 + (expand-context/outer-binding-layer the-struct_109) + (expand-context/outer-reference-records the-struct_109) + only-immediate?410_0 + (expand-context/outer-need-eventually-defined the-struct_109) + (expand-context/outer-current-introduction-scopes the-struct_109) + (expand-context/outer-current-use-scopes the-struct_109) + (expand-context/outer-name the-struct_109))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_109)))))))) + (let-values (((mb_1) + (if (= 1 (length bodys_17)) + (let-values () + (if (eq? '#%module-begin (core-form-sym (car bodys_17) phase_155)) + (let-values () (car bodys_17)) + (let-values () + (let-values (((named-body-s_0) + (add-enclosing-name-property + (car bodys_17) + module-name-sym_1))) + (let-values ((() + (begin + (let-values (((obs_128) + (expand-context-observer ctx_115))) + (if obs_128 + (let-values () + (let-values () + (call-expand-observe + obs_128 + 'track-syntax + 'property + named-body-s_0 + (car bodys_17)))) + (void))) + (values)))) + (let-values (((partly-expanded-body_0) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'expand + 'module-begin)) + (void)) + (begin0 + (let-values () + (let-values (((named-body-s413_0) + named-body-s_0) + ((temp414_0) (make-mb-ctx_0))) + (expand.1 #f #f named-body-s413_0 temp414_0))) + (if log-performance? + (let-values () (end-performance-region)) + (void)))))) + (if (eq? + '#%module-begin + (core-form-sym partly-expanded-body_0 phase_155)) + (let-values () partly-expanded-body_0) + (let-values () + (let-values (((temp415_0) (list partly-expanded-body_0)) + ((s416_0) s_834) + ((scopes-s417_0) scopes-s_0) + ((phase418_0) phase_155) + ((module-name-sym419_0) module-name-sym_1) + ((temp420_1) (make-mb-ctx_0)) + ((temp421_0) #f)) + (add-module-begin.1 + temp421_0 + temp415_0 + s416_0 + scopes-s417_0 + phase418_0 + module-name-sym419_0 + temp420_1)))))))))) + (let-values () + (let-values (((bodys422_0) bodys_17) + ((s423_0) s_834) + ((scopes-s424_0) scopes-s_0) + ((phase425_0) phase_155) + ((module-name-sym426_0) module-name-sym_1) + ((temp427_0) (make-mb-ctx_0))) + (add-module-begin.1 + #t + bodys422_0 + s423_0 + scopes-s424_0 + phase425_0 + module-name-sym426_0 + temp427_0)))))) + (let-values (((named-mb_0) (add-enclosing-name-property mb_1 module-name-sym_1))) + (begin + (let-values (((obs_129) (expand-context-observer ctx_115))) + (if obs_129 + (let-values () + (let-values () + (call-expand-observe obs_129 'track-syntax 'property named-mb_0 mb_1))) + (void))) + named-mb_0)))))))))))))))) + (define-values + (add-module-begin.1) + (lambda (log-rename-one?33_0 bodys35_0 s36_1 scopes-s37_0 phase38_0 module-name-sym39_0 mb-ctx40_0) + (begin + 'add-module-begin + (let-values (((bodys_18) bodys35_0)) + (let-values (((s_599) s36_1)) + (let-values (((scopes-s_1) scopes-s37_0)) + (let-values (((phase_156) phase38_0)) + (let-values (((module-name-sym_2) module-name-sym39_0)) + (let-values (((mb-ctx_1) mb-ctx40_0)) + (let-values () + (let-values () + (let-values (((mb-id_0) (datum->syntax$1 scopes-s_1 '#%module-begin))) + (let-values ((() + (begin + (if (let-values (((mb-id428_0) mb-id_0) ((phase429_0) phase_156)) + (resolve.1 #f #f null #f mb-id428_0 phase429_0)) + (void) + (let-values () + (raise-syntax-error$1 + #f + "no #%module-begin binding in the module's language" + s_599))) + (values)))) + (let-values (((mb_2) (datum->syntax$1 scopes-s_1 (list* mb-id_0 bodys_18) s_599 s_599))) + (let-values ((() + (begin + (let-values (((obs_130) (expand-context-observer mb-ctx_1))) + (if obs_130 + (let-values () (let-values () (call-expand-observe obs_130 'tag mb_2))) + (void))) + (values)))) + (let-values (((named-mb_1) (add-enclosing-name-property mb_2 module-name-sym_2))) + (let-values ((() + (begin + (let-values (((obs_131) (expand-context-observer mb-ctx_1))) + (if obs_131 + (let-values () + (let-values () + (call-expand-observe + obs_131 + 'track-syntax + 'property + named-mb_1 + mb_2))) + (void))) + (values)))) + (let-values (((partly-expanded-mb_0) + (begin + (if log-performance? + (let-values () (start-performance-region 'expand 'module-begin)) + (void)) + (begin0 + (let-values () + (let-values (((named-mb430_0) named-mb_1) + ((mb-ctx431_0) mb-ctx_1)) + (expand.1 #f #f named-mb430_0 mb-ctx431_0))) + (if log-performance? + (let-values () (end-performance-region)) + (void)))))) + (begin + (if (eq? '#%module-begin (core-form-sym partly-expanded-mb_0 phase_156)) + (void) + (let-values () + (raise-syntax-error$1 + #f + "expansion of #%module-begin is not a #%plain-module-begin form" + s_599 + partly-expanded-mb_0))) + partly-expanded-mb_0))))))))))))))))))) + (define-values + (add-enclosing-name-property) + (lambda (stx_21 module-name-sym_3) (begin (syntax-property$1 stx_21 'enclosing-module-name module-name-sym_3)))) + (define-values + (make-apply-module-scopes) + (lambda (inside-scope_1 + outside-scope_2 + init-ctx_1 + keep-enclosing-scope-at-phase_1 + self_35 + enclosing-self_2 + enclosing-mod_2) + (begin + (lambda (s_191) + (begin + (if log-performance? (let-values () (start-performance-region 'expand 'module 'scopes)) (void)) + (begin0 + (let-values () + (let-values (((s-without-enclosing_0) + (if keep-enclosing-scope-at-phase_1 + s_191 + (remove-use-site-scopes + (remove-scopes s_191 (root-expand-context-module-scopes init-ctx_1)) + init-ctx_1)))) + (let-values (((s-with-edges_0) + (add-scope (add-scope s-without-enclosing_0 outside-scope_2) inside-scope_1))) + (let-values (((s-with-suitable-enclosing_0) + (if keep-enclosing-scope-at-phase_1 + (let-values () + (let-values (((s-with-edges436_0) s-with-edges_0) + ((enclosing-self437_0) enclosing-self_2) + ((enclosing-mod438_0) enclosing-mod_2)) + (syntax-module-path-index-shift.1 + #f + s-with-edges436_0 + enclosing-self437_0 + enclosing-mod438_0 + #f))) + (let-values () s-with-edges_0)))) + (let-values (((s-with-suitable-enclosing432_0) s-with-suitable-enclosing_0) + ((temp433_0) (make-generic-self-module-path-index self_35)) + ((self434_0) self_35) + ((temp435_0) (current-code-inspector))) + (syntax-module-path-index-shift.1 + #f + s-with-suitable-enclosing432_0 + temp433_0 + self434_0 + temp435_0)))))) + (if log-performance? (let-values () (end-performance-region)) (void)))))))) + (define-values + (partially-expand-bodys.1) + (lambda (all-scopes-stx49_0 + compiled-submodules53_0 + ctx43_0 + declared-keywords51_0 + declared-submodule-names52_0 + defined-syms50_0 + frame-id46_0 + loop56_0 + modules-being-compiled54_0 + mpis-to-reset55_0 + namespace44_0 + need-eventually-defined48_0 + phase42_1 + requires-and-provides47_0 + self45_0 + bodys72_0) + (begin + 'partially-expand-bodys + (let-values (((bodys_19) bodys72_0)) + (let-values (((phase_157) phase42_1)) + (let-values (((partial-body-ctx_1) ctx43_0)) + (let-values (((m-ns_18) namespace44_0)) + (let-values (((self_36) self45_0)) + (let-values (((frame-id_16) frame-id46_0)) + (let-values (((requires+provides_8) requires-and-provides47_0)) + (let-values (((need-eventually-defined_2) need-eventually-defined48_0)) + (let-values (((all-scopes-stx_5) all-scopes-stx49_0)) + (let-values (((defined-syms_12) defined-syms50_0)) + (let-values (((declared-keywords_1) declared-keywords51_0)) + (let-values (((declared-submodule-names_4) declared-submodule-names52_0)) + (let-values (((compiled-submodules_2) compiled-submodules53_0)) + (let-values (((modules-being-compiled_4) modules-being-compiled54_0)) + (let-values (((mpis-to-reset_1) mpis-to-reset55_0)) + (let-values (((pass-1-and-2-loop_1) loop56_0)) + (let-values () + (begin + (namespace-visit-available-modules! m-ns_18 phase_157) + ((letrec-values (((loop_137) + (lambda (tail?_50 bodys_20) + (begin + 'loop + (if (null? bodys_20) + (let-values () + (if (if tail?_50 (not (zero? phase_157)) #f) + (let-values () null) + (if tail?_50 + (let-values () + (let-values (((bodys_21) + (append + (get-and-clear-end-lifts! + (expand-context-to-module-lifts + partial-body-ctx_1)) + (get-and-clear-provide-lifts! + (expand-context-to-module-lifts + partial-body-ctx_1))))) + (if (null? bodys_21) + (let-values () null) + (let-values () + (let-values (((added-bodys_0) + (add-post-expansion-scope + bodys_21 + partial-body-ctx_1))) + (begin + (let-values (((obs_132) + (expand-context-observer + partial-body-ctx_1))) + (if obs_132 + (let-values () + (let-values () + (call-expand-observe + obs_132 + 'module-end-lifts + added-bodys_0))) + (void))) + (loop_137 #t added-bodys_0))))))) + (let-values () null)))) + (let-values () + (let-values (((rest-bodys_1) (cdr bodys_20))) + (let-values ((() + (begin + (let-values (((obs_133) + (expand-context-observer + partial-body-ctx_1))) + (if obs_133 + (let-values () + (let-values () + (call-expand-observe + obs_133 + 'next))) + (void))) + (values)))) + (let-values (((exp-body_7) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'expand + 'form-in-module/1)) + (void)) + (begin0 + (let-values () + (let-values (((temp439_0) + (car + bodys_20)) + ((partial-body-ctx440_0) + partial-body-ctx_1)) + (expand.1 + #f + #f + temp439_0 + partial-body-ctx440_0))) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (let-values (((lifted-defns_0) + (get-and-clear-lifts! + (expand-context-lifts + partial-body-ctx_1)))) + (let-values (((lifted-reqs_0) + (get-and-clear-require-lifts! + (expand-context-require-lifts + partial-body-ctx_1)))) + (let-values (((lifted-mods_0) + (get-and-clear-module-lifts! + (expand-context-module-lifts + partial-body-ctx_1)))) + (let-values (((added-lifted-mods_0) + (add-post-expansion-scope + lifted-mods_0 + partial-body-ctx_1))) + (let-values ((() + (begin + (if (if (null? + lifted-defns_0) + (if (null? + lifted-reqs_0) + (null? + lifted-mods_0) + #f) + #f) + (void) + (let-values () + (let-values (((obs_134) + (expand-context-observer + partial-body-ctx_1))) + (if obs_134 + (let-values () + (let-values () + (call-expand-observe + obs_134 + 'module-pass1-lifts + (lifted-defns-extract-syntax + lifted-defns_0) + lifted-reqs_0 + added-lifted-mods_0))) + (void))))) + (values)))) + (let-values (((exp-lifted-mods_0) + (loop_137 + #f + added-lifted-mods_0))) + (begin + (let-values (((obs_135) + (expand-context-observer + partial-body-ctx_1))) + (if obs_135 + (let-values () + (let-values () + (call-expand-observe + obs_135 + 'module-pass1-case + exp-body_7))) + (void))) + (let-values (((finish_4) + (lambda () + (begin + 'finish + (let-values (((tmp_83) + (core-form-sym + exp-body_7 + phase_157))) + (if (equal? + tmp_83 + 'begin) + (let-values () + (let-values ((() + (begin + (let-values (((obs_136) + (expand-context-observer + partial-body-ctx_1))) + (if obs_136 + (let-values () + (let-values () + (call-expand-observe + obs_136 + 'prim-begin + exp-body_7))) + (void))) + (values)))) + (let-values (((ok?_80 + begin441_0 + e442_0) + (let-values (((s_854) + exp-body_7)) + (let-values (((orig-s_86) + s_854)) + (let-values (((begin441_1 + e442_1) + (let-values (((s_473) + (if (syntax?$1 + s_854) + (syntax-e$1 + s_854) + s_854))) + (if (pair? + s_473) + (let-values (((begin443_0) + (let-values (((s_855) + (car + s_473))) + s_855)) + ((e444_0) + (let-values (((s_856) + (cdr + s_473))) + (let-values (((s_857) + (if (syntax?$1 + s_856) + (syntax-e$1 + s_856) + s_856))) + (let-values (((flat-s_54) + (to-syntax-list.1 + s_857))) + (if (not + flat-s_54) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_86)) + (let-values () + flat-s_54))))))) + (values + begin443_0 + e444_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_86))))) + (values + #t + begin441_1 + e442_1)))))) + (let-values (((track_1) + (lambda (e_106) + (begin + 'track + (syntax-track-origin$1 + e_106 + exp-body_7))))) + (let-values (((spliced-bodys_0) + (append + (map2 + track_1 + e442_0) + rest-bodys_1))) + (begin + (let-values (((obs_137) + (expand-context-observer + partial-body-ctx_1))) + (if obs_137 + (let-values () + (let-values () + (call-expand-observe + obs_137 + 'splice + spliced-bodys_0))) + (void))) + (loop_137 + tail?_50 + spliced-bodys_0))))))) + (if (equal? + tmp_83 + 'begin-for-syntax) + (let-values () + (let-values ((() + (begin + (let-values (((obs_138) + (expand-context-observer + partial-body-ctx_1))) + (if obs_138 + (let-values () + (let-values () + (call-expand-observe + obs_138 + 'prim-begin-for-syntax + exp-body_7))) + (void))) + (values)))) + (let-values (((ok?_81 + begin-for-syntax445_0 + e446_1) + (let-values (((s_858) + exp-body_7)) + (let-values (((orig-s_87) + s_858)) + (let-values (((begin-for-syntax445_1 + e446_2) + (let-values (((s_859) + (if (syntax?$1 + s_858) + (syntax-e$1 + s_858) + s_858))) + (if (pair? + s_859) + (let-values (((begin-for-syntax447_0) + (let-values (((s_474) + (car + s_859))) + s_474)) + ((e448_0) + (let-values (((s_860) + (cdr + s_859))) + (let-values (((s_861) + (if (syntax?$1 + s_860) + (syntax-e$1 + s_860) + s_860))) + (let-values (((flat-s_55) + (to-syntax-list.1 + s_861))) + (if (not + flat-s_55) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_87)) + (let-values () + flat-s_55))))))) + (values + begin-for-syntax447_0 + e448_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_87))))) + (values + #t + begin-for-syntax445_1 + e446_2)))))) + (let-values ((() + (begin + (let-values (((obs_139) + (expand-context-observer + partial-body-ctx_1))) + (if obs_139 + (let-values () + (let-values () + (call-expand-observe + obs_139 + 'prepare-env))) + (void))) + (values)))) + (let-values (((ct-m-ns_0) + (namespace->namespace-at-phase + m-ns_18 + (add1 + phase_157)))) + (let-values ((() + (begin + (prepare-next-phase-namespace + partial-body-ctx_1) + (values)))) + (let-values ((() + (begin + (let-values (((obs_140) + (expand-context-observer + partial-body-ctx_1))) + (if obs_140 + (let-values () + (let-values () + (call-expand-observe + obs_140 + 'phase-up))) + (void))) + (values)))) + (let-values (((nested-bodys_1) + (pass-1-and-2-loop_1 + e446_1 + (add1 + phase_157) + #f + null))) + (begin + (let-values (((obs_141) + (expand-context-observer + partial-body-ctx_1))) + (if obs_141 + (let-values () + (let-values () + (call-expand-observe + obs_141 + 'next-group))) + (void))) + (namespace-run-available-modules! + m-ns_18 + (add1 + phase_157)) + (eval-nested-bodys + nested-bodys_1 + (add1 + phase_157) + ct-m-ns_0 + self_36 + partial-body-ctx_1) + (namespace-visit-available-modules! + m-ns_18 + phase_157) + (let-values (((obs_142) + (expand-context-observer + partial-body-ctx_1))) + (if obs_142 + (let-values () + (let-values () + (call-expand-observe + obs_142 + 'exit-case + (let-values (((s-nested-bodys_0) + (reverse$1 + (let-values (((lst_262) + nested-bodys_1)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_262))) + ((letrec-values (((for-loop_351) + (lambda (fold-var_372 + lst_434) + (begin + 'for-loop + (if (pair? + lst_434) + (let-values (((nested-body_0) + (unsafe-car + lst_434)) + ((rest_141) + (unsafe-cdr + lst_434))) + (let-values (((fold-var_373) + (let-values (((fold-var_374) + fold-var_372)) + (let-values (((fold-var_375) + (let-values () + (cons + (let-values () + (extract-syntax + nested-body_0)) + fold-var_374)))) + (values + fold-var_375))))) + (if (not + #f) + (for-loop_351 + fold-var_373 + rest_141) + fold-var_373))) + fold-var_372))))) + for-loop_351) + null + lst_262)))))) + (cons + begin-for-syntax445_0 + s-nested-bodys_0))))) + (void))) + (cons + (semi-parsed-begin-for-syntax3.1 + exp-body_7 + nested-bodys_1) + (loop_137 + tail?_50 + rest-bodys_1))))))))))) + (if (equal? + tmp_83 + 'define-values) + (let-values () + (let-values ((() + (begin + (let-values (((obs_143) + (expand-context-observer + partial-body-ctx_1))) + (if obs_143 + (let-values () + (let-values () + (call-expand-observe + obs_143 + 'prim-define-values + exp-body_7))) + (void))) + (values)))) + (let-values (((ok?_82 + define-values449_0 + id450_0 + rhs451_0) + (let-values (((s_273) + exp-body_7)) + (let-values (((orig-s_88) + s_273)) + (let-values (((define-values449_1 + id450_1 + rhs451_1) + (let-values (((s_862) + (if (syntax?$1 + s_273) + (syntax-e$1 + s_273) + s_273))) + (if (pair? + s_862) + (let-values (((define-values452_0) + (let-values (((s_863) + (car + s_862))) + s_863)) + ((id453_0 + rhs454_0) + (let-values (((s_547) + (cdr + s_862))) + (let-values (((s_864) + (if (syntax?$1 + s_547) + (syntax-e$1 + s_547) + s_547))) + (if (pair? + s_864) + (let-values (((id455_0) + (let-values (((s_865) + (car + s_864))) + (let-values (((s_866) + (if (syntax?$1 + s_865) + (syntax-e$1 + s_865) + s_865))) + (let-values (((flat-s_56) + (to-syntax-list.1 + s_866))) + (if (not + flat-s_56) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_88)) + (let-values () + (let-values (((id_155) + (let-values (((lst_435) + flat-s_56)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_435))) + ((letrec-values (((for-loop_168) + (lambda (id_156 + lst_436) + (begin + 'for-loop + (if (pair? + lst_436) + (let-values (((s_867) + (unsafe-car + lst_436)) + ((rest_256) + (unsafe-cdr + lst_436))) + (let-values (((id_157) + (let-values (((id_158) + id_156)) + (let-values (((id_159) + (let-values () + (let-values (((id468_0) + (let-values () + (if (let-values (((or-part_554) + (if (syntax?$1 + s_867) + (symbol? + (syntax-e$1 + s_867)) + #f))) + (if or-part_554 + or-part_554 + (symbol? + s_867))) + s_867 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_88 + s_867))))) + (cons + id468_0 + id_158))))) + (values + id_159))))) + (if (not + #f) + (for-loop_168 + id_157 + rest_256) + id_157))) + id_156))))) + for-loop_168) + null + lst_435))))) + (reverse$1 + id_155)))))))) + ((rhs456_0) + (let-values (((s_868) + (cdr + s_864))) + (let-values (((s_869) + (if (syntax?$1 + s_868) + (syntax-e$1 + s_868) + s_868))) + (if (pair? + s_869) + (let-values (((rhs457_0) + (let-values (((s_870) + (car + s_869))) + s_870)) + (() + (let-values (((s_871) + (cdr + s_869))) + (let-values (((s_872) + (if (syntax?$1 + s_871) + (syntax-e$1 + s_871) + s_871))) + (if (null? + s_872) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_88)))))) + (values + rhs457_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_88)))))) + (values + id455_0 + rhs456_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_88)))))) + (values + define-values452_0 + id453_0 + rhs454_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_88))))) + (values + #t + define-values449_1 + id450_1 + rhs451_1)))))) + (let-values (((ids_45) + (remove-use-site-scopes + id450_0 + partial-body-ctx_1))) + (let-values ((() + (begin + (let-values (((ids458_0) + ids_45) + ((phase459_0) + phase_157) + ((exp-body460_0) + exp-body_7)) + (check-no-duplicate-ids.1 + unsafe-undefined + ids458_0 + phase459_0 + exp-body460_0 + unsafe-undefined)) + (values)))) + (let-values ((() + (begin + (let-values (((ids461_0) + ids_45) + ((phase462_0) + phase_157) + ((requires+provides463_0) + requires+provides_8) + ((exp-body464_0) + exp-body_7)) + (check-ids-unbound.1 + exp-body464_0 + ids461_0 + phase462_0 + requires+provides463_0)) + (values)))) + (let-values (((syms_24) + (let-values (((ids469_0) + ids_45) + ((defined-syms470_0) + defined-syms_12) + ((self471_0) + self_36) + ((phase472_0) + phase_157) + ((all-scopes-stx473_0) + all-scopes-stx_5) + ((frame-id474_0) + frame-id_16) + ((requires+provides475_0) + requires+provides_8) + ((exp-body476_0) + exp-body_7)) + (select-defined-syms-and-bind!.1 + #f + frame-id474_0 + exp-body476_0 + requires+provides475_0 + #f + ids469_0 + defined-syms470_0 + self471_0 + phase472_0 + all-scopes-stx473_0)))) + (begin + (let-values (((lst_437) + syms_24)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_437))) + ((letrec-values (((for-loop_352) + (lambda (lst_438) + (begin + 'for-loop + (if (pair? + lst_438) + (let-values (((sym_110) + (unsafe-car + lst_438)) + ((rest_257) + (unsafe-cdr + lst_438))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (namespace-unset-transformer! + m-ns_18 + phase_157 + sym_110)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_352 + rest_257) + (values)))) + (values)))))) + for-loop_352) + lst_437))) + (void) + (let-values (((requires+provides465_0) + requires+provides_8) + ((syms466_0) + syms_24) + ((phase467_0) + phase_157)) + (add-defined-syms!.1 + #f + requires+provides465_0 + syms466_0 + phase467_0)) + (let-values (((obs_144) + (expand-context-observer + partial-body-ctx_1))) + (if obs_144 + (let-values () + (let-values () + (call-expand-observe + obs_144 + 'exit-case + (list + define-values449_0 + ids_45 + rhs451_0)))) + (void))) + (cons + (semi-parsed-define-values2.1 + exp-body_7 + syms_24 + ids_45 + rhs451_0) + (loop_137 + tail?_50 + rest-bodys_1)))))))))) + (if (equal? + tmp_83 + 'define-syntaxes) + (let-values () + (let-values ((() + (begin + (let-values (((obs_145) + (expand-context-observer + partial-body-ctx_1))) + (if obs_145 + (let-values () + (let-values () + (call-expand-observe + obs_145 + 'prim-define-syntaxes + exp-body_7))) + (void))) + (values)))) + (let-values (((ok?_83 + define-syntaxes477_0 + id478_0 + rhs479_0) + (let-values (((s_873) + exp-body_7)) + (let-values (((orig-s_89) + s_873)) + (let-values (((define-syntaxes477_1 + id478_1 + rhs479_1) + (let-values (((s_874) + (if (syntax?$1 + s_873) + (syntax-e$1 + s_873) + s_873))) + (if (pair? + s_874) + (let-values (((define-syntaxes480_0) + (let-values (((s_875) + (car + s_874))) + s_875)) + ((id481_0 + rhs482_0) + (let-values (((s_876) + (cdr + s_874))) + (let-values (((s_877) + (if (syntax?$1 + s_876) + (syntax-e$1 + s_876) + s_876))) + (if (pair? + s_877) + (let-values (((id483_0) + (let-values (((s_878) + (car + s_877))) + (let-values (((s_879) + (if (syntax?$1 + s_878) + (syntax-e$1 + s_878) + s_878))) + (let-values (((flat-s_57) + (to-syntax-list.1 + s_879))) + (if (not + flat-s_57) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_89)) + (let-values () + (let-values (((id_160) + (let-values (((lst_439) + flat-s_57)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_439))) + ((letrec-values (((for-loop_353) + (lambda (id_161 + lst_440) + (begin + 'for-loop + (if (pair? + lst_440) + (let-values (((s_880) + (unsafe-car + lst_440)) + ((rest_258) + (unsafe-cdr + lst_440))) + (let-values (((id_162) + (let-values (((id_163) + id_161)) + (let-values (((id_164) + (let-values () + (let-values (((id497_0) + (let-values () + (if (let-values (((or-part_555) + (if (syntax?$1 + s_880) + (symbol? + (syntax-e$1 + s_880)) + #f))) + (if or-part_555 + or-part_555 + (symbol? + s_880))) + s_880 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_89 + s_880))))) + (cons + id497_0 + id_163))))) + (values + id_164))))) + (if (not + #f) + (for-loop_353 + id_162 + rest_258) + id_162))) + id_161))))) + for-loop_353) + null + lst_439))))) + (reverse$1 + id_160)))))))) + ((rhs484_0) + (let-values (((s_609) + (cdr + s_877))) + (let-values (((s_881) + (if (syntax?$1 + s_609) + (syntax-e$1 + s_609) + s_609))) + (if (pair? + s_881) + (let-values (((rhs485_0) + (let-values (((s_610) + (car + s_881))) + s_610)) + (() + (let-values (((s_611) + (cdr + s_881))) + (let-values (((s_612) + (if (syntax?$1 + s_611) + (syntax-e$1 + s_611) + s_611))) + (if (null? + s_612) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_89)))))) + (values + rhs485_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_89)))))) + (values + id483_0 + rhs484_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_89)))))) + (values + define-syntaxes480_0 + id481_0 + rhs482_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_89))))) + (values + #t + define-syntaxes477_1 + id478_1 + rhs479_1)))))) + (let-values ((() + (begin + (let-values (((obs_146) + (expand-context-observer + partial-body-ctx_1))) + (if obs_146 + (let-values () + (let-values () + (call-expand-observe + obs_146 + 'prepare-env))) + (void))) + (values)))) + (let-values ((() + (begin + (prepare-next-phase-namespace + partial-body-ctx_1) + (values)))) + (let-values ((() + (begin + (let-values (((obs_147) + (expand-context-observer + partial-body-ctx_1))) + (if obs_147 + (let-values () + (let-values () + (call-expand-observe + obs_147 + 'phase-up))) + (void))) + (values)))) + (let-values (((ids_46) + (remove-use-site-scopes + id478_0 + partial-body-ctx_1))) + (let-values ((() + (begin + (let-values (((ids486_0) + ids_46) + ((phase487_0) + phase_157) + ((exp-body488_0) + exp-body_7)) + (check-no-duplicate-ids.1 + unsafe-undefined + ids486_0 + phase487_0 + exp-body488_0 + unsafe-undefined)) + (values)))) + (let-values ((() + (begin + (let-values (((ids489_0) + ids_46) + ((phase490_0) + phase_157) + ((requires+provides491_0) + requires+provides_8) + ((exp-body492_0) + exp-body_7)) + (check-ids-unbound.1 + exp-body492_0 + ids489_0 + phase490_0 + requires+provides491_0)) + (values)))) + (let-values (((syms_25) + (let-values (((ids498_0) + ids_46) + ((defined-syms499_0) + defined-syms_12) + ((self500_0) + self_36) + ((phase501_0) + phase_157) + ((all-scopes-stx502_0) + all-scopes-stx_5) + ((frame-id503_0) + frame-id_16) + ((requires+provides504_0) + requires+provides_8) + ((exp-body505_0) + exp-body_7) + ((temp506_0) + #t)) + (select-defined-syms-and-bind!.1 + temp506_0 + frame-id503_0 + exp-body505_0 + requires+provides504_0 + #f + ids498_0 + defined-syms499_0 + self500_0 + phase501_0 + all-scopes-stx502_0)))) + (let-values ((() + (begin + (let-values (((requires+provides493_0) + requires+provides_8) + ((syms494_0) + syms_25) + ((phase495_0) + phase_157) + ((temp496_0) + #t)) + (add-defined-syms!.1 + temp496_0 + requires+provides493_0 + syms494_0 + phase495_0)) + (values)))) + (let-values (((install-values_0) + (lambda (vals_12) + (begin + 'install-values + (begin + (let-values (((lst_441) + syms_25) + ((lst_442) + vals_12) + ((lst_277) + ids_46)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_441))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_442))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_277))) + ((letrec-values (((for-loop_354) + (lambda (lst_443 + lst_444 + lst_445) + (begin + 'for-loop + (if (if (pair? + lst_443) + (if (pair? + lst_444) + (pair? + lst_445) + #f) + #f) + (let-values (((sym_111) + (unsafe-car + lst_443)) + ((rest_259) + (unsafe-cdr + lst_443)) + ((val_98) + (unsafe-car + lst_444)) + ((rest_260) + (unsafe-cdr + lst_444)) + ((id_165) + (unsafe-car + lst_445)) + ((rest_261) + (unsafe-cdr + lst_445))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (maybe-install-free=id-in-context! + val_98 + id_165 + phase_157 + partial-body-ctx_1) + (namespace-set-transformer! + m-ns_18 + phase_157 + sym_111 + val_98))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_354 + rest_259 + rest_260 + rest_261) + (values)))) + (values)))))) + for-loop_354) + lst_441 + lst_442 + lst_277))) + (void)))))) + (let-values (((exp-rhs_6 + parsed-rhs_2 + vals_13) + (let-values (((temp507_0) + 'define-syntaxes) + ((temp508_0) + rhs479_0) + ((ids509_0) + ids_46) + ((temp510_0) + (let-values (((v_280) + partial-body-ctx_1)) + (let-values (((the-struct_110) + v_280)) + (if (expand-context/outer? + the-struct_110) + (let-values (((need-eventually-defined513_0) + need-eventually-defined_2) + ((inner514_0) + (let-values (((the-struct_111) + (root-expand-context/outer-inner + v_280))) + (if (expand-context/inner? + the-struct_111) + (let-values (((lifts515_0) + #f) + ((module-lifts516_0) + #f) + ((to-module-lifts517_0) + #f)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_111) + (root-expand-context/inner-module-scopes + the-struct_111) + (root-expand-context/inner-top-level-bind-scope + the-struct_111) + (root-expand-context/inner-all-scopes-stx + the-struct_111) + (root-expand-context/inner-defined-syms + the-struct_111) + (root-expand-context/inner-counter + the-struct_111) + (root-expand-context/inner-lift-key + the-struct_111) + (expand-context/inner-to-parsed? + the-struct_111) + (expand-context/inner-phase + the-struct_111) + (expand-context/inner-namespace + the-struct_111) + (expand-context/inner-just-once? + the-struct_111) + (expand-context/inner-module-begin-k + the-struct_111) + (expand-context/inner-allow-unbound? + the-struct_111) + (expand-context/inner-in-local-expand? + the-struct_111) + (expand-context/inner-keep-#%expression? + the-struct_111) + (expand-context/inner-stops + the-struct_111) + (expand-context/inner-declared-submodule-names + the-struct_111) + lifts515_0 + (expand-context/inner-lift-envs + the-struct_111) + module-lifts516_0 + (expand-context/inner-require-lifts + the-struct_111) + to-module-lifts517_0 + (expand-context/inner-requires+provides + the-struct_111) + (expand-context/inner-observer + the-struct_111) + (expand-context/inner-for-serializable? + the-struct_111) + (expand-context/inner-to-correlated-linklet? + the-struct_111) + (expand-context/inner-normalize-locals? + the-struct_111) + (expand-context/inner-parsing-expanded? + the-struct_111) + (expand-context/inner-skip-visit-available? + the-struct_111))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_111))))) + (expand-context/outer1.1 + inner514_0 + (root-expand-context/outer-post-expansion + the-struct_110) + (root-expand-context/outer-use-site-scopes + the-struct_110) + (root-expand-context/outer-frame-id + the-struct_110) + (expand-context/outer-context + the-struct_110) + (expand-context/outer-env + the-struct_110) + (expand-context/outer-scopes + the-struct_110) + (expand-context/outer-def-ctx-scopes + the-struct_110) + (expand-context/outer-binding-layer + the-struct_110) + (expand-context/outer-reference-records + the-struct_110) + (expand-context/outer-only-immediate? + the-struct_110) + need-eventually-defined513_0 + (expand-context/outer-current-introduction-scopes + the-struct_110) + (expand-context/outer-current-use-scopes + the-struct_110) + (expand-context/outer-name + the-struct_110))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_110))))) + ((temp511_0) + #f) + ((temp512_0) + (lambda (go_1) + (call-with-module-prompt/value-list + 'define-syntaxes + go_1 + ids_46 + install-values_0)))) + (expand+eval-for-syntaxes-binding.1 + temp511_0 + temp512_0 + temp507_0 + temp508_0 + ids509_0 + temp510_0)))) + (let-values ((() + (begin + (let-values (((obs_148) + (expand-context-observer + partial-body-ctx_1))) + (if obs_148 + (let-values () + (let-values () + (call-expand-observe + obs_148 + 'exit-case + (list + define-syntaxes477_0 + ids_46 + exp-rhs_6)))) + (void))) + (values)))) + (let-values (((parsed-body_0) + (parsed-define-syntaxes20.1 + (keep-properties-only + exp-body_7) + ids_46 + syms_25 + parsed-rhs_2))) + (cons + (if (expand-context-to-parsed? + partial-body-ctx_1) + parsed-body_0 + (expanded+parsed1.1 + (let-values (((exp-body518_0) + exp-body_7) + ((temp519_0) + (list + define-syntaxes477_0 + ids_46 + exp-rhs_6))) + (rebuild.1 + #t + exp-body518_0 + temp519_0)) + parsed-body_0)) + (loop_137 + tail?_50 + rest-bodys_1))))))))))))))))) + (if (equal? + tmp_83 + '#%require) + (let-values () + (let-values ((() + (begin + (let-values (((obs_149) + (expand-context-observer + partial-body-ctx_1))) + (if obs_149 + (let-values () + (let-values () + (call-expand-observe + obs_149 + 'prim-require + exp-body_7))) + (void))) + (values)))) + (let-values (((ready-body_0) + (remove-use-site-scopes + exp-body_7 + partial-body-ctx_1))) + (let-values (((ok?_84 + #%require520_0 + req521_0) + (let-values (((s_882) + ready-body_0)) + (let-values (((orig-s_90) + s_882)) + (let-values (((#%require520_1 + req521_1) + (let-values (((s_883) + (if (syntax?$1 + s_882) + (syntax-e$1 + s_882) + s_882))) + (if (pair? + s_883) + (let-values (((#%require522_0) + (let-values (((s_884) + (car + s_883))) + s_884)) + ((req523_0) + (let-values (((s_885) + (cdr + s_883))) + (let-values (((s_886) + (if (syntax?$1 + s_885) + (syntax-e$1 + s_885) + s_885))) + (let-values (((flat-s_58) + (to-syntax-list.1 + s_886))) + (if (not + flat-s_58) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_90)) + (let-values () + flat-s_58))))))) + (values + #%require522_0 + req523_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_90))))) + (values + #t + #%require520_1 + req521_1)))))) + (begin + (let-values (((temp524_0) + req521_0) + ((exp-body525_0) + exp-body_7) + ((self526_0) + self_36) + ((m-ns527_0) + m-ns_18) + ((phase528_0) + phase_157) + ((phase529_0) + phase_157) + ((requires+provides530_0) + requires+provides_8) + ((declared-submodule-names531_0) + declared-submodule-names_4) + ((temp532_0) + 'module)) + (parse-and-perform-requires!.1 + #f + #f + declared-submodule-names531_0 + #f + phase529_0 + #f + self526_0 + #f + #t + temp532_0 + temp524_0 + exp-body525_0 + m-ns527_0 + phase528_0 + requires+provides530_0)) + (let-values (((obs_150) + (expand-context-observer + partial-body-ctx_1))) + (if obs_150 + (let-values () + (let-values () + (call-expand-observe + obs_150 + 'exit-case + ready-body_0))) + (void))) + (cons + ready-body_0 + (loop_137 + tail?_50 + rest-bodys_1))))))) + (if (equal? + tmp_83 + '#%provide) + (let-values () + (begin + (let-values (((obs_151) + (expand-context-observer + partial-body-ctx_1))) + (if obs_151 + (let-values () + (let-values () + (call-expand-observe + obs_151 + 'prim-stop + #f))) + (void))) + (cons + exp-body_7 + (loop_137 + tail?_50 + rest-bodys_1)))) + (if (equal? + tmp_83 + 'module) + (let-values () + (let-values ((() + (begin + (let-values (((obs_152) + (expand-context-observer + partial-body-ctx_1))) + (if obs_152 + (let-values () + (let-values () + (call-expand-observe + obs_152 + 'prim-submodule + #f))) + (void))) + (values)))) + (let-values (((ready-body_1) + (remove-use-site-scopes + exp-body_7 + partial-body-ctx_1))) + (let-values (((submod_2) + (let-values (((ready-body533_0) + ready-body_1) + ((self534_0) + self_36) + ((partial-body-ctx535_0) + partial-body-ctx_1) + ((temp536_0) + #f) + ((declared-submodule-names537_0) + declared-submodule-names_4) + ((mpis-to-reset538_0) + mpis-to-reset_1) + ((compiled-submodules539_0) + compiled-submodules_2) + ((modules-being-compiled540_0) + modules-being-compiled_4)) + (expand-submodule.1 + compiled-submodules539_0 + declared-submodule-names537_0 + #f + #f + temp536_0 + #f + modules-being-compiled540_0 + mpis-to-reset538_0 + ready-body533_0 + self534_0 + partial-body-ctx535_0)))) + (cons + submod_2 + (loop_137 + tail?_50 + rest-bodys_1)))))) + (if (equal? + tmp_83 + 'module*) + (let-values () + (begin + (let-values (((obs_153) + (expand-context-observer + partial-body-ctx_1))) + (if obs_153 + (let-values () + (let-values () + (call-expand-observe + obs_153 + 'prim-stop + #f))) + (void))) + (cons + exp-body_7 + (loop_137 + tail?_50 + rest-bodys_1)))) + (if (equal? + tmp_83 + '#%declare) + (let-values () + (let-values ((() + (begin + (let-values (((obs_154) + (expand-context-observer + partial-body-ctx_1))) + (if obs_154 + (let-values () + (let-values () + (call-expand-observe + obs_154 + 'prim-declare + exp-body_7))) + (void))) + (values)))) + (let-values (((ok?_85 + #%declare541_0 + kw542_0) + (let-values (((s_887) + exp-body_7)) + (let-values (((orig-s_91) + s_887)) + (let-values (((#%declare541_1 + kw542_1) + (let-values (((s_888) + (if (syntax?$1 + s_887) + (syntax-e$1 + s_887) + s_887))) + (if (pair? + s_888) + (let-values (((#%declare543_0) + (let-values (((s_625) + (car + s_888))) + s_625)) + ((kw544_0) + (let-values (((s_889) + (cdr + s_888))) + (let-values (((s_890) + (if (syntax?$1 + s_889) + (syntax-e$1 + s_889) + s_889))) + (let-values (((flat-s_59) + (to-syntax-list.1 + s_890))) + (if (not + flat-s_59) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_91)) + (let-values () + flat-s_59))))))) + (values + #%declare543_0 + kw544_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_91))))) + (values + #t + #%declare541_1 + kw542_1)))))) + (let-values ((() + (begin + (let-values (((lst_446) + kw542_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_446))) + ((letrec-values (((for-loop_355) + (lambda (lst_447) + (begin + 'for-loop + (if (pair? + lst_447) + (let-values (((kw_1) + (unsafe-car + lst_447)) + ((rest_262) + (unsafe-cdr + lst_447))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (if (keyword? + (syntax-e$1 + kw_1)) + (void) + (let-values () + (raise-syntax-error$1 + #f + "expected a keyword" + exp-body_7 + kw_1))) + (if (memq + (syntax-e$1 + kw_1) + '(#:cross-phase-persistent + #:empty-namespace + #:unsafe)) + (void) + (let-values () + (raise-syntax-error$1 + #f + "not an allowed declaration keyword" + exp-body_7 + kw_1))) + (if (hash-ref + declared-keywords_1 + (syntax-e$1 + kw_1) + #f) + (let-values () + (raise-syntax-error$1 + #f + "keyword declared multiple times" + exp-body_7 + kw_1)) + (void)) + (if (eq? + (syntax-e$1 + kw_1) + '#:unsafe) + (let-values () + (if (eq? + (current-code-inspector) + initial-code-inspector) + (void) + (let-values () + (raise-syntax-error$1 + #f + "unsafe compilation disallowed by code inspector" + exp-body_7 + kw_1)))) + (void)) + (hash-set! + declared-keywords_1 + (syntax-e$1 + kw_1) + kw_1))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_355 + rest_262) + (values)))) + (values)))))) + for-loop_355) + lst_446))) + (values)))) + (let-values () + (let-values (((parsed-body_1) + (parsed-#%declare22.1 + exp-body_7))) + (cons + (if (expand-context-to-parsed? + partial-body-ctx_1) + parsed-body_1 + (expanded+parsed1.1 + exp-body_7 + parsed-body_1)) + (loop_137 + tail?_50 + rest-bodys_1)))))))) + (let-values () + (begin + (let-values (((obs_155) + (expand-context-observer + partial-body-ctx_1))) + (if obs_155 + (let-values () + (let-values () + (call-expand-observe + obs_155 + 'prim-stop + #f))) + (void))) + (cons + exp-body_7 + (loop_137 + tail?_50 + rest-bodys_1)))))))))))))))))) + (let-values (((l_80) + (append + lifted-reqs_0 + lifted-defns_0 + exp-lifted-mods_0))) + (if (null? l_80) + (finish_4) + (append + l_80 + (finish_4))))))))))))))))))))) + loop_137) + #t + bodys_19)))))))))))))))))))))) + (define-values + (make-wrap-as-definition) + (lambda (self_37 frame-id_17 inside-scope_2 all-scopes-stx_6 defined-syms_13 requires+provides_9) + (begin + (lambda (ids_47 rhs_24 phase_158) + (let-values (((scoped-ids_0) + (reverse$1 + (let-values (((lst_448) ids_47)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_448))) + ((letrec-values (((for-loop_356) + (lambda (fold-var_376 lst_449) + (begin + 'for-loop + (if (pair? lst_449) + (let-values (((id_166) (unsafe-car lst_449)) + ((rest_263) (unsafe-cdr lst_449))) + (let-values (((fold-var_377) + (let-values (((fold-var_378) fold-var_376)) + (let-values (((fold-var_379) + (let-values () + (cons + (let-values () + (add-scope + id_166 + inside-scope_2)) + fold-var_378)))) + (values fold-var_379))))) + (if (not #f) (for-loop_356 fold-var_377 rest_263) fold-var_377))) + fold-var_376))))) + for-loop_356) + null + lst_448)))))) + (let-values (((syms_26) + (let-values (((scoped-ids545_0) scoped-ids_0) + ((defined-syms546_0) defined-syms_13) + ((self547_0) self_37) + ((phase548_0) phase_158) + ((all-scopes-stx549_0) all-scopes-stx_6) + ((frame-id550_0) frame-id_17) + ((requires+provides551_0) requires+provides_9)) + (select-defined-syms-and-bind!.1 + #f + frame-id550_0 + #f + requires+provides551_0 + #f + scoped-ids545_0 + defined-syms546_0 + self547_0 + phase548_0 + all-scopes-stx549_0)))) + (let-values (((s_891) + (add-scope + (datum->syntax$1 + #f + (list + (datum->syntax$1 (syntax-shift-phase-level$1 core-stx phase_158) 'define-values) + scoped-ids_0 + rhs_24)) + inside-scope_2))) + (values scoped-ids_0 (semi-parsed-define-values2.1 s_891 syms_26 scoped-ids_0 rhs_24))))))))) + (define-values + (add-post-expansion-scope) + (lambda (bodys_22 ctx_116) + (begin + (let-values (((pe_3) (root-expand-context-post-expansion ctx_116))) + (if pe_3 + (reverse$1 + (let-values (((lst_450) bodys_22)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_450))) + ((letrec-values (((for-loop_357) + (lambda (fold-var_380 lst_451) + (begin + 'for-loop + (if (pair? lst_451) + (let-values (((body_22) (unsafe-car lst_451)) ((rest_264) (unsafe-cdr lst_451))) + (let-values (((fold-var_381) + (let-values (((fold-var_382) fold-var_380)) + (let-values (((fold-var_383) + (let-values () + (cons + (let-values () + (apply-post-expansion pe_3 body_22)) + fold-var_382)))) + (values fold-var_383))))) + (if (not #f) (for-loop_357 fold-var_381 rest_264) fold-var_381))) + fold-var_380))))) + for-loop_357) + null + lst_450)))) + bodys_22))))) + (define-values + (finish-expanding-body-expressions.1) + (lambda (compiled-submodules78_0 + ctx75_1 + declared-submodule-names77_0 + modules-being-compiled79_0 + mpis-to-reset80_0 + phase74_0 + self76_0 + partially-expanded-bodys88_0) + (begin + 'finish-expanding-body-expressions + (let-values (((partially-expanded-bodys_1) partially-expanded-bodys88_0)) + (let-values (((phase_159) phase74_0)) + (let-values (((body-ctx_7) ctx75_1)) + (let-values (((self_38) self76_0)) + (let-values (((declared-submodule-names_5) declared-submodule-names77_0)) + (let-values (((compiled-submodules_3) compiled-submodules78_0)) + (let-values (((modules-being-compiled_5) modules-being-compiled79_0)) + (let-values (((mpis-to-reset_2) mpis-to-reset80_0)) + (let-values () + ((letrec-values (((loop_138) + (lambda (tail?_51 bodys_23) + (begin + 'loop + (if (null? bodys_23) + (let-values () + (if (if tail?_51 (not (zero? phase_159)) #f) + (let-values () null) + (if tail?_51 + (let-values () + (let-values (((bodys_24) + (append + (get-and-clear-end-lifts! + (expand-context-to-module-lifts body-ctx_7)) + (get-and-clear-provide-lifts! + (expand-context-to-module-lifts body-ctx_7))))) + (if (null? bodys_24) + (let-values () null) + (let-values () + (begin + (let-values (((obs_156) + (expand-context-observer body-ctx_7))) + (if obs_156 + (let-values () + (let-values () + (call-expand-observe + obs_156 + 'module-end-lifts + bodys_24))) + (void))) + (loop_138 + #t + (add-post-expansion-scope bodys_24 body-ctx_7))))))) + (let-values () null)))) + (let-values () + (let-values ((() + (begin + (let-values (((obs_157) + (expand-context-observer body-ctx_7))) + (if obs_157 + (let-values () + (let-values () + (call-expand-observe obs_157 'next))) + (void))) + (values)))) + (let-values (((body_23) (car bodys_23))) + (let-values (((rest-bodys_2) (cdr bodys_23))) + (let-values (((exp-body_8) + (if (let-values (((or-part_556) + (parsed? body_23))) + (if or-part_556 + or-part_556 + (let-values (((or-part_557) + (expanded+parsed? body_23))) + (if or-part_557 + or-part_557 + (semi-parsed-begin-for-syntax? + body_23))))) + (let-values () body_23) + (if (semi-parsed-define-values? body_23) + (let-values () + (let-values (((ids_48) + (semi-parsed-define-values-ids + body_23))) + (let-values (((rhs-ctx_2) + (as-named-context + (as-expression-context + body-ctx_7) + ids_48))) + (let-values (((syms_27) + (semi-parsed-define-values-syms + body_23))) + (let-values (((s_892) + (semi-parsed-define-values-s + body_23))) + (let-values (((ok?_86 + define-values552_0 + _553_0 + _554_0) + (let-values (((s_893) + s_892)) + (if (if (not + (expand-context-to-parsed? + rhs-ctx_2)) + #t + #f) + (let-values (((orig-s_92) + s_893)) + (let-values (((define-values552_1 + _553_1 + _554_1) + (let-values (((s_894) + (if (syntax?$1 + s_893) + (syntax-e$1 + s_893) + s_893))) + (if (pair? + s_894) + (let-values (((define-values555_0) + (let-values (((s_895) + (car + s_894))) + s_895)) + ((_556_0 + _557_0) + (let-values (((s_668) + (cdr + s_894))) + (let-values (((s_669) + (if (syntax?$1 + s_668) + (syntax-e$1 + s_668) + s_668))) + (if (pair? + s_669) + (let-values (((_558_0) + (let-values (((s_672) + (car + s_669))) + s_672)) + ((_559_0) + (let-values (((s_673) + (cdr + s_669))) + (let-values (((s_674) + (if (syntax?$1 + s_673) + (syntax-e$1 + s_673) + s_673))) + (if (pair? + s_674) + (let-values (((_560_0) + (let-values (((s_676) + (car + s_674))) + s_676)) + (() + (let-values (((s_677) + (cdr + s_674))) + (let-values (((s_678) + (if (syntax?$1 + s_677) + (syntax-e$1 + s_677) + s_677))) + (if (null? + s_678) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_92)))))) + (values + _560_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_92)))))) + (values + _558_0 + _559_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_92)))))) + (values + define-values555_0 + _556_0 + _557_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_92))))) + (values + #t + define-values552_1 + _553_1 + _554_1))) + (values + #f + #f + #f + #f))))) + (let-values (((rebuild-s_15) + (let-values (((rhs-ctx561_0) + rhs-ctx_2) + ((s562_0) + s_892) + ((temp563_0) + #t)) + (keep-as-needed.1 + #f + #f + temp563_0 + rhs-ctx561_0 + s562_0)))) + (let-values ((() + (begin + (let-values (((obs_158) + (expand-context-observer + body-ctx_7))) + (if obs_158 + (let-values () + (let-values () + (begin + (call-expand-observe + obs_158 + 'visit + #f) + (call-expand-observe + obs_158 + 'enter-prim + #f) + (call-expand-observe + obs_158 + 'prim-define-values + #f)))) + (void))) + (values)))) + (let-values (((exp-rhs_7) + (begin + (if log-performance? + (let-values () + (start-performance-region + 'expand + 'form-in-module/2)) + (void)) + (begin0 + (let-values () + (let-values (((temp564_0) + (semi-parsed-define-values-rhs + body_23)) + ((rhs-ctx565_0) + rhs-ctx_2)) + (expand.1 + #f + #f + temp564_0 + rhs-ctx565_0))) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))) + (let-values ((() + (begin + (let-values (((obs_159) + (expand-context-observer + body-ctx_7))) + (if obs_159 + (let-values () + (let-values () + (call-expand-observe + obs_159 + 'exit-prim/return + #f))) + (void))) + (values)))) + (let-values (((comp-form_0) + (parsed-define-values19.1 + rebuild-s_15 + ids_48 + syms_27 + (if (expand-context-to-parsed? + rhs-ctx_2) + exp-rhs_7 + (let-values (((exp-rhs566_0) + exp-rhs_7) + ((temp567_0) + (as-to-parsed-context + rhs-ctx_2))) + (expand.1 + #f + #f + exp-rhs566_0 + temp567_0)))))) + (if (expand-context-to-parsed? + rhs-ctx_2) + comp-form_0 + (expanded+parsed1.1 + (let-values (((rebuild-s568_0) + rebuild-s_15) + ((temp569_0) + (list + define-values552_0 + ids_48 + exp-rhs_7))) + (rebuild.1 + #t + rebuild-s568_0 + temp569_0)) + comp-form_0))))))))))))) + (let-values () + (let-values (((tmp_84) + (core-form-sym + body_23 + phase_159))) + (if (if (equal? tmp_84 '#%require) + #t + (if (equal? tmp_84 '#%provide) + #t + (equal? tmp_84 'module*))) + (let-values () body_23) + (let-values () + (begin + (if log-performance? + (let-values () + (start-performance-region + 'expand + 'form-in-module/2)) + (void)) + (begin0 + (let-values () + (let-values (((exp-body_9) + (let-values (((body570_0) + body_23) + ((temp571_0) + (as-expression-context + body-ctx_7))) + (expand.1 + #f + #f + body570_0 + temp571_0)))) + (if (expand-context-to-parsed? + body-ctx_7) + exp-body_9 + (expanded+parsed1.1 + exp-body_9 + (let-values (((exp-body572_0) + exp-body_9) + ((temp573_0) + (as-to-parsed-context + body-ctx_7))) + (expand.1 + #f + #f + exp-body572_0 + temp573_0)))))) + (if log-performance? + (let-values () + (end-performance-region)) + (void)))))))))))) + (let-values (((lifted-defns_1) + (get-and-clear-lifts! + (expand-context-lifts body-ctx_7)))) + (let-values (((lifted-requires_0) + (get-and-clear-require-lifts! + (expand-context-require-lifts body-ctx_7)))) + (let-values (((lifted-modules_0) + (get-and-clear-module-lifts! + (expand-context-module-lifts body-ctx_7)))) + (let-values (((no-lifts?_0) + (if (null? lifted-defns_1) + (if (null? lifted-modules_0) + (null? lifted-requires_0) + #f) + #f))) + (let-values ((() + (begin + (if no-lifts?_0 + (void) + (let-values () + (let-values (((obs_160) + (expand-context-observer + body-ctx_7))) + (if obs_160 + (let-values () + (let-values () + (call-expand-observe + obs_160 + 'module-pass2-lifts + lifted-requires_0 + (add-post-expansion-scope + lifted-modules_0 + body-ctx_7) + (lifted-defns-extract-syntax + lifted-defns_1)))) + (void))))) + (values)))) + (let-values (((exp-lifted-modules_0) + (let-values (((lifted-modules574_0) + lifted-modules_0) + ((phase575_0) phase_159) + ((self576_0) self_38) + ((body-ctx577_0) + body-ctx_7) + ((mpis-to-reset578_0) + mpis-to-reset_2) + ((declared-submodule-names579_0) + declared-submodule-names_5) + ((compiled-submodules580_0) + compiled-submodules_3) + ((modules-being-compiled581_0) + modules-being-compiled_5)) + (expand-non-module*-submodules.1 + compiled-submodules580_0 + declared-submodule-names579_0 + modules-being-compiled581_0 + mpis-to-reset578_0 + lifted-modules574_0 + phase575_0 + self576_0 + body-ctx577_0)))) + (let-values ((() + (begin + (if no-lifts?_0 + (void) + (let-values () + (let-values (((obs_161) + (expand-context-observer + body-ctx_7))) + (if obs_161 + (let-values () + (let-values () + (call-expand-observe + obs_161 + 'next-group))) + (void))))) + (values)))) + (let-values (((exp-lifted-defns_0) + (loop_138 #f lifted-defns_1))) + (begin + (if no-lifts?_0 + (void) + (let-values () + (let-values (((obs_162) + (expand-context-observer + body-ctx_7))) + (if obs_162 + (let-values () + (let-values () + (call-expand-observe + obs_162 + 'next-group))) + (void))))) + (append + lifted-requires_0 + exp-lifted-modules_0 + exp-lifted-defns_0 + (cons + exp-body_8 + (loop_138 + tail?_51 + rest-bodys_2)))))))))))))))))))))) + loop_138) + #t + partially-expanded-bodys_1))))))))))))) + (define-values + (check-defined-by-now) + (lambda (need-eventually-defined_3 self_39 ctx_117 requires+provides_10) + (begin + (begin + (let-values (((ht_172) need-eventually-defined_3)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_172))) + ((letrec-values (((for-loop_358) + (lambda (i_227) + (begin + 'for-loop + (if i_227 + (let-values (((phase_160 l_81) (hash-iterate-key+value ht_172 i_227))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (begin + (let-values (((lst_452) (reverse$1 l_81))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-list lst_452))) + ((letrec-values (((for-loop_359) + (lambda (lst_453) + (begin + 'for-loop + (if (pair? + lst_453) + (let-values (((id_167) + (unsafe-car + lst_453)) + ((rest_265) + (unsafe-cdr + lst_453))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((b_113) + (let-values (((id582_0) + id_167) + ((phase583_0) + phase_160)) + (resolve+shift.1 + #f + #f + null + unsafe-undefined + #f + id582_0 + phase583_0)))) + (let-values (((bound-here?_0) + (if b_113 + (if (module-binding? + b_113) + (if (eq? + (module-binding-sym + b_113) + (syntax-e$1 + id_167)) + (eq? + (module-binding-module + b_113) + self_39) + #f) + #f) + #f))) + (let-values (((bound-kind_0) + (if bound-here?_0 + (defined-sym-kind + requires+provides_10 + (module-binding-sym + b_113) + phase_160) + #f))) + (if (eq? + bound-kind_0 + 'variable) + (void) + (let-values () + (raise-syntax-error$1 + #f + (string-append + (if (not + b_113) + (let-values () + "reference to an unbound identifier") + (if (eq? + bound-kind_0 + 'transformer) + (let-values () + "identifier treated as a variable, but later defined as syntax") + (let-values () + "identifier treated as a variable, but later bound differently"))) + (format + "\n at phase: ~a" + (let-values (((tmp_85) + phase_160)) + (if (equal? + tmp_85 + 1) + (let-values () + "1; the transformer environment") + (let-values () + phase_160))))) + id_167 + #f + null + (syntax-debug-info-string + id_167 + ctx_117)))))))) + (values))))) + (values))))) + (if (not #f) + (for-loop_359 + rest_265) + (values)))) + (values)))))) + for-loop_359) + lst_452))) + (void))) + (values))))) + (values))))) + (if (not #f) (for-loop_358 (hash-iterate-next ht_172 i_227)) (values)))) + (values)))))) + for-loop_358) + (hash-iterate-first ht_172)))) + (void))))) + (define-values + (resolve-provides.1) + (lambda (ctx95_0 + declared-submodule-names91_0 + namespace92_0 + phase93_0 + requires-and-provides90_0 + self94_0 + expression-expanded-bodys102_0) + (begin + 'resolve-provides + (let-values (((expression-expanded-bodys_1) expression-expanded-bodys102_0)) + (let-values (((requires+provides_11) requires-and-provides90_0)) + (let-values (((declared-submodule-names_6) declared-submodule-names91_0)) + (let-values (((m-ns_19) namespace92_0)) + (let-values (((phase_161) phase93_0)) + (let-values (((self_40) self94_0)) + (let-values (((ctx_118) ctx95_0)) + (let-values () + (begin + (if log-performance? (let-values () (start-performance-region 'expand 'provide)) (void)) + (begin0 + (let-values () + ((letrec-values (((loop_139) + (lambda (bodys_25 phase_162) + (begin + 'loop + (if (null? bodys_25) + (let-values () null) + (if (let-values (((or-part_558) (parsed? (car bodys_25)))) + (if or-part_558 + or-part_558 + (expanded+parsed? (car bodys_25)))) + (let-values () + (begin + (let-values (((obs_163) (expand-context-observer ctx_118))) + (if obs_163 + (let-values () + (let-values () (call-expand-observe obs_163 'next))) + (void))) + (cons (car bodys_25) (loop_139 (cdr bodys_25) phase_162)))) + (if (semi-parsed-begin-for-syntax? (car bodys_25)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_164) + (expand-context-observer + ctx_118))) + (if obs_164 + (let-values () + (let-values () + (call-expand-observe + obs_164 + 'enter-begin-for-syntax))) + (void))) + (values)))) + (let-values (((nested-bodys_2) + (loop_139 + (semi-parsed-begin-for-syntax-body + (car bodys_25)) + (add1 phase_162)))) + (begin + (let-values (((obs_165) + (expand-context-observer ctx_118))) + (if obs_165 + (let-values () + (let-values () + (call-expand-observe + obs_165 + 'exit-begin-for-syntax))) + (void))) + (cons + (let-values (((the-struct_112) (car bodys_25))) + (if (semi-parsed-begin-for-syntax? the-struct_112) + (let-values (((body584_0) nested-bodys_2)) + (semi-parsed-begin-for-syntax3.1 + (semi-parsed-begin-for-syntax-s the-struct_112) + body584_0)) + (raise-argument-error + 'struct-copy + "semi-parsed-begin-for-syntax?" + the-struct_112))) + (loop_139 (cdr bodys_25) phase_162)))))) + (let-values () + (let-values (((body_24) (car bodys_25))) + (let-values (((tmp_86) (core-form-sym body_24 phase_162))) + (if (equal? tmp_86 '#%provide) + (let-values () + (let-values ((() + (begin + (let-values (((obs_104) + (expand-context-observer + ctx_118))) + (if obs_104 + (let-values () + (let-values () + (begin + (call-expand-observe + obs_104 + 'enter-prim + body_24) + (call-expand-observe + obs_104 + 'prim-provide + body_24)))) + (void))) + (values)))) + (let-values (((ok?_87 #%provide585_0 spec586_0) + (let-values (((s_896) body_24)) + (let-values (((orig-s_93) s_896)) + (let-values (((#%provide585_1 + spec586_1) + (let-values (((s_897) + (if (syntax?$1 + s_896) + (syntax-e$1 + s_896) + s_896))) + (if (pair? s_897) + (let-values (((#%provide587_0) + (let-values (((s_898) + (car + s_897))) + s_898)) + ((spec588_0) + (let-values (((s_899) + (cdr + s_897))) + (let-values (((s_900) + (if (syntax?$1 + s_899) + (syntax-e$1 + s_899) + s_899))) + (let-values (((flat-s_60) + (to-syntax-list.1 + s_900))) + (if (not + flat-s_60) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_93)) + (let-values () + flat-s_60))))))) + (values + #%provide587_0 + spec588_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_93))))) + (values + #t + #%provide585_1 + spec586_1)))))) + (let-values (((track-stxes_11 specs_2) + (parse-and-expand-provides! + spec586_0 + body_24 + requires+provides_11 + self_40 + phase_162 + (let-values (((v_281) ctx_118)) + (let-values (((the-struct_113) + v_281)) + (if (expand-context/outer? + the-struct_113) + (let-values (((context589_0) + 'top-level) + ((inner590_0) + (let-values (((the-struct_114) + (root-expand-context/outer-inner + v_281))) + (if (expand-context/inner? + the-struct_114) + (let-values (((phase591_0) + phase_162) + ((namespace592_0) + (namespace->namespace-at-phase + m-ns_19 + phase_162)) + ((requires+provides593_0) + requires+provides_11) + ((declared-submodule-names594_0) + declared-submodule-names_6)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_114) + (root-expand-context/inner-module-scopes + the-struct_114) + (root-expand-context/inner-top-level-bind-scope + the-struct_114) + (root-expand-context/inner-all-scopes-stx + the-struct_114) + (root-expand-context/inner-defined-syms + the-struct_114) + (root-expand-context/inner-counter + the-struct_114) + (root-expand-context/inner-lift-key + the-struct_114) + (expand-context/inner-to-parsed? + the-struct_114) + phase591_0 + namespace592_0 + (expand-context/inner-just-once? + the-struct_114) + (expand-context/inner-module-begin-k + the-struct_114) + (expand-context/inner-allow-unbound? + the-struct_114) + (expand-context/inner-in-local-expand? + the-struct_114) + (expand-context/inner-keep-#%expression? + the-struct_114) + (expand-context/inner-stops + the-struct_114) + declared-submodule-names594_0 + (expand-context/inner-lifts + the-struct_114) + (expand-context/inner-lift-envs + the-struct_114) + (expand-context/inner-module-lifts + the-struct_114) + (expand-context/inner-require-lifts + the-struct_114) + (expand-context/inner-to-module-lifts + the-struct_114) + requires+provides593_0 + (expand-context/inner-observer + the-struct_114) + (expand-context/inner-for-serializable? + the-struct_114) + (expand-context/inner-to-correlated-linklet? + the-struct_114) + (expand-context/inner-normalize-locals? + the-struct_114) + (expand-context/inner-parsing-expanded? + the-struct_114) + (expand-context/inner-skip-visit-available? + the-struct_114))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_114))))) + (expand-context/outer1.1 + inner590_0 + (root-expand-context/outer-post-expansion + the-struct_113) + (root-expand-context/outer-use-site-scopes + the-struct_113) + (root-expand-context/outer-frame-id + the-struct_113) + context589_0 + (expand-context/outer-env + the-struct_113) + (expand-context/outer-scopes + the-struct_113) + (expand-context/outer-def-ctx-scopes + the-struct_113) + (expand-context/outer-binding-layer + the-struct_113) + (expand-context/outer-reference-records + the-struct_113) + (expand-context/outer-only-immediate? + the-struct_113) + (expand-context/outer-need-eventually-defined + the-struct_113) + (expand-context/outer-current-introduction-scopes + the-struct_113) + (expand-context/outer-current-use-scopes + the-struct_113) + (expand-context/outer-name + the-struct_113))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_113))))))) + (if (expand-context-to-parsed? ctx_118) + (let-values () + (loop_139 (cdr bodys_25) phase_162)) + (let-values () + (let-values (((new-s_10) + (syntax-track-origin* + track-stxes_11 + (let-values (((body595_0) + body_24) + ((temp596_0) + (list* + #%provide585_0 + specs_2))) + (rebuild.1 + #t + body595_0 + temp596_0))))) + (begin + (let-values (((obs_166) + (expand-context-observer + ctx_118))) + (if obs_166 + (let-values () + (let-values () + (call-expand-observe + obs_166 + 'exit-prim + new-s_10))) + (void))) + (cons + new-s_10 + (loop_139 + (cdr bodys_25) + phase_162)))))))))) + (let-values () + (begin + (let-values (((obs_167) + (expand-context-observer ctx_118))) + (if obs_167 + (let-values () + (let-values () + (call-expand-observe obs_167 'next))) + (void))) + (cons + body_24 + (loop_139 (cdr bodys_25) phase_162))))))))))))))) + loop_139) + expression-expanded-bodys_1 + phase_161)) + (if log-performance? (let-values () (end-performance-region)) (void))))))))))))))) + (define-values + (declare-module-for-expansion.1) + (lambda (ctx111_0 + enclosing109_0 + fill113_0 + module-name-id104_0 + modules-being-compiled112_0 + namespace107_0 + rebuild-s105_0 + requires-and-provides106_0 + root-ctx110_0 + self108_0 + fully-expanded-bodys-except-post-submodules124_0) + (begin + 'declare-module-for-expansion + (let-values (((fully-expanded-bodys-except-post-submodules_1) fully-expanded-bodys-except-post-submodules124_0)) + (let-values (((module-name-id_0) module-name-id104_0)) + (let-values (((rebuild-s_16) rebuild-s105_0)) + (let-values (((requires+provides_12) requires-and-provides106_0)) + (let-values (((m-ns_20) namespace107_0)) + (let-values (((self_41) self108_0)) + (let-values (((enclosing-self_3) enclosing109_0)) + (let-values (((root-ctx_7) root-ctx110_0)) + (let-values (((ctx_119) ctx111_0)) + (let-values (((modules-being-compiled_6) modules-being-compiled112_0)) + (let-values (((compiled-module-box_1) fill113_0)) + (let-values () + (let-values (((requires_8 provides_17) + (extract-requires-and-provides requires+provides_12 self_41 self_41))) + (let-values (((parsed-mod_0) + (parsed-module25.1 + rebuild-s_16 + #f + module-name-id_0 + self_41 + requires_8 + provides_17 + (requires+provides-all-bindings-simple? requires+provides_12) + (root-expand-context-encode-for-module root-ctx_7 self_41 self_41) + (parsed-only fully-expanded-bodys-except-post-submodules_1) + #f + (hasheq)))) + (let-values (((module-name_2) + (1/module-path-index-resolve + (let-values (((or-part_559) enclosing-self_3)) + (if or-part_559 or-part_559 self_41))))) + (let-values (((compiled-module_0) + (let-values (((parsed-mod597_0) parsed-mod_0) + ((temp598_0) + (let-values (((m-ns603_0) m-ns_20) + ((enclosing-self604_0) enclosing-self_3) + ((temp605_0) + (if enclosing-self_3 + (1/resolved-module-path-name + module-name_2) + #f))) + (make-compile-context.1 + temp605_0 + unsafe-undefined + enclosing-self604_0 + m-ns603_0 + unsafe-undefined + unsafe-undefined))) + ((temp599_0) (expand-context-for-serializable? ctx_119)) + ((temp600_0) + (expand-context-to-correlated-linklet? ctx_119)) + ((modules-being-compiled601_0) modules-being-compiled_6) + ((temp602_0) #f)) + (compile-module.1 + #f + modules-being-compiled601_0 + temp602_0 + temp599_0 + temp600_0 + parsed-mod597_0 + temp598_0)))) + (let-values ((() + (begin + (set-box! compiled-module-box_1 compiled-module_0) + (values)))) + (let-values (((root-module-name_0) + (resolved-module-path-root-name module-name_2))) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + m-ns_20 + 1/current-module-declare-name + (1/make-resolved-module-path root-module-name_0)) + (let-values () + (let-values (((compiled-module606_0) compiled-module_0) ((temp607_0) #f)) + (eval-module.1 + unsafe-undefined + #f + temp607_0 + compiled-module606_0))))))))))))))))))))))))) + (define-values + (attach-root-expand-context-properties) + (lambda (s_901 root-ctx_8 orig-self_1 new-self_2) + (begin + (let-values (((s_902) + (syntax-property$1 s_901 'module-body-context (root-expand-context-all-scopes-stx root-ctx_8)))) + (let-values (((s_903) + (syntax-property$1 + s_902 + 'module-body-inside-context + (apply-post-expansion (root-expand-context-post-expansion root-ctx_8) empty-syntax)))) + s_903))))) + (define-values + (expand-post-submodules.1) + (lambda (all-scopes-s131_0 + compiled-submodules134_0 + ctx136_0 + declare-enclosing126_0 + declared-submodule-names133_0 + enclosing-is-cross-phase-persistent?130_0 + modules-being-compiled135_0 + mpis-to-reset132_0 + phase127_1 + requires-and-provides129_0 + self128_0 + fully-expanded-bodys-except-post-submodules148_0) + (begin + 'expand-post-submodules + (let-values (((fully-expanded-bodys-except-post-submodules_2) fully-expanded-bodys-except-post-submodules148_0)) + (let-values (((declare-enclosing-module_1) declare-enclosing126_0)) + (let-values (((phase_163) phase127_1)) + (let-values (((self_42) self128_0)) + (let-values (((requires+provides_13) requires-and-provides129_0)) + (let-values (((enclosing-is-cross-phase-persistent?_1) enclosing-is-cross-phase-persistent?130_0)) + (let-values () + (let-values (((mpis-to-reset_3) mpis-to-reset132_0)) + (let-values (((declared-submodule-names_7) declared-submodule-names133_0)) + (let-values (((compiled-submodules_4) compiled-submodules134_0)) + (let-values (((modules-being-compiled_7) modules-being-compiled135_0)) + (let-values (((submod-ctx_1) ctx136_0)) + (let-values () + ((letrec-values (((loop_140) + (lambda (bodys_26 phase_164) + (begin + 'loop + (if (null? bodys_26) + (let-values () null) + (let-values () + (let-values (((body_25) (car bodys_26))) + (let-values (((rest-bodys_3) (cdr bodys_26))) + (if (semi-parsed-begin-for-syntax? body_25) + (let-values () + (let-values (((body-s_0) + (semi-parsed-begin-for-syntax-s + body_25))) + (let-values ((() + (begin + (let-values (((obs_168) + (expand-context-observer + submod-ctx_1))) + (if obs_168 + (let-values () + (let-values () + (call-expand-observe + obs_168 + 'enter-begin-for-syntax))) + (void))) + (values)))) + (let-values (((ok?_88 + begin-for-syntax608_0 + _609_0) + (let-values (((s_904) body-s_0)) + (let-values (((orig-s_94) s_904)) + (let-values (((begin-for-syntax608_1 + _609_1) + (let-values (((s_905) + (if (syntax?$1 + s_904) + (syntax-e$1 + s_904) + s_904))) + (if (pair? + s_905) + (let-values (((begin-for-syntax610_0) + (let-values (((s_906) + (car + s_905))) + s_906)) + ((_611_0) + (let-values (((s_907) + (cdr + s_905))) + (let-values (((s_908) + (if (syntax?$1 + s_907) + (syntax-e$1 + s_907) + s_907))) + (let-values (((flat-s_61) + (to-syntax-list.1 + s_908))) + (if (not + flat-s_61) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_94)) + (let-values () + flat-s_61))))))) + (values + begin-for-syntax610_0 + _611_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_94))))) + (values + #t + begin-for-syntax608_1 + _609_1)))))) + (let-values (((rebuild-body-s_0) + (let-values (((submod-ctx612_0) + submod-ctx_1) + ((body-s613_0) + body-s_0)) + (keep-as-needed.1 + #f + #f + #f + submod-ctx612_0 + body-s613_0)))) + (let-values (((nested-bodys_3) + (loop_140 + (semi-parsed-begin-for-syntax-body + body_25) + (add1 phase_164)))) + (let-values (((parsed-bfs_0) + (parsed-begin-for-syntax21.1 + rebuild-body-s_0 + (parsed-only + nested-bodys_3)))) + (begin + (let-values (((obs_169) + (expand-context-observer + submod-ctx_1))) + (if obs_169 + (let-values () + (let-values () + (call-expand-observe + obs_169 + 'exit-begin-for-syntax))) + (void))) + (cons + (if (expand-context-to-parsed? + submod-ctx_1) + parsed-bfs_0 + (expanded+parsed1.1 + (let-values (((rebuild-body-s614_0) + rebuild-body-s_0) + ((temp615_0) + (list* + begin-for-syntax608_0 + (syntax-only + nested-bodys_3)))) + (rebuild.1 + #t + rebuild-body-s614_0 + temp615_0)) + parsed-bfs_0)) + (loop_140 + rest-bodys_3 + phase_164)))))))))) + (if (let-values (((or-part_560) (parsed? body_25))) + (if or-part_560 + or-part_560 + (expanded+parsed? body_25))) + (let-values () + (begin + (let-values (((obs_170) + (expand-context-observer + submod-ctx_1))) + (if obs_170 + (let-values () + (let-values () + (call-expand-observe obs_170 'next))) + (void))) + (cons body_25 (loop_140 rest-bodys_3 phase_164)))) + (let-values () + (let-values (((tmp_87) + (core-form-sym body_25 phase_164))) + (if (equal? tmp_87 'module*) + (let-values () + (let-values ((() + (begin + (force + declare-enclosing-module_1) + (values)))) + (let-values (((ready-body_2) + (remove-use-site-scopes + body_25 + submod-ctx_1))) + (let-values (((ok?_89 + module*616_0 + name617_0 + _618_0) + (let-values (((s_909) + body_25)) + (if (let-values (((s_753) + (if (syntax?$1 + s_909) + (syntax-e$1 + s_909) + s_909))) + (if (pair? s_753) + (if (let-values (((s_754) + (car + s_753))) + #t) + (let-values (((s_910) + (cdr + s_753))) + (let-values (((s_755) + (if (syntax?$1 + s_910) + (syntax-e$1 + s_910) + s_910))) + (if (pair? + s_755) + (if (let-values (((s_756) + (car + s_755))) + #t) + (let-values (((s_757) + (cdr + s_755))) + (let-values (((s_911) + (if (syntax?$1 + s_757) + (syntax-e$1 + s_757) + s_757))) + (if (pair? + s_911) + (if (let-values (((s_912) + (car + s_911))) + (let-values (((s_913) + (if (syntax?$1 + s_912) + (syntax-e$1 + s_912) + s_912))) + (eq? + #f + s_913))) + (let-values (((s_914) + (cdr + s_911))) + #t) + #f) + #f))) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values (((module*616_1 + name617_1 + _618_1) + (let-values (((s_915) + (if (syntax?$1 + s_909) + (syntax-e$1 + s_909) + s_909))) + (let-values (((module*619_0) + (let-values (((s_916) + (car + s_915))) + s_916)) + ((name620_0 + _621_0) + (let-values (((s_917) + (cdr + s_915))) + (let-values (((s_918) + (if (syntax?$1 + s_917) + (syntax-e$1 + s_917) + s_917))) + (let-values (((name622_0) + (let-values (((s_919) + (car + s_918))) + s_919)) + ((_623_0) + (let-values (((s_920) + (cdr + s_918))) + (let-values (((s_921) + (if (syntax?$1 + s_920) + (syntax-e$1 + s_920) + s_920))) + (let-values ((() + (let-values (((s_922) + (car + s_921))) + (let-values (((s_923) + (if (syntax?$1 + s_922) + (syntax-e$1 + s_922) + s_922))) + (values)))) + ((_624_0) + (let-values (((s_924) + (cdr + s_921))) + s_924))) + (values + _624_0)))))) + (values + name622_0 + _623_0)))))) + (values + module*619_0 + name620_0 + _621_0))))) + (values + #t + module*616_1 + name617_1 + _618_1))) + (values #f #f #f #f))))) + (let-values (((submod_3) + (if ok?_89 + (let-values () + (let-values (((neg-phase_0) + (phase- + 0 + phase_164))) + (let-values (((shifted-s_0) + (syntax-shift-phase-level$1 + ready-body_2 + neg-phase_0))) + (let-values (((submod_4) + (let-values (((shifted-s625_0) + shifted-s_0) + ((self626_0) + self_42) + ((submod-ctx627_0) + submod-ctx_1) + ((temp628_0) + #t) + ((neg-phase629_0) + neg-phase_0) + ((requires+provides630_0) + requires+provides_13) + ((enclosing-is-cross-phase-persistent?631_0) + enclosing-is-cross-phase-persistent?_1) + ((mpis-to-reset632_0) + mpis-to-reset_3) + ((declared-submodule-names633_0) + declared-submodule-names_7) + ((compiled-submodules634_0) + compiled-submodules_4) + ((modules-being-compiled635_0) + modules-being-compiled_7)) + (expand-submodule.1 + compiled-submodules634_0 + declared-submodule-names633_0 + enclosing-is-cross-phase-persistent?631_0 + requires+provides630_0 + temp628_0 + neg-phase629_0 + modules-being-compiled635_0 + mpis-to-reset632_0 + shifted-s625_0 + self626_0 + submod-ctx627_0)))) + (if (parsed? + submod_4) + (let-values () + submod_4) + (if (expanded+parsed? + submod_4) + (let-values () + (let-values (((the-struct_115) + submod_4)) + (if (expanded+parsed? + the-struct_115) + (let-values (((s636_0) + (syntax-shift-phase-level$1 + (expanded+parsed-s + submod_4) + phase_164))) + (expanded+parsed1.1 + s636_0 + (expanded+parsed-parsed + the-struct_115))) + (raise-argument-error + 'struct-copy + "expanded+parsed?" + the-struct_115)))) + (let-values () + (syntax-shift-phase-level$1 + submod_4 + phase_164)))))))) + (let-values () + (let-values (((ready-body637_0) + ready-body_2) + ((self638_0) + self_42) + ((submod-ctx639_0) + submod-ctx_1) + ((temp640_0) + #t) + ((mpis-to-reset641_0) + mpis-to-reset_3) + ((declared-submodule-names642_0) + declared-submodule-names_7) + ((compiled-submodules643_0) + compiled-submodules_4) + ((modules-being-compiled644_0) + modules-being-compiled_7)) + (expand-submodule.1 + compiled-submodules643_0 + declared-submodule-names642_0 + #f + #f + temp640_0 + #f + modules-being-compiled644_0 + mpis-to-reset641_0 + ready-body637_0 + self638_0 + submod-ctx639_0)))))) + (cons + submod_3 + (loop_140 + rest-bodys_3 + phase_164))))))) + (let-values () + (begin + (let-values (((obs_171) + (expand-context-observer + submod-ctx_1))) + (if obs_171 + (let-values () + (let-values () + (call-expand-observe + obs_171 + 'next))) + (void))) + (cons + body_25 + (loop_140 + rest-bodys_3 + phase_164))))))))))))))))) + loop_140) + fully-expanded-bodys-except-post-submodules_2 + phase_163))))))))))))))))) + (define-values + (stop-at-module*?) + (lambda (ctx_120) + (begin + (free-id-set-member? + (expand-context-stops ctx_120) + (expand-context-phase ctx_120) + (syntax-shift-phase-level$1 (datum->syntax$1 core-stx 'module*) (expand-context-phase ctx_120)))))) + (define-values + (check-ids-unbound.1) + (lambda (in150_0 ids152_0 phase153_1 requires+provides154_0) + (begin + 'check-ids-unbound + (let-values (((ids_49) ids152_0)) + (let-values (((phase_165) phase153_1)) + (let-values (((requires+provides_14) requires+provides154_0)) + (let-values (((s_768) in150_0)) + (let-values () + (begin + (let-values (((lst_454) ids_49)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_454))) + ((letrec-values (((for-loop_360) + (lambda (lst_455) + (begin + 'for-loop + (if (pair? lst_455) + (let-values (((id_168) (unsafe-car lst_455)) + ((rest_266) (unsafe-cdr lst_455))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((requires+provides645_0) + requires+provides_14) + ((id646_0) id_168) + ((phase647_0) + phase_165) + ((temp648_0) #f) + ((s649_0) s_768) + ((temp650_0) 'module)) + (check-not-defined.1 + #f + #f + #f + s649_0 + #f + #f + temp650_0 + requires+provides645_0 + id646_0 + phase647_0 + temp648_0))) + (values))))) + (values))))) + (if (not #f) (for-loop_360 rest_266) (values)))) + (values)))))) + for-loop_360) + lst_454))) + (void)))))))))) + (define-values + (eval-nested-bodys) + (lambda (bodys_27 phase_166 m-ns_21 self_43 ctx_121) + (begin + (begin + (let-values (((lst_456) bodys_27)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_456))) + ((letrec-values (((for-loop_361) + (lambda (lst_457) + (begin + 'for-loop + (if (pair? lst_457) + (let-values (((body_26) (unsafe-car lst_457)) ((rest_267) (unsafe-cdr lst_457))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((p_93) + (if (expanded+parsed? body_26) + (expanded+parsed-parsed + body_26) + body_26))) + (if (parsed-define-values? p_93) + (let-values () + (let-values (((syms_28) + (parsed-define-values-syms + p_93))) + (let-values (((ids_50) + (parsed-define-values-ids + p_93))) + (begin + (let-values (((temp651_0) + 'define-values) + ((ids652_0) ids_50) + ((temp653_0) + (parsed-define-values-rhs + p_93)) + ((phase654_0) + phase_166) + ((m-ns655_0) m-ns_21) + ((ctx656_0) ctx_121) + ((temp657_0) + (lambda (go_2) + (call-with-module-prompt/value-list + 'define + go_2 + ids_50 + (lambda (vals_14) + (begin + (let-values (((lst_458) + syms_28) + ((lst_459) + vals_14)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_458))) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_459))) + ((letrec-values (((for-loop_362) + (lambda (lst_460 + lst_461) + (begin + 'for-loop + (if (if (pair? + lst_460) + (pair? + lst_461) + #f) + (let-values (((sym_112) + (unsafe-car + lst_460)) + ((rest_268) + (unsafe-cdr + lst_460)) + ((val_99) + (unsafe-car + lst_461)) + ((rest_269) + (unsafe-cdr + lst_461))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (namespace-set-variable! + m-ns_21 + phase_166 + sym_112 + val_99)) + (values))))) + (values))))) + (if (not + #f) + (for-loop_362 + rest_268 + rest_269) + (values)))) + (values)))))) + for-loop_362) + lst_458 + lst_459))) + (void))))))) + (eval-for-bindings.1 + temp657_0 + temp651_0 + ids652_0 + temp653_0 + phase654_0 + m-ns655_0 + ctx656_0)) + (let-values (((lst_462) syms_28)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_462))) + ((letrec-values (((for-loop_363) + (lambda (lst_463) + (begin + 'for-loop + (if (pair? + lst_463) + (let-values (((sym_113) + (unsafe-car + lst_463)) + ((rest_270) + (unsafe-cdr + lst_463))) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (namespace-get-variable + m-ns_21 + phase_166 + sym_113 + (lambda () + (raise + (exn:fail:contract:variable + (string-append + "define-values: skipped variable definition during expansion\n" + " variable: " + (symbol->string + sym_113)) + (current-continuation-marks) + sym_113))))) + (values))))) + (values))))) + (if (not + #f) + (for-loop_363 + rest_270) + (values)))) + (values)))))) + for-loop_363) + lst_462))) + (void))))) + (if (let-values (((or-part_561) + (parsed-define-syntaxes? + p_93))) + (if or-part_561 + or-part_561 + (semi-parsed-begin-for-syntax? + p_93))) + (let-values () (void)) + (if (let-values (((or-part_562) + (parsed-#%declare? + p_93))) + (if or-part_562 + or-part_562 + (syntax?$1 p_93))) + (let-values () (void)) + (let-values () + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first + #f + parameterization-key) + 1/current-namespace + m-ns_21) + (let-values () + (with-continuation-mark + current-expand-context + ctx_121 + (let-values () + (let-values (((c_153) + (compile-single + p_93 + (let-values (((m-ns658_0) + m-ns_21) + ((phase659_0) + phase_166)) + (make-compile-context.1 + #f + unsafe-undefined + #f + m-ns658_0 + phase659_0 + unsafe-undefined))))) + (1/call-with-module-prompt + (lambda () + (eval-single-top + c_153 + m-ns_21)))))))))))))) + (values))))) + (values))))) + (if (not #f) (for-loop_361 rest_267) (values)))) + (values)))))) + for-loop_361) + lst_456))) + (void))))) + (define-values + (expand-submodule.1) + (lambda (compiled-submodules162_0 + declared-submodule-names161_0 + enclosing-is-cross-phase-persistent?159_0 + enclosing-requires+provides158_0 + is-star?156_0 + keep-enclosing-scope-at-phase157_0 + modules-being-compiled163_0 + mpis-to-reset160_0 + s172_1 + self173_0 + ctx174_1) + (begin + 'expand-submodule + (let-values (((s_925) s172_1)) + (let-values (((self_44) self173_0)) + (let-values (((ctx_122) ctx174_1)) + (let-values (((is-star?_0) is-star?156_0)) + (let-values (((keep-enclosing-scope-at-phase_2) keep-enclosing-scope-at-phase157_0)) + (let-values (((enclosing-r+p_2) enclosing-requires+provides158_0)) + (let-values (((enclosing-is-cross-phase-persistent?_2) enclosing-is-cross-phase-persistent?159_0)) + (let-values (((mpis-to-reset_4) mpis-to-reset160_0)) + (let-values (((declared-submodule-names_8) declared-submodule-names161_0)) + (let-values (((compiled-submodules_5) compiled-submodules162_0)) + (let-values (((modules-being-compiled_8) modules-being-compiled163_0)) + (let-values () + (let-values ((() + (begin + (let-values (((obs_172) (expand-context-observer ctx_122))) + (if obs_172 + (let-values () + (let-values () + (begin + (call-expand-observe obs_172 'enter-prim s_925) + (call-expand-observe + obs_172 + (if is-star?_0 'prim-submodule* 'prim-submodule) + #f)))) + (void))) + (values)))) + (let-values (((ok?_90 module660_0 name661_0 _662_0) + (let-values (((s_926) s_925)) + (let-values (((orig-s_95) s_926)) + (let-values (((module660_1 name661_1 _662_1) + (let-values (((s_927) + (if (syntax?$1 s_926) + (syntax-e$1 s_926) + s_926))) + (if (pair? s_927) + (let-values (((module663_0) + (let-values (((s_928) (car s_927))) + s_928)) + ((name664_0 _665_0) + (let-values (((s_929) (cdr s_927))) + (let-values (((s_930) + (if (syntax?$1 s_929) + (syntax-e$1 s_929) + s_929))) + (if (pair? s_930) + (let-values (((name666_0) + (let-values (((s_931) + (car + s_930))) + s_931)) + ((_667_0) + (let-values (((s_932) + (cdr + s_930))) + s_932))) + (values name666_0 _667_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_95)))))) + (values module663_0 name664_0 _665_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_95))))) + (values #t module660_1 name661_1 _662_1)))))) + (let-values (((name_87) (syntax-e$1 name661_0))) + (let-values ((() + (begin + (if (hash-ref declared-submodule-names_8 name_87 #f) + (let-values () + (raise-syntax-error$1 + #f + "submodule already declared with the same name" + s_925 + name_87)) + (void)) + (values)))) + (let-values ((() + (begin + (hash-set! + declared-submodule-names_8 + name_87 + (syntax-e$1 module660_0)) + (values)))) + (let-values ((() + (begin + (let-values (((obs_173) (expand-context-observer ctx_122))) + (if obs_173 + (let-values () + (let-values () + (call-expand-observe obs_173 'enter-prim s_925))) + (void))) + (values)))) + (let-values (((submod_5) + (let-values (((s668_0) s_925) + ((temp669_0) + (let-values (((v_282) ctx_122)) + (let-values (((the-struct_116) v_282)) + (if (expand-context/outer? the-struct_116) + (let-values (((context677_0) 'module) + ((post-expansion678_0) #f) + ((inner679_0) + (let-values (((the-struct_117) + (root-expand-context/outer-inner + v_282))) + (if (expand-context/inner? + the-struct_117) + (let-values (((stops680_0) + empty-free-id-set)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_117) + (root-expand-context/inner-module-scopes + the-struct_117) + (root-expand-context/inner-top-level-bind-scope + the-struct_117) + (root-expand-context/inner-all-scopes-stx + the-struct_117) + (root-expand-context/inner-defined-syms + the-struct_117) + (root-expand-context/inner-counter + the-struct_117) + (root-expand-context/inner-lift-key + the-struct_117) + (expand-context/inner-to-parsed? + the-struct_117) + (expand-context/inner-phase + the-struct_117) + (expand-context/inner-namespace + the-struct_117) + (expand-context/inner-just-once? + the-struct_117) + (expand-context/inner-module-begin-k + the-struct_117) + (expand-context/inner-allow-unbound? + the-struct_117) + (expand-context/inner-in-local-expand? + the-struct_117) + (expand-context/inner-keep-#%expression? + the-struct_117) + stops680_0 + (expand-context/inner-declared-submodule-names + the-struct_117) + (expand-context/inner-lifts + the-struct_117) + (expand-context/inner-lift-envs + the-struct_117) + (expand-context/inner-module-lifts + the-struct_117) + (expand-context/inner-require-lifts + the-struct_117) + (expand-context/inner-to-module-lifts + the-struct_117) + (expand-context/inner-requires+provides + the-struct_117) + (expand-context/inner-observer + the-struct_117) + (expand-context/inner-for-serializable? + the-struct_117) + (expand-context/inner-to-correlated-linklet? + the-struct_117) + (expand-context/inner-normalize-locals? + the-struct_117) + (expand-context/inner-parsing-expanded? + the-struct_117) + (expand-context/inner-skip-visit-available? + the-struct_117))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_117))))) + (expand-context/outer1.1 + inner679_0 + post-expansion678_0 + (root-expand-context/outer-use-site-scopes + the-struct_116) + (root-expand-context/outer-frame-id + the-struct_116) + context677_0 + (expand-context/outer-env the-struct_116) + (expand-context/outer-scopes + the-struct_116) + (expand-context/outer-def-ctx-scopes + the-struct_116) + (expand-context/outer-binding-layer + the-struct_116) + (expand-context/outer-reference-records + the-struct_116) + (expand-context/outer-only-immediate? + the-struct_116) + (expand-context/outer-need-eventually-defined + the-struct_116) + (expand-context/outer-current-introduction-scopes + the-struct_116) + (expand-context/outer-current-use-scopes + the-struct_116) + (expand-context/outer-name + the-struct_116))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + the-struct_116))))) + ((self670_0) self_44) + ((temp671_0) #t) + ((keep-enclosing-scope-at-phase672_0) + keep-enclosing-scope-at-phase_2) + ((enclosing-r+p673_0) enclosing-r+p_2) + ((enclosing-is-cross-phase-persistent?674_0) + enclosing-is-cross-phase-persistent?_2) + ((mpis-to-reset675_0) mpis-to-reset_4) + ((modules-being-compiled676_0) + modules-being-compiled_8)) + (expand-module.1 + temp671_0 + enclosing-is-cross-phase-persistent?674_0 + enclosing-r+p673_0 + keep-enclosing-scope-at-phase672_0 + modules-being-compiled676_0 + mpis-to-reset675_0 + s668_0 + temp669_0 + self670_0)))) + (let-values ((() + (begin + (let-values (((obs_174) (expand-context-observer ctx_122))) + (if obs_174 + (let-values () + (let-values () + (call-expand-observe + obs_174 + 'exit-prim + (extract-syntax submod_5)))) + (void))) + (values)))) + (let-values (((ns_126) (expand-context-namespace ctx_122))) + (let-values (((module-name_3) (1/module-path-index-resolve self_44))) + (let-values (((root-module-name_1) + (resolved-module-path-root-name module-name_3))) + (let-values (((compiled-submodule_0) + (let-values (((temp681_0) + (if (expanded+parsed? submod_5) + (expanded+parsed-parsed submod_5) + submod_5)) + ((temp682_0) + (let-values (((ns688_0) ns_126) + ((self689_0) self_44) + ((temp690_0) + (1/resolved-module-path-name + module-name_3))) + (make-compile-context.1 + temp690_0 + unsafe-undefined + self689_0 + ns688_0 + unsafe-undefined + unsafe-undefined))) + ((temp683_0) #t) + ((temp684_0) + (expand-context-for-serializable? + ctx_122)) + ((temp685_0) + (expand-context-to-correlated-linklet? + ctx_122)) + ((modules-being-compiled686_0) + modules-being-compiled_8) + ((temp687_0) #f)) + (compile-module.1 + temp683_0 + modules-being-compiled686_0 + temp687_0 + temp684_0 + temp685_0 + temp681_0 + temp682_0)))) + (begin + (hash-set! + compiled-submodules_5 + name_87 + (cons is-star?_0 compiled-submodule_0)) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + 1/current-namespace + ns_126 + 1/current-module-declare-name + (1/make-resolved-module-path root-module-name_1)) + (let-values () + (let-values (((compiled-submodule691_0) compiled-submodule_0) + ((temp692_0) #f)) + (eval-module.1 + unsafe-undefined + #f + temp692_0 + compiled-submodule691_0)))) + (if (not is-star?_0) + (let-values () submod_5) + (if (expanded+parsed? submod_5) + (let-values () + (let-values (((the-struct_118) submod_5)) + (if (expanded+parsed? the-struct_118) + (let-values (((parsed693_0) + (let-values (((the-struct_119) + (expanded+parsed-parsed + submod_5))) + (if (parsed-module? the-struct_119) + (let-values (((star?694_0) #t)) + (parsed-module25.1 + (parsed-s the-struct_119) + star?694_0 + (parsed-module-name-id + the-struct_119) + (parsed-module-self + the-struct_119) + (parsed-module-requires + the-struct_119) + (parsed-module-provides + the-struct_119) + (parsed-module-root-ctx-simple? + the-struct_119) + (parsed-module-encoded-root-ctx + the-struct_119) + (parsed-module-body + the-struct_119) + (parsed-module-compiled-module + the-struct_119) + (parsed-module-compiled-submodules + the-struct_119))) + (raise-argument-error + 'struct-copy + "parsed-module?" + the-struct_119))))) + (expanded+parsed1.1 + (expanded+parsed-s the-struct_118) + parsed693_0)) + (raise-argument-error + 'struct-copy + "expanded+parsed?" + the-struct_118)))) + (let-values () + (let-values (((the-struct_120) submod_5)) + (if (parsed-module? the-struct_120) + (let-values (((star?695_0) #t)) + (parsed-module25.1 + (parsed-s the-struct_120) + star?695_0 + (parsed-module-name-id the-struct_120) + (parsed-module-self the-struct_120) + (parsed-module-requires the-struct_120) + (parsed-module-provides the-struct_120) + (parsed-module-root-ctx-simple? the-struct_120) + (parsed-module-encoded-root-ctx the-struct_120) + (parsed-module-body the-struct_120) + (parsed-module-compiled-module the-struct_120) + (parsed-module-compiled-submodules + the-struct_120))) + (raise-argument-error + 'struct-copy + "parsed-module?" + the-struct_120)))))))))))))))))))))))))))))))))) + (define-values + (expand-non-module*-submodules.1) + (lambda (compiled-submodules178_0 + declared-submodule-names177_0 + modules-being-compiled179_0 + mpis-to-reset176_0 + bodys184_0 + phase185_0 + self186_0 + ctx187_1) + (begin + 'expand-non-module*-submodules + (let-values (((bodys_28) bodys184_0)) + (let-values (((phase_167) phase185_0)) + (let-values (((self_45) self186_0)) + (let-values (((ctx_123) ctx187_1)) + (let-values (((mpis-to-reset_5) mpis-to-reset176_0)) + (let-values (((declared-submodule-names_9) declared-submodule-names177_0)) + (let-values (((compiled-submodules_6) compiled-submodules178_0)) + (let-values (((modules-being-compiled_9) modules-being-compiled179_0)) + (let-values () + (reverse$1 + (let-values (((lst_464) bodys_28)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_464))) + ((letrec-values (((for-loop_364) + (lambda (fold-var_384 lst_465) + (begin + 'for-loop + (if (pair? lst_465) + (let-values (((body_27) (unsafe-car lst_465)) + ((rest_271) (unsafe-cdr lst_465))) + (let-values (((fold-var_385) + (let-values (((fold-var_386) fold-var_384)) + (let-values (((fold-var_387) + (let-values () + (cons + (let-values () + (begin + (let-values (((obs_175) + (expand-context-observer + ctx_123))) + (if obs_175 + (let-values () + (let-values () + (call-expand-observe + obs_175 + 'next))) + (void))) + (let-values (((tmp_88) + (core-form-sym + body_27 + phase_167))) + (if (equal? + tmp_88 + 'module) + (let-values () + (let-values (((body696_0) + body_27) + ((self697_0) + self_45) + ((ctx698_0) + ctx_123) + ((temp699_0) + #f) + ((mpis-to-reset700_0) + mpis-to-reset_5) + ((declared-submodule-names701_0) + declared-submodule-names_9) + ((compiled-submodules702_0) + compiled-submodules_6) + ((modules-being-compiled703_0) + modules-being-compiled_9)) + (expand-submodule.1 + compiled-submodules702_0 + declared-submodule-names701_0 + #f + #f + temp699_0 + #f + modules-being-compiled703_0 + mpis-to-reset700_0 + body696_0 + self697_0 + ctx698_0))) + (let-values () + body_27))))) + fold-var_386)))) + (values fold-var_387))))) + (if (not #f) + (for-loop_364 fold-var_385 rest_271) + fold-var_385))) + fold-var_384))))) + for-loop_364) + null + lst_464)))))))))))))))) + (define-values + (make-parse-lifted-require.1) + (lambda (declared-submodule-names189_0 m-ns191_0 self192_0 requires+provides193_0) + (begin + 'make-parse-lifted-require + (let-values (((m-ns_22) m-ns191_0)) + (let-values (((self_46) self192_0)) + (let-values (((requires+provides_15) requires+provides193_0)) + (let-values (((declared-submodule-names_10) declared-submodule-names189_0)) + (let-values () + (lambda (s_933 phase_168) + (let-values (((ok?_91 #%require704_0 req705_0) + (let-values (((s_934) s_933)) + (let-values (((orig-s_96) s_934)) + (let-values (((#%require704_1 req705_1) + (let-values (((s_935) + (if (syntax?$1 s_934) (syntax-e$1 s_934) s_934))) + (if (pair? s_935) + (let-values (((#%require706_0) + (let-values (((s_936) (car s_935))) s_936)) + ((req707_0) + (let-values (((s_937) (cdr s_935))) + (let-values (((s_938) + (if (syntax?$1 s_937) + (syntax-e$1 s_937) + s_937))) + (if (pair? s_938) + (let-values (((req708_0) + (let-values (((s_939) + (car s_938))) + s_939)) + (() + (let-values (((s_940) + (cdr s_938))) + (let-values (((s_941) + (if (syntax?$1 + s_940) + (syntax-e$1 + s_940) + s_940))) + (if (null? s_941) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_96)))))) + (values req708_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_96)))))) + (values #%require706_0 req707_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_96))))) + (values #t #%require704_1 req705_1)))))) + (let-values (((temp709_0) (list req705_0)) + ((s710_0) s_933) + ((self711_0) self_46) + ((m-ns712_0) m-ns_22) + ((phase713_0) phase_168) + ((phase714_0) phase_168) + ((requires+provides715_0) requires+provides_15) + ((declared-submodule-names716_0) declared-submodule-names_10) + ((temp717_0) 'require)) + (parse-and-perform-requires!.1 + #f + #f + declared-submodule-names716_0 + #f + phase714_0 + #f + self711_0 + #f + #t + temp717_0 + temp709_0 + s710_0 + m-ns712_0 + phase713_0 + requires+provides715_0)))))))))))) + (define-values + (defn-extract-syntax) + (lambda (defn_0) + (begin + (datum->syntax$1 + #f + (list 'define-values (semi-parsed-define-values-ids defn_0) (semi-parsed-define-values-rhs defn_0)) + (semi-parsed-define-values-s defn_0))))) + (define-values + (lifted-defns-extract-syntax) + (lambda (lifted-defns_2) + (begin + (reverse$1 + (let-values (((lst_466) lifted-defns_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-list lst_466))) + ((letrec-values (((for-loop_365) + (lambda (fold-var_388 lst_467) + (begin + 'for-loop + (if (pair? lst_467) + (let-values (((lifted-defn_0) (unsafe-car lst_467)) + ((rest_272) (unsafe-cdr lst_467))) + (let-values (((fold-var_389) + (let-values (((fold-var_390) fold-var_388)) + (let-values (((fold-var_391) + (let-values () + (cons + (let-values () + (defn-extract-syntax lifted-defn_0)) + fold-var_390)))) + (values fold-var_391))))) + (if (not #f) (for-loop_365 fold-var_389 rest_272) fold-var_389))) + fold-var_388))))) + for-loop_365) + null + lst_466))))))) + (define-values + (as-expand-time-top-level-bindings) + (lambda (ids_51 s_87 ctx_124) + (begin + (let-values (((top-level-bind-scope_6) (root-expand-context-top-level-bind-scope ctx_124))) + (let-values (((tl-ids_2) + (reverse$1 + (let-values (((lst_85) ids_51)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_85))) + ((letrec-values (((for-loop_104) + (lambda (fold-var_243 lst_86) + (begin + 'for-loop + (if (pair? lst_86) + (let-values (((id_57) (unsafe-car lst_86)) + ((rest_41) (unsafe-cdr lst_86))) + (let-values (((fold-var_66) + (let-values (((fold-var_67) fold-var_243)) + (let-values (((fold-var_244) + (let-values () + (cons + (let-values () + (remove-use-site-scopes + id_57 + ctx_124)) + fold-var_67)))) + (values fold-var_244))))) + (if (not #f) (for-loop_104 fold-var_66 rest_41) fold-var_66))) + fold-var_243))))) + for-loop_104) + null + lst_85)))))) + (let-values ((() + (begin + (let-values (((tl-ids1_0) tl-ids_2) ((temp2_9) (expand-context-phase ctx_124)) ((s3_3) s_87)) + (check-no-duplicate-ids.1 unsafe-undefined tl-ids1_0 temp2_9 s3_3 unsafe-undefined)) + (values)))) + (let-values (((tmp-bind-ids_0) + (reverse$1 + (let-values (((lst_416) tl-ids_2)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_416))) + ((letrec-values (((for-loop_83) + (lambda (fold-var_240 lst_87) + (begin + 'for-loop + (if (pair? lst_87) + (let-values (((id_169) (unsafe-car lst_87)) + ((rest_254) (unsafe-cdr lst_87))) + (let-values (((fold-var_35) + (let-values (((fold-var_27) fold-var_240)) + (let-values (((fold-var_194) + (let-values () + (cons + (let-values () + (add-scope + id_169 + top-level-bind-scope_6)) + fold-var_27)))) + (values fold-var_194))))) + (if (not #f) + (for-loop_83 fold-var_35 rest_254) + fold-var_35))) + fold-var_240))))) + for-loop_83) + null + lst_416)))))) + (values tl-ids_2 (select-defined-syms-and-bind!/ctx tmp-bind-ids_0 ctx_124))))))))) + (void + (add-core-form!* + 'define-values + (lambda (s_0 ctx_8) + (let-values ((() + (begin + (let-values (((obs_176) (expand-context-observer ctx_8))) + (if obs_176 + (let-values () (let-values () (call-expand-observe obs_176 'prim-define-values s_0))) + (void))) + (values)))) + (let-values ((() + (begin + (if (eq? (expand-context-context ctx_8) 'top-level) + (void) + (let-values () (raise-syntax-error$1 #f "not allowed in an expression position" s_0))) + (values)))) + (let-values (((ok?_92 define-values1_0 id2_2 rhs3_0) + (let-values (((s_49) s_0)) + (let-values (((orig-s_97) s_49)) + (let-values (((define-values1_1 id2_3 rhs3_1) + (let-values (((s_503) (if (syntax?$1 s_49) (syntax-e$1 s_49) s_49))) + (if (pair? s_503) + (let-values (((define-values4_0) (let-values (((s_81) (car s_503))) s_81)) + ((id5_0 rhs6_0) + (let-values (((s_173) (cdr s_503))) + (let-values (((s_51) + (if (syntax?$1 s_173) + (syntax-e$1 s_173) + s_173))) + (if (pair? s_51) + (let-values (((id7_0) + (let-values (((s_532) (car s_51))) + (let-values (((s_506) + (if (syntax?$1 s_532) + (syntax-e$1 s_532) + s_532))) + (let-values (((flat-s_62) + (to-syntax-list.1 + s_506))) + (if (not flat-s_62) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_97)) + (let-values () + (let-values (((id_6) + (let-values (((lst_105) + flat-s_62)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_105))) + ((letrec-values (((for-loop_366) + (lambda (id_170 + lst_468) + (begin + 'for-loop + (if (pair? + lst_468) + (let-values (((s_548) + (unsafe-car + lst_468)) + ((rest_164) + (unsafe-cdr + lst_468))) + (let-values (((id_171) + (let-values (((id_172) + id_170)) + (let-values (((id_173) + (let-values () + (let-values (((id10_2) + (let-values () + (if (let-values (((or-part_563) + (if (syntax?$1 + s_548) + (symbol? + (syntax-e$1 + s_548)) + #f))) + (if or-part_563 + or-part_563 + (symbol? + s_548))) + s_548 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_97 + s_548))))) + (cons + id10_2 + id_172))))) + (values + id_173))))) + (if (not + #f) + (for-loop_366 + id_171 + rest_164) + id_171))) + id_170))))) + for-loop_366) + null + lst_105))))) + (reverse$1 id_6)))))))) + ((rhs8_0) + (let-values (((s_177) (cdr s_51))) + (let-values (((s_8) + (if (syntax?$1 s_177) + (syntax-e$1 s_177) + s_177))) + (if (pair? s_8) + (let-values (((rhs9_0) + (let-values (((s_9) + (car + s_8))) + s_9)) + (() + (let-values (((s_311) + (cdr + s_8))) + (let-values (((s_312) + (if (syntax?$1 + s_311) + (syntax-e$1 + s_311) + s_311))) + (if (null? s_312) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_97)))))) + (values rhs9_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_97)))))) + (values id7_0 rhs8_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_97)))))) + (values define-values4_0 id5_0 rhs6_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_97))))) + (values #t define-values1_1 id2_3 rhs3_1)))))) + (let-values (((ids_52 syms_29) (as-expand-time-top-level-bindings id2_2 s_0 ctx_8))) + (let-values (((exp-rhs_8) + (let-values (((temp11_9) rhs3_0) + ((temp12_11) (as-named-context (as-expression-context ctx_8) ids_52))) + (expand.1 #f #f temp11_9 temp12_11)))) + (if (expand-context-to-parsed? ctx_8) + (parsed-define-values19.1 s_0 ids_52 syms_29 exp-rhs_8) + (let-values (((s13_1) s_0) ((temp14_9) (list define-values1_0 ids_52 exp-rhs_8))) + (rebuild.1 #t s13_1 temp14_9))))))))))) + (void + (add-core-form!* + 'define-syntaxes + (lambda (s_93 ctx_12) + (let-values ((() + (begin + (let-values (((obs_0) (expand-context-observer ctx_12))) + (if obs_0 + (let-values () (let-values () (call-expand-observe obs_0 'prim-define-syntaxes s_93))) + (void))) + (values)))) + (let-values ((() + (begin + (if (eq? (expand-context-context ctx_12) 'top-level) + (void) + (let-values () (raise-syntax-error$1 #f "not in a definition context" s_93))) + (values)))) + (let-values (((ok?_93 define-syntaxes15_0 id16_1 rhs17_0) + (let-values (((s_24) s_93)) + (let-values (((orig-s_98) s_24)) + (let-values (((define-syntaxes15_1 id16_2 rhs17_1) + (let-values (((s_38) (if (syntax?$1 s_24) (syntax-e$1 s_24) s_24))) + (if (pair? s_38) + (let-values (((define-syntaxes18_0) + (let-values (((s_942) (car s_38))) s_942)) + ((id19_3 rhs20_0) + (let-values (((s_509) (cdr s_38))) + (let-values (((s_183) + (if (syntax?$1 s_509) + (syntax-e$1 s_509) + s_509))) + (if (pair? s_183) + (let-values (((id21_0) + (let-values (((s_309) (car s_183))) + (let-values (((s_308) + (if (syntax?$1 s_309) + (syntax-e$1 s_309) + s_309))) + (let-values (((flat-s_63) + (to-syntax-list.1 + s_308))) + (if (not flat-s_63) + (let-values () + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_98)) + (let-values () + (let-values (((id_11) + (let-values (((lst_469) + flat-s_63)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_469))) + ((letrec-values (((for-loop_367) + (lambda (id_174 + lst_278) + (begin + 'for-loop + (if (pair? + lst_278) + (let-values (((s_483) + (unsafe-car + lst_278)) + ((rest_150) + (unsafe-cdr + lst_278))) + (let-values (((id_8) + (let-values (((id_175) + id_174)) + (let-values (((id_176) + (let-values () + (let-values (((id24_0) + (let-values () + (if (let-values (((or-part_564) + (if (syntax?$1 + s_483) + (symbol? + (syntax-e$1 + s_483)) + #f))) + (if or-part_564 + or-part_564 + (symbol? + s_483))) + s_483 + (raise-syntax-error$1 + #f + "not an identifier" + orig-s_98 + s_483))))) + (cons + id24_0 + id_175))))) + (values + id_176))))) + (if (not + #f) + (for-loop_367 + id_8 + rest_150) + id_8))) + id_174))))) + for-loop_367) + null + lst_469))))) + (reverse$1 id_11)))))))) + ((rhs22_0) + (let-values (((s_569) (cdr s_183))) + (let-values (((s_536) + (if (syntax?$1 s_569) + (syntax-e$1 s_569) + s_569))) + (if (pair? s_536) + (let-values (((rhs23_0) + (let-values (((s_537) + (car + s_536))) + s_537)) + (() + (let-values (((s_172) + (cdr + s_536))) + (let-values (((s_570) + (if (syntax?$1 + s_172) + (syntax-e$1 + s_172) + s_172))) + (if (null? s_570) + (values) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_98)))))) + (values rhs23_0)) + (raise-syntax-error$1 + #f + "bad syntax" + orig-s_98)))))) + (values id21_0 rhs22_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_98)))))) + (values define-syntaxes18_0 id19_3 rhs20_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_98))))) + (values #t define-syntaxes15_1 id16_2 rhs17_1)))))) + (let-values (((ids_53 syms_30) (as-expand-time-top-level-bindings id16_1 s_93 ctx_12))) + (let-values ((() + (begin + (let-values (((obs_59) (expand-context-observer ctx_12))) + (if obs_59 + (let-values () (let-values () (call-expand-observe obs_59 'prepare-env))) + (void))) + (values)))) + (let-values (((exp-rhs_9) + (let-values (((temp25_7) rhs17_0) ((temp26_6) (as-named-context ctx_12 ids_53))) + (expand-transformer.1 #f #f 'expression #t #f unsafe-undefined temp25_7 temp26_6)))) + (if (expand-context-to-parsed? ctx_12) + (parsed-define-syntaxes20.1 s_93 ids_53 syms_30 exp-rhs_9) + (let-values (((s27_0) s_93) ((temp28_10) (list define-syntaxes15_0 ids_53 exp-rhs_9))) + (rebuild.1 #t s27_0 temp28_10)))))))))))) + (void + (add-core-form!* + 'begin-for-syntax + (lambda (s_560 ctx_125) + (let-values ((() + (begin + (let-values (((obs_38) (expand-context-observer ctx_125))) + (if obs_38 + (let-values () (let-values () (call-expand-observe obs_38 'prim-begin-for-syntax #f))) + (void))) + (values)))) + (let-values ((() + (begin + (if (eq? (expand-context-context ctx_125) 'top-level) + (void) + (let-values () (raise-syntax-error$1 #f "not in a definition context" s_560))) + (values)))) + (let-values (((ok?_94 begin-for-syntax29_0 form30_0) + (let-values (((s_943) s_560)) + (let-values (((orig-s_99) s_943)) + (let-values (((begin-for-syntax29_1 form30_1) + (let-values (((s_456) (if (syntax?$1 s_943) (syntax-e$1 s_943) s_943))) + (if (pair? s_456) + (let-values (((begin-for-syntax31_0) + (let-values (((s_58) (car s_456))) s_58)) + ((form32_0) + (let-values (((s_561) (cdr s_456))) + (let-values (((s_475) + (if (syntax?$1 s_561) + (syntax-e$1 s_561) + s_561))) + (let-values (((flat-s_64) (to-syntax-list.1 s_475))) + (if (not flat-s_64) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_99)) + (let-values () flat-s_64))))))) + (values begin-for-syntax31_0 form32_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_99))))) + (values #t begin-for-syntax29_1 form30_1)))))) + (let-values ((() + (begin + (let-values (((obs_7) (expand-context-observer ctx_125))) + (if obs_7 (let-values () (let-values () (call-expand-observe obs_7 'prepare-env))) (void))) + (values)))) + (let-values (((trans-ctx_1) + (let-values (((ctx33_1) ctx_125) ((temp34_6) 'top-level) ((temp35_4) #t)) + (context->transformer-context.1 temp35_4 ctx33_1 temp34_6)))) + (let-values (((lift-ctx_7) + (let-values (((temp36_7) (make-top-level-lift trans-ctx_1))) + (make-lift-context.1 #f temp36_7)))) + (let-values (((capture-ctx_1) + (let-values (((v_283) trans-ctx_1)) + (let-values (((the-struct_121) v_283)) + (if (expand-context/outer? the-struct_121) + (let-values (((inner37_0) + (let-values (((the-struct_122) + (root-expand-context/outer-inner v_283))) + (if (expand-context/inner? the-struct_122) + (let-values (((lift-key38_0) (generate-lift-key)) + ((lifts39_0) lift-ctx_7)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi the-struct_122) + (root-expand-context/inner-module-scopes the-struct_122) + (root-expand-context/inner-top-level-bind-scope + the-struct_122) + (root-expand-context/inner-all-scopes-stx the-struct_122) + (root-expand-context/inner-defined-syms the-struct_122) + (root-expand-context/inner-counter the-struct_122) + lift-key38_0 + (expand-context/inner-to-parsed? the-struct_122) + (expand-context/inner-phase the-struct_122) + (expand-context/inner-namespace the-struct_122) + (expand-context/inner-just-once? the-struct_122) + (expand-context/inner-module-begin-k the-struct_122) + (expand-context/inner-allow-unbound? the-struct_122) + (expand-context/inner-in-local-expand? the-struct_122) + (expand-context/inner-keep-#%expression? the-struct_122) + (expand-context/inner-stops the-struct_122) + (expand-context/inner-declared-submodule-names the-struct_122) + lifts39_0 + (expand-context/inner-lift-envs the-struct_122) + (expand-context/inner-module-lifts the-struct_122) + (expand-context/inner-require-lifts the-struct_122) + (expand-context/inner-to-module-lifts the-struct_122) + (expand-context/inner-requires+provides the-struct_122) + (expand-context/inner-observer the-struct_122) + (expand-context/inner-for-serializable? the-struct_122) + (expand-context/inner-to-correlated-linklet? the-struct_122) + (expand-context/inner-normalize-locals? the-struct_122) + (expand-context/inner-parsing-expanded? the-struct_122) + (expand-context/inner-skip-visit-available? the-struct_122))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_122))))) + (expand-context/outer1.1 + inner37_0 + (root-expand-context/outer-post-expansion the-struct_121) + (root-expand-context/outer-use-site-scopes the-struct_121) + (root-expand-context/outer-frame-id the-struct_121) + (expand-context/outer-context the-struct_121) + (expand-context/outer-env the-struct_121) + (expand-context/outer-scopes the-struct_121) + (expand-context/outer-def-ctx-scopes the-struct_121) + (expand-context/outer-binding-layer the-struct_121) + (expand-context/outer-reference-records the-struct_121) + (expand-context/outer-only-immediate? the-struct_121) + (expand-context/outer-need-eventually-defined the-struct_121) + (expand-context/outer-current-introduction-scopes the-struct_121) + (expand-context/outer-current-use-scopes the-struct_121) + (expand-context/outer-name the-struct_121))) + (raise-argument-error 'struct-copy "expand-context/outer?" the-struct_121)))))) + (let-values (((all-exp-forms_0) + ((letrec-values (((loop_141) + (lambda (forms_0) + (begin + 'loop + (let-values ((() + (begin + (let-values (((obs_177) + (expand-context-observer ctx_125))) + (if obs_177 + (let-values () + (let-values () + (call-expand-observe + obs_177 + 'enter-list + form30_0))) + (void))) + (values)))) + (let-values (((exp-forms_0) + ((letrec-values (((loop_142) + (lambda (forms_1 accum_17) + (begin + 'loop + (if (null? forms_1) + (let-values () + (let-values (((forms_2) + (reverse$1 + accum_17))) + (begin + (let-values (((obs_178) + (expand-context-observer + ctx_125))) + (if obs_178 + (let-values () + (let-values () + (call-expand-observe + obs_178 + 'exit-list + forms_2))) + (void))) + forms_2))) + (let-values () + (let-values ((() + (begin + (let-values (((obs_179) + (expand-context-observer + ctx_125))) + (if obs_179 + (let-values () + (let-values () + (call-expand-observe + obs_179 + 'next))) + (void))) + (values)))) + (let-values (((exp-form_0) + (let-values (((temp40_5) + (car + forms_1)) + ((capture-ctx41_0) + capture-ctx_1)) + (expand.1 + #f + #f + temp40_5 + capture-ctx41_0)))) + (loop_142 + (cdr forms_1) + (cons + exp-form_0 + accum_17)))))))))) + loop_142) + forms_0 + null))) + (let-values (((lifts_14) (get-and-clear-lifts! lift-ctx_7))) + (if (null? lifts_14) + (let-values () exp-forms_0) + (let-values () + (let-values ((() + (begin + (let-values (((obs_9) + (expand-context-observer + ctx_125))) + (if obs_9 + (let-values () + (let-values () + (call-expand-observe + obs_9 + 'module-lift-loop + lifts_14))) + (void))) + (values)))) + (let-values (((beg_0) + (let-values (((lifts42_0) lifts_14) + ((temp43_6) #f) + ((temp44_6) + (expand-context-phase + trans-ctx_1))) + (wrap-lifts-as-begin.1 + unsafe-undefined + unsafe-undefined + lifts42_0 + temp43_6 + temp44_6)))) + (let-values (((exprs_1) + (reverse$1 + (cdr + (reverse$1 + (cdr (syntax-e$1 beg_0))))))) + (append + (loop_141 exprs_1) + exp-forms_0))))))))))))) + loop_141) + form30_0))) + (if (expand-context-to-parsed? ctx_125) + (parsed-begin-for-syntax21.1 s_560 all-exp-forms_0) + (let-values (((s45_0) s_560) ((temp46_7) (cons begin-for-syntax29_0 all-exp-forms_0))) + (rebuild.1 #t s45_0 temp46_7)))))))))))))) + (void + (add-core-form!* + '#%require + (lambda (s_41 ctx_126) + (let-values ((() + (begin + (let-values (((obs_180) (expand-context-observer ctx_126))) + (if obs_180 + (let-values () (let-values () (call-expand-observe obs_180 'prim-require s_41))) + (void))) + (values)))) + (let-values ((() + (begin + (if (eq? (expand-context-context ctx_126) 'top-level) + (void) + (let-values () (raise-syntax-error$1 #f "allowed only in a module or the top level" s_41))) + (values)))) + (let-values (((ok?_95 #%require47_0 req48_0) + (let-values (((s_555) s_41)) + (let-values (((orig-s_100) s_555)) + (let-values (((#%require47_1 req48_1) + (let-values (((s_514) (if (syntax?$1 s_555) (syntax-e$1 s_555) s_555))) + (if (pair? s_514) + (let-values (((#%require49_0) (let-values (((s_501) (car s_514))) s_501)) + ((req50_0) + (let-values (((s_944) (cdr s_514))) + (let-values (((s_556) + (if (syntax?$1 s_944) + (syntax-e$1 s_944) + s_944))) + (let-values (((flat-s_65) (to-syntax-list.1 s_556))) + (if (not flat-s_65) + (let-values () + (raise-syntax-error$1 #f "bad syntax" orig-s_100)) + (let-values () flat-s_65))))))) + (values #%require49_0 req50_0)) + (raise-syntax-error$1 #f "bad syntax" orig-s_100))))) + (values #t #%require47_1 req48_1)))))) + (let-values (((sc_39) (new-scope 'macro))) + (let-values (((ns_99) (expand-context-namespace ctx_126))) + (begin + (let-values (((temp51_8) + (reverse$1 + (let-values (((lst_470) req48_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_470))) + ((letrec-values (((for-loop_368) + (lambda (fold-var_41 lst_326) + (begin + 'for-loop + (if (pair? lst_326) + (let-values (((req_20) (unsafe-car lst_326)) + ((rest_273) (unsafe-cdr lst_326))) + (let-values (((fold-var_263) + (let-values (((fold-var_392) fold-var_41)) + (let-values (((fold-var_393) + (let-values () + (cons + (let-values () + (add-scope + req_20 + sc_39)) + fold-var_392)))) + (values fold-var_393))))) + (if (not #f) + (for-loop_368 fold-var_263 rest_273) + fold-var_263))) + fold-var_41))))) + for-loop_368) + null + lst_470))))) + ((s52_0) s_41) + ((temp53_6) (namespace-self-mpi/no-top-level ns_99)) + ((temp54_4) #f) + ((ns55_0) ns_99) + ((temp56_3) (expand-context-phase ctx_126)) + ((temp57_3) (let-values (((temp60_7) #f)) (make-requires+provides.1 #f temp60_7))) + ((temp58_5) 'require) + ((temp59_8) #t)) + (parse-and-perform-requires!.1 + #f + #f + '#hasheq() + temp59_8 + unsafe-undefined + #f + temp53_6 + #f + temp54_4 + temp58_5 + temp51_8 + s52_0 + ns55_0 + temp56_3 + temp57_3)) + (if (expand-context-to-parsed? ctx_126) (parsed-require23.1 s_41) s_41)))))))))) + (void + (add-core-form!* + '#%provide + (lambda (s_485 ctx_127) + (begin + (let-values (((obs_181) (expand-context-observer ctx_127))) + (if obs_181 (let-values () (let-values () (call-expand-observe obs_181 'prim-provide #f))) (void))) + (raise-syntax-error$1 #f "not allowed outside of a module body" s_485))))) + (define-values + (namespace-init!) + (lambda () + (begin + (let-values (((ns_127) (make-namespace))) + (void + (begin + (declare-core-module! ns_127) + (let-values (((temp1_6) '#%read) ((read-primitives2_0) read-primitives) ((ns3_0) ns_127)) + (declare-hash-based-module!.1 ns3_0 #f null #f #f temp1_6 read-primitives2_0)) + (let-values (((temp4_9) '#%main) + ((main-primitives5_0) main-primitives) + ((ns6_2) ns_127) + ((temp7_8) '(current-compile))) + (declare-hash-based-module!.1 ns6_2 #f temp7_8 #f #f temp4_9 main-primitives5_0)) + (let-values (((temp8_8) '#%utils) ((utils-primitives9_0) utils-primitives) ((ns10_2) ns_127)) + (declare-hash-based-module!.1 ns10_2 #f null #f #f temp8_8 utils-primitives9_0)) + (let-values (((temp11_10) '#%place-struct) + ((place-struct-primitives12_0) place-struct-primitives) + ((ns13_3) ns_127) + ((temp14_10) '(dynamic-place))) + (declare-hash-based-module!.1 ns13_3 #f temp14_10 #f #f temp11_10 place-struct-primitives12_0)) + (let-values (((temp15_11) '#%boot) ((boot-primitives16_0) boot-primitives) ((ns17_2) ns_127)) + (declare-hash-based-module!.1 ns17_2 #f null #f #f temp15_11 boot-primitives16_0)) + (let-values (((linklet-primitives_0) + (hash-remove + (hash-remove linklet-primitives 'variable-reference?) + 'variable-reference-constant?))) + (begin + (let-values (((temp18_10) '#%linklet-primitive) + ((linklet-primitives19_0) linklet-primitives_0) + ((ns20_5) ns_127) + ((temp21_10) #t) + ((temp22_8) #t) + ((temp23_10) #t)) + (declare-hash-based-module!.1 + ns20_5 + temp21_10 + null + temp23_10 + temp22_8 + temp18_10 + linklet-primitives19_0)) + (let-values (((temp24_8) '#%linklet-expander) + ((linklet-expander-primitives25_0) linklet-expander-primitives) + ((ns26_1) ns_127) + ((temp27_6) #t) + ((temp28_11) #t)) + (declare-hash-based-module!.1 + ns26_1 + #f + null + temp28_11 + temp27_6 + temp24_8 + linklet-expander-primitives25_0)) + (let-values (((temp29_6) '#%linklet) + ((temp30_3) (list '#%linklet-primitive '#%linklet-expander)) + ((ns31_3) ns_127)) + (declare-reexporting-module!.1 ns31_3 #t temp29_6 temp30_3)))) + (let-values (((temp32_10) '#%expobs) + ((expobs-primitives33_0) expobs-primitives) + ((ns34_0) ns_127) + ((temp35_5) #t)) + (declare-hash-based-module!.1 ns34_0 #f null temp35_5 #f temp32_10 expobs-primitives33_0)) + (let-values (((ns36_0) ns_127) + ((temp37_6) + (let-values (((ht_124) main-primitives)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_124))) + ((letrec-values (((for-loop_85) + (lambda (table_232 i_166) + (begin + 'for-loop + (if i_166 + (let-values (((name_88) (hash-iterate-key ht_124 i_166))) + (let-values (((table_139) + (let-values (((table_10) table_232)) + (let-values (((table_233) + (let-values () + (let-values (((key_109 val_100) + (let-values () + (values + (let-values () + name_88) + #t)))) + (hash-set + table_10 + key_109 + val_100))))) + (values table_233))))) + (if (not #f) + (for-loop_85 table_139 (hash-iterate-next ht_124 i_166)) + table_139))) + table_232))))) + for-loop_85) + '#hash() + (hash-iterate-first ht_124))))) + ((temp38_3) + (let-values (((ht_140) read-primitives)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash-keys ht_140))) + ((letrec-values (((for-loop_309) + (lambda (table_234 i_228) + (begin + 'for-loop + (if i_228 + (let-values (((name_89) (hash-iterate-key ht_140 i_228))) + (let-values (((table_109) + (let-values (((table_140) table_234)) + (let-values (((table_235) + (let-values () + (let-values (((key_62 val_101) + (let-values () + (values + (let-values () + name_89) + #t)))) + (hash-set + table_140 + key_62 + val_101))))) + (values table_235))))) + (if (not #f) + (for-loop_309 table_109 (hash-iterate-next ht_140 i_228)) + table_109))) + table_234))))) + for-loop_309) + '#hash() + (hash-iterate-first ht_140)))))) + (declare-kernel-module!.1 temp37_6 temp38_3 ns36_0)) + (begin + (let-values (((lst_287) runtime-instances)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-list lst_287))) + ((letrec-values (((for-loop_108) + (lambda (lst_194) + (begin + 'for-loop + (if (pair? lst_194) + (let-values (((name_90) (unsafe-car lst_194)) + ((rest_274) (unsafe-cdr lst_194))) + (let-values ((() + (let-values () + (if (eq? name_90 '#%kernel) + (values) + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((name39_0) name_90) + ((ns40_0) ns_127) + ((temp41_9) + (let-values (((or-part_565) + (eq? + name_90 + '#%foreign))) + (if or-part_565 + or-part_565 + (let-values (((or-part_566) + (eq? + name_90 + '#%futures))) + (if or-part_566 + or-part_566 + (eq? + name_90 + '#%unsafe))))))) + (copy-runtime-module!.1 + '#hasheq() + '#hasheq() + ns40_0 + #t + temp41_9 + unsafe-undefined + unsafe-undefined + name39_0))) + (values))))) + (values))))))) + (if (not #f) (for-loop_108 rest_274) (values)))) + (values)))))) + for-loop_108) + lst_287))) + (void)) + (let-values (((temp42_4) '#%builtin) + ((temp43_7) (list* '#%place-struct '#%utils '#%boot '#%expobs '#%linklet runtime-instances)) + ((ns44_0) ns_127) + ((temp45_5) #f)) + (declare-reexporting-module!.1 ns44_0 temp45_5 temp42_4 temp43_7)) + (1/current-namespace ns_127) + (1/dynamic-require ''#%kernel 0))))))) + (call-with-values (lambda () (namespace-init!)) print-values) + (call-with-values (lambda () (install-error-syntax->string-handler!)) print-values) + (define-values (datum->kernel-syntax) (lambda (s_37) (begin (1/datum->syntax core-stx s_37)))) + (define-values + (expander-place-init!) + (lambda () + (begin + (begin + (syntax-place-init!) + (scope-place-init!) + (cache-place-init!) + (core-place-init!) + (phase+space-place-init!) + (module-path-place-init!) + (module-cache-place-init!) + (shadow-directory-place-init!) + (collection-place-init!) + (performance-place-init!) + (namespace-init!) + (install-error-syntax->string-handler!)))))) diff --git a/notes.txt b/notes.txt new file mode 100644 index 00000000..ed2d2943 --- /dev/null +++ b/notes.txt @@ -0,0 +1,5 @@ +To run the expander: + +1. racks -l expander.rktl +2. mv foo.js js-build/modules/ +3. node js-build/modules/foo.js From 0b77e8b06ab334ba125ecf445356bc2ff1d55db6 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Thu, 10 Mar 2022 17:26:23 -0500 Subject: [PATCH 015/170] linklet shim wip --- .../compiler/runtime/core/linklet.js | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index b058f327..8845574f 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -1,7 +1,30 @@ import { PrintablePrimitive } from './printable_primitive.js'; // eslint-disable-next-line no-unused-vars -class Linklet extends PrintablePrimitive {} +class Linklet extends PrintablePrimitive { + // constructor corresponds to compile-linklet + constructor(form, name, importKeys, getImports, options) { + super(); + this.form = form; + this.name = name; + this.importKeys = importKeys; + this.getImports = getImports; + this.options = options; + this.payload = this._compileLinklet(); + } + + _compileLinklet() { + // (cons displayln (cons 1 '())) + + + // Q: what is the data definition for 'form'? + // it should produce whatever the runtime has decided + // the definition of 'cons cells' are, and then + // however symbols, numbers, etc. are represented for the + // relevant things. + + } +} class LinkletInstance extends PrintablePrimitive { constructor(name, data, mode, m) { From fa843577408a2ba2820101696804f2d3298e5f91 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 11 Mar 2022 08:28:27 -0500 Subject: [PATCH 016/170] start of linklet api --- .../compiler/runtime/core/linklet.js | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 8845574f..46686dfd 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -1,31 +1,49 @@ +import { isEmpty, check as isCons } from './pair.js'; +import { check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; // eslint-disable-next-line no-unused-vars class Linklet extends PrintablePrimitive { // constructor corresponds to compile-linklet - constructor(form, name, importKeys, getImports, options) { + constructor(form, name, importKeys, getImport, options) { super(); this.form = form; + this._setProps(name, importKeys, getImport, options); + this.payload = this._compileLinklet(); + } + + _setProps(name, importKeys, getImport, options) { this.name = name; this.importKeys = importKeys; - this.getImports = getImports; + this.getImport = getImport; this.options = options; - this.payload = this._compileLinklet(); } _compileLinklet() { - // (cons displayln (cons 1 '())) + if (isCons(this.form)) { + const func = this.form.car(); + const args = this.form.cdr(); + if (isSym(func) && func.value() === 'display' && isCons(args)) { + const arg = args.car(); + const rst = args.cdr(); - // Q: what is the data definition for 'form'? - // it should produce whatever the runtime has decided - // the definition of 'cons cells' are, and then - // however symbols, numbers, etc. are represented for the - // relevant things. - + if (arg === 1 && isEmpty(rst)) { + return 'console.log("1")'; + } + } + } + + return 'throw new Error("Sad!")'; + } + + eval() { + return eval(this.payload); } } +export function check(l) { return l.constructor === Linklet; } + class LinkletInstance extends PrintablePrimitive { constructor(name, data, mode, m) { super(); From d748f8ca132c5bfdbbc2f48fc8e466822f293340 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 17 Mar 2022 10:41:34 -0400 Subject: [PATCH 017/170] to view --- .../compiler/runtime/core/linklet.js | 60 +++++++++++++++---- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 8845574f..19015a31 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -1,28 +1,66 @@ +import { check as isCons, isEmpty } from './pair.js'; +import { check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; + +// TODO I should determine which of the 'props' (arguments to compile-linklet and recompile-linklet actually need to be saved // eslint-disable-next-line no-unused-vars class Linklet extends PrintablePrimitive { // constructor corresponds to compile-linklet - constructor(form, name, importKeys, getImports, options) { + constructor(form, name, importKeys, getImport, options) { super(); + this.compileLinklet(form, name, importKeys, getImport, options); + } + + compile(form, name, importKeys, getImport, options) { this.form = form; + this._setProps(name, importKeys, getImport, options); + this.linklet = this._compile(); + } + + _compile() { + if (this._isRightSexp()) { + return 'console.log("1")'; + } + throw new Error('cannot handle this s-expression yet'); + } + + // in reality, we should be able to throw most of these away + _setProps(name, importKeys, getImport, options) { this.name = name; this.importKeys = importKeys; - this.getImports = getImports; + this.getImport = getImport; this.options = options; - this.payload = this._compileLinklet(); } - _compileLinklet() { - // (cons displayln (cons 1 '())) + _recompile(name, importKeys, getImport, options) { + this._setProps(name, importKeys, getImport, options); + } + + // actual purpose is to optimize linklet + recompile(name, importKeys, getImport, options) { + this._recompile(name, importKeys, getImport, options); + } + + _validateSexp() { + if (isCons(this.form)) { + const cmd = this.form.car(); + const args = this.form.cdr(); + + if (isSym(cmd) && cmd.value() === 'displayln' && isCons(args)) { + const arg = args.car(); + const rst = args.cdr(); + + return arg === 1 && isEmpty(rst); + } + } + + return false; + } - // Q: what is the data definition for 'form'? - // it should produce whatever the runtime has decided - // the definition of 'cons cells' are, and then - // however symbols, numbers, etc. are represented for the - // relevant things. - + eval() { + return eval(this.linklet); } } From bcb64f41759fd6f837d55706500900623e6c6fab Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Wed, 30 Mar 2022 19:41:11 -0400 Subject: [PATCH 018/170] use the specified number in the displayln form you parse --- .../racketscript/compiler/runtime/core/linklet.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 46686dfd..d515e935 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -19,6 +19,11 @@ class Linklet extends PrintablePrimitive { this.options = options; } + // true purpose is further optimization + recompile(name, importKeys, getImport, options) { + this._setProps(name, importKeys, getImport, options); + } + _compileLinklet() { if (isCons(this.form)) { const func = this.form.car(); @@ -28,8 +33,8 @@ class Linklet extends PrintablePrimitive { const arg = args.car(); const rst = args.cdr(); - if (arg === 1 && isEmpty(rst)) { - return 'console.log("1")'; + if (typeof arg === 'number' && isEmpty(rst)) { + return `console.log("${arg}")`; } } } @@ -38,6 +43,10 @@ class Linklet extends PrintablePrimitive { } eval() { + return this; + } + + instantiate(imports, target, _prompt) { return eval(this.payload); } } From ecd46ed14e05a02c59ca98dd755d05066fbc8720 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 30 Mar 2022 20:04:01 -0400 Subject: [PATCH 019/170] bugfixes, now works on baby examples --- .../racketscript/compiler/runtime/core/linklet.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 73719f5b..f4eaa440 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -9,7 +9,7 @@ class Linklet extends PrintablePrimitive { // constructor corresponds to compile-linklet constructor(form, name, importKeys, getImport, options) { super(); - this.compileLinklet(form, name, importKeys, getImport, options); + this.compile(form, name, importKeys, getImport, options); } compile(form, name, importKeys, getImport, options) { @@ -35,7 +35,7 @@ class Linklet extends PrintablePrimitive { const func = this.form.car(); const args = this.form.cdr(); - if (isSym(func) && func.value() === 'display' && isCons(args)) { + if (isSym(func) && func.value === Symbol.for('displayln') && isCons(args)) { const arg = args.car(); const rst = args.cdr(); @@ -45,7 +45,7 @@ class Linklet extends PrintablePrimitive { } } - return 'throw new Error("Sad!")'; + return 'throw new Error("This s-expression isn\'t supported yet")'; } eval() { From 2d4092cf5cd6d254d2f1f7f186a6fc906a178abf Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sat, 2 Apr 2022 17:34:25 -0400 Subject: [PATCH 020/170] port Sam TH's PR into mine --- .../racketscript/compiler/absyn.rkt | 10 +- .../racketscript/compiler/assembler.rkt | 4 +- .../racketscript/compiler/il-analyze.rkt | 4 +- .../racketscript/compiler/il.rkt | 6 +- .../racketscript/compiler/linklet-expand.rkt | 108 ++++++++++++++++++ .../racketscript/compiler/main.rkt | 8 +- .../racketscript/compiler/transform.rkt | 8 +- 7 files changed, 134 insertions(+), 14 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/linklet-expand.rkt diff --git a/racketscript-compiler/racketscript/compiler/absyn.rkt b/racketscript-compiler/racketscript/compiler/absyn.rkt index 58b2a90d..5049789a 100644 --- a/racketscript-compiler/racketscript/compiler/absyn.rkt +++ b/racketscript-compiler/racketscript/compiler/absyn.rkt @@ -6,8 +6,9 @@ (provide (all-defined-out)) (struct Linklet ([path : Path] - [forms : (Listof GeneralTopLevelForm)] - [imports : (Setof (U Path Symbol))]) + [imports : (Listof (Listof Symbol))] + [exports : (Listof Symbol)] + [forms : (Listof GeneralTopLevelForm)]) #:transparent) (struct Module ([id : Symbol] @@ -29,6 +30,7 @@ [TopLevelForm GeneralTopLevelForm Expr Module + Linklet Begin] [GeneralTopLevelForm Expr @@ -89,7 +91,9 @@ [Ident (LocalIdent [id : Symbol]) (ImportedIdent [id : Symbol] [src-mod : Module-Path] [reachable? : Boolean]) - (TopLevelIdent [id : Symbol])] + (TopLevelIdent [id : Symbol]) + (PrimitiveIdent [id : Symbol]) + (LinkletImportIdent [id : Symbol] [position : Integer])] [Begin (Listof TopLevelForm)] diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index adf5323c..b9c51b83 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -237,11 +237,11 @@ (: assemble-linklet (-> ILLinklet Void)) (define (assemble-linklet lnk) - (match-define (ILLinklet requires body) lnk) + (match-define (ILLinklet imports _ body) lnk) (log-rjs-info "[assemble linklet]") (define out (open-output-file "foo.js" #:exists 'replace)) - (assemble-requires* requires out) + (assemble-requires* imports out) (for ([b body]) (assemble-statement b out))) diff --git a/racketscript-compiler/racketscript/compiler/il-analyze.rkt b/racketscript-compiler/racketscript/compiler/il-analyze.rkt index f7f67f91..237d2d91 100644 --- a/racketscript-compiler/racketscript/compiler/il-analyze.rkt +++ b/racketscript-compiler/racketscript/compiler/il-analyze.rkt @@ -124,8 +124,8 @@ (match mod [(ILModule id provides requires body) (ILModule id provides requires (traverse-stm* body))] - [(ILLinklet requires body) - (ILLinklet requires (traverse-stm* body))])) + [(ILLinklet importss exports body) + (ILLinklet importss exports (traverse-stm* body))])) ;; ---------------------------------------------------------------------------- ;; Tail Call Optimization diff --git a/racketscript-compiler/racketscript/compiler/il.rkt b/racketscript-compiler/racketscript/compiler/il.rkt index 165d249b..a2a4dc89 100644 --- a/racketscript-compiler/racketscript/compiler/il.rkt +++ b/racketscript-compiler/racketscript/compiler/il.rkt @@ -16,8 +16,10 @@ (define-predicate ILProgram? ILProgram) (define-type-alias ILModuleName (Option Path-String)) -(struct ILLinklet ([requires : ILRequire*] - [body : ILStatement*])) +(struct ILLinklet ([imports : ILRequire*] ;; FIXME (Listof (Listof Symbol)) + [exports : (Listof Symbol)] + [body : ILStatement*]) + #:transparent) (struct ILModule ([id : ILModuleName] [provides : ILProvide*] diff --git a/racketscript-compiler/racketscript/compiler/linklet-expand.rkt b/racketscript-compiler/racketscript/compiler/linklet-expand.rkt new file mode 100644 index 00000000..b8ec3a44 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/linklet-expand.rkt @@ -0,0 +1,108 @@ +#lang racket/base + +(require racket/match + racket/pretty + racket/hash + "absyn.rkt") + +(provide parse-linklet) + +;; originally written by Sam Tobin-Hochstadt + +(define (formals->absyn formals) + (match formals + [(list-rest x ... y) #:when (null? x) y] + [(list-rest x ... y) #:when (null? y) x] + [(list-rest x ... y) (list x y)])) + +(define (formals->bindings formals) + (match formals + [(list-rest x ... y) + (for/hash ([i (cons y x)]) (values i 'lexical))])) + +(define (to-absyn v bindings) + (define (t v [b bindings]) (to-absyn v b)) + (match v + [(or (? string?) (? number?) (? boolean?) (? bytes?)) (Quote v)] + [`(quote ,v) (Quote v)] ;; TODO do we not need to call to-absyn on v? + [`(begin0 ,e0 ,e1 ...) (Begin0 (t e0) (map t e1))] + [`(begin ,e ...) (map t e)] + [`(if ,e0 ,e1 ,e2) + (If (t e0) (t e1) (t e2))] + [`(let-values (,[list xs es] ...) ,b) + (define bindings* (hash-union bindings + (for*/hash ([x xs] [i x]) (values i 'lexical)))) + (LetValues (for/list ([x xs] [e es]) + (cons x (t e))) + (list (t b bindings*)))] + [`(letrec-values (,[list xs es] ...) ,b) + (define bindings* (hash-union bindings + (for*/hash ([x xs] [i x]) (values i 'lexical)))) + (LetValues (for/list ([x xs] [e es]) + (cons x (t e bindings*))) + (list (t b bindings*)))] + [`(case-lambda . ,clauses) + (CaseLambda + (map (λ (c) + (match c + ;; TODO in regular to-absyn, the structure is different + [(list formals body) + (PlainLambda (formals->absyn formals) + (list (t body (hash-union bindings (formals->bindings formals)))) + #f)])) + clauses))] + [`(lambda ,formals ,body) + (define fabsyn (formals->absyn formals)) + (PlainLambda fabsyn (list (t body (hash-union bindings (formals->bindings formals)))) #f)] + [`(define-values (,name) (#%js-ffi 'require (quote ,mod))) + ;; HACK: Special case for JSRequire + (JSRequire name mod 'default)] + [`(define-values (,name) (#%js-ffi 'require '* (quote ,mod))) + ;; HACK: Special case for JSRequire + (JSRequire name mod '*)] + [`(define-values (,id ...) ,b) + (DefineValues id (t b))] + [`(#%variable-reference ,x) (VarRef x)] + [`(#%variable-reference) (VarRef #f)] + [(? symbol? i) + #:when (eq? 'define (hash-ref bindings i #f)) + (TopLevelIdent i)] + [(? symbol? i) + #:when (number? (hash-ref bindings i #f)) + (LinkletImportIdent i (hash-ref bindings i))] + [(? symbol? i) + #:when (eq? 'lexical (hash-ref bindings i #f)) + (LocalIdent i)] + [(? symbol? i) + ;; FIXME not really always '#%kernel + (ImportedIdent i '#%kernel #t)] + [`(set! ,s ,e) + (Set! s (t e))] + [`(with-continuation-mark ,key ,value ,result) + (WithContinuationMark (t key) + (t value) + (t result))] + ;; application + [`(,rator . ,rands) + (PlainApp (t rator) (map t rands))] + [_ (displayln "unsupported form =>") + (pretty-print v) + (error 'linklet-expand)])) + + + + +(define (parse-linklet v path) + (match v + [`(linklet ,imports ,exports ,@body) + (define imps (for*/hash ([(j import) (in-indexed imports)] + [i import]) + (values i j))) + (define defs (make-hash)) + (for ([b body]) + (match b + [`(define-values ,is ,_) + (for ([i is]) (hash-set! defs i 'define))] + [_ (void)])) + (Linklet path (cons (list '#%kernel) imports) exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) + diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index 93eba9bd..40b24b2a 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -19,6 +19,7 @@ "assembler.rkt" "config.rkt" "expand.rkt" + "linklet-expand.rkt" "global.rkt" "il-analyze.rkt" "il.rkt" @@ -299,7 +300,7 @@ (for ([mod (in-set primitive-modules)]) (compile-linklet-import mod)) - (for ([mod (in-set (Linklet-imports lnk))] + #;(for ([mod (in-set (Linklet-imports lnk))] #:when (not (symbol? mod))) (compile-linklet-import mod))) @@ -454,8 +455,11 @@ 0 -5)) (prepare-build-directory default-module-name) + + (define lnk-port (open-input-file source)) + (define lnk-ast (parse-linklet (read lnk-port) p)) + (pretty-print lnk-ast) - (define lnk-ast (convert-linklet (expand-linklet source) p)) (~> (absyn-linklet->il lnk-ast) (insert-arity-checks _) (assemble-linklet _)) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index fb0b9f99..c7849aa1 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -51,17 +51,19 @@ ;; FIXME I do ZERO handling of javascript forms (: absyn-linklet->il (-> Linklet ILLinklet)) (define (absyn-linklet->il lnk) - (match-define (Linklet path forms imports) lnk) + (match-define (Linklet path importss exports forms) lnk) (log-rjs-info "[linklet il]") - (define imported-mod-path-list (set->list imports)) + (define imported-mod-path-list (apply append importss)) (define requires* (absyn-requires->il imported-mod-path-list path)) ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map + (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) (ILLinklet - (filter ILRequire? (absyn-requires->il (set->list imports) path)) + (filter ILRequire? requires*) + exports (append-map absyn-gtl-form->il forms)))) (: make-module-map (-> (Listof (Option ILRequire)) (Listof (U Path Symbol)) ModuleObjectNameMap)) ;; TODO need type aliases From 926262c68287fcb789e08f52f85fa5b46f67887b Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sat, 9 Apr 2022 09:47:04 -0400 Subject: [PATCH 021/170] wip on formals --- .../racketscript/compiler/linklet-expand.rkt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-expand.rkt b/racketscript-compiler/racketscript/compiler/linklet-expand.rkt index b8ec3a44..6124e73b 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-expand.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-expand.rkt @@ -11,14 +11,24 @@ (define (formals->absyn formals) (match formals - [(list-rest x ... y) #:when (null? x) y] - [(list-rest x ... y) #:when (null? y) x] - [(list-rest x ... y) (list x y)])) + [_ #:when (symbol? formals) formals] + [_ #:when (list? formals) formals] + [(list-rest x ... y) (cons x y)])) +;; [(list-rest x ... y) #:when (null? x) y] +;; [(list-rest x ... y) #:when (null? y) x] +;; [(list-rest x ... y) (list x y)])) (define (formals->bindings formals) - (match formals - [(list-rest x ... y) - (for/hash ([i (cons y x)]) (values i 'lexical))])) + (define (get-formals formals) + (match formals + [_ #:when (symbol? formals) (list formals)] + [_ #:when (list? formals) formals] + [(list-rest x ... y) (cons y x)])) + ;; [(list-rest x ... y) #:when (null? y) x] + ;; [(list-rest x ... y) (cons y x)])) + + (for/hash ([i (get-formals formals)]) + (values i 'lexical))) (define (to-absyn v bindings) (define (t v [b bindings]) (to-absyn v b)) From 30c18a4269ccf5235d91172eef5ea6e281a8c163 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 11 Apr 2022 12:05:54 -0400 Subject: [PATCH 022/170] generate expander successfully --- racketscript-compiler/racketscript/compiler/absyn.rkt | 4 ++-- racketscript-compiler/racketscript/compiler/il.rkt | 2 +- racketscript-compiler/racketscript/compiler/transform.rkt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/absyn.rkt b/racketscript-compiler/racketscript/compiler/absyn.rkt index 5049789a..6ffecb47 100644 --- a/racketscript-compiler/racketscript/compiler/absyn.rkt +++ b/racketscript-compiler/racketscript/compiler/absyn.rkt @@ -6,8 +6,8 @@ (provide (all-defined-out)) (struct Linklet ([path : Path] - [imports : (Listof (Listof Symbol))] - [exports : (Listof Symbol)] + [imports : (Listof (U Symbol (Listof Symbol)))] + [exports : (Listof (U Symbol (Listof Symbol)))] [forms : (Listof GeneralTopLevelForm)]) #:transparent) diff --git a/racketscript-compiler/racketscript/compiler/il.rkt b/racketscript-compiler/racketscript/compiler/il.rkt index a2a4dc89..b5d53da3 100644 --- a/racketscript-compiler/racketscript/compiler/il.rkt +++ b/racketscript-compiler/racketscript/compiler/il.rkt @@ -17,7 +17,7 @@ (define-type-alias ILModuleName (Option Path-String)) (struct ILLinklet ([imports : ILRequire*] ;; FIXME (Listof (Listof Symbol)) - [exports : (Listof Symbol)] + [exports : (Listof (U Symbol (Listof Symbol)))] [body : ILStatement*]) #:transparent) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index c7849aa1..c2270973 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -51,10 +51,10 @@ ;; FIXME I do ZERO handling of javascript forms (: absyn-linklet->il (-> Linklet ILLinklet)) (define (absyn-linklet->il lnk) - (match-define (Linklet path importss exports forms) lnk) + (match-define (Linklet path imports exports forms) lnk) (log-rjs-info "[linklet il]") - (define imported-mod-path-list (apply append importss)) + (define imported-mod-path-list (cast (flatten imports) (Listof Symbol))) (define requires* (absyn-requires->il imported-mod-path-list path)) ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information From 8d97dff72945bb22137ad71ca29c590cef4e3f19 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 11 Apr 2022 15:00:47 -0400 Subject: [PATCH 023/170] preparing for generation of primitive table(s) --- .../racketscript/compiler/absyn.rkt | 2 +- .../compiler/runtime/core/linklet.js | 60 +++++++++++++------ 2 files changed, 43 insertions(+), 19 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/absyn.rkt b/racketscript-compiler/racketscript/compiler/absyn.rkt index 6ffecb47..8f70a50b 100644 --- a/racketscript-compiler/racketscript/compiler/absyn.rkt +++ b/racketscript-compiler/racketscript/compiler/absyn.rkt @@ -6,7 +6,7 @@ (provide (all-defined-out)) (struct Linklet ([path : Path] - [imports : (Listof (U Symbol (Listof Symbol)))] + [imports : (Listof (Listof (U Symbol (Listof Symbol))))] [exports : (Listof (U Symbol (Listof Symbol)))] [forms : (Listof GeneralTopLevelForm)]) #:transparent) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index f4eaa440..2a62f24a 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -1,4 +1,4 @@ -import { check as isCons, isEmpty } from './pair.js'; +import { check as isCons, isEmpty, EMPTY } from './pair.js'; import { check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; @@ -7,27 +7,24 @@ import { PrintablePrimitive } from './printable_primitive.js'; // eslint-disable-next-line no-unused-vars class Linklet extends PrintablePrimitive { // constructor corresponds to compile-linklet - constructor(form, name, importKeys, getImport, options) { + // Missing import-keys, get-import, options + constructor(form, name) { super(); - this.compile(form, name, importKeys, getImport, options); + this.compile(form, name); } - compile(form, name, importKeys, getImport, options) { + // Missing import-keys, get-import, options + compile(form, name) { this.form = form; - this._setProps(name, importKeys, getImport, options); - this.payload = this._compileLinklet(); - } - - _setProps(name, importKeys, getImport, options) { this.name = name; - this.importKeys = importKeys; - this.getImport = getImport; - this.options = options; + this.payload = this._compileLinklet(); } // true purpose is further optimization - recompile(name, importKeys, getImport, options) { - this._setProps(name, importKeys, getImport, options); + // Missing import-keys, get-import, options + recompile(name) { + this.name = name; + this.payload = this._compileLinklet(); } _compileLinklet() { @@ -48,17 +45,34 @@ class Linklet extends PrintablePrimitive { return 'throw new Error("This s-expression isn\'t supported yet")'; } + importVariables() { + return EMPTY; + } + + exportVariables() { + return EMPTY; + } + eval() { return this; } - // imports, target, prompt - instantiate() { - return eval(this.payload); + // - intentionally excluding `prompt`, don't know what to do with it + // - I have no use for instances right now either, since I'm not producing linklets + // that import stuff + instantiate(_instances, target) { + const res = eval(this.payload); + if (target === undefined || target === false) { + return makeInstance(this.name); + } + + return res; } } -export function check(l) { return l.constructor === Linklet; } +export function checkLinklet(l) { + return l === 'object' && l !== null && l.constructor === Linklet; +} class LinkletInstance extends PrintablePrimitive { constructor(name, data, mode, m) { @@ -70,6 +84,10 @@ class LinkletInstance extends PrintablePrimitive { } } +export function checkInstance(i) { + return i === 'object' && i !== null && i.constructor === LinkletInstance; +} + export function makeInstance(name, _data, _mode, ...args) { const m = new Map(); const data = _data || false; @@ -91,3 +109,9 @@ export function instanceSetVariableValue(i, s, v) { export function instanceUnsetVariable(i, s) { return i.m.remove(s); } export function instanceDescribeVariable() { } + +export const primitiveTable = { + +}; + +// add the symbol primitive_table to the table assigned to itself From 1b8bae176740cdf2d30ef74f481e8bfbb99cc2c8 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Mon, 11 Apr 2022 21:38:37 -0400 Subject: [PATCH 024/170] primitive table wip --- racketscript-compiler/racketscript/compiler/runtime/kernel.rkt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index c95103b5..09c72cb5 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1396,3 +1396,6 @@ ;; (provide unsafe-make-place-local ;; unsafe-root-continuation-prompt-tag) + +;; ---------------------------------------------------------------------------- +(define+provide ( From 38e635db9fb672ddfe71106eff4685ebda18b970 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 11 Apr 2022 21:48:37 -0400 Subject: [PATCH 025/170] skeleton for primitive table --- .../racketscript/compiler/runtime/kernel.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 09c72cb5..dbc875b5 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1398,4 +1398,8 @@ ;; unsafe-root-continuation-prompt-tag) ;; ---------------------------------------------------------------------------- -(define+provide ( +(define+provide (primitive-table table-name) + (match table-name + ['#%kernel #f] + ['#%linklet #f] + [_ #f])) From ce0f9e197a1a9cf69029465901d1391367ee3f6e Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 17 Apr 2022 18:51:55 -0400 Subject: [PATCH 026/170] linklet primitive table --- .../compiler/runtime/core/linklet.js | 34 ++++++++++++++++--- .../racketscript/compiler/runtime/kernel.rkt | 2 +- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 2a62f24a..9a1f2173 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -1,6 +1,7 @@ import { check as isCons, isEmpty, EMPTY } from './pair.js'; -import { check as isSym } from './primitive_symbol.js'; +import { PrimitiveSymbol, check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; +import { makeEq } from './hash.js'; // TODO I should determine which of the 'props' (arguments to compile-linklet and recompile-linklet actually need to be saved @@ -70,6 +71,10 @@ class Linklet extends PrintablePrimitive { } } +export function makeLinklet(form, name) { + return new Linklet(form, name); +} + export function checkLinklet(l) { return l === 'object' && l !== null && l.constructor === Linklet; } @@ -109,9 +114,28 @@ export function instanceSetVariableValue(i, s, v) { export function instanceUnsetVariable(i, s) { return i.m.remove(s); } export function instanceDescribeVariable() { } - -export const primitiveTable = { - +// LINKLET PRIMITIVE TABLE +const exportedPrimitives = { + 'linklet?': checkLinklet, + 'compile-linklet': makeLinklet, + 'recompile-linklet': (lnk, n, importKeys, getImport, opts) => lnk.recompile(n, importKeys, getImport, opts), + 'eval-linklet': lnk => lnk.eval(), + 'instantiate-linklet': (lnk, imports, target, usePrompt) => lnk.instantiate(imports, target, usePrompt), + // HACK: there are never any imports or exports + 'linklet-import-variables': () => EMPTY, + 'linklet-export-variables': () => EMPTY, + 'instance?': checkInstance, + 'make-instance': makeInstance, + 'instance-name': instanceName, + 'instance-data': instanceData, + 'instance-variable-names': instanceVariableNames, + 'instance-variable-value': instanceVariableValue, + 'instance-set-variable-value!': instanceSetVariableValue, + 'instance-unset-variable!': instanceUnsetVariable, + 'instance-describe-variable!': instanceDescribeVariable }; -// add the symbol primitive_table to the table assigned to itself +export const primitiveTable = Object.entries(exportedPrimitives).reduce( + (table, [name, impl]) => table.set(new PrimitiveSymbol(name), impl), + makeEq([], false), +); diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index dbc875b5..ea7bbcab 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1401,5 +1401,5 @@ (define+provide (primitive-table table-name) (match table-name ['#%kernel #f] - ['#%linklet #f] + ['#%linklet (#js.Core.Linklet.primitiveTable)] [_ #f])) From 0e22f37028fbac67f7c28bfa4fecfc319ab3fe6f Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 19 Apr 2022 09:19:43 -0400 Subject: [PATCH 027/170] added a primitive table --- .../racketscript/compiler/main.rkt | 2 +- .../racketscript/compiler/runtime/core.js | 4 ++- .../compiler/runtime/core/kernel_table.js | 30 +++++++++++++++++++ .../compiler/runtime/core/linklet.js | 4 +-- .../racketscript/compiler/runtime/kernel.rkt | 10 ++++--- 5 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index 40b24b2a..df9b59b6 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -458,7 +458,7 @@ (define lnk-port (open-input-file source)) (define lnk-ast (parse-linklet (read lnk-port) p)) - (pretty-print lnk-ast) + ;; (pretty-print lnk-ast) (~> (absyn-linklet->il lnk-ast) (insert-arity-checks _) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core.js b/racketscript-compiler/racketscript/compiler/runtime/core.js index 5d2fe6ef..dd071771 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core.js @@ -21,6 +21,7 @@ import * as MPair from './core/mpair.js'; import * as Correlated from './core/correlated.js'; import * as Linklet from './core/linklet.js'; import * as Path from './core/path.js'; +import * as KernelTable from './core/kernel_table.js'; export { Bytes, @@ -42,7 +43,8 @@ export { MPair, Correlated, Linklet, - Path + Path, + KernelTable }; export { argumentsToArray, argumentsSlice } from './core/lib.js'; diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js new file mode 100644 index 00000000..6d92b652 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js @@ -0,0 +1,30 @@ +/* eslint-disable */ +// import * as Kernel from '../core.js'; + +export const kernelTable = { + writeToPort: () => { throw new Error('writeToPort not supported'); }, + displayNativeString: () => { throw new Error('displayNativeString not supported'); }, + writeNativeString: () => { throw new Error('writeNativeString not supported'); }, + toRawString: () => { throw new Error('toRawString not supported'); }, + isImmutable: () => { return true; }, + ref: (k, fail) => { + throw new Error(`primitive ${k} not currently supported`); + }, + toRawString: () => { throw new Error('hasKey not supported'); }, + refKey: () => { return kernelTable.ref(); }, + set: () => { throw new Error('set not supported'); }, + remove: () => { throw new Error('remove not supported'); }, + doset: () => { throw new Error('doset not supported'); }, + doremove: () => { throw new Error('doremove not supported'); }, + size: () => { throw new Error('size not supported'); }, + iterateFirst: () => { throw new Error('iterateFirst not supported'); }, + iterateNext: () => { throw new Error('iterateNext not supported'); }, + iterateKey: () => { throw new Error('iterateKey not supported'); }, + iterateValue: () => { throw new Error('iterateValue not supported'); }, + iteratePair: () => { throw new Error('iteratePair not supported'); }, + iterateKeyValue: () => { throw new Error('iterateKeyValue not supported'); }, + union: () => { throw new Error('union not supported'); }, + isSameType: () => { throw new Error('isSameType not supported'); }, + isKeysSubset: () => { throw new Error('isKeysSubset not supported'); }, + equals: () => { throw new Error('equals not supported'); }, +}; diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 9a1f2173..bc1569b5 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -1,5 +1,5 @@ import { check as isCons, isEmpty, EMPTY } from './pair.js'; -import { PrimitiveSymbol, check as isSym } from './primitive_symbol.js'; +import { make as makeSym, check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; import { makeEq } from './hash.js'; @@ -136,6 +136,6 @@ const exportedPrimitives = { }; export const primitiveTable = Object.entries(exportedPrimitives).reduce( - (table, [name, impl]) => table.set(new PrimitiveSymbol(name), impl), + (table, [name, impl]) => table.set(makeSym(name), impl), makeEq([], false), ); diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index ea7bbcab..aad39624 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1399,7 +1399,9 @@ ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) - (match table-name - ['#%kernel #f] - ['#%linklet (#js.Core.Linklet.primitiveTable)] - [_ #f])) + (cond + [(equal? table-name '#%kernel) #js.Core.KernelTable.kernelTable] + [(equal? table-name '#%linklet) + (let ([lnkTable #js.Core.Linklet.primitiveTable]) + (hash-set lnkTable 'primitive-table primitive-table))] + [else #f])) From 7d66e6e9962dfbbfa9b0b8c3d8caa4411d7bed7f Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 19 Apr 2022 11:52:35 -0400 Subject: [PATCH 028/170] add some more linklet primitives --- .../racketscript/compiler/runtime/core/linklet.js | 6 +++++- .../racketscript/compiler/runtime/kernel.rkt | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index bc1569b5..6e7513b4 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -2,6 +2,7 @@ import { check as isCons, isEmpty, EMPTY } from './pair.js'; import { make as makeSym, check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; import { makeEq } from './hash.js'; +import { toBytesUtf8 } from './unicode_string.js'; // TODO I should determine which of the 'props' (arguments to compile-linklet and recompile-linklet actually need to be saved @@ -124,6 +125,7 @@ const exportedPrimitives = { // HACK: there are never any imports or exports 'linklet-import-variables': () => EMPTY, 'linklet-export-variables': () => EMPTY, + 'linklet-virtual-machine-bytes': () => toBytesUtf8('racketscript'), 'instance?': checkInstance, 'make-instance': makeInstance, 'instance-name': instanceName, @@ -132,7 +134,9 @@ const exportedPrimitives = { 'instance-variable-value': instanceVariableValue, 'instance-set-variable-value!': instanceSetVariableValue, 'instance-unset-variable!': instanceUnsetVariable, - 'instance-describe-variable!': instanceDescribeVariable + 'instance-describe-variable!': instanceDescribeVariable, + 'variable-reference-from-unsafe?': () => false, + 'variable-reference-constant?': () => false }; export const primitiveTable = Object.entries(exportedPrimitives).reduce( diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index aad39624..3c780984 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -3,6 +3,7 @@ (require (for-syntax syntax/parse) racketscript/interop "lib.rkt") + ;; "linklet-primitive.rkt") ;; "unsafe.rkt") ;; ---------------------------------------------------------------------------- From 9807f2c2f79bee42337b8a46ff3d7c5e61023e99 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 26 Apr 2022 13:37:37 -0400 Subject: [PATCH 029/170] things are not going according to plan --- .../racketscript/compiler/runtime/kernel.rkt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 3c780984..f053327a 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -2,9 +2,9 @@ (require (for-syntax syntax/parse) racketscript/interop - "lib.rkt") - ;; "linklet-primitive.rkt") - ;; "unsafe.rkt") + "lib.rkt" + ;; "linklet-primitive.rkt" + "unsafe.rkt") ;; ---------------------------------------------------------------------------- ;; Equality @@ -1391,12 +1391,9 @@ ;; ---------------------------------------------------------------------------- ;; Unsafe forms for Expander Linklet -(define+provide unsafe-make-place-local #js.Core.Box.make) -(define+provide (unsafe-root-continuation-prompt-tag) - (#js.Core.Marks.defaultContinuationPromptTag)) +;; FIXME since imports don't work properly in linklet mode, re-provide unsafe forms here +(provide (all-from-out "unsafe.rkt")) -;; (provide unsafe-make-place-local -;; unsafe-root-continuation-prompt-tag) ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) From d4744a37988605aca99820ba386acc8a748b440c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 26 Apr 2022 18:50:26 -0400 Subject: [PATCH 030/170] add hook to stdlib exports adding those forms to the kernel primitive-table --- .../compiler/runtime/core/kernel_table.js | 18 +++++++++++++++++- .../racketscript/compiler/runtime/lib.rkt | 17 +++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js index 6d92b652..c7850c24 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js @@ -1,5 +1,19 @@ /* eslint-disable */ // import * as Kernel from '../core.js'; +// import * as Core from '../core.js'; + +export const kernelContents = {}; + +// Object.entries(Core).forEach(([key, val]) => { +// if (key === 'theUnsafeUndefined') { + +// } else if (typeof val === 'function') { +// } else if (typeof val === 'object') { +// } else { +// } +// }); + + export const kernelTable = { writeToPort: () => { throw new Error('writeToPort not supported'); }, @@ -10,7 +24,7 @@ export const kernelTable = { ref: (k, fail) => { throw new Error(`primitive ${k} not currently supported`); }, - toRawString: () => { throw new Error('hasKey not supported'); }, + hasKey: (k) => { console.log(k); console.log(kernelContents[k]); throw new Error('hasKey not supported'); }, refKey: () => { return kernelTable.ref(); }, set: () => { throw new Error('set not supported'); }, remove: () => { throw new Error('remove not supported'); }, @@ -27,4 +41,6 @@ export const kernelTable = { isSameType: () => { throw new Error('isSameType not supported'); }, isKeysSubset: () => { throw new Error('isKeysSubset not supported'); }, equals: () => { throw new Error('equals not supported'); }, + + _unsafeSet: (k, v) => { console.log(k); kernelContents[k] = v; } }; diff --git a/racketscript-compiler/racketscript/compiler/runtime/lib.rkt b/racketscript-compiler/racketscript/compiler/runtime/lib.rkt index 9978615d..33942c56 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/lib.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/lib.rkt @@ -56,13 +56,22 @@ [_:id #'($ 'id)]))])) (define-syntax (define+provide stx) + ;; FIXME currently mutating kernelContents to add primitives to the table + ;; FIXME the random `define` is there to prevent the expander from inserting a `call-with-values` call in tail position + ;; for no reason (syntax-parse stx [(_ name:id val:expr) - #'(begin (provide name) - (define name val))] + (with-syntax ([(x) (generate-temporaries '(x))]) + #'(begin (provide name) + (define name val) + ;; (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name)))] + (define x (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name))))] [(_ (~and formals (name:id . args)) body ...) - #'(begin (provide name) - (define formals body ...))])) + (with-syntax ([(x) (generate-temporaries '(x))]) + #'(begin (provide name) + (define formals body ...) + ;; (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name)))])) + (define x (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name))))])) ;; ---------------------------------------------------------------------------- ;; JS imports From 8194886793dfb67275e996e313633fa3f5069e8d Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 26 Apr 2022 18:50:43 -0400 Subject: [PATCH 031/170] add back the unsafe forms, I'll handle imports and exports later --- .../racketscript/compiler/runtime/kernel.rkt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index f053327a..9fd432f7 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1392,8 +1392,17 @@ ;; Unsafe forms for Expander Linklet ;; FIXME since imports don't work properly in linklet mode, re-provide unsafe forms here -(provide (all-from-out "unsafe.rkt")) +;; (provide (all-from-out "unsafe.rkt")) +(define+provide unsafe-make-place-local #js.Core.Box.make) +(define+provide (unsafe-place-local-set! b v) (#js.b.set v)) +(define+provide (unsafe-place-local-ref b) (#js.b.get)) + +(define+provide (unsafe-root-continuation-prompt-tag) + (#js.Core.Marks.defaultContinuationPromptTag)) + +(define+provide (unsafe-car v) #js.v.hd) +(define+provide (unsafe-cdr v) #js.v.tl) ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) From 6148ab38a719412e36696f7ef38f8ca2df3a1781 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 26 Apr 2022 20:49:18 -0400 Subject: [PATCH 032/170] made more progress --- .../compiler/runtime/core/correlated.js | 1 - .../compiler/runtime/core/kernel_table.js | 30 ++++++++----------- .../racketscript/compiler/runtime/kernel.rkt | 12 ++++++-- .../racketscript/compiler/runtime/lib.rkt | 6 ++-- 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/correlated.js b/racketscript-compiler/racketscript/compiler/runtime/core/correlated.js index 3e137a00..ed9e3d76 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/correlated.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/correlated.js @@ -48,4 +48,3 @@ export function syntaxPosition(v) { return false; } /* eslint no-unused-vars: ["error", { "args": "none" }] */ export function syntaxSpan(v) { return false; } - diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js index c7850c24..823fef7b 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js @@ -1,19 +1,6 @@ /* eslint-disable */ -// import * as Kernel from '../core.js'; -// import * as Core from '../core.js'; - -export const kernelContents = {}; - -// Object.entries(Core).forEach(([key, val]) => { -// if (key === 'theUnsafeUndefined') { - -// } else if (typeof val === 'function') { -// } else if (typeof val === 'object') { -// } else { -// } -// }); - +const kernelContents = {}; export const kernelTable = { writeToPort: () => { throw new Error('writeToPort not supported'); }, @@ -22,10 +9,15 @@ export const kernelTable = { toRawString: () => { throw new Error('toRawString not supported'); }, isImmutable: () => { return true; }, ref: (k, fail) => { - throw new Error(`primitive ${k} not currently supported`); + if (k in kernelContents) { + return kernelContents[k]; + } else { + return fail; + } }, - hasKey: (k) => { console.log(k); console.log(kernelContents[k]); throw new Error('hasKey not supported'); }, - refKey: () => { return kernelTable.ref(); }, + hasKey: (k) => { return (k in kernelContents); }, + refKey: () => { throw new Error('refKey not supported'); }, + get: (k) => { return kernelContents[k]; }, set: () => { throw new Error('set not supported'); }, remove: () => { throw new Error('remove not supported'); }, doset: () => { throw new Error('doset not supported'); }, @@ -42,5 +34,7 @@ export const kernelTable = { isKeysSubset: () => { throw new Error('isKeysSubset not supported'); }, equals: () => { throw new Error('equals not supported'); }, - _unsafeSet: (k, v) => { console.log(k); kernelContents[k] = v; } + _unsafeSet: (k, v) => { kernelContents[k] = v; } }; + +kernelTable._h = kernelTable; diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 9fd432f7..fc138367 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1378,15 +1378,21 @@ (v-λ (s f) #:unchecked #f)) ;; ---------------------------------------------------------------------------- -;; Syntax - -;; TODO: implement these stubs +;; Syntax (borrowed from syntax.rkt, should fix like unsafe) (define+provide syntax-source #js.Core.Correlated.syntaxSource) (define+provide syntax-line #js.Core.Correlated.syntaxLine) (define+provide syntax-column #js.Core.Correlated.syntaxColumn) (define+provide syntax-position #js.Core.Correlated.syntaxPosition) (define+provide syntax-span #js.Core.Correlated.syntaxSpan) +(define+provide datum->syntax #js.Core.Correlated.datumToSyntax) +(define+provide syntax? #js.Core.Correlated.syntaxP) +(define+provide syntax-property (v-λ () #:unchecked #f)) + +;; TODO question: should I turn syntax-e into an exported function that wraps this? +(define+provide (syntax-e v) (#js.v.get)) +;; FIXME this is definitely wrong, right? I guess I don't know how correlated actually works +(define+provide (syntax->datum v) (#js.v.get)) ;; ---------------------------------------------------------------------------- ;; Unsafe forms for Expander Linklet diff --git a/racketscript-compiler/racketscript/compiler/runtime/lib.rkt b/racketscript-compiler/racketscript/compiler/runtime/lib.rkt index 33942c56..1c0ac1b3 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/lib.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/lib.rkt @@ -64,14 +64,12 @@ (with-syntax ([(x) (generate-temporaries '(x))]) #'(begin (provide name) (define name val) - ;; (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name)))] - (define x (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name))))] + (define x (#js.Core.KernelTable.kernelTable._unsafeSet 'name name))))] [(_ (~and formals (name:id . args)) body ...) (with-syntax ([(x) (generate-temporaries '(x))]) #'(begin (provide name) (define formals body ...) - ;; (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name)))])) - (define x (#%js-ffi 'assign ($ #js.Core.KernelTable.kernelContents 'name) name))))])) + (define x (#js.Core.KernelTable.kernelTable._unsafeSet 'name name))))])) ;; ---------------------------------------------------------------------------- ;; JS imports From f6a6cfb496e6c210b6d3430bf7359607b50a8963 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 19 May 2022 00:01:46 -0400 Subject: [PATCH 033/170] get back to core forms --- .../racketscript/compiler/runtime/kernel.rkt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index fc138367..44239744 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1389,6 +1389,8 @@ (define+provide syntax? #js.Core.Correlated.syntaxP) (define+provide syntax-property (v-λ () #:unchecked #f)) +(define+provide (syntax-property-symbol-keys stx) '()) + ;; TODO question: should I turn syntax-e into an exported function that wraps this? (define+provide (syntax-e v) (#js.v.get)) ;; FIXME this is definitely wrong, right? I guess I don't know how correlated actually works @@ -1410,6 +1412,10 @@ (define+provide (unsafe-car v) #js.v.hd) (define+provide (unsafe-cdr v) #js.v.tl) +(define+provide (unsafe-immutable-hash-iterate-first h) + (#js.h.iterateFirst)) + + ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) (cond From 60461a64966e565910b6419e69e2ec14209b5704 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 17 Jun 2022 18:48:39 -0400 Subject: [PATCH 034/170] two forms --- .../racketscript/compiler/runtime/kernel.rkt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 44239744..43ce97eb 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1415,6 +1415,12 @@ (define+provide (unsafe-immutable-hash-iterate-first h) (#js.h.iterateFirst)) +(define+provide (unsafe-immutable-hash-iterate-next h i) + (#js.h.iterateNext i)) + +(define+provide (unsafe-immutable-hash-iterate-key h i) + (#js.h.iterateKey i)) + ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) From 5d0c2263ff8c18deddbd962229733d8d8e479dd0 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sun, 19 Jun 2022 13:52:49 -0400 Subject: [PATCH 035/170] implement kernel table as hash plus more core forms --- .../compiler/runtime/core/hash.js | 2 +- .../compiler/runtime/core/kernel_table.js | 41 +-------- .../racketscript/compiler/runtime/kernel.rkt | 85 +++++++++++++++++++ .../racketscript/compiler/runtime/lib.rkt | 4 +- 4 files changed, 91 insertions(+), 41 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/hash.js b/racketscript-compiler/racketscript/compiler/runtime/core/hash.js index d6dd263b..44a82e10 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/hash.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/hash.js @@ -278,5 +278,5 @@ export function isWeakHash() { } export function isEphemeronHash() { - return false; // TODO: implement ephemeron hashes + return false; // TODO: implement ephemeron hashes } diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js index 823fef7b..f858ab76 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/kernel_table.js @@ -1,40 +1,5 @@ /* eslint-disable */ +import { makeEqual } from './hash.js'; -const kernelContents = {}; - -export const kernelTable = { - writeToPort: () => { throw new Error('writeToPort not supported'); }, - displayNativeString: () => { throw new Error('displayNativeString not supported'); }, - writeNativeString: () => { throw new Error('writeNativeString not supported'); }, - toRawString: () => { throw new Error('toRawString not supported'); }, - isImmutable: () => { return true; }, - ref: (k, fail) => { - if (k in kernelContents) { - return kernelContents[k]; - } else { - return fail; - } - }, - hasKey: (k) => { return (k in kernelContents); }, - refKey: () => { throw new Error('refKey not supported'); }, - get: (k) => { return kernelContents[k]; }, - set: () => { throw new Error('set not supported'); }, - remove: () => { throw new Error('remove not supported'); }, - doset: () => { throw new Error('doset not supported'); }, - doremove: () => { throw new Error('doremove not supported'); }, - size: () => { throw new Error('size not supported'); }, - iterateFirst: () => { throw new Error('iterateFirst not supported'); }, - iterateNext: () => { throw new Error('iterateNext not supported'); }, - iterateKey: () => { throw new Error('iterateKey not supported'); }, - iterateValue: () => { throw new Error('iterateValue not supported'); }, - iteratePair: () => { throw new Error('iteratePair not supported'); }, - iterateKeyValue: () => { throw new Error('iterateKeyValue not supported'); }, - union: () => { throw new Error('union not supported'); }, - isSameType: () => { throw new Error('isSameType not supported'); }, - isKeysSubset: () => { throw new Error('isKeysSubset not supported'); }, - equals: () => { throw new Error('equals not supported'); }, - - _unsafeSet: (k, v) => { kernelContents[k] = v; } -}; - -kernelTable._h = kernelTable; +export const kernelTable = makeEqual([], true); +export const unsafeSet = (k, v) => { kernelTable.doset(k, v) }; diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index b79e65f1..46d83ade 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1430,6 +1430,91 @@ (define+provide (unsafe-immutable-hash-iterate-key h i) (#js.h.iterateKey i)) +(define+provide unsafe-undefined #js.Core.theUnsafeUndefined) + +(define Core ($/require/* "./core.js")) + +(define-binop bitwise-or \|) + +(define-syntax (define-unsafe-fx-binop+provide stx) + (syntax-parse stx + [(_ opname:id op:id) + #'(begin + (provide opname) + (define+provide (opname a b) + (bitwise-or (binop op a b) 0)))])) + +(define-unsafe-fx-binop+provide unsafe-fx+ +) +(define-unsafe-fx-binop+provide unsafe-fx- -) +(define-unsafe-fx-binop+provide unsafe-fx* *) +(define-unsafe-fx-binop+provide unsafe-fxquotient /) +(define-unsafe-fx-binop+provide unsafe-fxremainder %) + +;; ---------------------------------------------------------------------------- +;; floating point forms for expander linklet + +(define+provide fl* (#js.Core.attachProcedureArity #js.Core.Number.mul 0)) +(define+provide fl/ (#js.Core.attachProcedureArity #js.Core.Number.div 1)) +(define+provide fl+ (#js.Core.attachProcedureArity #js.Core.Number.add 0)) +(define+provide fl- (#js.Core.attachProcedureArity #js.Core.Number.sub 1)) +(define+provide fl< (#js.Core.attachProcedureArity #js.Core.Number.lt 1)) +(define+provide fl> (#js.Core.attachProcedureArity #js.Core.Number.gt 1)) +(define+provide fl<= (#js.Core.attachProcedureArity #js.Core.Number.lte 1)) +(define+provide fl>= (#js.Core.attachProcedureArity #js.Core.Number.gte 1)) +(define+provide fl= (#js.Core.attachProcedureArity #js.Core.Number.equals 1)) + +(define-syntax (define-fx-binop+provide stx) + (syntax-parse stx + [(_ opname:id op:id) + #'(begin + (define+provide (opname a b) + (bitwise-or (binop op a b) 0)))])) + +(define-fx-binop+provide fx+ +) +(define-fx-binop+provide fx- -) +(define-fx-binop+provide fx* *) +(define-fx-binop+provide fxquotient /) +(define-fx-binop+provide fxremainder %) + +(define+provide (fxmodulo a b) + (define remainder (binop % a b)) + (#js.Math.floor (if (binop >= remainder 0) + remainder + (binop + remainder b)))) + +(define+provide (fxabs a) + (#js.Math.abs a)) + + +(define+provide (fx= a b) + (binop === a b)) +(define+provide (fx< a b) + (binop < a b)) +(define+provide (fx<= a b) + (binop <= a b)) +(define+provide (fx> a b) + (binop > a b)) +(define+provide (fx>= a b) + (binop >= a b)) +(define+provide (fxmin a b) + (if ($/binop < a b) a b)) +(define+provide (fxmax a b) + (if ($/binop > a b) b a)) + + +(define-fx-binop+provide fxrshift >>) +(define-fx-binop+provide fxlshift <<) +(define-fx-binop+provide fxand &&) +(define-fx-binop+provide fxior \|\|) +(define-fx-binop+provide fxxor ^) +(define+provide fxnot #js.Core.bitwiseNot) + +(define+provide flvector #js.Array.from) ; just create regular array +(define+provide flvector? #js.Array.isArray) +(define+provide fxvector #js.Array.from) ; just create regular array +(define+provide fxvector? #js.Array.isArray) + + ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) diff --git a/racketscript-compiler/racketscript/compiler/runtime/lib.rkt b/racketscript-compiler/racketscript/compiler/runtime/lib.rkt index 1c0ac1b3..ead8592d 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/lib.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/lib.rkt @@ -64,12 +64,12 @@ (with-syntax ([(x) (generate-temporaries '(x))]) #'(begin (provide name) (define name val) - (define x (#js.Core.KernelTable.kernelTable._unsafeSet 'name name))))] + (define x (#js.Core.KernelTable.unsafeSet 'name name))))] [(_ (~and formals (name:id . args)) body ...) (with-syntax ([(x) (generate-temporaries '(x))]) #'(begin (provide name) (define formals body ...) - (define x (#js.Core.KernelTable.kernelTable._unsafeSet 'name name))))])) + (define x (#js.Core.KernelTable.unsafeSet 'name name))))])) ;; ---------------------------------------------------------------------------- ;; JS imports From e116e58a14c2f965fb608dccebff0f33c3424a32 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 20 Jun 2022 14:08:48 -0400 Subject: [PATCH 036/170] add support for paramz table --- .../racketscript/compiler/runtime/kernel.rkt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 46d83ade..d182e029 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1514,6 +1514,27 @@ (define+provide fxvector #js.Array.from) ; just create regular array (define+provide fxvector? #js.Array.isArray) +;; ---------------------------------------------------------------------------- +;; for #%paramz +(define Paramz ($/require/* "./paramz.js")) + +(define parameterization-key #js.Paramz.ParameterizationKey) +(define break-enabled-key #js.Paramz.BreakEnabledKey) +(define cache-configuration #js.Paramz.BreakEnabledKey) +(define extend-parameterization #js.Paramz.extendParameterization) +(define exception-handler-key #js.Paramz.ExceptionHandlerKey) +(define (check-for-break) ($/undefined)) +(define (reparameterize v) v) + +(define paramz-table + (hash 'parameterization-key parameterization-key + 'break-enabled-key break-enabled-key + 'cache-configuration cache-configuration + 'extend-parameterization extend-parameterization + 'exception-handler-key exception-handler-key + 'check-for-break check-for-break + 'reparameterize reparameterize)) + ;; ---------------------------------------------------------------------------- @@ -1523,4 +1544,5 @@ [(equal? table-name '#%linklet) (let ([lnkTable #js.Core.Linklet.primitiveTable]) (hash-set lnkTable 'primitive-table primitive-table))] + [(equal? table-name '#%paramz) paramz-table] [else #f])) From 1555825ad8bd37b344a0cb079fc7ef0d805a07b0 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 20 Jun 2022 14:50:52 -0400 Subject: [PATCH 037/170] add missing tables as empty --- .../racketscript/compiler/runtime/kernel.rkt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index d182e029..cc9096a3 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1545,4 +1545,14 @@ (let ([lnkTable #js.Core.Linklet.primitiveTable]) (hash-set lnkTable 'primitive-table primitive-table))] [(equal? table-name '#%paramz) paramz-table] + ;; Pycket has entries for all of the tables below + [(equal? table-name '#%foreign) (hash)] + [(equal? table-name '#%unsafe) (hash)] + [(equal? table-name '#%futures) (hash)] + [(equal? table-name '#%place) (hash)] + [(equal? table-name '#%flfxnum) (hash)] + [(equal? table-name '#%extfl) (hash)] + [(equal? table-name '#%network) (hash)] + + [else #f])) From 0cc4250023824e6cffd94799ede0da773ce31bbd Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 24 Jun 2022 09:43:24 -0400 Subject: [PATCH 038/170] add parameter, no errors on execution --- .../racketscript/compiler/runtime/kernel.rkt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index cc9096a3..9aed986d 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1536,6 +1536,12 @@ 'reparameterize reparameterize)) +;; ---------------------------------------------------------------------------- +;; Other random forms I need to include + +;; TODO should probably be real but w/e +(define+provide error-syntax->string-handler + (make-parameter (v-λ (x n) "syntax"))) ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) From 8dfe8735d2e8a5d9420bf281ef082c7b54d13a7f Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 24 Jun 2022 17:09:45 -0400 Subject: [PATCH 039/170] export forms, attempt to use them --- .../racketscript/compiler/assembler.rkt | 5 +++-- racketscript-compiler/racketscript/compiler/il.rkt | 2 +- .../racketscript/compiler/transform.rkt | 11 ++++++++++- random.js | 3 +++ 4 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 random.js diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index b9c51b83..7a9ba9e4 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -237,13 +237,14 @@ (: assemble-linklet (-> ILLinklet Void)) (define (assemble-linklet lnk) - (match-define (ILLinklet imports _ body) lnk) + (match-define (ILLinklet imports exports body) lnk) (log-rjs-info "[assemble linklet]") (define out (open-output-file "foo.js" #:exists 'replace)) (assemble-requires* imports out) (for ([b body]) - (assemble-statement b out))) + (assemble-statement b out)) + (assemble-provides* exports out)) (: assemble-module (-> ILModule (Option Output-Port) Void)) (define (assemble-module mod maybeout) diff --git a/racketscript-compiler/racketscript/compiler/il.rkt b/racketscript-compiler/racketscript/compiler/il.rkt index b5d53da3..4fe45c7d 100644 --- a/racketscript-compiler/racketscript/compiler/il.rkt +++ b/racketscript-compiler/racketscript/compiler/il.rkt @@ -17,7 +17,7 @@ (define-type-alias ILModuleName (Option Path-String)) (struct ILLinklet ([imports : ILRequire*] ;; FIXME (Listof (Listof Symbol)) - [exports : (Listof (U Symbol (Listof Symbol)))] + [exports : ILProvide*] [body : ILStatement*]) #:transparent) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index c2270973..df0d8893 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -63,7 +63,7 @@ (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) (ILLinklet (filter ILRequire? requires*) - exports + (absyn-exports->il exports) (append-map absyn-gtl-form->il forms)))) (: make-module-map (-> (Listof (Option ILRequire)) (Listof (U Path Symbol)) ModuleObjectNameMap)) ;; TODO need type aliases @@ -77,6 +77,15 @@ (ILRequire-name req)) acc))) +(: absyn-exports->il (-> (Listof (U Symbol (Listof Symbol))) ILProvide*)) +(define (absyn-exports->il exports) + (for/list ([ex exports]) + (cond + [(symbol? ex) (SimpleProvide ex)] + [(list? ex) (RenamedProvide (car ex) (cadr ex))] + [else (error 'exports->il "unknown export form in linklet" ex)]))) + + (: absyn-requires->il (-> (Listof (U Path Symbol)) Path (Listof (Option ILRequire)))) (define (absyn-requires->il import-list path) (for/list ([mod-path import-list] diff --git a/random.js b/random.js new file mode 100644 index 00000000..e4a941a1 --- /dev/null +++ b/random.js @@ -0,0 +1,3 @@ +import * as Everything from './foo.js'; + +console.log(Everything.reval(5)); From ac7c9e71b9db1328b03bdf2b9abc77540e2d1d3a Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 26 Jun 2022 10:33:55 -0400 Subject: [PATCH 040/170] source locations --- .../racketscript/compiler/runtime/kernel.rkt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 9aed986d..26b36104 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1405,6 +1405,14 @@ ;; FIXME this is definitely wrong, right? I guess I don't know how correlated actually works (define+provide (syntax->datum v) (#js.v.get)) +;; FIXME other related runtime functions +(struct srcloc (source line column position span) + #:extra-constructor-name make-srcloc + #:transparent) + +(provide (struct-out srcloc)) + + ;; ---------------------------------------------------------------------------- ;; Unsafe forms for Expander Linklet From 8277426793c2c14d5257c948ab2a59a1e9e15ce0 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 28 Jun 2022 12:01:43 -0400 Subject: [PATCH 041/170] add simple thread runtime --- .../racketscript/compiler/runtime/core.js | 4 +- .../compiler/runtime/core/thread.js | 60 +++++++++++++++++++ .../racketscript/compiler/runtime/kernel.rkt | 7 ++- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/thread.js diff --git a/racketscript-compiler/racketscript/compiler/runtime/core.js b/racketscript-compiler/racketscript/compiler/runtime/core.js index dd071771..a0edde02 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core.js @@ -22,6 +22,7 @@ import * as Correlated from './core/correlated.js'; import * as Linklet from './core/linklet.js'; import * as Path from './core/path.js'; import * as KernelTable from './core/kernel_table.js'; +import * as Thread from './core/thread.js'; export { Bytes, @@ -44,7 +45,8 @@ export { Correlated, Linklet, Path, - KernelTable + KernelTable, + Thread }; export { argumentsToArray, argumentsSlice } from './core/lib.js'; diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/thread.js b/racketscript-compiler/racketscript/compiler/runtime/core/thread.js new file mode 100644 index 00000000..8cbed487 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/core/thread.js @@ -0,0 +1,60 @@ +import { PrintablePrimitive } from './printable_primitive.js'; +import { isEqual } from './equality.js'; +import { hashForEqual } from './hashing.js'; + +const THREAD_REPR = '#'; + +class Thread extends PrintablePrimitive { + /** + * @param {*} v + * @return {!boolean} + */ + equals(other) { + return isEqual(this, other); + } + + /** + * @return {!number} a 32-bit integer + */ + hashForEqual() { + return hashForEqual(this); + } + + /** + * @param {!Ports.NativeStringOutputPort} out + */ + displayNativeString(out) { + out.consume(THREAD_REPR); + } + + /** + * @param {!Ports.UStringOutputPort} out + */ + displayUString(out) { + out.consume(THREAD_REPR); + } + + /** + * @param {!Ports.NativeStringOutputPort} out + */ + writeNativeString(out) { + out.consume(THREAD_REPR); + } + + /** + * @param {!Ports.UStringOutputPort} out + */ + writeUString(out) { + out.consume(THREAD_REPR); + } +} + +export function make() { + return new Thread(); +} + +export function check(v) { + return (v instanceof Thread); +} + +export const currentThread = make(); diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 26b36104..44845f2c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1381,7 +1381,7 @@ (define+provide (datum-intern-literal v) v) ;; semaphore stubs -(define+provide (make-semaphore x) x) +(define+provide (make-semaphore [x 0]) x) (define+provide (semaphore-peek-evt x) x) (define+provide call-with-semaphore (v-λ (s f) #:unchecked #f)) @@ -1551,6 +1551,11 @@ (define+provide error-syntax->string-handler (make-parameter (v-λ (x n) "syntax"))) +;; Return the thread descriptor for the current thread +;; Since JS isn't multithreaded, just return the same 'descriptor' +;; for all threads +(define+provide (current-thread) #js.Core.Thread.currentThread) + ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) (cond From c72b29b142fe560a30b35733222ac4ea0a055eb0 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 28 Jun 2022 14:08:10 -0400 Subject: [PATCH 042/170] semaphores --- .../racketscript/compiler/runtime/core.js | 4 +- .../compiler/runtime/core/semaphore.js | 74 +++++++++++++++++++ .../racketscript/compiler/runtime/kernel.rkt | 17 +++-- 3 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/semaphore.js diff --git a/racketscript-compiler/racketscript/compiler/runtime/core.js b/racketscript-compiler/racketscript/compiler/runtime/core.js index a0edde02..829ccc8e 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core.js @@ -23,6 +23,7 @@ import * as Linklet from './core/linklet.js'; import * as Path from './core/path.js'; import * as KernelTable from './core/kernel_table.js'; import * as Thread from './core/thread.js'; +import * as Semaphore from './core/semaphore.js'; export { Bytes, @@ -46,7 +47,8 @@ export { Linklet, Path, KernelTable, - Thread + Thread, + Semaphore }; export { argumentsToArray, argumentsSlice } from './core/lib.js'; diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/semaphore.js b/racketscript-compiler/racketscript/compiler/runtime/core/semaphore.js new file mode 100644 index 00000000..1584ba68 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/core/semaphore.js @@ -0,0 +1,74 @@ +import { PrintablePrimitive } from './printable_primitive.js'; +import { isEqual } from './equality.js'; +import { hashForEqual } from './hashing.js'; +import { racketCoreError } from './errors.js'; + +const SEMAPHORE_REPR = '#'; + +class Semaphore extends PrintablePrimitive { + constructor(n) { + super(); + this.n = n; + } + + post() { + this.n += 1; + } + + wait() { + if (this.n >= 1) { + return; + } + throw racketCoreError('Waiting for a semaphore will never finish'); + } + /** + * @param {*} v + * @return {!boolean} + */ + equals(other) { + return isEqual(this, other); + } + + /** + * @return {!number} a 32-bit integer + */ + hashForEqual() { + return hashForEqual(this); + } + + /** + * @param {!Ports.NativeStringOutputPort} out + */ + displayNativeString(out) { + out.consume(SEMAPHORE_REPR); + } + + /** + * @param {!Ports.UStringOutputPort} out + */ + displayUString(out) { + out.consume(SEMAPHORE_REPR); + } + + /** + * @param {!Ports.NativeStringOutputPort} out + */ + writeNativeString(out) { + out.consume(SEMAPHORE_REPR); + } + + /** + * @param {!Ports.UStringOutputPort} out + */ + writeUString(out) { + out.consume(SEMAPHORE_REPR); + } +} + +export function make(n) { + return new Semaphore(n); +} + +export function check(v) { + return (v instanceof Semaphore); +} diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 44845f2c..a427371f 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1380,11 +1380,6 @@ (define+provide (datum-intern-literal v) v) -;; semaphore stubs -(define+provide (make-semaphore [x 0]) x) -(define+provide (semaphore-peek-evt x) x) -(define+provide call-with-semaphore - (v-λ (s f) #:unchecked #f)) ;; ---------------------------------------------------------------------------- ;; Syntax (borrowed from syntax.rkt, should fix like unsafe) @@ -1551,11 +1546,23 @@ (define+provide error-syntax->string-handler (make-parameter (v-λ (x n) "syntax"))) +;;; THREADS ;;; ;; Return the thread descriptor for the current thread ;; Since JS isn't multithreaded, just return the same 'descriptor' ;; for all threads (define+provide (current-thread) #js.Core.Thread.currentThread) +;;; SEMAPHORES ;;; +(define+provide semaphore? #js.Core.Semaphore.check) +(define+provide (make-semaphore [init 0]) (#js.Core.Semaphore.make init)) +(define+provide (semaphore-post v) (#js.v.post)) +(define+provide (semaphore-wait v) (#js.v.wait)) + +;; PRE-EXISTING STUBS +(define+provide (semaphore-peek-evt x) x) +(define+provide call-with-semaphore + (v-λ (s f) #:unchecked #f)) + ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) (cond From 162781298d96177239792f476697ede777355288 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Wed, 29 Jun 2022 15:57:40 -0400 Subject: [PATCH 043/170] corrected dynamic-wind semantics --- .../racketscript/compiler/runtime/kernel.rkt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index a427371f..1c6ebebf 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1375,8 +1375,11 @@ ;; -------------------------------------------------------------------------- -(define+provide (dynamic-wind f g h) - (f) (g) (h)) +(define+provide (dynamic-wind pre-thunk value-thunk post-thunk) + (pre-thunk) + (define res (value-thunk)) + (post-thunk) + res) (define+provide (datum-intern-literal v) v) From 05626f04e33bf2eaa6a28a29bfd3a550b65745d8 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 29 Jun 2022 19:07:46 -0400 Subject: [PATCH 044/170] call-with-values bug took two days --- racketscript-compiler/racketscript/compiler/runtime/kernel.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 1c6ebebf..500d3b87 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -32,7 +32,7 @@ (cond [(#js.Values.check vals) (#js.receiver.apply *this* (#js.vals.getAll))] - [(not (or (eq? vals *undefined*) (eq? vals *null*))) + [else #;(not (or (eq? vals *undefined*) (eq? vals *null*))) (#js.receiver.apply *this* (array vals))]))) ;; ---------------------------------------------------------------------------- From 742cd701b1b7578d886476348c850d733561efb7 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 6 Jul 2022 16:02:58 -0400 Subject: [PATCH 045/170] remove output port from codegen module --- .../racketscript/compiler/assembler.rkt | 5 ++--- racketscript-compiler/racketscript/compiler/main.rkt | 9 +++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index 7a9ba9e4..8cdd994f 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -235,12 +235,11 @@ (emit ")")) (emit ";")])) -(: assemble-linklet (-> ILLinklet Void)) -(define (assemble-linklet lnk) +(: assemble-linklet (-> ILLinklet Output-Port Void)) +(define (assemble-linklet lnk out) (match-define (ILLinklet imports exports body) lnk) (log-rjs-info "[assemble linklet]") - (define out (open-output-file "foo.js" #:exists 'replace)) (assemble-requires* imports out) (for ([b body]) (assemble-statement b out)) diff --git a/racketscript-compiler/racketscript/compiler/main.rkt b/racketscript-compiler/racketscript/compiler/main.rkt index df9b59b6..fe1115da 100644 --- a/racketscript-compiler/racketscript/compiler/main.rkt +++ b/racketscript-compiler/racketscript/compiler/main.rkt @@ -458,11 +458,16 @@ (define lnk-port (open-input-file source)) (define lnk-ast (parse-linklet (read lnk-port) p)) - ;; (pretty-print lnk-ast) + + (define out-str (open-output-string)) (~> (absyn-linklet->il lnk-ast) (insert-arity-checks _) - (assemble-linklet _)) + (assemble-linklet _ out-str)) + + (call-with-output-file "js-build/modules/foo.js" + (λ (out) (display (get-output-string out-str) out));;(js-string-beautify (get-output-string out-str)) out)) + #:exists 'replace) (compile-linklet-imports lnk-ast)]) From d5fb1c315786af24db21870b9caa7dc44d07bd90 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 6 Jul 2022 16:03:08 -0400 Subject: [PATCH 046/170] more forms --- .../racketscript/compiler/runtime/kernel.rkt | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 500d3b87..099647e0 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1524,13 +1524,13 @@ ;; for #%paramz (define Paramz ($/require/* "./paramz.js")) -(define parameterization-key #js.Paramz.ParameterizationKey) -(define break-enabled-key #js.Paramz.BreakEnabledKey) -(define cache-configuration #js.Paramz.BreakEnabledKey) -(define extend-parameterization #js.Paramz.extendParameterization) -(define exception-handler-key #js.Paramz.ExceptionHandlerKey) -(define (check-for-break) ($/undefined)) -(define (reparameterize v) v) +(define+provide parameterization-key #js.Paramz.ParameterizationKey) +(define+provide break-enabled-key #js.Paramz.BreakEnabledKey) +(define+provide cache-configuration #js.Paramz.BreakEnabledKey) +(define+provide extend-parameterization #js.Paramz.extendParameterization) +(define+provide exception-handler-key #js.Paramz.ExceptionHandlerKey) +(define+provide (check-for-break) ($/undefined)) +(define+provide (reparameterize v) v) (define paramz-table (hash 'parameterization-key parameterization-key @@ -1545,6 +1545,13 @@ ;; ---------------------------------------------------------------------------- ;; Other random forms I need to include +;; based on Pycket's implementation of the same function at time of writing +(define+provide (sync/timeout timeout . evts) + (cond + [(number? timeout) #f] + [(procedure? timeout) (timeout)] + [else (throw (#js.Core.racketCoreError "sync/timeout doesn't support given timeout type"))])) + ;; TODO should probably be real but w/e (define+provide error-syntax->string-handler (make-parameter (v-λ (x n) "syntax"))) From b525f990f65776940487b1811c606ed2171ad625 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 6 Jul 2022 16:27:39 -0400 Subject: [PATCH 047/170] fprintf add forms and add kernel parameter --- .../racketscript/compiler/runtime/kernel.js | 9 +++++++-- .../racketscript/compiler/runtime/kernel.rkt | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.js b/racketscript-compiler/racketscript/compiler/runtime/kernel.js index f1f029d6..43338b6c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.js +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.js @@ -24,9 +24,10 @@ export function isImmutable(v) { const NO_ARG_FORM_RE = /^~[\s~n%]/; export function fprintf(isPrintAsExpression, out, form, ...args) { - // TODO: Missing forms: ~.[asv], ~e, ~c. + // TODO: Missing forms: ~e, ~c. + // TODO: Forms ~.[asv] implemented incorrectly but included in regex. // TODO: The ~whitespace form should match Unicode whitespace. - const regex = /~(?:[aAeEsSvVbBoOxX~n%]|\s+)/g; + const regex = /~\.?(?:[aAeEsSvVbBoOxX~n%]|\s+)/g; const formStr = form.toString(); let reExecResult; let currentMatchIndex = 0; @@ -56,6 +57,10 @@ export function fprintf(isPrintAsExpression, out, form, ...args) { prevIndex = reExecResult.index; lastMatch = reExecResult[0]; // eslint-disable-line prefer-destructuring if (/^~\s/.test(lastMatch)) continue; // eslint-disable-line no-continue + // TODO handle ~.[asv] properly, this is hack to save time -- check racket docs + if (lastMatch.charAt(1) === '.') { + lastMatch = lastMatch.charAt(0) + lastMatch.charAt(2); + } // eslint-disable-next-line default-case switch ( lastMatch.charAt(1) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 099647e0..71f9f216 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1556,6 +1556,8 @@ (define+provide error-syntax->string-handler (make-parameter (v-λ (x n) "syntax"))) +(define+provide error-print-source-location (make-parameter #t)) + ;;; THREADS ;;; ;; Return the thread descriptor for the current thread ;; Since JS isn't multithreaded, just return the same 'descriptor' From e2b92d11a1464e2c537b87e935f84d3895521373 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 6 Jul 2022 19:19:20 -0400 Subject: [PATCH 048/170] awful hack to get exceptions to work and print a stacktrace --- .../compiler/runtime/core/errors.js | 2 +- .../racketscript/compiler/runtime/kernel.js | 5 ++++ .../racketscript/compiler/runtime/kernel.rkt | 23 +++++++++++++++---- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/errors.js b/racketscript-compiler/racketscript/compiler/runtime/core/errors.js index ae6d6524..e98c05be 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/errors.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/errors.js @@ -15,7 +15,7 @@ function printError(out, msg, args) { } } -function makeError(name) { +export function makeError(name) { /** * The "(error msg v ...)" form. * Besides Racket values, also allows native strings. diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.js b/racketscript-compiler/racketscript/compiler/runtime/kernel.js index 43338b6c..6004a7fa 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.js +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.js @@ -1,5 +1,7 @@ import * as Core from './core.js'; import * as Paramz from './paramz.js'; +import { isStructInstance } from './core/struct.js'; +import { makeError } from './core/errors.js'; /* --------------------------------------------------------------------------*/ // Immutable @@ -161,6 +163,9 @@ export function error(firstArg, ...rest) { // (but less general, eg ignore prompt tag for now); // must be here to avoid circular dependency export function doraise(e) { + if (isStructInstance(e)) { + e = makeError('racketException')('a struct exception was rasied'); + } const markset = Core.Marks.getContinuationMarks(); const marks = Core.Marks.getMarks(markset, Paramz.ExceptionHandlerKey); if (marks.length === 0) { diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 71f9f216..880b2327 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1132,11 +1132,12 @@ (define+provide raise #js.Kernel.doraise) -(define+provide exn:fail? #js.Core.isErr) -(define+provide exn:fail:contract? #js.Core.isContractErr) -(define+provide exn:fail:contract:arity? #js.Core.isContractErr) -(define+provide (exn-message e) - (#js.Core.UString.makeMutable (#js.Core.errMsg e))) +;; TODO all of exception-handling may need to get re-implemented +;; (define+provide exn:fail? #js.Core.isErr) +;; (define+provide exn:fail:contract? #js.Core.isContractErr) +;; (define+provide exn:fail:contract:arity? #js.Core.isContractErr) +;; (define+provide (exn-message e) +;; (#js.Core.UString.makeMutable (#js.Core.errMsg e))) ;; -------------------------------------------------------------------------- ;; Ports + Writers @@ -1575,6 +1576,18 @@ (define+provide call-with-semaphore (v-λ (s f) #:unchecked #f)) +;; ---------------------------------------------------------------------------- +;; New Exception Support +(provide (struct-out exn) (struct-out exn:fail)) + +(struct exn (message continuation-marks) + #:extra-constructor-name make-exn + #:transparent) + +(struct exn:fail exn () + #:extra-constructor-name make-exn:fail + #:transparent) + ;; ---------------------------------------------------------------------------- (define+provide (primitive-table table-name) (cond From 9e6daa9ddf81716cb78d0bfc652bf9a1cb62913b Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 12 Jul 2022 12:50:34 -0400 Subject: [PATCH 049/170] fine --- .eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 535a1ebf..7e576f61 100644 --- a/.eslintrc +++ b/.eslintrc @@ -5,7 +5,7 @@ "sourceType": "module" }, "rules": { - "indent": ["error", 4], + "indent": ["error", 2], "import/extensions": ["error", "always"], "comma-dangle": ["error", "never"], "no-bitwise": 0, From da642e33ed8a87b7ca1706bb219f3eecd0004d4f Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 12 Jul 2022 13:20:26 -0400 Subject: [PATCH 050/170] expanding 5 worksgit add random.js! --- .../racketscript/compiler/runtime/kernel.rkt | 6 +++++ random.js | 26 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 880b2327..7c97c659 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1439,6 +1439,9 @@ (define+provide unsafe-undefined #js.Core.theUnsafeUndefined) +(define+provide (unsafe-start-atomic) (void)) +(define+provide (unsafe-end-atomic) (void)) + (define Core ($/require/* "./core.js")) (define-binop bitwise-or \|) @@ -1457,6 +1460,9 @@ (define-unsafe-fx-binop+provide unsafe-fxquotient /) (define-unsafe-fx-binop+provide unsafe-fxremainder %) +(define+provide (unsafe-fx< a b) + (binop < a b)) + ;; ---------------------------------------------------------------------------- ;; floating point forms for expander linklet diff --git a/random.js b/random.js index e4a941a1..6130f9e4 100644 --- a/random.js +++ b/random.js @@ -1,3 +1,25 @@ -import * as Everything from './foo.js'; +import * as Expander from './foo.js'; +import * as CORE from '../runtime/core.js'; -console.log(Everything.reval(5)); +const demoNamespace = Expander.make_namespace(); +const KERNEL_IMPORT = CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('quote'), + CORE.PrimitiveSymbol.make('#%kernel') +); + +const STX_KERNEL_IMPORT = CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('for-syntax'), + CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('quote'), + CORE.PrimitiveSymbol.make('#%kernel') + ) +); + +Expander.namespace_attach_module(Expander.current_namespace(), KERNEL_IMPORT, demoNamespace); + +Expander.namespace_require(KERNEL_IMPORT, demoNamespace); +Expander.namespace_require(STX_KERNEL_IMPORT, demoNamespace); + +const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, 5), demoNamespace); + +console.log(Expander.expand(stxObj, demoNamespace)); From 4c945dbe3aff439d4872b9014a47ac2c46761b3e Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 12 Jul 2022 14:58:29 -0400 Subject: [PATCH 051/170] I can compile 5+5 --- .../racketscript/compiler/runtime/kernel.rkt | 14 ++++++++++++++ random.js | 8 +++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 7c97c659..10829e31 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1442,6 +1442,20 @@ (define+provide (unsafe-start-atomic) (void)) (define+provide (unsafe-end-atomic) (void)) +(define+provide (unsafe-vector-ref v k) + (#js.v.ref k)) +(define+provide (unsafe-vector-length v) + (#js.v.length)) + +(define+provide (unsafe-struct*-cas! v k old-val new-val) + ;; FIXME correct error message + (when (or (< k 0) (>= k #js.v._desc.totalInitFields)) + (throw (#js.Core.racketContractError "arity mismatch in unsafe-struct*-cas!"))) + + (if (eq? old-val ($ #js.v._fields k)) + (begin (:= ($ #js.v._fields k) new-val) #t) + #f)) + (define Core ($/require/* "./core.js")) (define-binop bitwise-or \|) diff --git a/random.js b/random.js index 6130f9e4..00df61da 100644 --- a/random.js +++ b/random.js @@ -13,13 +13,15 @@ const STX_KERNEL_IMPORT = CORE.Pair.makeList( CORE.PrimitiveSymbol.make('quote'), CORE.PrimitiveSymbol.make('#%kernel') ) -); +) + +const SUM = CORE.Pair.makeList(CORE.PrimitiveSymbol.make('+'), 5, 5); Expander.namespace_attach_module(Expander.current_namespace(), KERNEL_IMPORT, demoNamespace); Expander.namespace_require(KERNEL_IMPORT, demoNamespace); Expander.namespace_require(STX_KERNEL_IMPORT, demoNamespace); -const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, 5), demoNamespace); +const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, SUM), demoNamespace); -console.log(Expander.expand(stxObj, demoNamespace)); +console.log(Expander.expand(stxObj, demoNamespace)._fields[0].tl); From f46a7e3e925e25677c0232781c0f5fa73109e321 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 12 Jul 2022 16:39:40 -0400 Subject: [PATCH 052/170] WIP bugs --- .../racketscript/compiler/runtime/core/linklet.js | 12 +++++++++--- .../racketscript/compiler/runtime/kernel.rkt | 13 +++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 6e7513b4..b96011ae 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -3,7 +3,8 @@ import { make as makeSym, check as isSym } from './primitive_symbol.js'; import { PrintablePrimitive } from './printable_primitive.js'; import { makeEq } from './hash.js'; import { toBytesUtf8 } from './unicode_string.js'; - +import { make as makeVector } from './vector.js'; +import { make as makeValues } from './values.js'; // TODO I should determine which of the 'props' (arguments to compile-linklet and recompile-linklet actually need to be saved // eslint-disable-next-line no-unused-vars @@ -72,8 +73,13 @@ class Linklet extends PrintablePrimitive { } } -export function makeLinklet(form, name) { - return new Linklet(form, name); +export function makeLinklet(form, name, importKeys) { + const newLinklet = new Linklet(form, name); + if (importKeys) { + return makeValues(newLinklet, makeVector([], true)); + } else { + return newLinklet; + } } export function checkLinklet(l) { diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 10829e31..be1eb7dc 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -524,8 +524,11 @@ (define+provide (hash-iterate-next h i) (#js.h.iterateNext i)) -(define+provide (hash-iterate-key h i) - (#js.h.iterateKey i)) +(define+provide hash-iterate-key + (case-lambda + [(h i) (#js.h.iterateKey i)] ;; FIXME spec says throw contract error if bad index, does that already happen? + [(h i bad-index-v) + (if #js.i.value (#js.h.iterateKey i) bad-index-v)])) ;; FIXME really dumb check, improve (define+provide (hash-iterate-value h i) (#js.h.iterateValue i)) @@ -1456,6 +1459,9 @@ (begin (:= ($ #js.v._fields k) new-val) #t) #f)) +(define+provide current-compile-target-machine + (make-parameter 'racketscript)) + (define Core ($/require/* "./core.js")) (define-binop bitwise-or \|) @@ -1477,6 +1483,9 @@ (define+provide (unsafe-fx< a b) (binop < a b)) +(define+provide (unsafe-fx= a b) + (binop === a b)) + ;; ---------------------------------------------------------------------------- ;; floating point forms for expander linklet From 2bff95919846b73ed0358f700d54e58788316530 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 12 Jul 2022 16:52:40 -0400 Subject: [PATCH 053/170] wip --- .../racketscript/compiler/runtime/core/linklet.js | 2 +- .../racketscript/compiler/runtime/kernel.rkt | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index b96011ae..bb6c5e6f 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -76,7 +76,7 @@ class Linklet extends PrintablePrimitive { export function makeLinklet(form, name, importKeys) { const newLinklet = new Linklet(form, name); if (importKeys) { - return makeValues(newLinklet, makeVector([], true)); + return makeValues([newLinklet, makeVector([], true)]); } else { return newLinklet; } diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index be1eb7dc..595aeeb3 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -286,6 +286,16 @@ (#js.map.apply *null* ($> (array lam) (concat lsts))) *null*)) +(define+provide (list-tail lst pos) + (let loop ([l lst] + [p pos]) + (cond + [( + + (if (<= pos 0) + lst + (loop (cdr list) (sub1 pos))))) + ;; ---------------------------------------------------------------------------- ;; Mutable Pairs From 2a0474061c0c9ff9c6843530457704b37d785b1d Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 13 Jul 2022 15:49:47 -0400 Subject: [PATCH 054/170] fix for backwards compatibility reasons --- .eslintrc | 2 +- random.js | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.eslintrc b/.eslintrc index 7e576f61..535a1ebf 100644 --- a/.eslintrc +++ b/.eslintrc @@ -5,7 +5,7 @@ "sourceType": "module" }, "rules": { - "indent": ["error", 2], + "indent": ["error", 4], "import/extensions": ["error", "always"], "comma-dangle": ["error", "never"], "no-bitwise": 0, diff --git a/random.js b/random.js index 00df61da..8d150b39 100644 --- a/random.js +++ b/random.js @@ -3,17 +3,17 @@ import * as CORE from '../runtime/core.js'; const demoNamespace = Expander.make_namespace(); const KERNEL_IMPORT = CORE.Pair.makeList( - CORE.PrimitiveSymbol.make('quote'), - CORE.PrimitiveSymbol.make('#%kernel') + CORE.PrimitiveSymbol.make('quote'), + CORE.PrimitiveSymbol.make('#%kernel') ); const STX_KERNEL_IMPORT = CORE.Pair.makeList( - CORE.PrimitiveSymbol.make('for-syntax'), - CORE.Pair.makeList( - CORE.PrimitiveSymbol.make('quote'), - CORE.PrimitiveSymbol.make('#%kernel') - ) -) + CORE.PrimitiveSymbol.make('for-syntax'), + CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('quote'), + CORE.PrimitiveSymbol.make('#%kernel') + ) +); const SUM = CORE.Pair.makeList(CORE.PrimitiveSymbol.make('+'), 5, 5); From e623b1406177d3faf81b7fd2c02ce159e493ad2d Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 13 Jul 2022 17:03:05 -0400 Subject: [PATCH 055/170] list-tail --- .../racketscript/compiler/runtime/kernel.rkt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 595aeeb3..40ea4b9d 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -286,15 +286,14 @@ (#js.map.apply *null* ($> (array lam) (concat lsts))) *null*)) +;; FIXME contract for pos being non-negative (define+provide (list-tail lst pos) (let loop ([l lst] [p pos]) (cond - [( - - (if (<= pos 0) - lst - (loop (cdr list) (sub1 pos))))) + [(<= p 0) l] + [(not (pair? p)) (throw (#js.Core.racketContractError "list-tail: index reaches a non-pair"))] + [else (loop (cdr l) (sub1 p))]))) ;; ---------------------------------------------------------------------------- ;; Mutable Pairs From a6610b5a2e3f6170162c1d0889d5122f05a1433a Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 13 Jul 2022 17:03:13 -0400 Subject: [PATCH 056/170] update runtime --- random.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/random.js b/random.js index 8d150b39..8f628b40 100644 --- a/random.js +++ b/random.js @@ -22,6 +22,8 @@ Expander.namespace_attach_module(Expander.current_namespace(), KERNEL_IMPORT, de Expander.namespace_require(KERNEL_IMPORT, demoNamespace); Expander.namespace_require(STX_KERNEL_IMPORT, demoNamespace); -const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, SUM), demoNamespace); +// const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, SUM), demoNamespace); -console.log(Expander.expand(stxObj, demoNamespace)._fields[0].tl); +// console.log(Expander.expand(stxObj, demoNamespace)._fields[0].tl); + +console.log(Expander.compile(Expander.datum__gt_syntax(false, 5), demoNamespace)); From 9ba69db9433ca2424efedd2bf6d6b350530c8552 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 14 Jul 2022 12:16:52 -0400 Subject: [PATCH 057/170] bugs for strings/printing? --- .../racketscript/compiler/runtime/core/linklet.js | 7 ++++--- .../racketscript/compiler/runtime/kernel.rkt | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index bb6c5e6f..000ae631 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -64,6 +64,7 @@ class Linklet extends PrintablePrimitive { // - I have no use for instances right now either, since I'm not producing linklets // that import stuff instantiate(_instances, target) { + console.log('ENTERING EVALUATION, WILL PROBABLY CRASH BECAUSE BAD PAYLOAD'); const res = eval(this.payload); if (target === undefined || target === false) { return makeInstance(this.name); @@ -76,10 +77,10 @@ class Linklet extends PrintablePrimitive { export function makeLinklet(form, name, importKeys) { const newLinklet = new Linklet(form, name); if (importKeys) { - return makeValues([newLinklet, makeVector([], true)]); - } else { - return newLinklet; + return makeValues([newLinklet, importKeys]); } + + return newLinklet; } export function checkLinklet(l) { diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 40ea4b9d..9215664c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -288,8 +288,12 @@ ;; FIXME contract for pos being non-negative (define+provide (list-tail lst pos) + (displayln "HELLO WORLD") (let loop ([l lst] [p pos]) + (displayln "looping") + (write l) + (write p) (cond [(<= p 0) l] [(not (pair? p)) (throw (#js.Core.racketContractError "list-tail: index reaches a non-pair"))] From 90bf05120c61b5cfa0cd1401d7ded3c112e03a21 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 19 Jul 2022 17:23:22 -0400 Subject: [PATCH 058/170] fix list-tail and printing for linklets --- .../racketscript/compiler/runtime/core/linklet.js | 4 ++++ .../racketscript/compiler/runtime/kernel.rkt | 6 +----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js index 000ae631..6bc31000 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/linklet.js @@ -95,6 +95,10 @@ class LinkletInstance extends PrintablePrimitive { this.mode = mode; this.m = m; } + + displayNativeString(out) { + out.consume('#'); + } } export function checkInstance(i) { diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 9215664c..77ea53f3 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -288,15 +288,11 @@ ;; FIXME contract for pos being non-negative (define+provide (list-tail lst pos) - (displayln "HELLO WORLD") (let loop ([l lst] [p pos]) - (displayln "looping") - (write l) - (write p) (cond [(<= p 0) l] - [(not (pair? p)) (throw (#js.Core.racketContractError "list-tail: index reaches a non-pair"))] + [(not (pair? l)) (throw (#js.Core.racketContractError "list-tail: index reaches a non-pair"))] [else (loop (cdr l) (sub1 p))]))) ;; ---------------------------------------------------------------------------- From 6b16867a172bc20c007337a6d18337af3d32c4e9 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 19 Jul 2022 17:26:52 -0400 Subject: [PATCH 059/170] update bootstrapper --- random.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/random.js b/random.js index 8f628b40..29fa8650 100644 --- a/random.js +++ b/random.js @@ -22,8 +22,14 @@ Expander.namespace_attach_module(Expander.current_namespace(), KERNEL_IMPORT, de Expander.namespace_require(KERNEL_IMPORT, demoNamespace); Expander.namespace_require(STX_KERNEL_IMPORT, demoNamespace); -// const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, SUM), demoNamespace); +const expandExpr = (e) => { + const stxObj = Expander.namespace_syntax_introduce(Expander.datum__gt_syntax(false, e), demoNamespace); + return Expander.expand(stxObj, demoNamespace); +}; -// console.log(Expander.expand(stxObj, demoNamespace)._fields[0].tl); +const compileExpr = (e) => { + expandExpr(e); + return Expander.compile(e, demoNamespace); +}; -console.log(Expander.compile(Expander.datum__gt_syntax(false, 5), demoNamespace)); +console.log(compileExpr(5)); From 09de7d3d3861f23e1b330a3890ee3afb13bdc4c4 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 21 Jul 2022 13:57:09 -0400 Subject: [PATCH 060/170] more forms --- .../racketscript/compiler/runtime/kernel.rkt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 77ea53f3..04ed16b1 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1414,6 +1414,7 @@ ;; TODO question: should I turn syntax-e into an exported function that wraps this? (define+provide (syntax-e v) (#js.v.get)) ;; FIXME this is definitely wrong, right? I guess I don't know how correlated actually works +;; this ONLY works for correlated syntax, which doesn't work (define+provide (syntax->datum v) (#js.v.get)) ;; FIXME other related runtime functions @@ -1614,6 +1615,9 @@ (define+provide call-with-semaphore (v-λ (s f) #:unchecked #f)) +;; Random vector things +(define+provide vector*-set! vector-set!) + ;; ---------------------------------------------------------------------------- ;; New Exception Support (provide (struct-out exn) (struct-out exn:fail)) From 146f58b46f0ef83659ac9961e5649b913efe820e Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 21 Jul 2022 13:57:31 -0400 Subject: [PATCH 061/170] update shim --- random.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/random.js b/random.js index 29fa8650..5f3c4a72 100644 --- a/random.js +++ b/random.js @@ -1,5 +1,6 @@ import * as Expander from './foo.js'; import * as CORE from '../runtime/core.js'; +import { displayln as print } from '../runtime/kernel.rkt.js'; const demoNamespace = Expander.make_namespace(); const KERNEL_IMPORT = CORE.Pair.makeList( @@ -17,6 +18,28 @@ const STX_KERNEL_IMPORT = CORE.Pair.makeList( const SUM = CORE.Pair.makeList(CORE.PrimitiveSymbol.make('+'), 5, 5); +const LET_EX = CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('let'), + CORE.Pair.makeList(CORE.Pair.makeList(CORE.PrimitiveSymbol.make('x'), 5)), + CORE.PrimitiveSymbol.make('x') +); + +const DEFINE_EX = CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('let'), + CORE.Pair.makeList(), + CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('define'), + CORE.PrimitiveSymbol.make('x'), + 5 + ), + CORE.Pair.makeList( + CORE.PrimitiveSymbol.make('set!'), + CORE.PrimitiveSymbol.make('x'), + 6 + ), + CORE.PrimitiveSymbol.make('x') +); + Expander.namespace_attach_module(Expander.current_namespace(), KERNEL_IMPORT, demoNamespace); Expander.namespace_require(KERNEL_IMPORT, demoNamespace); @@ -32,4 +55,4 @@ const compileExpr = (e) => { return Expander.compile(e, demoNamespace); }; -console.log(compileExpr(5)); +print(Expander.syntax__gt_datum(expandExpr(DEFINE_EX))); From c8224f94390dff7fc7d69f2ec4ff7f8b97fad828 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 21 Jul 2022 14:02:15 -0400 Subject: [PATCH 062/170] start linklet api --- .../racketscript/compiler/linklet-api.rkt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/linklet-api.rkt diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt new file mode 100644 index 00000000..30b52396 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -0,0 +1,7 @@ +#lang racket/base + +(struct linklet (ast)) + +(define (compile-linklet sexp) + (linklet (parse-linklet v))) + From 98ef6ba4f20c103cfb79a0f5d3e8f48bb5bb6619 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 21 Jul 2022 14:16:07 -0400 Subject: [PATCH 063/170] more decent start --- racketscript-compiler/racketscript/compiler/absyn.rkt | 2 +- .../racketscript/compiler/linklet-api.rkt | 8 ++++++-- .../racketscript/compiler/linklet-expand.rkt | 2 -- racketscript-compiler/racketscript/compiler/transform.rkt | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/absyn.rkt b/racketscript-compiler/racketscript/compiler/absyn.rkt index 8f70a50b..74889bca 100644 --- a/racketscript-compiler/racketscript/compiler/absyn.rkt +++ b/racketscript-compiler/racketscript/compiler/absyn.rkt @@ -5,7 +5,7 @@ (provide (all-defined-out)) -(struct Linklet ([path : Path] +(struct Linklet ([path : Path-String] ;; TODO eventually get rid of paths, need it for now [imports : (Listof (Listof (U Symbol (Listof Symbol))))] [exports : (Listof (U Symbol (Listof Symbol)))] [forms : (Listof GeneralTopLevelForm)]) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 30b52396..5fd59fbd 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -1,7 +1,11 @@ #lang racket/base -(struct linklet (ast)) +(require "absyn.rkt" + "linklet-expand.rkt") (define (compile-linklet sexp) - (linklet (parse-linklet v))) + (parse-linklet v "")) + +(define (linklet-import-variables lnk) + (Linklet-imports lnk)) diff --git a/racketscript-compiler/racketscript/compiler/linklet-expand.rkt b/racketscript-compiler/racketscript/compiler/linklet-expand.rkt index 6124e73b..3855daf2 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-expand.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-expand.rkt @@ -100,8 +100,6 @@ (error 'linklet-expand)])) - - (define (parse-linklet v path) (match v [`(linklet ,imports ,exports ,@body) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index df0d8893..da8351f0 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -55,7 +55,7 @@ (log-rjs-info "[linklet il]") (define imported-mod-path-list (cast (flatten imports) (Listof Symbol))) - (define requires* (absyn-requires->il imported-mod-path-list path)) + (define requires* (absyn-requires->il imported-mod-path-list (cast path Path))) ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map From 4f80b2256e14694e38bc79925526f7a7224709af Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 21 Jul 2022 17:28:32 -0400 Subject: [PATCH 064/170] rename identifier --- racketscript-compiler/racketscript/compiler/linklet-api.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 5fd59fbd..356d626c 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -4,7 +4,7 @@ "linklet-expand.rkt") (define (compile-linklet sexp) - (parse-linklet v "")) + (parse-linklet sexp "")) (define (linklet-import-variables lnk) (Linklet-imports lnk)) From 5985f5c707d977d78822840c7a4857dd2474f5a7 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 21 Jul 2022 22:58:59 -0400 Subject: [PATCH 065/170] new no-contract AST, WIP --- racketscript-compiler/racketscript/compiler/ast.rkt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/ast.rkt diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt new file mode 100644 index 00000000..7c7d4e26 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -0,0 +1,7 @@ +#lang racket/base + +(struct Linklet (imports exports forms) #:transparent) + +(struct DefineValues (ids expr)) + + From f2819a29ef4eab6f1a45fa04da92adaf3bdea924 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 22 Jul 2022 13:17:57 -0400 Subject: [PATCH 066/170] implement most of AST without contracts --- .../racketscript/compiler/ast.rkt | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 7c7d4e26..3649bf84 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -4,4 +4,76 @@ (struct DefineValues (ids expr)) +;; An Ident is one of: +;; - TopLevelIdent +;; - LinkletImportIdent +;; - LocalIdent +;; - ImportedIdent +;; TODO +;; should get rid of this, everything should be explicitly imported +;; via a linklet import or automatically associated with a primitive, +;; rather than the current hacky implementation of saying every variable +;; we can't identify is an import from #%kernel +;; +;; maybe use PrimitiveIdent? +(struct ImportedIdent (id src-mod reachable?) #:transparent) + +(struct TopLevelIdent (id) #:transparent) +(struct LinkletImportIdent (id) #:transparent) +(struct LocalIdent (id) #:transparent) + +;; TODO +;; Other variable forms that Pycket uses include: +;; - ModuleVar +;; - CellRef + +;; VariableRef or #%variable + +;; Expr + +;; a Binding is a (cons [Listof symbol?] Expr?) +;; a Formals is one of: +;; - symbol? +;; - [Listof symbol?] +;; - (cons [Listof symbol?] symbol?) + +;; (Quote datum?) +(struct Quote (datum) #:transparent) + +;; (Begin [Listof Expr?]) +(struct Begin (exprs) #:transparent) + +;; (Begin0 Expr? [Listof Expr?]) +(struct Begin0 (expr0 exprs) #:transparent) + +;; (App Expr? [Listof Expr?]) +(struct App (lam args) #:transparent) + +;; (Lambda [Formals? [Listof Expr?] bool?) +(struct Lambda (formals exprs unchecked?) #:transparent) + +;; (CaseLambda [Listof Lambda?]) +(struct CaseLambda (clauses) #:transparent) + +;; (If bool? Expr? Expr?) +(struct If (pred t-branch f-branch) #:transparent) + +;; (LetValues [Listof Binding?] [Listof Expr?]) +(struct LetValues (bindings body) #:transparent) + +;; (Set! Ident? Expr?) +(struct Set! (id expr) #:transparent) + +;; (WithContinuationMark Expr? Expr? Expr?) +(struct WithContinuationMark (key value result) #:transparent) + +;; (VarRef (or false? Ident?)) +(struct VarRef (id) #:transparent) + + + +;; JSRequire? +;; (JSRequire [alias : Symbol] +;; [path : (U Symbol Path-String)] +;; [mode : (U 'default '*)]) From c089775a7cf8bbc90ff67938b39e59de2fdd52d5 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 22 Jul 2022 13:20:35 -0400 Subject: [PATCH 067/170] clone linklet expander and start porting it --- .../racketscript/compiler/linklet-api.rkt | 2 +- .../racketscript/compiler/sexp-to-ast.rkt | 116 ++++++++++++++++++ 2 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 356d626c..6443f533 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -1,7 +1,7 @@ #lang racket/base (require "absyn.rkt" - "linklet-expand.rkt") + "sexp-to-ast.rkt") (define (compile-linklet sexp) (parse-linklet sexp "")) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt new file mode 100644 index 00000000..202face7 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -0,0 +1,116 @@ +#lang racket/base + +(require racket/match + racket/pretty + racket/hash + "ast.rkt") + +(provide parse-linklet) + +;; originally written by Sam Tobin-Hochstadt + +(define (formals->absyn formals) + (match formals + [_ #:when (symbol? formals) formals] + [_ #:when (list? formals) formals] + [(list-rest x ... y) (cons x y)])) +;; [(list-rest x ... y) #:when (null? x) y] +;; [(list-rest x ... y) #:when (null? y) x] +;; [(list-rest x ... y) (list x y)])) + +(define (formals->bindings formals) + (define (get-formals formals) + (match formals + [_ #:when (symbol? formals) (list formals)] + [_ #:when (list? formals) formals] + [(list-rest x ... y) (cons y x)])) + ;; [(list-rest x ... y) #:when (null? y) x] + ;; [(list-rest x ... y) (cons y x)])) + + (for/hash ([i (get-formals formals)]) + (values i 'lexical))) + +(define (to-absyn v bindings) + (define (t v [b bindings]) (to-absyn v b)) + (match v + [(or (? string?) (? number?) (? boolean?) (? bytes?)) (Quote v)] + [`(quote ,v) (Quote v)] ;; TODO do we not need to call to-absyn on v? + [`(begin0 ,e0 ,e1 ...) (Begin0 (t e0) (map t e1))] + [`(begin ,e ...) (map t e)] + [`(if ,e0 ,e1 ,e2) + (If (t e0) (t e1) (t e2))] + [`(let-values (,[list xs es] ...) ,b) + (define bindings* (hash-union bindings + (for*/hash ([x xs] [i x]) (values i 'lexical)))) + (LetValues (for/list ([x xs] [e es]) + (cons x (t e))) + (list (t b bindings*)))] + [`(letrec-values (,[list xs es] ...) ,b) + (define bindings* (hash-union bindings + (for*/hash ([x xs] [i x]) (values i 'lexical)))) + (LetValues (for/list ([x xs] [e es]) + (cons x (t e bindings*))) + (list (t b bindings*)))] + [`(case-lambda . ,clauses) + (CaseLambda + (map (λ (c) + (match c + ;; TODO in regular to-absyn, the structure is different + [(list formals body) + (PlainLambda (formals->absyn formals) + (list (t body (hash-union bindings (formals->bindings formals)))) + #f)])) + clauses))] + [`(lambda ,formals ,body) + (define fabsyn (formals->absyn formals)) + (PlainLambda fabsyn (list (t body (hash-union bindings (formals->bindings formals)))) #f)] + [`(define-values (,name) (#%js-ffi 'require (quote ,mod))) + ;; HACK: Special case for JSRequire + (JSRequire name mod 'default)] + [`(define-values (,name) (#%js-ffi 'require '* (quote ,mod))) + ;; HACK: Special case for JSRequire + (JSRequire name mod '*)] + [`(define-values (,id ...) ,b) + (DefineValues id (t b))] + [`(#%variable-reference ,x) (VarRef x)] + [`(#%variable-reference) (VarRef #f)] + [(? symbol? i) + #:when (eq? 'define (hash-ref bindings i #f)) + (TopLevelIdent i)] + [(? symbol? i) + #:when (number? (hash-ref bindings i #f)) + (LinkletImportIdent i (hash-ref bindings i))] + [(? symbol? i) + #:when (eq? 'lexical (hash-ref bindings i #f)) + (LocalIdent i)] + [(? symbol? i) + ;; FIXME not really always '#%kernel + (ImportedIdent i '#%kernel #t)] + [`(set! ,s ,e) + (Set! s (t e))] + [`(with-continuation-mark ,key ,value ,result) + (WithContinuationMark (t key) + (t value) + (t result))] + ;; application + [`(,rator . ,rands) + (PlainApp (t rator) (map t rands))] + [_ (displayln "unsupported form =>") + (pretty-print v) + (error 'linklet-expand)])) + + +(define (parse-linklet v path) + (match v + [`(linklet ,imports ,exports ,@body) + (define imps (for*/hash ([(j import) (in-indexed imports)] + [i import]) + (values i j))) + (define defs (make-hash)) + (for ([b body]) + (match b + [`(define-values ,is ,_) + (for ([i is]) (hash-set! defs i 'define))] + [_ (void)])) + (Linklet path (cons (list '#%kernel) imports) exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) + From b6d864d027081fcbd67d5a9ee386f21490945100 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 26 Jul 2022 13:09:29 -0400 Subject: [PATCH 068/170] export forms --- racketscript-compiler/racketscript/compiler/linklet-api.rkt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 356d626c..76bac814 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -3,6 +3,8 @@ (require "absyn.rkt" "linklet-expand.rkt") +(provide (all-defined-out)) + (define (compile-linklet sexp) (parse-linklet sexp "")) From b3038cae31b14f0e18af53ddfc2861da703a2d99 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 26 Jul 2022 13:18:58 -0400 Subject: [PATCH 069/170] get rid of dependency on absyn.rkt --- .../racketscript/compiler/ast.rkt | 10 ++++------ .../racketscript/compiler/sexp-to-ast.rkt | 15 +++++---------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 3649bf84..8773730b 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -1,5 +1,7 @@ #lang racket/base +(provide (all-defined-out)) + (struct Linklet (imports exports forms) #:transparent) (struct DefineValues (ids expr)) @@ -71,9 +73,5 @@ ;; (VarRef (or false? Ident?)) (struct VarRef (id) #:transparent) - - -;; JSRequire? -;; (JSRequire [alias : Symbol] -;; [path : (U Symbol Path-String)] -;; [mode : (U 'default '*)]) +;; (JSRequire symbol? (or symbol? path-string?) (or 'default '*)) +(struct JSRequire (alias path mode) #:transparent) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index 202face7..df6c00aa 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -14,9 +14,6 @@ [_ #:when (symbol? formals) formals] [_ #:when (list? formals) formals] [(list-rest x ... y) (cons x y)])) -;; [(list-rest x ... y) #:when (null? x) y] -;; [(list-rest x ... y) #:when (null? y) x] -;; [(list-rest x ... y) (list x y)])) (define (formals->bindings formals) (define (get-formals formals) @@ -24,8 +21,6 @@ [_ #:when (symbol? formals) (list formals)] [_ #:when (list? formals) formals] [(list-rest x ... y) (cons y x)])) - ;; [(list-rest x ... y) #:when (null? y) x] - ;; [(list-rest x ... y) (cons y x)])) (for/hash ([i (get-formals formals)]) (values i 'lexical))) @@ -57,13 +52,13 @@ (match c ;; TODO in regular to-absyn, the structure is different [(list formals body) - (PlainLambda (formals->absyn formals) - (list (t body (hash-union bindings (formals->bindings formals)))) - #f)])) + (Lambda (formals->absyn formals) + (list (t body (hash-union bindings (formals->bindings formals)))) + #f)])) clauses))] [`(lambda ,formals ,body) (define fabsyn (formals->absyn formals)) - (PlainLambda fabsyn (list (t body (hash-union bindings (formals->bindings formals)))) #f)] + (Lambda fabsyn (list (t body (hash-union bindings (formals->bindings formals)))) #f)] [`(define-values (,name) (#%js-ffi 'require (quote ,mod))) ;; HACK: Special case for JSRequire (JSRequire name mod 'default)] @@ -94,7 +89,7 @@ (t result))] ;; application [`(,rator . ,rands) - (PlainApp (t rator) (map t rands))] + (App (t rator) (map t rands))] [_ (displayln "unsupported form =>") (pretty-print v) (error 'linklet-expand)])) From bae48bc8351515d38d93c1d6aff055a993eb5e39 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 26 Jul 2022 13:39:49 -0400 Subject: [PATCH 070/170] update some imports/exports --- racketscript-compiler/racketscript/compiler/linklet-api.rkt | 2 +- racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 30387c26..b871b311 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -1,6 +1,6 @@ #lang racket/base -(require "absyn.rkt" +(require "ast.rkt" "sexp-to-ast.rkt") (provide (all-defined-out)) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index df6c00aa..27ba4d54 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -1,7 +1,6 @@ #lang racket/base (require racket/match - racket/pretty racket/hash "ast.rkt") @@ -91,7 +90,7 @@ [`(,rator . ,rands) (App (t rator) (map t rands))] [_ (displayln "unsupported form =>") - (pretty-print v) + (displayln v) (error 'linklet-expand)])) From 70d3f4d7a54513ac0e1930cc7d512e4da77e1685 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 27 Jul 2022 16:46:30 -0400 Subject: [PATCH 071/170] WIP --- racketscript-compiler/racketscript/compiler/ast.rkt | 3 ++- .../racketscript/compiler/sexp-to-ast.rkt | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 8773730b..b1d7b97e 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -2,7 +2,8 @@ (provide (all-defined-out)) -(struct Linklet (imports exports forms) #:transparent) +;; TODO path should get eliminated once things are bootstrapped (or perhaps just before) +(struct Linklet (path imports exports forms) #:transparent) (struct DefineValues (ids expr)) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index 27ba4d54..4bc53dd8 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -1,11 +1,17 @@ #lang racket/base (require racket/match - racket/hash "ast.rkt") (provide parse-linklet) +(define (hash-union h1 h2) + (for/fold ([res h1]) + ([(k v) (in-hash h2)]) + (if (hash-has-key? res k) + (error 'hash-union) + (hash-set res k v)))) + ;; originally written by Sam Tobin-Hochstadt (define (formals->absyn formals) From 2d44a2895c730cc9843d2261675064bb41c83cfd Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 29 Jul 2022 10:34:36 -0400 Subject: [PATCH 072/170] add basic s-expression pattern matcher based on schemify's --- .../racketscript/compiler/match.rkt | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/match.rkt diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt new file mode 100644 index 00000000..e14e588f --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -0,0 +1,125 @@ +#lang racket/base + +(require (for-syntax racket/base)) + +;; based on the pattern matcher in schemify + +(provide match) + +(define-for-syntax (extract-pattern-variables pattern) + (syntax-case pattern (unquote) + [(unquote bind-id) + (if (free-identifier=? #'bind-id #'_) + null + (list #'bind-id))] + [(p1 . p2) (append (extract-pattern-variables #'p1) + (extract-pattern-variables #'p2))] + [else null])) + +;; TODO the original implementation uses `wrap-list?` and the other `wrap?` functions, +;; for now I'm not using them, but if it becomes relevant I'll reintroduce them. +;; They seem to be primarily for correlated objects +(define-for-syntax (check-one id pattern head-id) + (define (check-one/expr e pattern) + (syntax-case pattern (unquote) + [(unquote bind-id) #`#t] + [_ #`(let ([a #,e]) + #,(check-one #'a pattern #f))])) + (syntax-case pattern (unquote) + [(unquote bind-id) #`#t] + [(pat ellipses) + (and (identifier? #'ellipses) + (free-identifier=? #'ellipses (quote-syntax ...))) + (if (syntax-case #'pat (unquote) + [(unquote bind-id) #t] + [_ #f]) + #`(list? #,id) + #`(and (list? #,id) + (for/and ([v (in-list #,id)]) + #,(check-one #'v #'pat #f))))] + [(m-id . p2) + (and head-id (identifier? #'m-id)) + #`(and (eq? 'm-id #,head-id) + #,(check-one/expr #`(cdr #,id) #'p2))] + [(p1 . p2) + #`(let ([p #,id]) + (and (pair? p) + #,(check-one/expr #'(car p) #'p1) + #,(check-one/expr #'(cdr p) #'p2)))] + [_ + (if (or (identifier? pattern) + (let ([v (syntax-e pattern)]) + (or (keyword? v) + (boolean? v) + (null? v)))) + #`(eq? (quote #,pattern) #,id) + #`(equal? (quote #,pattern) #,id))])) + +(define-for-syntax (extract-one id pattern) + (syntax-case pattern (unquote) + [(unquote bind-id) + (if (free-identifier=? #'bind-id #'_) + #'(values) + id)] + [(pat ellipses) + (and (identifier? #'ellipses) + (free-identifier=? #'ellipses (quote-syntax ...))) + (syntax-case #'pat (unquote) + [(unquote bind-id) + (if (free-identifier=? #'bind-id #'_) + #'(values) + #`(list #,id))] + [_ + (with-syntax ([pat-ids (extract-pattern-variables #'pat)]) + #`(for/lists pat-ids ([v (in-list #,id)]) + #,(extract-one #'v #'pat)))])] + [(p1 . p2) + (let ([ids1 (extract-pattern-variables #'p1)] + [ids2 (extract-pattern-variables #'p2)]) + (cond + [(and (null? ids1) (null? ids2)) + #'(values)] + [(null? ids1) + #`(let ([d (cdr #,id)]) + #,(extract-one #'d #'p2))] + [(null? ids2) + #`(let ([a (car #,id)]) + #,(extract-one #'a #'p1))] + [else + #`(let ([p #,id]) + (let-values ([#,ids1 (let ([a (car p)]) + #,(extract-one #'a #'p1))] + [#,ids2 (let ([d (cdr p)]) + #,(extract-one #'d #'p2))]) + (values #,@ids1 #,@ids2)))]))] + [_ + #'(values)])) + +(define-syntax (match stx) + (syntax-case stx (quasiquote) + [(_ expr [`pattern body0 body ...] ...) + #`(let ([v expr]) + #,(let ([patterns (syntax->list #'(pattern ...))]) + (define (build-matches head-id) + (let loop ([patterns patterns] + [bodys (syntax->list #'((body0 body ...) ...))]) + (cond + [(null? patterns) + #'(error 'match "failed ~e" v)] + [else + (define ids (extract-pattern-variables (car patterns))) + (define match? (check-one #'v (car patterns) head-id)) + #`(if #,match? + (let-values ([#,ids #,(extract-one #'v (car patterns))]) + . #,(car bodys)) + #,(loop (cdr patterns) (cdr bodys)))]))) + + ;; If the first pattern is `( ....)`, then + ;; extract the input head symbol, because we're + ;; likely to want to check it for many pattern cases + (syntax-case (and (pair? patterns) (car patterns)) () + [(id . _) + (identifier? #'id) + #`(let ([hd (and (pair? v) (car v))]) + #,(build-matches #'hd))] + [_ (build-matches #f)])))])) From 969fe8a60be78713b3281dfa130bd31de8840b33 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 29 Jul 2022 13:33:12 -0400 Subject: [PATCH 073/170] update matcher --- .../racketscript/compiler/match.rkt | 44 +++++++++++++------ .../racketscript/compiler/sexp-to-ast.rkt | 4 +- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index e14e588f..f08a7833 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -2,12 +2,14 @@ (require (for-syntax racket/base)) -;; based on the pattern matcher in schemify - (provide match) +;; Borrowed and slightly modified from `schemify` + (define-for-syntax (extract-pattern-variables pattern) - (syntax-case pattern (unquote) + (syntax-case pattern (unquote ?) + [(unquote (? pred?)) + null] [(unquote bind-id) (if (free-identifier=? #'bind-id #'_) null @@ -16,16 +18,15 @@ (extract-pattern-variables #'p2))] [else null])) -;; TODO the original implementation uses `wrap-list?` and the other `wrap?` functions, -;; for now I'm not using them, but if it becomes relevant I'll reintroduce them. -;; They seem to be primarily for correlated objects (define-for-syntax (check-one id pattern head-id) (define (check-one/expr e pattern) (syntax-case pattern (unquote) [(unquote bind-id) #`#t] [_ #`(let ([a #,e]) #,(check-one #'a pattern #f))])) - (syntax-case pattern (unquote) + (syntax-case pattern (unquote ?) + [(unquote (? pred?)) + #`(pred? #,id)] [(unquote bind-id) #`#t] [(pat ellipses) (and (identifier? #'ellipses) @@ -56,7 +57,9 @@ #`(equal? (quote #,pattern) #,id))])) (define-for-syntax (extract-one id pattern) - (syntax-case pattern (unquote) + (syntax-case pattern (unquote ?) + [(unquote (? pred?)) + #`(values)] [(unquote bind-id) (if (free-identifier=? #'bind-id #'_) #'(values) @@ -68,7 +71,7 @@ [(unquote bind-id) (if (free-identifier=? #'bind-id #'_) #'(values) - #`(list #,id))] + #`(unlist #,id))] [_ (with-syntax ([pat-ids (extract-pattern-variables #'pat)]) #`(for/lists pat-ids ([v (in-list #,id)]) @@ -95,6 +98,18 @@ [_ #'(values)])) +(define-for-syntax (extract-guard body) + (syntax-case body () + [(#:when guard-expr . body) + #'guard-expr] + [_ #f])) + +(define-for-syntax (remove-guard body) + (syntax-case body () + [(#:when guard-expr . body) + #'body] + [_ body])) + (define-syntax (match stx) (syntax-case stx (quasiquote) [(_ expr [`pattern body0 body ...] ...) @@ -109,17 +124,20 @@ [else (define ids (extract-pattern-variables (car patterns))) (define match? (check-one #'v (car patterns) head-id)) - #`(if #,match? + (define guard (extract-guard (car bodys))) + #`(if #,(if guard + #`(and #,match? #,guard) + match?) (let-values ([#,ids #,(extract-one #'v (car patterns))]) - . #,(car bodys)) + . #,(remove-guard (car bodys))) #,(loop (cdr patterns) (cdr bodys)))]))) - ;; If the first pattern is `( ....)`, then ;; extract the input head symbol, because we're ;; likely to want to check it for many pattern cases (syntax-case (and (pair? patterns) (car patterns)) () [(id . _) (identifier? #'id) - #`(let ([hd (and (pair? v) (car v))]) + #`(let ([hd (let ([p v]) + (and (pair? p) (car p)))]) #,(build-matches #'hd))] [_ (build-matches #f)])))])) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index 4bc53dd8..3e73efc9 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -1,6 +1,6 @@ #lang racket/base -(require racket/match +(require "match.rkt" "ast.rkt") (provide parse-linklet) @@ -16,6 +16,8 @@ (define (formals->absyn formals) (match formals + + [_ #:when (symbol? formals) formals] [_ #:when (list? formals) formals] [(list-rest x ... y) (cons x y)])) From febc305c337f779cb54cd85fc0c8ab707b34da01 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 29 Jul 2022 14:00:08 -0400 Subject: [PATCH 074/170] use new match construct --- .../racketscript/compiler/match.rkt | 2 +- .../racketscript/compiler/sexp-to-ast.rkt | 78 +++++++++++-------- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index f08a7833..b3e4d0b8 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -71,7 +71,7 @@ [(unquote bind-id) (if (free-identifier=? #'bind-id #'_) #'(values) - #`(unlist #,id))] + id)] [_ (with-syntax ([pat-ids (extract-pattern-variables #'pat)]) #`(for/lists pat-ids ([v (in-list #,id)]) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index 3e73efc9..17d0fbd2 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -15,19 +15,37 @@ ;; originally written by Sam Tobin-Hochstadt (define (formals->absyn formals) - (match formals - - - [_ #:when (symbol? formals) formals] - [_ #:when (list? formals) formals] - [(list-rest x ... y) (cons x y)])) + (cond + [(or (symbol? formals) (list? formals)) + formals] + [(pair? formals) + (let loop ([rev-elms '()] + [rem formals]) + (if (pair? rem) + (loop (cons (car rem) rev-elms) + (cdr rem)) + (cons (reverse rev-elms) rem)))])) + ;; (match formals + ;; [`,_ #:when (symbol? formals) formals] + ;; [`,_ #:when (list? formals) formals] + ;; [(list-rest x ... y) (cons x y)])) (define (formals->bindings formals) (define (get-formals formals) - (match formals - [_ #:when (symbol? formals) (list formals)] - [_ #:when (list? formals) formals] - [(list-rest x ... y) (cons y x)])) + (cond + [(symbol? formals) (list formals)] + [(list? formals) formals] + [(pair? formals) + (let loop ([rev-elms '()] + [rem formals]) + (if (pair? rem) + (loop (cons (car rem) rev-elms) + (cdr rem)) + (cons rem (reverse rev-elms))))])) + ;; (match formals + ;; [_ #:when (symbol? formals) (list formals)] + ;; [_ #:when (list? formals) formals] + ;; [(list-rest x ... y) (cons y x)])) (for/hash ([i (get-formals formals)]) (values i 'lexical))) @@ -35,19 +53,19 @@ (define (to-absyn v bindings) (define (t v [b bindings]) (to-absyn v b)) (match v - [(or (? string?) (? number?) (? boolean?) (? bytes?)) (Quote v)] + [`,_ #:when (or (string? v) (number? v) (boolean? v) (bytes? v)) (Quote v)] [`(quote ,v) (Quote v)] ;; TODO do we not need to call to-absyn on v? [`(begin0 ,e0 ,e1 ...) (Begin0 (t e0) (map t e1))] [`(begin ,e ...) (map t e)] [`(if ,e0 ,e1 ,e2) (If (t e0) (t e1) (t e2))] - [`(let-values (,[list xs es] ...) ,b) + [`(let-values ([,xs ,es] ...) ,b) (define bindings* (hash-union bindings (for*/hash ([x xs] [i x]) (values i 'lexical)))) (LetValues (for/list ([x xs] [e es]) (cons x (t e))) (list (t b bindings*)))] - [`(letrec-values (,[list xs es] ...) ,b) + [`(letrec-values ([,xs ,es] ...) ,b) (define bindings* (hash-union bindings (for*/hash ([x xs] [i x]) (values i 'lexical)))) (LetValues (for/list ([x xs] [e es]) @@ -58,7 +76,7 @@ (map (λ (c) (match c ;; TODO in regular to-absyn, the structure is different - [(list formals body) + [`(,formals ,body) (Lambda (formals->absyn formals) (list (t body (hash-union bindings (formals->bindings formals)))) #f)])) @@ -76,18 +94,16 @@ (DefineValues id (t b))] [`(#%variable-reference ,x) (VarRef x)] [`(#%variable-reference) (VarRef #f)] - [(? symbol? i) - #:when (eq? 'define (hash-ref bindings i #f)) - (TopLevelIdent i)] - [(? symbol? i) - #:when (number? (hash-ref bindings i #f)) - (LinkletImportIdent i (hash-ref bindings i))] - [(? symbol? i) - #:when (eq? 'lexical (hash-ref bindings i #f)) - (LocalIdent i)] - [(? symbol? i) - ;; FIXME not really always '#%kernel - (ImportedIdent i '#%kernel #t)] + [`,_ #:when (symbol? v) + (cond + [(eq? 'define (hash-ref bindings v #f)) + (TopLevelIdent v)] + [(number? (hash-ref bindings v #f)) + (LinkletImportIdent v (hash-ref bindings v))] + [(eq? 'lexical (hash-ref bindings v #f)) + (LocalIdent v)] + ;; FIXME not really always '#%kernel + [else (ImportedIdent v '#%kernel #t)])] [`(set! ,s ,e) (Set! s (t e))] [`(with-continuation-mark ,key ,value ,result) @@ -97,14 +113,14 @@ ;; application [`(,rator . ,rands) (App (t rator) (map t rands))] - [_ (displayln "unsupported form =>") - (displayln v) - (error 'linklet-expand)])) + [`,_ (displayln "unsupported form =>") + (displayln v) + (error 'linklet-expand)])) (define (parse-linklet v path) (match v - [`(linklet ,imports ,exports ,@body) + [`(linklet ,imports ,exports . ,body) (define imps (for*/hash ([(j import) (in-indexed imports)] [i import]) (values i j))) @@ -113,6 +129,6 @@ (match b [`(define-values ,is ,_) (for ([i is]) (hash-set! defs i 'define))] - [_ (void)])) + [`,_ (void)])) (Linklet path (cons (list '#%kernel) imports) exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) From 9c3244a378a06c0ef70b32aae77a02d3fbb72370 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 29 Jul 2022 14:03:00 -0400 Subject: [PATCH 075/170] check success --- runner.rkt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 runner.rkt diff --git a/runner.rkt b/runner.rkt new file mode 100644 index 00000000..f3256fac --- /dev/null +++ b/runner.rkt @@ -0,0 +1,7 @@ +#lang racket + +(require "racketscript-compiler/racketscript/compiler/linklet-api.rkt") + +(let ([lnk-sexp (read (open-input-file "expander.rktl"))]) + (compile-linklet lnk-sexp)) + From 7e564fb265781559e3e2fafb2d1fd5d9720dbdc0 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 29 Jul 2022 15:36:11 -0400 Subject: [PATCH 076/170] really dumb struct-match form --- .../racketscript/compiler/struct-match.rkt | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/struct-match.rkt diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt new file mode 100644 index 00000000..0eccfca9 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -0,0 +1,42 @@ +#lang racket/base + +(require (for-syntax racket/base)) + +(provide struct-match) + +(define-for-syntax (pat-pred pat) + (let ([sym (car (syntax->datum pat))]) + (string->symbol + (string-append (symbol->string sym) "?")))) + +(define-for-syntax (pat-length pat) + (length (syntax->datum pat))) + +(define-for-syntax (pat-ids pat) + (cdr (syntax-e pat))) + +(define-syntax (struct-match stx) + (syntax-case stx () + [(_ expr [pattern body0 body ...] ...) + #`(let ([v expr]) + (if (struct? v) + #,(let ([patterns (syntax->list #'(pattern ...))]) + (let loop ([patterns patterns] + [bodys (syntax->list #'((body0 body ...) ...))]) + (cond + [(null? patterns) + #'(error 'match "failed ~e" v)] + [else + #`(let* ([vec-v (struct->vector v)]) ;; TODO maybe don't need vector if using pat-pred crap + (cond + [(and (#,(pat-pred (car patterns)) v) + (not (= (vector-length vec-v) #,(pat-length (car patterns))))) + ;; TODO make better, want to blow up if pattern doesn't correspond to real struct + (error 'match "head pattern wrong size")] + [(and (#,(pat-pred (car patterns)) v) + (= (vector-length vec-v) #,(pat-length (car patterns)))) + (let-values ([#,(pat-ids (car patterns)) (vector->values vec-v 1)]) + . #,(car bodys))] + [else + #,(loop (cdr patterns) (cdr bodys))]))]))) + (error 'match "~e not a struct" v)))])) From 680f7c0a2f5f2fdb49eb6a2c2f614a8b2c7c03ba Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 29 Jul 2022 15:40:17 -0400 Subject: [PATCH 077/170] define in-line definition form --- .../racketscript/compiler/struct-match.rkt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 0eccfca9..5542dae8 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -2,7 +2,7 @@ (require (for-syntax racket/base)) -(provide struct-match) +(provide struct-match struct-match-define) (define-for-syntax (pat-pred pat) (let ([sym (car (syntax->datum pat))]) @@ -40,3 +40,11 @@ [else #,(loop (cdr patterns) (cdr bodys))]))]))) (error 'match "~e not a struct" v)))])) + +(define-syntax (struct-match-define stx) + (syntax-case stx () + [(_ pat expr) + #`(define-values #,(pat-ids #'pat) + (let ([v expr]) + (struct-match v + [pat (values . #,(pat-ids #'pat))])))])) From 14d626a49baced5f19ba0321fe50f75deb1b3283 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sat, 30 Jul 2022 11:36:37 -0400 Subject: [PATCH 078/170] type-less struct forms WIP --- .../racketscript/compiler/ir.rkt | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/ir.rkt diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt new file mode 100644 index 00000000..73913e0a --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -0,0 +1,66 @@ +#lang racket/base + +(provide (all-defined-out)) + +;; (ILLinklet [Listof ILRequire?] [Listof ILProvide?] [Listof ILStatement?]) +(struct ILLinklet (imports exports body) #:transparent) + +;; (ILRequire [Maybe path-string?] symbol? [or 'default '*]) +(struct ILRequire (mod name import-mode) #:transparent) + +;; TODO purpose unclear? +(struct IfClause (pred body) #:transparent) + +;; ILExpr is one of the following, along with symbol?: + +;; (ILLambda [or Formals? ILCheckedFormals?] [Listof ILStatement?]) +(struct ILLambda (args body) #:transparent) + +;; (ILBinaryOp symbol? [Listof ILExpr?]) +(struct ILBinaryOp (operator args) #:transparent) + +;; (ILApp ILExpr? [Listof ILExpr?]) +(struct ILApp (lam args) #:transparent) + +;; (ILArray [Listof ILExpr?]) +(struct ILArray (items) #:transparent) + +;; (ILObject [Listof (cons (or string? symbol?) ILExpr?)]) +(struct ILObject (items) #:transparent) + +;; (ILRef ILExpr? symbol?) +(struct ILRef (expr fieldname) #:transparent) + +;; (ILIndex? ILExpr? ILExpr?) +(struct ILIndex (expr fieldexpr) #:transparent) + +;; (ILValue any?) +(struct ILValue (v) #:transparent) + +;; (ILNew [or (or sumbol? ILRef? ILIndex?) ILApp?]) +(struct ILNew (v) #:transparent) + +;; (ILInstanceof ILExpr? ILExpr?) +(struct ILInstanceof (expr type) #:transparent) + +;; (ILTypeof ILExpr?) +(struct ILTypeof (expr) #:transparent) + +(struct ILNull () #:transparent) + +(struct ILUndefined () #:transparent) + +(struct ILArguments () #:transparent) + +(struct ILThis () #:transparent) + +;; an ILStatement is one of (along with ILExpr): + +;; (ILVarDec symbol? [Maybe ILExpr?]) +(struct ILVarDec (id expr) #:transparent) + +;; (ILLetDec symbol? [Maybe ILExpr?]) +(struct ILLetDec (id expr) #:transparent) + +;; (ILIf ILExpr? [Listof ILStatement?] [Listof ILStatement?]) +(struct ILIf (pred t-branch f-branch) #:transparent) From fe345332d46d5f4efee69bedeaf3a1ed6d351f5c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Sat, 30 Jul 2022 11:36:51 -0400 Subject: [PATCH 079/170] transform pass WIP --- .../racketscript/compiler/transform-old.rkt | 1227 +++++++++++++++++ .../racketscript/compiler/transform.rkt | 8 +- 2 files changed, 1231 insertions(+), 4 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/transform-old.rkt diff --git a/racketscript-compiler/racketscript/compiler/transform-old.rkt b/racketscript-compiler/racketscript/compiler/transform-old.rkt new file mode 100644 index 00000000..95f9fb18 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/transform-old.rkt @@ -0,0 +1,1227 @@ +#lang typed/racket/base + +;;; Generate IL code from abstract syntax. Each binding name +;;; in assumed to be fresh, to enforce lexical scope rules of Racket + +(require racket/bool + racket/format + racket/list + racket/match + racket/set + threading + "absyn.rkt" + "config.rkt" + "environment.rkt" + "il-analyze.rkt" + "il.rkt" + "logging.rkt" + "util.rkt" + "struct-match.rkt") + +(require/typed racket/syntax + [format-symbol (-> String Any * Symbol)]) + +(require/typed version/utils + [version<=? (-> String String Boolean)]) + +(provide absyn-top-level->il + absyn-gtl-form->il + absyn-expr->il + absyn-module->il + absyn-linklet->il) + +(define-type-alias ModuleObjectNameMap (HashTable (U Path Symbol) + Symbol)) + +(: module-object-name-map (Parameter ModuleObjectNameMap)) +(define module-object-name-map + (make-parameter ((inst hash (U Path Symbol) Symbol)))) + + +(: absyn-top-level->il (-> TopLevelForm ILStatement*)) +(define (absyn-top-level->il form) + (cond + [(Module? form) (error 'absyn-top-level->il + "Not supported. Todo.")] + [(Expr? form) + (define-values (stmt v) (absyn-expr->il form #f)) + (append1 stmt v)] + [(Begin? form) (absyn-expr->il form #f)] + [else (error "only modules supported at top level")])) + +;; FIXME I do ZERO handling of javascript forms +(: absyn-linklet->il (-> Linklet ILLinklet)) +(define (absyn-linklet->il lnk) + (match-define (Linklet path imports exports forms) lnk) + (log-rjs-info "[linklet il]") + + (define imported-mod-path-list (cast (flatten imports) (Listof Symbol))) + (define requires* (absyn-requires->il imported-mod-path-list (cast path Path))) + + ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information + ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map + + (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) + (ILLinklet + (filter ILRequire? requires*) + (absyn-exports->il exports) + (append-map absyn-gtl-form->il forms)))) + +(: make-module-map (-> (Listof (Option ILRequire)) (Listof (U Path Symbol)) ModuleObjectNameMap)) ;; TODO need type aliases +(define (make-module-map reqs imported-paths) + (for/fold ([acc (module-object-name-map)]) + ([req reqs] + [mod-path imported-paths]) + (if (ILRequire? req) + (hash-set acc + mod-path + (ILRequire-name req)) + acc))) + +(: absyn-exports->il (-> (Listof (U Symbol (Listof Symbol))) ILProvide*)) +(define (absyn-exports->il exports) + (for/list ([ex exports]) + (cond + [(symbol? ex) (SimpleProvide ex)] + [(list? ex) (RenamedProvide (car ex) (cadr ex))] + [else (error 'exports->il "unknown export form in linklet" ex)]))) + + +(: absyn-requires->il (-> (Listof (U Path Symbol)) Path (Listof (Option ILRequire)))) +(define (absyn-requires->il import-list path) + (for/list ([mod-path import-list] + [counter (in-naturals)]) + (define mod-obj-name (string->symbol (~a "M" counter))) + (define import-name + (match mod-path + [(? symbol? _) + (jsruntime-import-path path + (jsruntime-module-path mod-path))] + [_ (module->relative-import (cast mod-path Path))])) + ;; See expansion of identifier in `expand.rkt` for primitive + ;; modules + (if (or (and (primitive-module? mod-path) ;; a self-import cycle + (equal? path (actual-module-path mod-path))) + (and (primitive-module-path? (actual-module-path path)) + (set-member? ignored-module-imports-in-boot mod-path))) + #f + (ILRequire import-name mod-obj-name '*)))) + + + +(: absyn-module->il (-> Module ILModule)) +(define (absyn-module->il mod) + (match-define (Module id path lang imports quoted-bindings forms) mod) + (log-rjs-info "[il] ~a" id) + + (: provides (Boxof ILProvide*)) + (define provides (box '())) + + ;; Since we get identifiers directly from defining module, we keep + ;; track of defines, use this for exporting all defines or exclude + ;; re-exports here + (: top-level-defines (Setof Symbol)) + (define top-level-defines + (list->set + (append + (append-map DefineValues-ids + (filter DefineValues? forms)) + (map JSRequire-alias + (filter JSRequire? forms))))) + + (: add-provides! (-> ILProvide* Void)) + (define (add-provides! p*) + (set-box! provides (append (unbox provides) p*))) + + (define imported-mod-path-list (set->list imports)) + (define requires* (absyn-requires->il imported-mod-path-list path)) + + ;; Append all JavaScript requires we find at GTL over here + (: js-requires (Boxof (Listof ILRequire))) + (define js-requires (box '())) + + ;; Filter out #f requires* + (: racket-requires ILRequire*) + (define racket-requires (filter ILRequire? requires*)) + + (define mod-stms + (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) + (append-map + (λ ([form : ModuleLevelForm]) + (cond + [(JSRequire? form) + (set-box! js-requires + (cons (ILRequire (~a (JSRequire-path form)) + (JSRequire-alias form) + (JSRequire-mode form)) + (unbox js-requires))) + '()] + [(GeneralTopLevelForm? form) (absyn-gtl-form->il form)] + [(Provide*? form) + (add-provides! (absyn-provide->il form top-level-defines)) '()] + [(SubModuleForm? form) '()])) ;; TODO + forms))) + + ;; Compute `provides` from this modoule + + (: final-provides ILProvide*) + (define final-provides + (let ([current-module-define? + (λ (p) + (match p + [(ILSimpleProvide id) + (set-member? top-level-defines id )] + [(ILRenamedProvide local-id exported-id) + (set-member? top-level-defines local-id)]))]) + (cons (ILSimpleProvide *quoted-binding-ident-name*) + (~> (unbox provides) + (filter current-module-define? _) + (remove-duplicates _))))) + + ;; Also expose quoted bindings + (: quoted-bindings-stms ILStatement*) + (define quoted-bindings-stms + (cons (ILVarDec *quoted-binding-ident-name* (ILObject '())) + (~> (set->list quoted-bindings) + (filter (λ (b) (set-member? top-level-defines b)) _) + (map (λ ([b : Symbol]) + (define b* (string->symbol (normalize-symbol b))) + (ILAssign (ILRef *quoted-binding-ident-name* b*) b*)) + _)))) + + (ILModule path + final-provides + (append racket-requires (unbox js-requires)) + (append mod-stms quoted-bindings-stms))) + + +(: absyn-gtl-form->il (-> GeneralTopLevelForm ILStatement*)) +(define (absyn-gtl-form->il form) + (cond + [(Expr? form) + (define-values (stms v) (absyn-expr->il form #f)) + (append1 stms v)] + [(DefineValues? form) + (match-define (DefineValues ids expr) form) + (absyn-binding->il (cons ids expr))] + [(JSRequire? form) (error 'absyn-gtl-form->il + "Required should be hoisted")])) + +(: absyn-provide->il (-> Provide* (Setof Symbol) ILProvide*)) +(define (absyn-provide->il forms top-level-defs) + (: defs-without-exclude (-> (Setof Symbol) (Setof Symbol) (Listof Symbol))) + (define (defs-without-exclude def-set exclude-lst) + (~> (set->list def-set) + (filter (λ (id) (not (set-member? exclude-lst id))) _))) + + (for/fold ([result : ILProvide* '()]) + ([form forms]) + (match form + [(SimpleProvide _) (cons form result)] + [(RenamedProvide _ _) (cons form result)] + [(AllDefined exclude) + (~> (defs-without-exclude top-level-defs exclude) + (map SimpleProvide _) + (append result _))] + [(PrefixAllDefined prefix-id exclude) + (let* ([to-export (defs-without-exclude top-level-defs exclude)] + [new-ids (map (λ (id) + (format-symbol "~a~a" prefix-id id)) + to-export)]) + (append result + (map RenamedProvide to-export new-ids)))]))) + +(: absyn-expr->il (-> Expr Boolean (Values ILStatement* ILExpr))) +;;; An expression in Racket may need to be split into several +;;; statements in JS. However, since expression always has a +;;; values, we return pair of statements and the final value +;;; of expression. +;;; TODO: returned ILExpr should be just ILValue? +(define (absyn-expr->il expr overwrite-mark-frame?) + (match expr + [(PlainLambda formals body unchecked?) + (: ->jslist (-> ILExpr ILExpr)) + (define (->jslist f) + (ILApp (name-in-module 'core 'Pair.listFromArray) (list f))) + + (: maybe-make-checked-formals (-> Formals ILFormals)) + (define (maybe-make-checked-formals formals) + (if (or unchecked? (skip-arity-checks?)) + formals + (ILCheckedFormals formals))) + + (: in-formals Formals) + (: stms-formals-init ILStatement*) + (define-values (in-formals stms-formals-init) + (cond + [(symbol? formals) + (define in-formals (fresh-id formals)) + (values in-formals (list (ILVarDec formals (->jslist in-formals))))] + [(list? formals) (values formals '())] + [(cons? formals) + (define fi (car formals)) + (define fp (cdr formals)) + (define in-fp (fresh-id fp)) + (values (cons fi in-fp) + (list (ILVarDec fp (->jslist in-fp))))])) + + (define-values (body-stms body-value) + (for/fold/last ([stms : ILStatement* '()] + [rv : ILExpr (ILValue (void))]) + ([e last? body]) + (define-values (s v) + (absyn-expr->il e (and last? overwrite-mark-frame?))) + (if last? + (values (append stms s) v) + (values (append stms s (list v)) v)))) + + (define lambda-expr (ILLambda (maybe-make-checked-formals in-formals) + (append stms-formals-init + body-stms + (list (ILReturn body-value))))) + (values '() + (if (variadic-lambda? expr) + (ILApp (name-in-module 'core 'attachProcedureArity) + (list lambda-expr)) + lambda-expr))] + + [(CaseLambda clauses) + (define-values (fixed-lams rest-lams) + (if (case-lambda-has-dead-clause? expr) + (begin (log-rjs-warning "found a case-lambda with dead-clause") + (values '() clauses)) + (values (filter (λ ([l : PlainLambda]) + (number? (lambda-arity l))) + clauses) + (filter (λ ([l : PlainLambda]) + (not (number? (lambda-arity l)))) + clauses)))) + + (define-values (stms val) (expand-normal-case-lambda fixed-lams rest-lams)) + + (define arities + (ILArray + (for/list ([c (resolve-procedure-arities (map lambda-arity clauses))]) + (match c + [(arity-at-least v) + (define-values (_ val) + (absyn-expr->il + (PlainApp (ImportedIdent 'make-arity-at-least '#%kernel #t) (list (Quote v))) + #f)) + val] + [(? number? val) (ILValue val)])))) + + (values stms (ILApp (name-in-module 'core 'attachProcedureArity) (list val arities)))] + + [(If pred-e t-branch f-branch) + (define-values (ps pe) (absyn-expr->il pred-e #f)) + (define-values (ts te) (absyn-expr->il t-branch overwrite-mark-frame?)) + (define-values (fs fe) (absyn-expr->il f-branch overwrite-mark-frame?)) + (define result-id (fresh-id 'if_res)) + (values (append ps + (list + (ILIf (ILBinaryOp '!== (list pe (ILValue #f))) + (append1 ts (ILVarDec result-id te)) + (append1 fs (ILVarDec result-id fe))))) + result-id)] + + [(LetValues bindings body) + (define binding-stms + (for/fold ([stms : ILStatement* '()]) + ([b bindings]) + (append stms + (absyn-binding->il b)))) + (for/fold/last ([stms binding-stms] + [rv : ILExpr (ILValue (void))]) + ([e last? body]) + (define-values (s nv) + (absyn-expr->il e (and last? overwrite-mark-frame?))) + (if last? + (values (append stms s) nv) + (values (append stms s (list nv)) nv)))] + + [(Set! id e) + (values (let-values ([(stms v) (absyn-expr->il e #f)]) + (append1 stms + (ILAssign id v))) + (ILValue (void)))] + + [(PlainApp (ImportedIdent '#%js-ffi _ _) args) + (match args + [(list (Quote 'var) (Quote var)) + (values '() (cast var Symbol))] + [(list (Quote 'string) (Quote str)) + (values '() (ILValue str))] + [(list (Quote 'ref) b xs ...) + (define-values (stms il) (absyn-expr->il b #f)) + (values stms + (for/fold ([il il]) + ([x xs]) + (match-define (Quote s) x) ;; Previous phase wrap + ;; the symbol in quote + + ;; HACK: To avoid wrapping the base symbol into + ;; Symbol class We have to generate code context + ;; sensitively + ;; TODO: We should accept only vaild JS idents. + (if (ILValue? il) + (ILRef (cast (ILValue-v il) Symbol) + (cast s Symbol)) + (ILRef il (cast s Symbol)))))] + [(list (Quote 'index) b xs ...) + (define-values (stms il) (absyn-expr->il b #f)) + (for/fold ([stms stms] + [il il]) + ([x xs]) + (define-values (x-stms s-il) (absyn-expr->il x #f)) + (values (append stms x-stms) + (if (ILValue? il) + (ILIndex (cast (ILValue-v il) Symbol) + s-il) + (ILIndex il s-il))))] + [(list (Quote 'assign) lv rv) + (define-values (lv-stms lv-il) (absyn-expr->il lv #f)) + (define-values (rv-stms rv-il) (absyn-expr->il rv #f)) + (values (append lv-stms + rv-stms + (list (ILAssign (cast lv-il ILLValue) rv-il))) + (ILValue (void)))] + [(list (Quote 'new) lv) + (define-values (stms il) (absyn-expr->il lv #f)) + (values stms + (ILNew (cast il (U ILLValue ILApp))))] + [(list (Quote 'array) items ...) + (define-values (stms* items*) + (for/fold ([stms : ILStatement* '()] + [vals : (Listof ILExpr) '()]) + ([item items]) + (define-values (s* v*) (absyn-expr->il item #f)) + (values (append stms s*) + (append vals (list v*))))) + (values stms* + (ILArray items*))] + [(list (Quote 'object) items ...) + (define-values (keys vals) (split-at items (cast (/ (length items) 2) + Nonnegative-Integer))) + (define-values (stms* items*) + (for/fold ([stms : ILStatement* '()] + [kvs : (Listof (Pairof ObjectKey ILExpr)) '()]) + ([k (cast keys (Listof Quote))] + [v (cast vals (Listof Expr))]) + (define-values (s* v*) (absyn-expr->il v #f)) + (values (append stms s*) + (append kvs (list (cons (cast (Quote-datum k) ObjectKey) + v*)))))) + (values stms* (ILObject items*))] + [(list (Quote 'throw) e) + (define-values (stms val) (absyn-expr->il e #f)) + (values (append1 stms (ILThrow val)) (ILValue (void)))] + [(list (Quote 'typeof) e) + (define-values (stms val) (absyn-expr->il e #f)) + (values stms (ILTypeOf val))] + [(list (Quote 'instanceof) e t) + ;;TODO: Not ANF. + (define-values (stms val) (absyn-expr->il e #f)) + (define-values (tstms tval) (absyn-expr->il t #f)) + (values (append stms tstms) (ILInstanceOf val tval))] + [(list (Quote 'operator) (Quote oper) e0 e1) + ;;TODO: not ANF + (define-values (stms0 val0) (absyn-expr->il e0 #f)) + (define-values (stms1 val1) (absyn-expr->il e1 #f)) + (values (append stms0 stms1) + (ILBinaryOp (cast oper Symbol) (list val0 val1)))] + [(list (Quote 'null)) + (values '() (ILNull))] + [(list (Quote 'undefined)) + (values '() (ILUndefined))] + [(list (Quote 'arguments)) + (values '() (ILArguments))] + [(list (Quote 'this)) + (values '() (ILThis))] + [_ (error 'absyn-expr->il "unknown ffi form" args)])] + + [(PlainApp lam args) + ;;NOTE: Comparision operators work only on two operands TODO + ;;later + (: binops (Listof ImportedIdent)) + (define binops (map (λ ([b : Symbol]) + (ImportedIdent b '#%kernel #t)) + '(+ - * /))) + + (: il-app/binop (-> Ident (Listof ILExpr) (U ILApp ILBinaryOp))) + (define (il-app/binop v arg*) + (define v-il (let-values ([(_ v) (absyn-expr->il v #f)]) + v)) + (cond + [(and (equal? v (ImportedIdent '- '#%kernel #t)) + (length=? arg* 1)) + (ILApp v-il arg*)] + [(and (equal? v (ImportedIdent '/ '#%kernel #t)) + (length=? arg* 1)) + (ILBinaryOp '/ (cons (ILValue 1) arg*))] + [(and (ImportedIdent? v) (member v binops) (>= (length arg* ) 2)) + (ILBinaryOp (ImportedIdent-id v) arg*)] + [else (ILApp v-il arg*)])) + + ;; If some arguements produce statement, it may have side effects + ;; and hence lambda expression should be computed first. + (match-define-values (lam+arg-stms (cons lam-val arg-vals) _) + (for/fold/last ([stms : ILStatement* '()] + [vals : (Listof ILExpr) '()] + [next-has-stms? : Boolean #f]) + ([arg last? (reverse (cons lam args))]) + (define-values (s v) (absyn-expr->il arg #f)) + (cond + [(and next-has-stms? (has-application? v)) + ;; If this argument expression has function application, + ;; it may have side-effect hence we have to compute it + ;; first. + (define temp-id (fresh-id (if last? 'lam 'temp))) + (define arg-stms (append1 s (ILVarDec temp-id v))) ;:TODO: use LetDecq + (values (append arg-stms stms) + (cons temp-id vals) + next-has-stms?)] + [next-has-stms? + (values (append s stms) + (cons v vals) + next-has-stms?)] + [else + (values (append s stms) + (cons v vals) + (or next-has-stms? (cons? s)))]))) + + (if (Ident? lam) + (values lam+arg-stms + (il-app/binop lam arg-vals)) + (values lam+arg-stms + (ILApp lam-val arg-vals)))] + + [(TopId id) (values '() id)] ;; FIXME: rename top-levels? + + [(Quote datum) (values '() (absyn-value->il datum))] + ;; Begin Statements + + [(cons hd '()) + (cond + [(Expr? hd) (absyn-expr->il hd overwrite-mark-frame?)] + [else (error "last datum in body must be expression")])] + + [(cons hd tl) + (define hd-stms (absyn-top-level->il hd)) + (define-values (tl-stms v) (absyn-expr->il tl overwrite-mark-frame?)) + (values (append hd-stms tl-stms) + v)] + + ['() (values '() (ILValue (void)))] + + [(LocalIdent id) (values '() id)] + + [(TopLevelIdent id) (values '() id)] + + [(Begin0 expr0 expr*) + (define expr0-id (fresh-id 'begin-res)) + (absyn-expr->il + (LetValues (list (cons `(,expr0-id) expr0)) + (append1 expr* (LocalIdent expr0-id))) + overwrite-mark-frame?)] + + [(ImportedIdent id src_ reachable?) + ;; FIXME?: Racket7 workaround + (define src + (if (and (version<=? "7.0" (version)) + (equal? src_ '#%runtime)) + '#%kernel + src_)) + + ;; Imported Identifiers are compiled to a ref operation from the + ;; module object. We do normalize the field we are looking for in + ;; ILRef but only if its not a valid JavaScript id literal, which + ;; excludes reserved keywords in this case. + ;; + ;; Hence, we have to normalize those cases right here so that we + ;; refer to right binding. + (define id* (if (reserved-keyword? id) + (string->symbol (normalize-symbol id)) + id)) + + ;; For compiling #%kernel (or primitive module) we may end + ;; up thinking that's id is imported as we are actually + ;; overriding the module. Don't make it happen. + ;; TODO: Look at this again. + (cond + [(and (or (symbol? (current-source-file)) + (path? (current-source-file))) + (equal? (actual-module-path (cast (current-source-file) ModuleName)) + (actual-module-path (cast src ModuleName)))) + (absyn-expr->il (LocalIdent id) overwrite-mark-frame?)] + [(false? reachable?) + ;; Probably a macro-introduced binding. + ;; TODO: If its unimplemented primitive, we reach here. For + ;; primitive modules, filter unimplemented bindings. + (define mod-obj-name (hash-ref (module-object-name-map) src + (lambda () + (log-rjs-warning "missing unreachable binding ~s ~s" id* src) + src))) + (values '() + (ILRef (ILRef (assert mod-obj-name symbol?) + *quoted-binding-ident-name*) + id*))] + [else + (define mod-obj-name (hash-ref (module-object-name-map) src + (lambda () + (log-rjs-warning "missing reachable binding ~s ~s" id* src) + src))) + (values '() (ILRef (assert mod-obj-name symbol?) id*))])] + + [(WithContinuationMark key _ (and (WithContinuationMark key _ _) wcm)) + ;; Overwrites previous key + (absyn-expr->il wcm overwrite-mark-frame?)] + + [(WithContinuationMark key value result) + (define-values (key-stms key-expr) (absyn-expr->il key #f)) + (define-values (value-stms value-expr) (absyn-expr->il value #f)) + (define-values (result-stms result-expr) (absyn-expr->il result #t)) + + (define old-context-id (fresh-id '__context)) + (define new-context-id (fresh-id '__context)) + (define result-id (fresh-id '__wcm_result)) + (define exn-id (fresh-id 'exn)) + + (define stms + (list + (ILVarDec old-context-id + (ILApp (name-in-module 'core 'Marks.getFrames) '())) + (ILVarDec new-context-id #f) + (ILExnHandler + #;Try + (flatten-statements + (list key-stms + value-stms + (if overwrite-mark-frame? + (ILAssign new-context-id old-context-id) + (ILAssign new-context-id + (ILApp (name-in-module 'core 'Marks.enterFrame) '()))) + (ILApp (name-in-module 'core 'Marks.setMark) + (list key-expr value-expr)) + result-stms + (ILVarDec result-id result-expr))) + #;Catch + 'exn + '() + #;Finally + (list (ILApp (name-in-module 'core 'Marks.updateFrame) + (list old-context-id new-context-id)))))) + (values stms result-id)] + [(VarRef _) (values '() (absyn-value->il '#%variable-reference))] + + [_ (error (~a "unsupported expr " expr))])) + + +(: absyn-binding->il (-> Binding ILStatement*)) +(define (absyn-binding->il b) + (match-define (cons args expr) b) + (define-values (stms v) (absyn-expr->il expr #f)) + (match args + [(list a) + (append1 stms + (ILVarDec a v))] + [_ + (define result-id (fresh-id 'let_result)) + (: binding-stms ILStatement*) + (define binding-stms + (for/list ([i : Natural (range (length args))] + [arg : Symbol args]) + (ILVarDec arg (ILApp (ILRef result-id 'getAt) + (list (ILValue i)))))) + (append stms + (cons (ILVarDec result-id v) + binding-stms))])) + + +(: absyn-value->il (-> Any ILExpr)) +(define (absyn-value->il d) + (cond + [(Quote? d) (absyn-value->il (Quote-datum d))] + [(string? d) + (ILApp (name-in-module 'core 'UString.make) + (list (ILValue d)))] + [(symbol? d) + (ILApp (name-in-module 'core 'PrimitiveSymbol.make) + (list (ILValue (symbol->string d))))] + [(keyword? d) + (ILApp (name-in-module 'core 'Keyword.make) + (list (ILValue (keyword->string d))))] + [(list? d) + (ILApp (name-in-module 'core 'Pair.makeList) + (map absyn-value->il d))] + [(empty? d) + (name-in-module 'core 'Pair.EMPTY)] + [(cons? d) + (ILApp (name-in-module 'core 'Pair.make) + (list (absyn-value->il (car d)) + (absyn-value->il (cdr d))))] + [(vector? d) + (ILApp (name-in-module 'core 'Vector.make) + (list + (ILArray + (map absyn-value->il + (vector->list (cast d (Vectorof Any)))))))] + [(hash? d) + (: maker Symbol) + (define maker (cond + [(hash-eq? d) 'Hash.makeEq] + [(hash-eqv? d) 'Hash.makeEqv] + [(hash-equal? d) 'Hash.makeEqual] + [else (error 'assemble-value "unknown hash type")])) + (define mutable (not (immutable? d))) + (ILApp (name-in-module 'core maker) + (list + (ILArray + (for/list ([(key value) (in-hash d)]) + (ILArray (list (absyn-value->il key) (absyn-value->il value))))) + (ILValue mutable)))] + [(bytes? d) + (ILApp (name-in-module 'core 'Bytes.fromIntArray) + (list (ILArray (map ILValue (bytes->list d)))))] + [(box? d) + (ILApp (name-in-module 'core 'Box.make) + (list (absyn-value->il (unbox d))))] + [(char? d) + (ILApp (name-in-module 'core 'Char.charFromCodepoint) + (list (absyn-value->il (char->integer d))))] + [(or (regexp? d) (byte-regexp? d)) + (define v (object-name d)) ; string or bytes + (ILApp (name-in-module 'core 'Regexp.fromString) + (list (ILValue (if (bytes? v) (bytes->string/utf-8 v) v))))] + [(or (integer? d) + (boolean? d) + (void? d) + (real? d)) + (ILValue d)] + [else (error (~a "unsupported value" d))])) + +(: expand-normal-case-lambda (-> (Listof PlainLambda) + (Listof PlainLambda) + (Values ILStatement* ILExpr))) +(define (expand-normal-case-lambda fixed-lams rest-lams) + (define fixed-lam-names : (Listof Symbol) + (build-list (length fixed-lams) (λ (_) (fresh-id 'cl)))) + (define rest-lam-names : (Listof Symbol) + (build-list (length rest-lams) (λ (_) (fresh-id 'cl)))) + + (define fixed-lam-name (fresh-id 'fixed-lam)) + (define fixed-lam-map + (ILObject (map (λ ([id : Symbol] [lam : PlainLambda]) + (let ([arity (lambda-arity lam)]) + (if (number? arity) + (cons (string->symbol (~a arity)) id) + (error 'expand-normal-case-lambda "assertion failed")))) + fixed-lam-names fixed-lams))) + + (define *null* (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'null)))) + (define *arguments* (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'arguments)))) + + (define-values (var-lam-stms var-lam-val) + (absyn-expr->il + (let loop : Expr ([lams* rest-lams] + [names* rest-lam-names]) + (match (list lams* names*) + [(list '() '()) (PlainApp (ImportedIdent 'error '#%kernel #t) + (list (Quote "case-lambda: invalid case")))] + [(list (cons lh lt) (cons nh nt)) + (define arguments-length (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) + (list (Quote 'ref) + (LocalIdent nh) + (Quote 'length)))) + (If ((get-formals-predicate lh) arguments-length) + (PlainApp (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) + (list (Quote 'ref) + (LocalIdent nh) + (Quote 'apply))) + (list *null* *arguments*)) + (loop lt nt))])) + #f)) + + ;; TODO: We can avoid using apply here. + (define dispatch-stms + (list (ILVarDec fixed-lam-name (ILIndex fixed-lam-map (ILRef (ILArguments) 'length))) + (ILIf (ILBinaryOp '!== (list fixed-lam-name (ILUndefined))) + (list (ILReturn + (ILApp (ILRef fixed-lam-name 'apply) + (list (ILNull) (ILArguments))))) + (append1 var-lam-stms + (ILReturn var-lam-val))))) + + (let ([make-lam (λ ([id : Symbol] [lam : PlainLambda]) + (define-values (stms lam-expr) (absyn-expr->il lam #f)) + (assert stms empty?) + (ILVarDec id lam-expr))]) + (values (append (map make-lam fixed-lam-names fixed-lams) + (map make-lam rest-lam-names rest-lams)) + (ILLambda '() dispatch-stms)))) + +(: case-lambda-has-dead-clause? (-> CaseLambda Boolean)) +;; Returns true if the given case-lambda has an unreachable clause. +;; Eg. (case-lambda +;; [(a . b) "take at-least 1"] +;; [(a b) "take exactly 2"]) +(define (case-lambda-has-dead-clause? clam) + (define-values (result _) + (for/fold : (Values Boolean Number) + ([res : Boolean #f] + [least-var-arity : Real +inf.0]) + ([lam (CaseLambda-clauses clam)]) + (let ([arity (lambda-arity lam)]) + (cond + [(and (number? arity) (< arity least-var-arity)) + (values res least-var-arity)] + [(number? arity) + (values #t least-var-arity)] + [(and (arity-at-least? arity) + (< (arity-at-least-value arity) least-var-arity)) + (values res (arity-at-least-value arity))] + [(arity-at-least? arity) + (values #t least-var-arity)])))) + result) +(module+ test + (check-false (case-lambda-has-dead-clause? + (CaseLambda + (list + (PlainLambda '(a) '() #f) + (PlainLambda '(a b) '() #f) + (PlainLambda '((a) . c) '() #f)))) + "all clauses are reachable") + (check-false (case-lambda-has-dead-clause? + (CaseLambda + (list + (PlainLambda '((a b c) . d) '() #f) + (PlainLambda '(a b) '() #f)))) + "all clauses are reachable") + (check-true (case-lambda-has-dead-clause? + (CaseLambda + (list + (PlainLambda '((a b c) . d) '() #f) + (PlainLambda '(a b c) '() #f)))) + "last clauses is unreachable") + (check-true (case-lambda-has-dead-clause? + (CaseLambda + (list + (PlainLambda '(() . a) '() #f) + (PlainLambda '((a) . c) '() #f) + (PlainLambda '(a b) '() #f)))) + "second and third clause are unreachable") + (check-true (case-lambda-has-dead-clause? + (CaseLambda + (list + (PlainLambda '(a) '() #f) + (PlainLambda '((a) . c) '() #f) + (PlainLambda '(a b) '() #f)))) + "third clause is unreachable")) + +(: get-formals-predicate (-> PlainLambda (-> Expr Expr))) +(define (get-formals-predicate c) + ;; TODO: Use binary ops instead of function call for cmp + (define frmls (PlainLambda-formals c)) + (define length-js-name (ImportedIdent 'length '#%kernel #t)) + (cond + [(symbol? frmls) (λ (_) (Quote #t))] + [(list? frmls) + (λ ([v : Expr]) + (PlainApp (ImportedIdent 'equal? '#%kernel #t) + (list + v + (Quote (length frmls)))))] + [(cons? frmls) + (λ ([v : Expr]) + (PlainApp (ImportedIdent '>= '#%kernel #t) + (list + v + (Quote (sub1 + (length + (improper->proper frmls)))))))])) + +(define-type ProcedureArity (U arity-at-least Exact-Nonnegative-Integer)) +(: resolve-procedure-arities (-> (Listof ProcedureArity) + (Listof ProcedureArity))) +(define (resolve-procedure-arities arities) + (: arity< (-> ProcedureArity ProcedureArity Boolean)) + (define (arity< a b) + (< (if (arity-at-least? a) + (arity-at-least-value a) + a) + (if (arity-at-least? b) + (arity-at-least-value b) + b))) + + (: arity-equal? (-> ProcedureArity ProcedureArity Boolean)) + (define (arity-equal? a b) + (and (not (arity< a b)) + (not (arity< b a)))) + + (let loop ([arities* (sort arities arity<)] + [result : (Listof ProcedureArity) '()]) + (match arities* + ['() (reverse result)] + [(cons (and (arity-at-least v) hd) tl) + (reverse (if (and (cons? result) (arity-equal? (car result) hd)) + (cons hd (cdr result)) + (cons hd result)))] + [(cons hd tl) + (loop tl (if (and (cons? result) (arity-equal? (car result) hd)) + result + (cons hd result)))]))) + +(module+ test + (require typed/rackunit + racket/pretty) + + (: -absyn-expr->il (-> Expr (Values ILStatement* ILExpr))) + (define (-absyn-expr->il expr) + (absyn-expr->il expr #f)) + + (define-syntax-rule (values->list e) + (call-with-values (λ () e) list)) + + (define-syntax-rule (ilcheck fn form result ...) + (parameterize ([fresh-id-counter 0] + [module-object-name-map + (hash '#%kernel 'kernel)]) + (check-equal? + (values->list (fn form)) + (list result ...)))) + + (define-syntax-rule (check-ilexpr expr stms val) + (ilcheck -absyn-expr->il expr stms val)) + + (define-syntax-rule (check-iltoplevel form stms) + (ilcheck absyn-top-level->il form stms)) + + (define-syntax-rule (check-ilgtl form stms) + (ilcheck absyn-gtl-form->il form stms)) + + (define LI LocalIdent) + (define LI* (λ s* + ((inst map LocalIdent Symbol) + LocalIdent + (cast s* (Listof Symbol))))) + + (: kident (-> Symbol ImportedIdent)) + (define (kident s) (ImportedIdent s '#%kernel #t)) + + (define-syntax-rule (convert+print fn absyn) + (parameterize ([fresh-id-counter 0] + [module-object-name-map + (hash '#%kernel 'kernel)]) + (pretty-print + (values->list (fn absyn))))) + + ;; enable test environment + (test-environment? #t) + + (: ~str (-> String ILExpr)) + (define (~str s) + (ILApp + (name-in-module 'core 'UString.make) + (list (ILValue s)))) + + (: ~sym (-> Symbol ILExpr)) + (define (~sym s) + (ILApp + (name-in-module 'core 'PrimitiveSymbol.make) (list (ILValue (symbol->string s))))) + + (: ~cons (-> ILExpr ILExpr ILExpr)) + (define (~cons a b) + (ILApp (name-in-module 'core 'Pair.make) (list a b))) + + (define ~val ILValue) + + (define-syntax-rule (~list v ...) + (ILApp (name-in-module 'core 'Pair.makeList) (list v ...))) + + ;; Expressions ---------------------------------------------------- + + (test-case "Racket values" + (check-ilexpr (Quote 42) '() (~val 42)) + (check-ilexpr (Quote "Hello") '() (~str "Hello")) + (check-ilexpr (Quote 'hello) '() (~sym 'hello)) + (check-ilexpr + (Quote '(1 2 3)) + '() + (~list (~val 1) (~val 2) (~val 3))) + (check-ilexpr + (Quote '(1 (2 3) 4 (a b))) + '() + (~list + (~val 1) + (~list (~val 2) (~val 3)) + (~val 4) + (~list (~sym 'a) (~sym 'b)))) + (check-ilexpr (Quote '(1 . 2)) '() (~cons (~val 1) (~val 2))) + (check-ilexpr (Quote #f) '() (~val #f))) + + + ;; -------------------------------------------------------------------------- + + (test-case "Lambda Expressions" + (check-ilexpr (PlainLambda '(x) (LI* 'x) #t) + '() + (ILLambda '(x) (list (ILReturn 'x)))) + (check-ilexpr (PlainLambda 'x (LI* 'x) #t) + '() + (ILApp + (name-in-module 'core 'attachProcedureArity) + (list + (ILLambda + 'x1 + (list + (ILVarDec + 'x + (ILApp + (name-in-module 'core 'Pair.listFromArray) + (list 'x1))) + (ILReturn 'x))))))) + + ;; -------------------------------------------------------------------------- + + (test-case "If expression" + (check-ilexpr (If (Quote #t) (Quote 'yes) (Quote 'no)) + (list + (ILIf (ILBinaryOp '!== (list (ILValue #t) (ILValue #f))) + (list (ILVarDec 'if_res1 (~sym 'yes))) + (list (ILVarDec 'if_res1 (~sym 'no))))) + 'if_res1)) + + ;; -------------------------------------------------------------------------- + + (test-case "Lambda expressions" + (check-ilexpr (PlainLambda '(x) (LI* 'x) #t) + '() + (ILLambda + '(x) + (list (ILReturn 'x)))) + (check-ilexpr (PlainLambda '(a b) + (list + (PlainApp (LocalIdent 'list) + (LI* 'a 'b))) + #t) + '() + (ILLambda + '(a b) + (list + (ILReturn (ILApp 'list '(a b))))))) + + + (test-case "Let expressions" + (check-ilexpr (LetValues (list (cons '(a) (Quote 1)) + (cons '(b) (Quote 2))) + (LI* 'a 'b)) + (list + (ILVarDec 'a (ILValue 1)) (ILVarDec 'b (ILValue 2)) + 'a) + 'b) + (check-ilexpr (LetValues (list (cons '(a) + (If (Quote #t) + (Quote 'yes) + (Quote 'false))) + (cons '(b) + (PlainApp (kident '+) + (list + (Quote 1) + (Quote 2))))) + (list (PlainApp (LocalIdent 'list) + (LI* 'a 'b)))) + (list + (ILIf (ILBinaryOp '!== (list (~val #t) (~val #f))) + (list (ILVarDec 'if_res1 (~sym 'yes))) + (list (ILVarDec 'if_res1 (~sym 'false)))) + (ILVarDec 'a 'if_res1) + (ILVarDec 'b (ILBinaryOp '+ (list (~val 1) (~val 2))))) + (ILApp 'list '(a b)))) + + ;; -------------------------------------------------------------------------- + + (test-case "Identify binary operators" + (check-ilexpr (PlainApp (kident '+) '()) + '() + (ILApp (ILRef 'kernel '+) '())) + (check-ilexpr (PlainApp (kident '/) '()) + '() + (ILApp (ILRef 'kernel '/) '())) + (check-ilexpr (PlainApp (kident '+) (list (Quote 1) (Quote 2))) + '() + (ILBinaryOp '+ (list (ILValue 1) (ILValue 2)))) + (check-ilexpr (PlainApp (kident '-) (list (Quote 1) + (Quote 2) + (Quote 3))) + '() + (ILBinaryOp '- + (list + (ILValue 1) (ILValue 2) (ILValue 3))))) + + ;; -------------------------------------------------------------------------- + + (test-case "Case Lambda" + (check-equal? (resolve-procedure-arities '(1 2 3 4)) + '(1 2 3 4)) + (check-equal? (resolve-procedure-arities '(1 3 2 6 4)) + '(1 2 3 4 6)) + (check-equal? (resolve-procedure-arities + (list 1 2 3 (arity-at-least 3) (arity-at-least 6))) + (list 1 2 (arity-at-least 3))) + (check-equal? (resolve-procedure-arities + (list 1 2 3 (arity-at-least 6) (arity-at-least 3))) + (list 1 2 (arity-at-least 3))) + + (check-ilexpr + (CaseLambda + (list + (PlainLambda '(a b) (list (PlainApp (kident 'add) + (LI* 'a 'b))) + #t) + (PlainLambda '(a b c) (list (PlainApp (kident 'mul) + (LI* 'a 'b 'c))) + #t))) + (list + (ILVarDec + 'cl1 + (ILLambda '(a b) (list (ILReturn (ILApp (ILRef 'kernel 'add) '(a b)))))) + (ILVarDec + 'cl2 + (ILLambda + '(a b c) + (list (ILReturn (ILApp (ILRef 'kernel 'mul) '(a b c))))))) + (ILApp + '$rjs_core.attachProcedureArity + (list + (ILLambda + '() + (list + (ILVarDec + 'fixed-lam3 + (ILIndex + (ILObject '((|2| . cl1) (|3| . cl2))) + (ILRef (ILArguments) 'length))) + (ILIf + (ILBinaryOp '!== (list 'fixed-lam3 (ILUndefined))) + (list + (ILReturn + (ILApp (ILRef 'fixed-lam3 'apply) (list (ILNull) (ILArguments))))) + (list + (ILReturn + (ILApp + (ILRef 'kernel 'error) + (list (~str "case-lambda: invalid case")))))))) + (ILArray (list (ILValue 2) (ILValue 3)))))) + + + ;; -------------------------------------------------------------------------- + (define absyn-js-ffi (ImportedIdent '#%js-ffi "fakepath.rkt" #t)) + + (test-case "Foreign Function Interface" + (check-ilexpr + (PlainApp absyn-js-ffi (list (Quote 'var) (Quote 'console))) + '() + 'console) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'ref) (Quote 'obj) (Quote 'key1) (Quote 'key2))) + '() + (ILRef (ILRef (~sym 'obj) 'key1) 'key2)) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'ref) + (LocalIdent 'obj) (Quote 'key1) (Quote 'key2))) + '() + (ILRef (ILRef 'obj 'key1) 'key2)) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'index) + (Quote 'obj) + (PlainApp (LocalIdent 'do) (list (Quote "Hello!"))))) + '() + (ILIndex (~sym 'obj) (ILApp 'do (list (~str "Hello!"))))) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'object) + (Quote 'key1) (Quote 'key2) (Quote 'key3) + (Quote 'val1) (Quote 'val2) (Quote 'val3))) + '() + (ILObject (list (cons 'key1 (~sym 'val1)) + (cons 'key2 (~sym 'val2)) + (cons 'key3 (~sym 'val3))))) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'array) + (Quote 1) (Quote 2) (Quote 3))) + '() + (ILArray (list (ILValue 1) (ILValue 2) (ILValue 3)))) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'assign) + (LocalIdent 'name) (Quote "John Doe"))) + (list (ILAssign 'name (~str "John Doe"))) + (ILValue (void))) ;;TODO: FFI special case! + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'new) (LocalIdent 'Array))) + '() + (ILNew 'Array)) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'throw) (Quote "What"))) + (list (ILThrow (~str "What"))) + (ILValue (void))) + + (check-ilexpr + (PlainApp + absyn-js-ffi + (list (Quote 'operator) (Quote '+) (Quote 1) (Quote 2))) + '() + (ILBinaryOp '+ (list (ILValue 1) (ILValue 2))))) + + ;; -------------------------------------------------------------------------- + + (test-case "Top Level Forms" + (check-iltoplevel + (list (PlainApp (kident 'display) (list (Quote "hello"))) + (PlainApp (kident 'print) (list (Quote "what" ) + (LocalIdent 'out)))) + (list + (ILApp (ILRef 'kernel 'display) (list (~str "hello"))) + (ILApp (ILRef 'kernel 'print) (list (~str "what") 'out))))) + + ;; -------------------------------------------------------------------------- + + (test-case "General Top Level Forms" + (check-ilgtl + (DefineValues '(x) (Quote 42)) + (list (ILVarDec 'x (ILValue 42)))) + + (check-ilgtl + (DefineValues '(x ident) + (PlainApp (kident 'values) + (list (Quote 42) + (PlainLambda '(x) (LI* 'x) #t)))) + (list + (ILVarDec + 'let_result1 + (ILApp (ILRef 'kernel 'values) + (list (ILValue 42) (ILLambda '(x) (list (ILReturn 'x)))))) + (ILVarDec 'x (ILApp (ILRef 'let_result1 'getAt) (list (ILValue 0)))) + (ILVarDec 'ident (ILApp (ILRef 'let_result1 'getAt) (list (ILValue 1))))))))) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index da8351f0..a92e5c69 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -51,11 +51,11 @@ ;; FIXME I do ZERO handling of javascript forms (: absyn-linklet->il (-> Linklet ILLinklet)) (define (absyn-linklet->il lnk) - (match-define (Linklet path imports exports forms) lnk) + (struct-match-define (Linklet path imports exports forms) lnk) (log-rjs-info "[linklet il]") - (define imported-mod-path-list (cast (flatten imports) (Listof Symbol))) - (define requires* (absyn-requires->il imported-mod-path-list (cast path Path))) + (define imported-mod-path-list (flatten imports)) + (define requires* (absyn-requires->il imported-mod-path-list path)) ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map @@ -96,7 +96,7 @@ [(? symbol? _) (jsruntime-import-path path (jsruntime-module-path mod-path))] - [_ (module->relative-import (cast mod-path Path))])) + [_ (module->relative-import mod-path)])) ;; See expansion of identifier in `expand.rkt` for primitive ;; modules (if (or (and (primitive-module? mod-path) ;; a self-import cycle From 7afd8c764744f083c86a27de84ea476f8dc12216 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 15:28:17 -0400 Subject: [PATCH 080/170] rough complete new structs --- .../racketscript/compiler/ir.rkt | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 73913e0a..6d37af83 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -64,3 +64,33 @@ ;; (ILIf ILExpr? [Listof ILStatement?] [Listof ILStatement?]) (struct ILIf (pred t-branch f-branch) #:transparent) + +;; (ILIf* [Listof ILIf?]) +(struct ILIf* (clauses) #:transparent) + +;; (ILAssign (or sumbol? ILRef? ILIndex?) ILExpr?) +(struct ILAssign (lvalue rvalue) #:transparent) + +;; (ILWhile ILExpr? [Listof ILStatement?]) +(struct ILWhile (condition body) #:transparent) + +;; (ILReturn ILExpr?) +(struct ILReturn (expr) #:transparent) + +;; (ILLabel symbol?) +(struct ILLabel (name) #:transparent) + +;; (ILContinue symbol?) +(struct ILContinue (label) #:transparent) + +;; (ILExnHandler [Listof ILStatement?] +;; symbol? +;; [Listof ILStatement?] +;; [Listof ILStatement?] +;; ILExpr?) +(struct ILExnHandler (try error catch finally expr) #:transparent) + +;; (ILThrow ILExpr?) +(struct ILThrow (expr) #:transparent) + + From bc1372551bdbb4f7cf4c48289e81fe4900c8a84b Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 15:49:59 -0400 Subject: [PATCH 081/170] new syntax-case logger --- .../racketscript/compiler/logging.rkt | 53 ++++++++++++------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/logging.rkt b/racketscript-compiler/racketscript/compiler/logging.rkt index c2170412..5ba54e2d 100644 --- a/racketscript-compiler/racketscript/compiler/logging.rkt +++ b/racketscript-compiler/racketscript/compiler/logging.rkt @@ -1,9 +1,6 @@ #lang racket/base -(require (for-syntax racket/base - racket/syntax - syntax/parse) - (for-meta 2 syntax/parse) +(require (for-syntax racket/base) "config.rkt") (provide log-rjs-info @@ -11,20 +8,40 @@ log-rjs-warning log-rjs-error) -(define-syntax log-rjs - (syntax-parser - [(_ kind:id) - #:with name (format-id #'kind "log-rjs-~a" (syntax-e #'kind) #:source #'kind) - #:with str (symbol->string (syntax-e #'kind)) - (syntax (define-syntax name - (syntax-parser - [(_ a0 a* (... ...)) - #'(when (logging?) - (begin (printf "[~a]" 'str) - (unless (equal? (string-ref a0 0) #\[) - (printf " ")) - (printf a0 a* (... ...)) - (printf "\n")))])))])) +(define-syntax (log-rjs stx) + (syntax-case stx () + [(_ kind) + (identifier? #'kind) + (with-syntax ([name (datum->syntax #'kind + (string->symbol + (format "log-rjs-~a" (syntax-e #'kind))))] + [str (symbol->string (syntax-e #'kind))] + [stx (generate-temporaries 'stx)]) + (syntax + (define-syntax (name stx) + (syntax-case stx () + [(_ a0 a* (... ...)) + #'(when (logging?) + (begin (printf "[~a]" 'str) + (unless (equal? (string-ref a0 0) #\[) + (printf " ")) + (printf a0 a* (... ...)) + (printf "\n")))])))])])) + +;; (define-syntax log-rjs +;; (syntax-parser +;; [(_ kind:id) +;; #:with name (format-id #'kind "log-rjs-~a" (syntax-e #'kind) #:source #'kind) +;; #:with str (symbol->string (syntax-e #'kind)) +;; (syntax (define-syntax name +;; (syntax-parser +;; [(_ a0 a* (... ...)) +;; #'(when (logging?) +;; (begin (printf "[~a]" 'str) +;; (unless (equal? (string-ref a0 0) #\[) +;; (printf " ")) +;; (printf a0 a* (... ...)) +;; (printf "\n")))])))])) (log-rjs info) (log-rjs error) (log-rjs warning) From 9df7b45c2268e4ae4d541ff45b2bf7374966fde6 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 17:02:25 -0400 Subject: [PATCH 082/170] really dumb sets since I can't use them without racket/set --- .../racketscript/compiler/set.rkt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/set.rkt diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt new file mode 100644 index 00000000..ea4ccf6f --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -0,0 +1,15 @@ +#lang racket/base + +;; basic set implementation + +(require (for-syntax racket/base)) + +(struct set-impl (contents) #:transparent) + +(provide set set-member?) + +(define-syntax (set stx) + (syntax-case stx () + [(_ e ...) #'(set-impl (make-immutable-hash (list (cons e #t) ...)))])) + +(define (set-member? st v) (hash-has-key? (set-impl-contents st) v)) From 4443bd7a5a5d06afeceb193db21a8fe8efec10d5 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 17:02:41 -0400 Subject: [PATCH 083/170] re-write config.rkt without types and without dependencies --- .../racketscript/compiler/config.rkt | 51 ++++++------------- 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/config.rkt b/racketscript-compiler/racketscript/compiler/config.rkt index 7350dca5..9e899570 100644 --- a/racketscript-compiler/racketscript/compiler/config.rkt +++ b/racketscript-compiler/racketscript/compiler/config.rkt @@ -1,12 +1,7 @@ -#lang typed/racket/base +#lang racket/base -(require racket/function - racket/match - racket/path - racket/runtime-path - racket/set - threading - "../private/interop.rkt") +(require "../private/interop.rkt" + "set.rkt") (provide output-directory logging? @@ -32,16 +27,12 @@ ;;; --------------------------------------------------------------------------- (define FFI-CALL-ID '#%js-ffi) -(: output-directory (Parameter Path-String)) (define output-directory (make-parameter "js-build")) -(: current-source-file (Parameter (Option (U Path Symbol)))) (define current-source-file (make-parameter #f)) -(: main-source-file (Parameter (Option Path))) (define main-source-file (make-parameter #f)) -(: cache-directory (-> Path)) (define (cache-directory) (let ([dir (build-path (output-directory) "cache")]) (if (directory-exists? dir) @@ -50,37 +41,32 @@ dir)))) ;; Path to the main compiler module -(define-runtime-path racketscript-main-module "main.rkt") -(: racketscript-compiler-dir Path) +(define racketscript-main-module (path->complete-path "main.rkt")) + (define racketscript-compiler-dir - (cast (path-only racketscript-main-module) Path)) + (let-values ([(dir-path _p _b) (split-path racketscript-main-module)]) + dir-path)) -(: racketscript-runtime-dir Path) (define racketscript-runtime-dir (build-path racketscript-compiler-dir "runtime")) -(: racketscript-dir Path) ;; Root directory of Racketscript project (define racketscript-dir - (~> racketscript-compiler-dir - (build-path _ "..") - (simplify-path _))) + (simplify-path (build-path racketscript-compiler-dir ".."))) ;;; --------------------------------------------------------------------------- -(: jsruntime-core-module (Parameter String)) ;; Name of kernel/core module object used in JavaScript environment (define jsruntime-core-module (make-parameter "$rjs_core")) -(: jsruntime-module-path (-> Symbol Path)) (define (jsruntime-module-path mod) - (let ([mod-name (match mod - ['core "core.js"] - [_ #:when (set-member? primitive-modules mod) - (string-append - (substring (symbol->string mod) 2) - ".rkt.js")])]) + (let ([mod-name (cond + [(eq? mod 'core) "core.js"] + [(set-member? primitive-modules mod) + (string-append + (substring (symbol->string mod) 2) + ".rkt.js")])]) (path->complete-path (build-path (output-directory) "runtime" @@ -88,27 +74,21 @@ ;;; --------------------------------------------------------------------------- -(: test-environment? (Parameter Boolean)) (define test-environment? (make-parameter #f)) -(: logging? (Parameter Boolean)) (define logging? (make-parameter #t)) -(: ignored-module-imports-in-boot (Setof Path)) ;; Ignore these imports in primtive modules. (define ignored-module-imports-in-boot (set (build-path racketscript-dir "private" "interop.rkt"))) -(: ignored-undefined-identifiers (Listof Identifier)) (define ignored-undefined-identifiers (list #'#%js-ffi)) -(: ignored-undefined-identifier? (-> Identifier Boolean)) (define (ignored-undefined-identifier? id) - (ormap (curry free-identifier=? id) ignored-undefined-identifiers)) + (ormap (λ (ignored) (free-identifier=? id ignored)) ignored-undefined-identifiers)) -(: primitive-modules (Setof (U Symbol Path))) (define primitive-modules (set '#%runtime '#%core @@ -132,5 +112,4 @@ ;;; --------------------------------------------------------------------------- -(: skip-arity-checks? (Parameter Boolean)) (define skip-arity-checks? (make-parameter #f)) From 7d11cc4308a3fdd655bd10449c69a40e4fe1be24 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 17:14:21 -0400 Subject: [PATCH 084/170] add Provide forms --- racketscript-compiler/racketscript/compiler/ir.rkt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 6d37af83..41b91ec5 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -1,6 +1,10 @@ #lang racket/base -(provide (all-defined-out)) +(require "ast.rkt") + +(provide (all-defined-out) + (struct-out SimpleProvide) + (struct-out RenamedProvide)) ;; (ILLinklet [Listof ILRequire?] [Listof ILProvide?] [Listof ILStatement?]) (struct ILLinklet (imports exports body) #:transparent) @@ -8,6 +12,10 @@ ;; (ILRequire [Maybe path-string?] symbol? [or 'default '*]) (struct ILRequire (mod name import-mode) #:transparent) +;; ILProvide is one of: +;; - SimpleProvide +;; - RenamedProvide + ;; TODO purpose unclear? (struct IfClause (pred body) #:transparent) From 6fc794b0868aeb06cca9eec2a57e75d10fa0a7ae Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 17:14:31 -0400 Subject: [PATCH 085/170] remove more types --- .../racketscript/compiler/transform.rkt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index a92e5c69..d31a8ecf 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -1,4 +1,4 @@ -#lang typed/racket/base +#lang racket/base ;;; Generate IL code from abstract syntax. Each binding name ;;; in assumed to be fresh, to enforce lexical scope rules of Racket @@ -29,12 +29,7 @@ absyn-module->il absyn-linklet->il) -(define-type-alias ModuleObjectNameMap (HashTable (U Path Symbol) - Symbol)) - -(: module-object-name-map (Parameter ModuleObjectNameMap)) -(define module-object-name-map - (make-parameter ((inst hash (U Path Symbol) Symbol)))) +(define module-object-name-map (make-parameter hash)) (: absyn-top-level->il (-> TopLevelForm ILStatement*)) @@ -49,7 +44,6 @@ [else (error "only modules supported at top level")])) ;; FIXME I do ZERO handling of javascript forms -(: absyn-linklet->il (-> Linklet ILLinklet)) (define (absyn-linklet->il lnk) (struct-match-define (Linklet path imports exports forms) lnk) (log-rjs-info "[linklet il]") @@ -66,7 +60,6 @@ (absyn-exports->il exports) (append-map absyn-gtl-form->il forms)))) -(: make-module-map (-> (Listof (Option ILRequire)) (Listof (U Path Symbol)) ModuleObjectNameMap)) ;; TODO need type aliases (define (make-module-map reqs imported-paths) (for/fold ([acc (module-object-name-map)]) ([req reqs] From c25f8349eeebea253d89f0060c8b27a66d6dff2e Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 19:04:20 -0400 Subject: [PATCH 086/170] add match-define --- racketscript-compiler/racketscript/compiler/match.rkt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index b3e4d0b8..045a3601 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -2,7 +2,7 @@ (require (for-syntax racket/base)) -(provide match) +(provide match match-define) ;; Borrowed and slightly modified from `schemify` @@ -141,3 +141,11 @@ (and (pair? p) (car p)))]) #,(build-matches #'hd))] [_ (build-matches #f)])))])) + +(define-syntax (match-define stx) + (syntax-case stx () + [(_ pat expr) + #`(define-values #,(extract-pattern-variables #'pat) + (let ([v expr]) + (match v + [pat (values . #,(extract-pattern-variables #'pat))])))])) From 9c892086a754672370908180a7382c69932647ba Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 19:07:07 -0400 Subject: [PATCH 087/170] more transform updates --- racketscript-compiler/racketscript/compiler/transform.rkt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index d31a8ecf..7f7062c4 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -15,7 +15,8 @@ "il-analyze.rkt" "il.rkt" "logging.rkt" - "util.rkt") + "util.rkt" + "set.rkt") (require/typed racket/syntax [format-symbol (-> String Any * Symbol)]) @@ -70,7 +71,6 @@ (ILRequire-name req)) acc))) -(: absyn-exports->il (-> (Listof (U Symbol (Listof Symbol))) ILProvide*)) (define (absyn-exports->il exports) (for/list ([ex exports]) (cond @@ -79,7 +79,6 @@ [else (error 'exports->il "unknown export form in linklet" ex)]))) -(: absyn-requires->il (-> (Listof (U Path Symbol)) Path (Listof (Option ILRequire)))) (define (absyn-requires->il import-list path) (for/list ([mod-path import-list] [counter (in-naturals)]) From 94b7b061d220243c7315eba27b1dac479e54c3e9 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 20:06:23 -0400 Subject: [PATCH 088/170] stripping types from ident wip --- .../racketscript/compiler/ident.rkt | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ident.rkt b/racketscript-compiler/racketscript/compiler/ident.rkt index 10a6aa62..7839621f 100644 --- a/racketscript-compiler/racketscript/compiler/ident.rkt +++ b/racketscript-compiler/racketscript/compiler/ident.rkt @@ -1,14 +1,9 @@ -#lang typed/racket/base +#lang racket/base -(require racket/bool - racket/format - racket/match - racket/set - typed/rackunit - "config.rkt") - -(require/typed racket/string - [string-prefix? (-> String String Boolean)]) +(require "config.rkt" + "match.rkt" + ;; suspicious but looks like it doesn't have issues + (only-in racket/string string-prefix?)) (provide fresh-id fresh-id-counter @@ -17,14 +12,12 @@ ;;; Identifier renaming ------------------------------------------------------- -(: normalize-symbol (->* (Symbol) ((Listof String)) String)) ;;; NOTE: Just normalizing is still not a safe way to translate to JS. (define (normalize-symbol s [ignores '()]) ;; TODO: handle every weird character in symbol ;; Since every identifier is suffixed with fresh symbol ;; we don't have to worry about name clashes after this ;; naive renaming. - (: should-rename? (-> String Boolean)) (define (should-rename? s) (not (string-prefix? s (jsruntime-core-module)))) From 2be845429c6aaa01d8854694186792eff27fcdd5 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sat, 30 Jul 2022 20:06:44 -0400 Subject: [PATCH 089/170] getting rid of types from util wip --- racketscript-compiler/racketscript/compiler/util.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index fc6cbd63..eff2861b 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -1,4 +1,4 @@ -#lang typed/racket/base +#lang racket/base (require (for-syntax racket/base) anaphoric From fb431cae50c1daca5507fc67740424f1a79df95a Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 06:53:18 -0400 Subject: [PATCH 090/170] add guard with pattern variables in scope --- .../racketscript/compiler/match.rkt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index 045a3601..27c4fcdb 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -125,12 +125,16 @@ (define ids (extract-pattern-variables (car patterns))) (define match? (check-one #'v (car patterns) head-id)) (define guard (extract-guard (car bodys))) - #`(if #,(if guard - #`(and #,match? #,guard) - match?) + #`(let* ([k #f] + [condition (let/cc kont (set! k kont) #,match?)]) + (if condition (let-values ([#,ids #,(extract-one #'v (car patterns))]) - . #,(remove-guard (car bodys))) - #,(loop (cdr patterns) (cdr bodys)))]))) + #,(if guard + #`(if #,guard + (begin . #,(remove-guard (car bodys))) + (k #f)) + #`(begin . #,(remove-guard (car bodys))))) + #,(loop (cdr patterns) (cdr bodys))))]))) ;; If the first pattern is `( ....)`, then ;; extract the input head symbol, because we're ;; likely to want to check it for many pattern cases From c9ac1e06d8888967e7be555db348115fc77bc24b Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 07:05:08 -0400 Subject: [PATCH 091/170] some more set methods --- racketscript-compiler/racketscript/compiler/set.rkt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt index ea4ccf6f..02ccb5f0 100644 --- a/racketscript-compiler/racketscript/compiler/set.rkt +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -6,10 +6,18 @@ (struct set-impl (contents) #:transparent) -(provide set set-member?) +(provide set set-member? set-add list->set) (define-syntax (set stx) (syntax-case stx () [(_ e ...) #'(set-impl (make-immutable-hash (list (cons e #t) ...)))])) (define (set-member? st v) (hash-has-key? (set-impl-contents st) v)) + +(define (set-add st v) + (set-impl (hash-set (set-impl-contents st) v #t))) + +(define (list->set lst) + (for/fold ([st (set)]) + ([elem lst]) + (set-add st elem))) From 2f9823e5fba02d7d0c4d99b988cc11217fc0baac Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 07:21:55 -0400 Subject: [PATCH 092/170] types fully removed from ident.rkt --- .../racketscript/compiler/ident.rkt | 91 +++++++++---------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ident.rkt b/racketscript-compiler/racketscript/compiler/ident.rkt index 7839621f..1953b490 100644 --- a/racketscript-compiler/racketscript/compiler/ident.rkt +++ b/racketscript-compiler/racketscript/compiler/ident.rkt @@ -2,7 +2,9 @@ (require "config.rkt" "match.rkt" - ;; suspicious but looks like it doesn't have issues + "set.rkt" + ;; suspicious but looks like these don't cause issues when flattening + (only-in racket/bool false?) (only-in racket/string string-prefix?)) (provide fresh-id @@ -26,30 +28,33 @@ (cond [(false? (should-rename? ss)) ss] [(reserved-keyword? s) - (~a "r" ss)] + (string-append "r" ss)] [else + (match-define `(,ch-first . ,ch-rest) (string->list ss)) + (apply string-append + (cons (normalize-symbol-atom ch-first #t ignores) + (let loop ([ss ch-rest ]) + ;; FIXME this used to be much cleaner with pattern matching + (match ss + [`() null] + [`(,fst ,snd . ,rst) + #:when (and (eq? fst "-") + (eq? snd ">")) + (cons "_to_" (loop rst))] + [`(,fst . ,rst) + (cons (normalize-symbol-atom fst #f ignores) (loop rst))]))))])) + +;; (module+ test +;; (check-equal? (normalize-symbol '7am) "_7am") +;; (check-equal? (normalize-symbol 'foobar) "foobar") +;; (check-equal? (normalize-symbol '+) "__plus_") +;; (check-equal? (normalize-symbol 'hello-world) "hello_world") +;; (check-equal? (normalize-symbol 'document.write+print (list "." "+")) +;; "document.write+print" +;; "characters in ignores parameter is not replaced") +;; (check-equal? (normalize-symbol 'document.write (list ".")) "document.write" +;; "characters in ignores parameter is not replaced")) - (match-define (cons ch-first ch-rest) (string->list ss)) - (apply string-append - (cons (normalize-symbol-atom ch-first #t ignores) - (let loop : (Listof String) ([ss : (Listof Char) ch-rest]) - (match ss - [(list) null] - [(list* "-" ">" rst) (cons "_to_" (loop rst))] - [(list* c rst) (cons (normalize-symbol-atom c #f ignores) (loop rst))]))))])) - -(module+ test - (check-equal? (normalize-symbol '7am) "_7am") - (check-equal? (normalize-symbol 'foobar) "foobar") - (check-equal? (normalize-symbol '+) "__plus_") - (check-equal? (normalize-symbol 'hello-world) "hello_world") - (check-equal? (normalize-symbol 'document.write+print (list "." "+")) - "document.write+print" - "characters in ignores parameter is not replaced") - (check-equal? (normalize-symbol 'document.write (list ".")) "document.write" - "characters in ignores parameter is not replaced")) - -(: valid-literal-atom? (-> Char Boolean Boolean)) (define (valid-literal-atom? ch first?) (define patt ;;TODO: Not entirely sure about the second case. Check specs again. @@ -57,20 +62,17 @@ #px"\\$|_|\\p{L}|\\p{Nl}" #px"\\$|_|\\p{L}|\\p{Nl}|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}")) (regexp-match-exact? patt (string ch))) -(module+ test - (check-true (valid-literal-atom? #\a #f)) - (check-true (valid-literal-atom? #\$ #f)) - (check-true (valid-literal-atom? #\_ #f)) - (check-true (valid-literal-atom? #\3 #f)) - (check-false (valid-literal-atom? #\3 #t))) +;; (module+ test +;; (check-true (valid-literal-atom? #\a #f)) +;; (check-true (valid-literal-atom? #\$ #f)) +;; (check-true (valid-literal-atom? #\_ #f)) +;; (check-true (valid-literal-atom? #\3 #f)) +;; (check-false (valid-literal-atom? #\3 #t))) -(: reserved-keyword? (-> Symbol Boolean)) (define (reserved-keyword? s) (set-member? es6-reserved-keywords s)) -(: normalize-symbol-atom (->* (Char Boolean) ((Listof String)) String)) (define (normalize-symbol-atom ch first? [ignores '()]) - (: char-map (HashTable String String)) (define char-map #hash(("-" . "_") ("?" . "_p") @@ -96,32 +98,29 @@ [(hash-has-key? char-map sch) (hash-ref char-map sch)] [else "_"])) -(module+ test - (check-true #t)) +;; (module+ test +;; (check-true #t)) ;;;---------------------------------------------------------------------------- -(: fresh-id-counter (Parameter Nonnegative-Integer)) ;; Used when test-environment? is true. (define fresh-id-counter (make-parameter 0)) -(: fresh-id (-> Symbol Symbol)) (define fresh-id (if (test-environment?) gensym (λ (id) (fresh-id-counter (add1 (fresh-id-counter))) - (string->symbol (~a id (fresh-id-counter)))))) -(module+ test - (check-equal? - (parameterize ([test-environment? #t] - [fresh-id-counter 0]) - (list (fresh-id 'foo) - (fresh-id-counter))) - (list 'foo1 1) - "fresh-id counter should get incremented")) + (string->symbol (format "~a~a" id (fresh-id-counter)))))) +;; (module+ test +;; (check-equal? +;; (parameterize ([test-environment? #t] +;; [fresh-id-counter 0]) +;; (list (fresh-id 'foo) +;; (fresh-id-counter))) +;; (list 'foo1 1) +;; "fresh-id counter should get incremented")) ;;----------------------------------------------------------------------------- -(: es6-reserved-keywords (Setof Symbol)) (define es6-reserved-keywords (list->set '(abstract From 3b6c49b7af11dfb4d05e3744fc6c1ebff694e464 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 07:26:48 -0400 Subject: [PATCH 093/170] reinclude tests with rackunit require only in test submodule --- .../racketscript/compiler/ident.rkt | 57 ++++++++++--------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ident.rkt b/racketscript-compiler/racketscript/compiler/ident.rkt index 1953b490..c022fa25 100644 --- a/racketscript-compiler/racketscript/compiler/ident.rkt +++ b/racketscript-compiler/racketscript/compiler/ident.rkt @@ -12,6 +12,8 @@ reserved-keyword? normalize-symbol) +(module+ test (require rackunit)) + ;;; Identifier renaming ------------------------------------------------------- ;;; NOTE: Just normalizing is still not a safe way to translate to JS. @@ -44,16 +46,16 @@ [`(,fst . ,rst) (cons (normalize-symbol-atom fst #f ignores) (loop rst))]))))])) -;; (module+ test -;; (check-equal? (normalize-symbol '7am) "_7am") -;; (check-equal? (normalize-symbol 'foobar) "foobar") -;; (check-equal? (normalize-symbol '+) "__plus_") -;; (check-equal? (normalize-symbol 'hello-world) "hello_world") -;; (check-equal? (normalize-symbol 'document.write+print (list "." "+")) -;; "document.write+print" -;; "characters in ignores parameter is not replaced") -;; (check-equal? (normalize-symbol 'document.write (list ".")) "document.write" -;; "characters in ignores parameter is not replaced")) +(module+ test + (check-equal? (normalize-symbol '7am) "_7am") + (check-equal? (normalize-symbol 'foobar) "foobar") + (check-equal? (normalize-symbol '+) "__plus_") + (check-equal? (normalize-symbol 'hello-world) "hello_world") + (check-equal? (normalize-symbol 'document.write+print (list "." "+")) + "document.write+print" + "characters in ignores parameter is not replaced") + (check-equal? (normalize-symbol 'document.write (list ".")) "document.write" + "characters in ignores parameter is not replaced")) (define (valid-literal-atom? ch first?) (define patt @@ -62,12 +64,13 @@ #px"\\$|_|\\p{L}|\\p{Nl}" #px"\\$|_|\\p{L}|\\p{Nl}|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}")) (regexp-match-exact? patt (string ch))) -;; (module+ test -;; (check-true (valid-literal-atom? #\a #f)) -;; (check-true (valid-literal-atom? #\$ #f)) -;; (check-true (valid-literal-atom? #\_ #f)) -;; (check-true (valid-literal-atom? #\3 #f)) -;; (check-false (valid-literal-atom? #\3 #t))) + +(module+ test + (check-true (valid-literal-atom? #\a #f)) + (check-true (valid-literal-atom? #\$ #f)) + (check-true (valid-literal-atom? #\_ #f)) + (check-true (valid-literal-atom? #\3 #f)) + (check-false (valid-literal-atom? #\3 #t))) (define (reserved-keyword? s) (set-member? es6-reserved-keywords s)) @@ -98,8 +101,9 @@ [(hash-has-key? char-map sch) (hash-ref char-map sch)] [else "_"])) -;; (module+ test -;; (check-true #t)) + +(module+ test + (check-true #t)) ;;;---------------------------------------------------------------------------- ;; Used when test-environment? is true. @@ -111,14 +115,15 @@ (λ (id) (fresh-id-counter (add1 (fresh-id-counter))) (string->symbol (format "~a~a" id (fresh-id-counter)))))) -;; (module+ test -;; (check-equal? -;; (parameterize ([test-environment? #t] -;; [fresh-id-counter 0]) -;; (list (fresh-id 'foo) -;; (fresh-id-counter))) -;; (list 'foo1 1) -;; "fresh-id counter should get incremented")) + +(module+ test + (check-equal? + (parameterize ([test-environment? #t] + [fresh-id-counter 0]) + (list (fresh-id 'foo) + (fresh-id-counter))) + (list 'foo1 1) + "fresh-id counter should get incremented")) ;;----------------------------------------------------------------------------- (define es6-reserved-keywords From 0e094331b79586e60a4d10854c1955676aafccc8 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 07:30:48 -0400 Subject: [PATCH 094/170] fixing some requires in util.rkt, WIP --- racketscript-compiler/racketscript/compiler/util.rkt | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index eff2861b..ccbee8a7 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -1,17 +1,9 @@ #lang racket/base (require (for-syntax racket/base) - anaphoric - racket/file - racket/format - racket/list - racket/match - racket/path - racket/sequence - racket/set - typed/rackunit "config.rkt" - "ident.rkt") + "ident.rkt" + (only-in racket/string string-prefix?)) (require/typed racket/string [string-prefix? (-> String String Boolean)]) From 37c2ae18ce68144a02bf94323f4b8e90698d5d43 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 07:36:36 -0400 Subject: [PATCH 095/170] get rid of unusable requires --- racketscript-compiler/racketscript/compiler/util-untyped.rkt | 3 --- 1 file changed, 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util-untyped.rkt b/racketscript-compiler/racketscript/compiler/util-untyped.rkt index da3c7e28..3507f374 100644 --- a/racketscript-compiler/racketscript/compiler/util-untyped.rkt +++ b/racketscript-compiler/racketscript/compiler/util-untyped.rkt @@ -5,9 +5,6 @@ *jsident-pattern* js-identifier?) -(require setup/dirs - setup/link) - ;; Path Path -> Boolean ;; Returns true if path has base as prefix (define (subpath? base path) From bc32606ffe3462a082de9d779cd5a7aaab295153 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 15:54:46 -0400 Subject: [PATCH 096/170] get rid of let/cc, racketscript can't handle that --- racketscript-compiler/racketscript/compiler/match.rkt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index 27c4fcdb..badfaf37 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -125,16 +125,16 @@ (define ids (extract-pattern-variables (car patterns))) (define match? (check-one #'v (car patterns) head-id)) (define guard (extract-guard (car bodys))) - #`(let* ([k #f] - [condition (let/cc kont (set! k kont) #,match?)]) - (if condition + #`(let () + (define (alt) #,(loop (cdr patterns) (cdr bodys))) + (if #,match? (let-values ([#,ids #,(extract-one #'v (car patterns))]) #,(if guard #`(if #,guard (begin . #,(remove-guard (car bodys))) - (k #f)) + (alt)) #`(begin . #,(remove-guard (car bodys))))) - #,(loop (cdr patterns) (cdr bodys))))]))) + (alt)))]))) ;; If the first pattern is `( ....)`, then ;; extract the input head symbol, because we're ;; likely to want to check it for many pattern cases From 03aec95ad6dae2b097138ea4b2e5d3be8633311f Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 17:52:59 -0400 Subject: [PATCH 097/170] remove one no-longer-imported function --- .../racketscript/compiler/util.rkt | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index ccbee8a7..c689a484 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -201,20 +201,18 @@ (: module-output-file (-> (U Path Symbol) Path)) ;; NOTE: returns simplified path, which is required by fns like find-relative-path (define (module-output-file mod) - (simple-form-path + (define simple-form-path (compose simplify-path path->complete-path)) + (simple-form-path (match (module-kind mod) [(list 'primitive mod-path) ;; Eg. #%kernel, #%utils ... - (path->complete-path - (build-path (output-directory) - "runtime" - (~a (substring (symbol->string mod-path) 2) ".rkt.js")))] + (build-path (output-directory) + "runtime" + (~a (substring (symbol->string mod-path) 2) ".rkt.js"))] [(list 'runtime rel-path) - (path->complete-path - (build-path (output-directory) "runtime" (~a rel-path ".js")))] + (build-path (output-directory) "runtime" (~a rel-path ".js"))] [(list 'collects base rel-path) - (path->complete-path - (build-path (output-directory) "collects" (~a rel-path ".js")))] + (build-path (output-directory) "collects" (~a rel-path ".js"))] [(list 'links name root-path rel-path) (define output-path (build-path (output-directory) "links" name (~a rel-path ".js"))) @@ -222,13 +220,12 @@ ;; deep arbitrarily inside (make-directory* (assert (path-only output-path) path?)) ;; TODO: doesn't handle arbitrary deep files for now - (path->complete-path output-path)] + output-path] [(list 'general mod-path) (let* ([main (assert (main-source-file) path?)] [rel-path (find-relative-path (simple-form-path (path-parent main)) (simple-form-path mod-path))]) - (path->complete-path - (build-path (output-directory) "modules" (~a rel-path ".js"))))]))) + (build-path (output-directory) "modules" (~a rel-path ".js")))]))) (: module->relative-import (-> Path Path)) (define (module->relative-import mod-path) From 362885d5f1b5bc3fbf67a250787017149345347b Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 18:59:28 -0400 Subject: [PATCH 098/170] replacement for links function, pretty shoddy but hopefully works --- .../racketscript/compiler/util-untyped.rkt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util-untyped.rkt b/racketscript-compiler/racketscript/compiler/util-untyped.rkt index 3507f374..f3267369 100644 --- a/racketscript-compiler/racketscript/compiler/util-untyped.rkt +++ b/racketscript-compiler/racketscript/compiler/util-untyped.rkt @@ -17,6 +17,17 @@ [p path*]) (equal? b p))])) +(define (get-root-links links-file) + (define-values (base _f _b) (split-path links-file)) + (let ([specs (read (open-input-file links-file))]) + (for/list ([spec specs] + #:when (eq? 'root (car spec))) + (apply build-path + base + "collects" + (map bytes->string/locale (cadr spec)))))) + + ;; Module-Path -> (Maybe (list String Path)) ;; If `mod-path` belongs to a module listed in (find-links-file), ;; return a list containing: @@ -26,13 +37,12 @@ ;; #) ;; else return false. (define (links-module? mod-path) - (define links-file (find-links-file)) (for*/or ([links-file (current-library-collection-links)] #:when links-file - [link-path (links #:file links-file #:root? #t)]) + [link-path (get-root-links links-file)]) (and (subpath? link-path mod-path) (let-values ([(base link-name dir?) (split-path link-path)]) - (list (~a link-name) link-path))))) + (list (format "~a" link-name) link-path))))) (define (improper->proper l) (match l From e023b381089bd4833868bb656920eea477346bd5 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Sun, 31 Jul 2022 19:03:57 -0400 Subject: [PATCH 099/170] bugs, from manual testing seems equivalent --- .../racketscript/compiler/util-untyped.rkt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util-untyped.rkt b/racketscript-compiler/racketscript/compiler/util-untyped.rkt index f3267369..e8aac4fa 100644 --- a/racketscript-compiler/racketscript/compiler/util-untyped.rkt +++ b/racketscript-compiler/racketscript/compiler/util-untyped.rkt @@ -17,15 +17,20 @@ [p path*]) (equal? b p))])) +(define (link-path-elem->string elem) + (if (symbol? elem) + elem + (bytes->string/locale elem))) + (define (get-root-links links-file) (define-values (base _f _b) (split-path links-file)) (let ([specs (read (open-input-file links-file))]) (for/list ([spec specs] #:when (eq? 'root (car spec))) - (apply build-path - base - "collects" - (map bytes->string/locale (cadr spec)))))) + (simplify-path + (apply build-path + base + (map link-path-elem->string (cadr spec))))))) ;; Module-Path -> (Maybe (list String Path)) From 33fa275526ea92bde27b7353ee42c98696d7e76b Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Mon, 1 Aug 2022 14:40:25 -0400 Subject: [PATCH 100/170] add set-map --- racketscript-compiler/racketscript/compiler/set.rkt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt index 02ccb5f0..bc15dac1 100644 --- a/racketscript-compiler/racketscript/compiler/set.rkt +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -4,9 +4,9 @@ (require (for-syntax racket/base)) -(struct set-impl (contents) #:transparent) +(provide set set-member? set-add list->set set-map) -(provide set set-member? set-add list->set) +(struct set-impl (contents) #:transparent) (define-syntax (set stx) (syntax-case stx () @@ -17,6 +17,11 @@ (define (set-add st v) (set-impl (hash-set (set-impl-contents st) v #t))) +(define (set-map st proc) + (set-impl + (hash-map (set-impl-contents st) + (λ (k _) (proc k))))) + (define (list->set lst) (for/fold ([st (set)]) ([elem lst]) From f20b99409b7a4ea190b1070cbabb62021cbb6c8e Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Mon, 1 Aug 2022 14:40:36 -0400 Subject: [PATCH 101/170] getting rid of more types --- .../racketscript/compiler/util.rkt | 136 ++++++++---------- 1 file changed, 61 insertions(+), 75 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index c689a484..f08ce3d4 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -3,17 +3,10 @@ (require (for-syntax racket/base) "config.rkt" "ident.rkt" + "util-untyped.rkt" + "set.rkt" (only-in racket/string string-prefix?)) -(require/typed racket/string - [string-prefix? (-> String String Boolean)]) - -(require/typed "util-untyped.rkt" - [improper->proper (-> (Pairof Any Any) (Listof Any))] - [js-identifier? (-> Symbol Boolean)] - [links-module? (-> Path - (Option (List String Path)))]) - (provide hash-set-pair* improper->proper flatten1 @@ -42,27 +35,35 @@ ++ (all-from-out "ident.rkt")) +(module+ test (require rackunit)) + (define ++ string-append) -(: simple-module-path (-> (U Symbol Path) (U Symbol Path))) +(define simple-form-path (compose simplify-path path->complete-path)) + +;; taken from racket/collects/racket/path.rkt +(define (path-only name) + (unless (or (path-string? name) + (path-for-some-system? name)) + (raise-argument-error 'path-only "(or/c path-string? path-for-some-system?)" name)) + (let-values ([(base file dir?) (split-path name)]) + (cond [dir? (if (string? name) (string->path name) name)] + [(path-for-some-system? base) base] + [else #f]))) + (define (simple-module-path mod) (if (symbol? mod) mod (simple-form-path mod))) -(: string-slice (->* (String Integer) ((Option Integer)) String)) (define (string-slice str start [end #f]) (let* ([len (string-length str)] - [fix-index (λ ([i : Integer]) - (if (negative? i) - (+ len i) - i))] + [fix-index (λ (i) (if (negative? i) (+ len i) i))] [start (fix-index start)] [end (fix-index (or end len))]) (substring str start end))) -(: path-parent (-> Path Path)) ;; Because `path-only` return type is `path-for-some-system` and that ;; is not in any way helping (define (path-parent p) @@ -71,34 +72,29 @@ p* (error 'path-parent "No parent for ~a" p))) -(: length=? (-> (Listof Any) Natural Boolean)) (define (length=? lst n) (equal? (length lst) n)) + (module+ test (check-false (length=? '() 1)) (check-true (length=? '(1 2) 2))) -(: reverse-pair (∀ (A B) (-> (Pairof A B) (Pairof B A)))) (define (reverse-pair p) (cons (cdr p) (car p))) -(: flatten1 (∀ (A) (-> (Listof (Listof A)) (Listof A)))) ;; Flatten a list of list upto one level (define (flatten1 lst) - (foldl (inst append A) '() lst)) + (foldl append '() lst)) -(: append1 (∀ (A) (-> (Listof A) A (Listof A)))) (define (append1 lst a) (append lst (list a))) -(: split-before-last : (∀ (A) (-> (Listof A) (Values (Listof A) A)))) ;; Returns lst with its last element and the last element (define (split-before-last lst) - (match-define-values (ls (list v)) (split-at-right lst 1)) - (values ls v)) + (define-values (ls list-v) (split-at-right lst 1)) + (match list-v + [`(,v) (values ls v)])) -(: hash-set-pair* (∀ (A B) (-> (HashTable A B) (Listof (Pairof A B)) - (HashTable A B)))) ;; Update given hash `h` with given list of (key, value) pairs. (define (hash-set-pair* h pairs) (let loop ([p* pairs] [h h]) @@ -108,26 +104,25 @@ [k (car p)] [v (cdr p)]) (loop (cdr p*) (hash-set h k v)))))) + (module+ test (check-equal? (hash-set-pair* (hash) '()) (hash)) (check-equal? (hash-set-pair* (hash) (list '(a . b) '(c . d))) (hash 'a 'b 'c 'd))) -(: assocs->hash-list : (∀ (A B) (-> (Listof (Pairof A B)) - (HashTable A (Listof B))))) ;; Takes a list of (key, value) pairs `assocs` and returns a hash ;; with all values pointed by same key folded into a list (define (assocs->hash-list assocs) - (: empty-hash (HashTable A (Listof B))) (define empty-hash (hash)) - (foldl (λ ([a* : (Pairof A B)] [result : (HashTable A (Listof B))]) + (foldl (λ (a* result) (let ([key (car a*)] [val (cdr a*)]) (hash-update result key - (λ ([v : (Listof B)]) (cons val v)) + (λ (v) (cons val v)) (λ () '())))) empty-hash assocs)) + (module+ test (check-equal? (assocs->hash-list '((a . b) (b . c) (c . d) (a . e) (c . f) (a . g))) @@ -138,7 +133,6 @@ ;;; Paths that we use every now and then -------------------------------------- -(: module-path->name (-> (U Path Symbol) Path)) ;; (-> ModuleName String) (define (module-path->name mod-name) (cond [(symbol? mod-name) (jsruntime-module-path mod-name)] ;; #%kernel, #%utils @@ -146,86 +140,78 @@ [else (error 'module-path->name "Don't know how to translate module name '~a'" mod-name)])) -(: main-source-directory (-> Path)) (define (main-source-directory) - (path-parent (assert (main-source-file) path?))) + (path-parent (main-source-file))) -(: jsruntime-import-path (-> (U Path Symbol) Path Path)) (define (jsruntime-import-path base runtime-fpath) ;; TODO: Make runtime, modules, and everything united! - (: fix-for-down (-> Path Path)) (define (fix-for-down p) (define p-str (~a p)) (if (string-prefix? p-str "..") p - (build-path (~a "./" p-str)))) + (build-path (format "./~a" p-str)))) (fix-for-down - (cast (find-relative-path (path-parent (module-output-file base)) - runtime-fpath) - Path))) + (find-relative-path (path-parent (module-output-file base)) + runtime-fpath))) ;;; Module path renaming ------------------------------------------------------ -(: actual-module-path (-> (U Path Symbol) Path)) (define (actual-module-path in-path) (cond [(path? in-path) in-path] [(and (symbol? in-path) (primitive-module? in-path)) (build-path racketscript-runtime-dir - (~a (substring (symbol->string in-path) 2) ".rkt"))] + (format "~a~a" + (substring (symbol->string in-path) 2) + ".rkt"))] [else (error 'actual-module-path "~a is not a primitive module" in-path)])) - -(: primitive-module? (-> (U Path Symbol) Boolean)) (define (primitive-module? mod) (set-member? primitive-modules mod)) -(: primitive-module-path? (-> Path (Option (U Symbol Path)))) (define (primitive-module-path? mod-path) - (let* ([primitive-modules-paths : (Listof (Pairof Path (U Symbol Path))) - (set-map primitive-modules - (λ ([m : (U Symbol Path)]) + (let* ([primitive-modules-paths (set-map primitive-modules + (λ (m) (cons (actual-module-path m) m)))] [result (assoc mod-path primitive-modules-paths)]) (if (pair? result) (cdr result) #f))) -(: override-module-path (-> (U Path Symbol) Path)) (define (override-module-path mod) (if (symbol? mod) (build-path racketscript-runtime-dir - (~a (substring (symbol->string mod) 2) ".rkt")) + (format "~a~a" + (substring (symbol->string mod) 2) + ".rkt")) mod)) -(: module-output-file (-> (U Path Symbol) Path)) ;; NOTE: returns simplified path, which is required by fns like find-relative-path (define (module-output-file mod) - (define simple-form-path (compose simplify-path path->complete-path)) (simple-form-path - (match (module-kind mod) - [(list 'primitive mod-path) - ;; Eg. #%kernel, #%utils ... - (build-path (output-directory) - "runtime" - (~a (substring (symbol->string mod-path) 2) ".rkt.js"))] - [(list 'runtime rel-path) - (build-path (output-directory) "runtime" (~a rel-path ".js"))] - [(list 'collects base rel-path) - (build-path (output-directory) "collects" (~a rel-path ".js"))] - [(list 'links name root-path rel-path) - (define output-path - (build-path (output-directory) "links" name (~a rel-path ".js"))) - ;; because we just created root links directory, but files could be - ;; deep arbitrarily inside - (make-directory* (assert (path-only output-path) path?)) - ;; TODO: doesn't handle arbitrary deep files for now - output-path] - [(list 'general mod-path) - (let* ([main (assert (main-source-file) path?)] - [rel-path (find-relative-path (simple-form-path (path-parent main)) - (simple-form-path mod-path))]) - (build-path (output-directory) "modules" (~a rel-path ".js")))]))) + (match (module-kind mod) + [(list 'primitive mod-path) + ;; Eg. #%kernel, #%utils ... + (build-path (output-directory) + "runtime" + (~a (substring (symbol->string mod-path) 2) ".rkt.js"))] + [(list 'runtime rel-path) + (build-path (output-directory) "runtime" (~a rel-path ".js"))] + [(list 'collects base rel-path) + (build-path (output-directory) "collects" (~a rel-path ".js"))] + [(list 'links name root-path rel-path) + (define output-path + (build-path (output-directory) "links" name (~a rel-path ".js"))) + ;; because we just created root links directory, but files could be + ;; deep arbitrarily inside + (make-directory* (assert (path-only output-path) path?)) + ;; TODO: doesn't handle arbitrary deep files for now + output-path] + [(list 'general mod-path) + (let* ([main (assert (main-source-file) path?)] + [rel-path (find-relative-path (simple-form-path (path-parent main)) + (simple-form-path mod-path))]) + (build-path (output-directory) "modules" (~a rel-path ".js")))]))) (: module->relative-import (-> Path Path)) (define (module->relative-import mod-path) From 09fcdf9b863f4848ee35fb2ca8dd0137041890b4 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 15:14:49 -0400 Subject: [PATCH 102/170] move some anaphoric macros into repo so I don't need the external dependency --- .../racketscript/compiler/anaphoric.rkt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 racketscript-compiler/racketscript/compiler/anaphoric.rkt diff --git a/racketscript-compiler/racketscript/compiler/anaphoric.rkt b/racketscript-compiler/racketscript/compiler/anaphoric.rkt new file mode 100644 index 00000000..45b43e56 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/anaphoric.rkt @@ -0,0 +1,29 @@ +#lang racket/base + +;; take some of the forms from the anaphoric library, without including it as a dependency +;; for the project. +;; +;; Taken or modified from: https://github.com/SuzanneSoy/anaphoric + +(require racket/stxparam + (for-syntax racket/base)) + +(provide it acond) + +(define-syntax-parameter it + (λ (stx) + (raise-syntax-error + 'it + "Use of the \"it\" identifier is only allowed within anaphoric macros." + stx))) + +(define-syntax (acond stx) + (syntax-case stx (else) + [(_ [else . else-body]) #'(begin . else-body)] + [(_) #'(void)] + [(_ [condition . body] . rest) + #'(let ([tmp condition]) + (if tmp + (syntax-parameterize ([it (make-rename-transformer #'tmp)]) + . body) + (acond . rest)))])) From eb386d048018efd497979dbe29619ba54b04d5ac Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 15:14:58 -0400 Subject: [PATCH 103/170] types removed from util.rkt --- .../racketscript/compiler/util.rkt | 102 +++++++++++------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index f08ce3d4..0894f8a2 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -5,7 +5,10 @@ "ident.rkt" "util-untyped.rkt" "set.rkt" - (only-in racket/string string-prefix?)) + "match.rkt" + "anaphoric.rkt" + (only-in racket/string string-prefix?) + (only-in racket/path find-relative-path)) (provide hash-set-pair* improper->proper @@ -42,6 +45,11 @@ (define simple-form-path (compose simplify-path path->complete-path)) +(define (~a . args) + (let* ([fmt-lst (build-list (length args) (λ (_) "~a"))] + [fmt-string (apply string-append fmt-lst)]) + (apply format fmt-string args))) + ;; taken from racket/collects/racket/path.rkt (define (path-only name) (unless (or (path-string? name) @@ -89,6 +97,32 @@ (define (append1 lst a) (append lst (list a))) + + +;; taken and modified from collects/racket/list.rkt +(define (split-at-right list n) + (define (drop* list n) + (if (zero? n) list (and (pair? list) (drop* (cdr list) (sub1 n))))) + +(define (too-large who list n) + (define proper? (list? list)) + (raise-argument-error who + (format "a ~alist with at least ~a ~a" + (if proper? "" "(possibly improper) ") + n + (if proper? "elements" "pairs")) + list)) + + (unless (exact-nonnegative-integer? n) + (raise-argument-error 'split-at-right "exact-nonnegative-integer?" 1 list n)) + + (let loop ([list list] + [lead (or (drop* list n) (too-large 'split-at-right list n))] + [pfx '()]) + (if (pair? lead) + (loop (cdr list) (cdr lead) (cons (car list) pfx)) + (values (reverse pfx) list)))) + ;; Returns lst with its last element and the last element (define (split-before-last lst) (define-values (ls list-v) (split-at-right lst 1)) @@ -98,7 +132,7 @@ ;; Update given hash `h` with given list of (key, value) pairs. (define (hash-set-pair* h pairs) (let loop ([p* pairs] [h h]) - (if (empty? p*) + (if (null? p*) h (let* ([p (car p*)] [k (car p)] @@ -149,7 +183,7 @@ (define p-str (~a p)) (if (string-prefix? p-str "..") p - (build-path (format "./~a" p-str)))) + (build-path (~a "./" p-str)))) (fix-for-down (find-relative-path (path-parent (module-output-file base)) runtime-fpath))) @@ -161,9 +195,7 @@ [(path? in-path) in-path] [(and (symbol? in-path) (primitive-module? in-path)) (build-path racketscript-runtime-dir - (format "~a~a" - (substring (symbol->string in-path) 2) - ".rkt"))] + (~a (substring (symbol->string in-path) 2) ".rkt"))] [else (error 'actual-module-path "~a is not a primitive module" in-path)])) (define (primitive-module? mod) @@ -181,43 +213,51 @@ (define (override-module-path mod) (if (symbol? mod) (build-path racketscript-runtime-dir - (format "~a~a" - (substring (symbol->string mod) 2) - ".rkt")) + (~a (substring (symbol->string mod) 2) ".rkt")) mod)) +;; taken from racket/collects/racket/file.rkt +(define (make-directory* dir) + (unless (path-string? dir) + (raise-argument-error 'make-directory* "path-string?" dir)) + (let-values ([(base name dir?) (split-path dir)]) + (when (and (path? base) + (not (directory-exists? base))) + (make-directory* base)) + (unless (directory-exists? dir) + (with-handlers ([exn:fail:filesystem:exists? void]) + (make-directory dir))))) + ;; NOTE: returns simplified path, which is required by fns like find-relative-path (define (module-output-file mod) (simple-form-path (match (module-kind mod) - [(list 'primitive mod-path) + [`(primitive ,mod-path) ;; Eg. #%kernel, #%utils ... (build-path (output-directory) "runtime" (~a (substring (symbol->string mod-path) 2) ".rkt.js"))] - [(list 'runtime rel-path) + [`(runtime ,rel-path) (build-path (output-directory) "runtime" (~a rel-path ".js"))] - [(list 'collects base rel-path) + [`(collects ,base ,rel-path) (build-path (output-directory) "collects" (~a rel-path ".js"))] - [(list 'links name root-path rel-path) + [`(links ,name ,root-path ,rel-path) (define output-path (build-path (output-directory) "links" name (~a rel-path ".js"))) ;; because we just created root links directory, but files could be ;; deep arbitrarily inside - (make-directory* (assert (path-only output-path) path?)) + (make-directory* (path-only output-path)) ;; TODO: doesn't handle arbitrary deep files for now output-path] - [(list 'general mod-path) - (let* ([main (assert (main-source-file) path?)] + [`(general ,mod-path) + (let* ([main (main-source-file)] [rel-path (find-relative-path (simple-form-path (path-parent main)) (simple-form-path mod-path))]) (build-path (output-directory) "modules" (~a rel-path ".js")))]))) -(: module->relative-import (-> Path Path)) (define (module->relative-import mod-path) ;; ES6 modules imports need "./" prefix for importing relatively ;; to current module, rather than relative to main module. Weird :/ - (: fix-for-down (-> Path Path)) (define (fix-for-down p) (define p-str (~a p)) (if (string-prefix? p-str "..") @@ -227,32 +267,23 @@ (let ([src (current-source-file)]) (if src (fix-for-down - (cast (find-relative-path (path-parent (module-output-file src)) - (module-output-file mod-path)) - Path)) + (find-relative-path (path-parent (module-output-file src)) + (module-output-file mod-path))) (error 'module->relative-import "current-source-file is #f")))) -(: collects-module? (-> Path (Option Path))) (define (collects-module? mod-path) (let loop ([collects (current-library-collection-paths)]) (match collects - ['() #f] - [(cons ch ct) + [`() #f] + [`(,ch . ,ct) (if (string-prefix? (~a mod-path) (~a ch)) ch (loop ct))]))) -(: runtime-module? (-> Path (Option Path))) (define (runtime-module? mod-path) (and (string-prefix? (~a mod-path) (~a racketscript-runtime-dir)) - (cast (find-relative-path racketscript-runtime-dir mod-path) Path))) - -(: module-kind (-> (U Symbol Path) - (U (List 'collects Path Path) - (List 'links String Path Path) - (List 'primitive Symbol) - (List 'runtime Path) - (List 'general Path)))) + (find-relative-path racketscript-runtime-dir mod-path))) + (define (module-kind mod-path) (acond [(symbol? mod-path) (list 'primitive mod-path)] @@ -260,15 +291,14 @@ [(collects-module? mod-path) (list 'collects it - (cast (find-relative-path it mod-path) Path))] + (find-relative-path it mod-path))] [(links-module? mod-path) (list 'links (car it) (cadr it) - (cast (find-relative-path (cadr it) mod-path) Path))] + (find-relative-path (cadr it) mod-path))] [else (list 'general mod-path)])) -(: converge (∀ [X] (-> (-> X X) X X))) (define (converge fn init-val) (let loop ([val init-val]) (let ([new-val (fn val)]) From 68d038f59c43cfb1de9934f7e88edd9b6ecbfa40 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 15:24:00 -0400 Subject: [PATCH 104/170] add set->list --- racketscript-compiler/racketscript/compiler/set.rkt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt index bc15dac1..aa96a04f 100644 --- a/racketscript-compiler/racketscript/compiler/set.rkt +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -4,7 +4,7 @@ (require (for-syntax racket/base)) -(provide set set-member? set-add list->set set-map) +(provide set set-member? set-add list->set set->list set-map) (struct set-impl (contents) #:transparent) @@ -26,3 +26,5 @@ (for/fold ([st (set)]) ([elem lst]) (set-add st elem))) + +(define (set->list st) (hash-keys (set-impl-contents st))) From 4dbc4d9c8ef57b4473acad16206d8dd622c0c55b Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 15:24:13 -0400 Subject: [PATCH 105/170] add format-symbol from racket/syntax --- .../racketscript/compiler/util.rkt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index 0894f8a2..a05503f0 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -50,6 +50,32 @@ [fmt-string (apply string-append fmt-lst)]) (apply format fmt-string args))) +;; taken from racket/collects/racket/syntax.rkt +(define (format-symbol fmt . args) + (define (->string x err) + (cond [(string? x) x] + [(symbol? x) (symbol->string x)] + [(identifier? x) (symbol->string (syntax-e x))] + [(keyword? x) (keyword->string x)] + [(number? x) (number->string x)] + [(char? x) (string x)] + [else (raise-argument-error err + "(or/c string? symbol? identifier? keyword? char? number?)" + x)])) + + (define (check-restricted-format-string who fmt) + (unless (restricted-format-string? fmt) + (raise-arguments-error who + "format string should have only ~a placeholders" + "format string" fmt))) + + (define (convert x) (->string x 'format-symbol)) + + (check-restricted-format-string 'format-symbol fmt) + (let ([args (map convert args)]) + (string->symbol (apply format fmt args)))) + + ;; taken from racket/collects/racket/path.rkt (define (path-only name) (unless (or (path-string? name) From 26454c2ae0fbd08eb09c033e198b0b5025639052 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 16:19:15 -0400 Subject: [PATCH 106/170] removing types and dependencies WIP --- .../racketscript/compiler/transform.rkt | 195 ++++-------------- 1 file changed, 45 insertions(+), 150 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 7f7062c4..a0d059c5 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -16,10 +16,8 @@ "il.rkt" "logging.rkt" "util.rkt" - "set.rkt") - -(require/typed racket/syntax - [format-symbol (-> String Any * Symbol)]) + "set.rkt" + "match.rkt") (require/typed version/utils [version<=? (-> String String Boolean)]) @@ -32,8 +30,6 @@ (define module-object-name-map (make-parameter hash)) - -(: absyn-top-level->il (-> TopLevelForm ILStatement*)) (define (absyn-top-level->il form) (cond [(Module? form) (error 'absyn-top-level->il @@ -84,11 +80,11 @@ [counter (in-naturals)]) (define mod-obj-name (string->symbol (~a "M" counter))) (define import-name - (match mod-path - [(? symbol? _) - (jsruntime-import-path path - (jsruntime-module-path mod-path))] - [_ (module->relative-import mod-path)])) + (if (symbol? mod-path) + (jsruntime-import-path path + (jsruntime-module-path mod-path)) + (module->relative-import mod-path))) + ;; See expansion of identifier in `expand.rkt` for primitive ;; modules (if (or (and (primitive-module? mod-path) ;; a self-import cycle @@ -98,95 +94,6 @@ #f (ILRequire import-name mod-obj-name '*)))) - - -(: absyn-module->il (-> Module ILModule)) -(define (absyn-module->il mod) - (match-define (Module id path lang imports quoted-bindings forms) mod) - (log-rjs-info "[il] ~a" id) - - (: provides (Boxof ILProvide*)) - (define provides (box '())) - - ;; Since we get identifiers directly from defining module, we keep - ;; track of defines, use this for exporting all defines or exclude - ;; re-exports here - (: top-level-defines (Setof Symbol)) - (define top-level-defines - (list->set - (append - (append-map DefineValues-ids - (filter DefineValues? forms)) - (map JSRequire-alias - (filter JSRequire? forms))))) - - (: add-provides! (-> ILProvide* Void)) - (define (add-provides! p*) - (set-box! provides (append (unbox provides) p*))) - - (define imported-mod-path-list (set->list imports)) - (define requires* (absyn-requires->il imported-mod-path-list path)) - - ;; Append all JavaScript requires we find at GTL over here - (: js-requires (Boxof (Listof ILRequire))) - (define js-requires (box '())) - - ;; Filter out #f requires* - (: racket-requires ILRequire*) - (define racket-requires (filter ILRequire? requires*)) - - (define mod-stms - (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) - (append-map - (λ ([form : ModuleLevelForm]) - (cond - [(JSRequire? form) - (set-box! js-requires - (cons (ILRequire (~a (JSRequire-path form)) - (JSRequire-alias form) - (JSRequire-mode form)) - (unbox js-requires))) - '()] - [(GeneralTopLevelForm? form) (absyn-gtl-form->il form)] - [(Provide*? form) - (add-provides! (absyn-provide->il form top-level-defines)) '()] - [(SubModuleForm? form) '()])) ;; TODO - forms))) - - ;; Compute `provides` from this modoule - - (: final-provides ILProvide*) - (define final-provides - (let ([current-module-define? - (λ (p) - (match p - [(ILSimpleProvide id) - (set-member? top-level-defines id )] - [(ILRenamedProvide local-id exported-id) - (set-member? top-level-defines local-id)]))]) - (cons (ILSimpleProvide *quoted-binding-ident-name*) - (~> (unbox provides) - (filter current-module-define? _) - (remove-duplicates _))))) - - ;; Also expose quoted bindings - (: quoted-bindings-stms ILStatement*) - (define quoted-bindings-stms - (cons (ILVarDec *quoted-binding-ident-name* (ILObject '())) - (~> (set->list quoted-bindings) - (filter (λ (b) (set-member? top-level-defines b)) _) - (map (λ ([b : Symbol]) - (define b* (string->symbol (normalize-symbol b))) - (ILAssign (ILRef *quoted-binding-ident-name* b*) b*)) - _)))) - - (ILModule path - final-provides - (append racket-requires (unbox js-requires)) - (append mod-stms quoted-bindings-stms))) - - -(: absyn-gtl-form->il (-> GeneralTopLevelForm ILStatement*)) (define (absyn-gtl-form->il form) (cond [(Expr? form) @@ -198,22 +105,20 @@ [(JSRequire? form) (error 'absyn-gtl-form->il "Required should be hoisted")])) -(: absyn-provide->il (-> Provide* (Setof Symbol) ILProvide*)) (define (absyn-provide->il forms top-level-defs) - (: defs-without-exclude (-> (Setof Symbol) (Setof Symbol) (Listof Symbol))) (define (defs-without-exclude def-set exclude-lst) - (~> (set->list def-set) - (filter (λ (id) (not (set-member? exclude-lst id))) _))) + (let ([def-lst (set->list def-set)]) + (filter (λ (id) (not (set-member? exclude-lst id))) def-lst))) - (for/fold ([result : ILProvide* '()]) + (for/fold ([result '()]) ([form forms]) (match form [(SimpleProvide _) (cons form result)] [(RenamedProvide _ _) (cons form result)] [(AllDefined exclude) - (~> (defs-without-exclude top-level-defs exclude) - (map SimpleProvide _) - (append result _))] + (let* ([no-exclude (defs-without-exclude top-level-defs exclude)] + [provides (map SimpleProvide no-exclude)]) + (append result provides))] [(PrefixAllDefined prefix-id exclude) (let* ([to-export (defs-without-exclude top-level-defs exclude)] [new-ids (map (λ (id) @@ -222,7 +127,6 @@ (append result (map RenamedProvide to-export new-ids)))]))) -(: absyn-expr->il (-> Expr Boolean (Values ILStatement* ILExpr))) ;;; An expression in Racket may need to be split into several ;;; statements in JS. However, since expression always has a ;;; values, we return pair of statements and the final value @@ -231,18 +135,14 @@ (define (absyn-expr->il expr overwrite-mark-frame?) (match expr [(PlainLambda formals body unchecked?) - (: ->jslist (-> ILExpr ILExpr)) (define (->jslist f) (ILApp (name-in-module 'core 'Pair.listFromArray) (list f))) - (: maybe-make-checked-formals (-> Formals ILFormals)) (define (maybe-make-checked-formals formals) (if (or unchecked? (skip-arity-checks?)) formals (ILCheckedFormals formals))) - (: in-formals Formals) - (: stms-formals-init ILStatement*) (define-values (in-formals stms-formals-init) (cond [(symbol? formals) @@ -257,8 +157,8 @@ (list (ILVarDec fp (->jslist in-fp))))])) (define-values (body-stms body-value) - (for/fold/last ([stms : ILStatement* '()] - [rv : ILExpr (ILValue (void))]) + (for/fold/last ([stms '()] + [rv (ILValue (void))]) ([e last? body]) (define-values (s v) (absyn-expr->il e (and last? overwrite-mark-frame?))) @@ -281,10 +181,10 @@ (if (case-lambda-has-dead-clause? expr) (begin (log-rjs-warning "found a case-lambda with dead-clause") (values '() clauses)) - (values (filter (λ ([l : PlainLambda]) + (values (filter (λ (l) (number? (lambda-arity l))) clauses) - (filter (λ ([l : PlainLambda]) + (filter (λ (l) (not (number? (lambda-arity l)))) clauses)))) @@ -293,14 +193,14 @@ (define arities (ILArray (for/list ([c (resolve-procedure-arities (map lambda-arity clauses))]) - (match c - [(arity-at-least v) + (cond + [(arity-at-least? c) (define-values (_ val) (absyn-expr->il - (PlainApp (ImportedIdent 'make-arity-at-least '#%kernel #t) (list (Quote v))) - #f)) + (PlainApp (ImportedIdent 'make-arity-at-least '#%kernel #t) (list (Quote (arity-at-least-value c)))) + #f)) val] - [(? number? val) (ILValue val)])))) + [(number? val) (ILValue val)])))) (values stms (ILApp (name-in-module 'core 'attachProcedureArity) (list val arities)))] @@ -318,12 +218,12 @@ [(LetValues bindings body) (define binding-stms - (for/fold ([stms : ILStatement* '()]) + (for/fold ([stms '()]) ([b bindings]) (append stms (absyn-binding->il b)))) (for/fold/last ([stms binding-stms] - [rv : ILExpr (ILValue (void))]) + [rv (ILValue (void))]) ([e last? body]) (define-values (s nv) (absyn-expr->il e (and last? overwrite-mark-frame?))) @@ -356,9 +256,9 @@ ;; sensitively ;; TODO: We should accept only vaild JS idents. (if (ILValue? il) - (ILRef (cast (ILValue-v il) Symbol) - (cast s Symbol)) - (ILRef il (cast s Symbol)))))] + (ILRef (ILValue-v il) + s) + (ILRef il s))))] [(list (Quote 'index) b xs ...) (define-values (stms il) (absyn-expr->il b #f)) (for/fold ([stms stms] @@ -367,7 +267,7 @@ (define-values (x-stms s-il) (absyn-expr->il x #f)) (values (append stms x-stms) (if (ILValue? il) - (ILIndex (cast (ILValue-v il) Symbol) + (ILIndex (ILValue-v il) s-il) (ILIndex il s-il))))] [(list (Quote 'assign) lv rv) @@ -375,16 +275,16 @@ (define-values (rv-stms rv-il) (absyn-expr->il rv #f)) (values (append lv-stms rv-stms - (list (ILAssign (cast lv-il ILLValue) rv-il))) + (list (ILAssign lv-il rv-il))) (ILValue (void)))] [(list (Quote 'new) lv) (define-values (stms il) (absyn-expr->il lv #f)) (values stms - (ILNew (cast il (U ILLValue ILApp))))] + (ILNew il))] [(list (Quote 'array) items ...) (define-values (stms* items*) - (for/fold ([stms : ILStatement* '()] - [vals : (Listof ILExpr) '()]) + (for/fold ([stms '()] + [vals '()]) ([item items]) (define-values (s* v*) (absyn-expr->il item #f)) (values (append stms s*) @@ -392,16 +292,15 @@ (values stms* (ILArray items*))] [(list (Quote 'object) items ...) - (define-values (keys vals) (split-at items (cast (/ (length items) 2) - Nonnegative-Integer))) + (define-values (keys vals) (split-at items (/ (length items) 2))) (define-values (stms* items*) - (for/fold ([stms : ILStatement* '()] - [kvs : (Listof (Pairof ObjectKey ILExpr)) '()]) - ([k (cast keys (Listof Quote))] - [v (cast vals (Listof Expr))]) + (for/fold ([stms '()] + [kvs '()]) + ([k keys] + [v vals]) (define-values (s* v*) (absyn-expr->il v #f)) (values (append stms s*) - (append kvs (list (cons (cast (Quote-datum k) ObjectKey) + (append kvs (list (cons (Quote-datum k) v*)))))) (values stms* (ILObject items*))] [(list (Quote 'throw) e) @@ -420,7 +319,7 @@ (define-values (stms0 val0) (absyn-expr->il e0 #f)) (define-values (stms1 val1) (absyn-expr->il e1 #f)) (values (append stms0 stms1) - (ILBinaryOp (cast oper Symbol) (list val0 val1)))] + (ILBinaryOp oper (list val0 val1)))] [(list (Quote 'null)) (values '() (ILNull))] [(list (Quote 'undefined)) @@ -435,11 +334,10 @@ ;;NOTE: Comparision operators work only on two operands TODO ;;later (: binops (Listof ImportedIdent)) - (define binops (map (λ ([b : Symbol]) + (define binops (map (λ (b) (ImportedIdent b '#%kernel #t)) '(+ - * /))) - (: il-app/binop (-> Ident (Listof ILExpr) (U ILApp ILBinaryOp))) (define (il-app/binop v arg*) (define v-il (let-values ([(_ v) (absyn-expr->il v #f)]) v)) @@ -450,13 +348,13 @@ [(and (equal? v (ImportedIdent '/ '#%kernel #t)) (length=? arg* 1)) (ILBinaryOp '/ (cons (ILValue 1) arg*))] - [(and (ImportedIdent? v) (member v binops) (>= (length arg* ) 2)) + [(and (ImportedIdent? v) (member v binops) (>= (length arg*) 2)) (ILBinaryOp (ImportedIdent-id v) arg*)] [else (ILApp v-il arg*)])) ;; If some arguements produce statement, it may have side effects ;; and hence lambda expression should be computed first. - (match-define-values (lam+arg-stms (cons lam-val arg-vals) _) + (define-values (lam+arg-stms lam-part-vals _rst) (for/fold/last ([stms : ILStatement* '()] [vals : (Listof ILExpr) '()] [next-has-stms? : Boolean #f]) @@ -481,6 +379,8 @@ (cons v vals) (or next-has-stms? (cons? s)))]))) + (match-define `(,lam-val . ,arg-vals) lam-part-vals) + (if (Ident? lam) (values lam+arg-stms (il-app/binop lam arg-vals)) @@ -831,11 +731,7 @@ (length (improper->proper frmls)))))))])) -(define-type ProcedureArity (U arity-at-least Exact-Nonnegative-Integer)) -(: resolve-procedure-arities (-> (Listof ProcedureArity) - (Listof ProcedureArity))) (define (resolve-procedure-arities arities) - (: arity< (-> ProcedureArity ProcedureArity Boolean)) (define (arity< a b) (< (if (arity-at-least? a) (arity-at-least-value a) @@ -844,13 +740,12 @@ (arity-at-least-value b) b))) - (: arity-equal? (-> ProcedureArity ProcedureArity Boolean)) (define (arity-equal? a b) (and (not (arity< a b)) (not (arity< b a)))) (let loop ([arities* (sort arities arity<)] - [result : (Listof ProcedureArity) '()]) + [result '()]) (match arities* ['() (reverse result)] [(cons (and (arity-at-least v) hd) tl) From ab95cf55c90e0d954cd904da31405214557b4c2f Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 16:21:56 -0400 Subject: [PATCH 107/170] remove types from environment --- .../racketscript/compiler/environment.rkt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/environment.rkt b/racketscript-compiler/racketscript/compiler/environment.rkt index 5d519c06..43e1fad7 100644 --- a/racketscript-compiler/racketscript/compiler/environment.rkt +++ b/racketscript-compiler/racketscript/compiler/environment.rkt @@ -1,16 +1,14 @@ -#lang typed/racket/base +#lang racket/base -(require racket/format - racket/match - "config.rkt") +(require "config.rkt" + "util.rkt") (provide name-in-module *quoted-binding-ident-name*) (define *quoted-binding-ident-name* '__rjs_quoted__) -(: name-in-module (-> Symbol Symbol Symbol)) (define (name-in-module mod name) (match mod - ['core (string->symbol (~a (jsruntime-core-module) "." name))] - [_ (error "Invalid module name")])) + [`core (string->symbol (~a (jsruntime-core-module) "." name))] + [`,_ (error "Invalid module name")])) From bdef13e2690e83a9bf5e5685a6634d1e5395e6ab Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 16:24:10 -0400 Subject: [PATCH 108/170] more type removal WIP --- racketscript-compiler/racketscript/compiler/environment.rkt | 3 ++- racketscript-compiler/racketscript/compiler/transform.rkt | 5 +---- racketscript-compiler/racketscript/compiler/util.rkt | 4 ++++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/environment.rkt b/racketscript-compiler/racketscript/compiler/environment.rkt index 43e1fad7..6b5ed7ab 100644 --- a/racketscript-compiler/racketscript/compiler/environment.rkt +++ b/racketscript-compiler/racketscript/compiler/environment.rkt @@ -1,7 +1,8 @@ #lang racket/base (require "config.rkt" - "util.rkt") + "util.rkt" + "match.rkt") (provide name-in-module *quoted-binding-ident-name*) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index a0d059c5..771b1c44 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -9,7 +9,7 @@ racket/match racket/set threading - "absyn.rkt" + "ast.rkt" "config.rkt" "environment.rkt" "il-analyze.rkt" @@ -19,9 +19,6 @@ "set.rkt" "match.rkt") -(require/typed version/utils - [version<=? (-> String String Boolean)]) - (provide absyn-top-level->il absyn-gtl-form->il absyn-expr->il diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index a05503f0..e1e7200a 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -36,6 +36,7 @@ primitive-module? primitive-module-path? ++ + ~a (all-from-out "ident.rkt")) (module+ test (require rackunit)) @@ -63,6 +64,9 @@ "(or/c string? symbol? identifier? keyword? char? number?)" x)])) + (define (restricted-format-string? fmt) + (regexp-match? #rx"^(?:[^~]|~[aAn~%])*$" fmt)) + (define (check-restricted-format-string who fmt) (unless (restricted-format-string? fmt) (raise-arguments-error who From 9b6d3f80f29f4508c262276beecbde7af10d7117 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 16:49:57 -0400 Subject: [PATCH 109/170] add missing structs --- racketscript-compiler/racketscript/compiler/ast.rkt | 6 ++++++ racketscript-compiler/racketscript/compiler/ir.rkt | 3 +++ 2 files changed, 9 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index b1d7b97e..3d7cb9a6 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -76,3 +76,9 @@ ;; (JSRequire symbol? (or symbol? path-string?) (or 'default '*)) (struct JSRequire (alias path mode) #:transparent) + +;; (SimpleProvide symbol?) +(struct SimpleProvide (id) #:transparent) + +;; (RenamedProvide symbol? symbol?) +(struct RenamedProvide (local-id exported-id) #:transparent) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 41b91ec5..6ce8ac03 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -19,6 +19,9 @@ ;; TODO purpose unclear? (struct IfClause (pred body) #:transparent) +;; (ILCheckedFormals Formals?) +(struct ILCheckedFormals (formals) #:transparent) + ;; ILExpr is one of the following, along with symbol?: ;; (ILLambda [or Formals? ILCheckedFormals?] [Listof ILStatement?]) From d31326a425c0d1061f648d763b0d8c3e69c4137f Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 1 Aug 2022 16:50:07 -0400 Subject: [PATCH 110/170] add match-lambda forms --- racketscript-compiler/racketscript/compiler/match.rkt | 6 +++++- .../racketscript/compiler/struct-match.rkt | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index badfaf37..f1e0cfeb 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -2,7 +2,7 @@ (require (for-syntax racket/base)) -(provide match match-define) +(provide match match-define match-lambda) ;; Borrowed and slightly modified from `schemify` @@ -153,3 +153,7 @@ (let ([v expr]) (match v [pat (values . #,(extract-pattern-variables #'pat))])))])) + +(define-syntax (match-lambda stx) + (syntax-case stx () + [(_ clause ...) #'(λ (a) (match a clause ...))])) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 5542dae8..be9bae55 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -2,7 +2,7 @@ (require (for-syntax racket/base)) -(provide struct-match struct-match-define) +(provide struct-match struct-match-define struct-match-lambda) (define-for-syntax (pat-pred pat) (let ([sym (car (syntax->datum pat))]) @@ -48,3 +48,7 @@ (let ([v expr]) (struct-match v [pat (values . #,(pat-ids #'pat))])))])) + +(define-syntax (struct-match-lambda stx) + (syntax-case stx () + [(_ clause ...) #'(λ (a) (struct-match a clause ...))])) From f2df8d546ccedcbf30165745fea3cd3f80a46ffc Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 3 Aug 2022 11:58:48 -0400 Subject: [PATCH 111/170] add support for top-level underscore and identifier patterns --- .../racketscript/compiler/struct-match.rkt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index be9bae55..55f78264 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -15,6 +15,9 @@ (define-for-syntax (pat-ids pat) (cdr (syntax-e pat))) +(define-for-syntax (empty-pat? pat) + (eq? (syntax->datum pat) '_)) + (define-syntax (struct-match stx) (syntax-case stx () [(_ expr [pattern body0 body ...] ...) @@ -23,9 +26,15 @@ #,(let ([patterns (syntax->list #'(pattern ...))]) (let loop ([patterns patterns] [bodys (syntax->list #'((body0 body ...) ...))]) + (displayln (car patterns)) + (displayln (car bodys)) (cond [(null? patterns) #'(error 'match "failed ~e" v)] + [(empty-pat? (car patterns)) #`(begin . #,(car bodys))] + [(identifier? (car patterns)) + #`(let ([#,(car patterns) v]) + . #,(car bodys))] [else #`(let* ([vec-v (struct->vector v)]) ;; TODO maybe don't need vector if using pat-pred crap (cond From 1fcbd94ce96a3519d15192052e4f4825327828c0 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 3 Aug 2022 11:59:00 -0400 Subject: [PATCH 112/170] remove diagnostics --- racketscript-compiler/racketscript/compiler/struct-match.rkt | 2 -- 1 file changed, 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 55f78264..cbe4bacb 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -26,8 +26,6 @@ #,(let ([patterns (syntax->list #'(pattern ...))]) (let loop ([patterns patterns] [bodys (syntax->list #'((body0 body ...) ...))]) - (displayln (car patterns)) - (displayln (car bodys)) (cond [(null? patterns) #'(error 'match "failed ~e" v)] From 59c536264a651f6d98d8b5197cb4362e159c82ce Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 3 Aug 2022 13:33:49 -0400 Subject: [PATCH 113/170] generate correct predicate for structs --- .../racketscript/compiler/struct-match.rkt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index cbe4bacb..c1f93ba8 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -5,9 +5,14 @@ (provide struct-match struct-match-define struct-match-lambda) (define-for-syntax (pat-pred pat) - (let ([sym (car (syntax->datum pat))]) - (string->symbol - (string-append (symbol->string sym) "?")))) + (let* ([stx-hd (car (syntax-e pat))] + [sym (syntax-e stx-hd)]) + (datum->syntax + stx-hd + (string->symbol + (string-append (symbol->string sym) "?")) + stx-hd + stx-hd))) (define-for-syntax (pat-length pat) (length (syntax->datum pat))) From 68d14c251b235fb25b1289e90c05ed68eecd98a9 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 3 Aug 2022 16:50:41 -0400 Subject: [PATCH 114/170] add predicates for union types in AST --- .../racketscript/compiler/ir.rkt | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 6ce8ac03..c848b6d4 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -51,11 +51,11 @@ ;; (ILNew [or (or sumbol? ILRef? ILIndex?) ILApp?]) (struct ILNew (v) #:transparent) -;; (ILInstanceof ILExpr? ILExpr?) -(struct ILInstanceof (expr type) #:transparent) +;; (ILInstanceOf ILExpr? ILExpr?) +(struct ILInstanceOf (expr type) #:transparent) -;; (ILTypeof ILExpr?) -(struct ILTypeof (expr) #:transparent) +;; (ILTypeOf ILExpr?) +(struct ILTypeOf (expr) #:transparent) (struct ILNull () #:transparent) @@ -105,3 +105,33 @@ (struct ILThrow (expr) #:transparent) +(define (ILExpr? e) + (or (ILLambda? e) + (ILBinaryOp? e) + (ILApp? e) + (ILArray? e) + (ILObject? e) + (ILRef? e) + (ILIndex? e) + (ILValue? e) + (ILNew? e) + (ILInstanceOf? e) + (ILTypeOf? e) + (ILNull? e) + (ILUndefined? e) + (ILArguments? e) + (ILThis? e) + (symbol? e))) + +(define (ILStatement? e) + (or (ILExpr? e) + (ILVarDec? e) + (ILIf? e) + (ILIf*? e) + (ILAssign? e) + (ILWhile? e) + (ILReturn? e) + (ILLabel? e) + (ILContinue? e) + (ILExnHandler? e) + (ILThrow? e))) From 2ec0356470becef0828bc25a7da5eb8afe8161eb Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 3 Aug 2022 16:50:56 -0400 Subject: [PATCH 115/170] more complete support for predicate forms in struct-match patterns --- .../racketscript/compiler/struct-match.rkt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index c1f93ba8..86379dbe 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -23,6 +23,20 @@ (define-for-syntax (empty-pat? pat) (eq? (syntax->datum pat) '_)) +(define-for-syntax (pred-pat? pat) + (syntax-case pat (?) + [(? pred val) #t] + [_ #f])) + +(define-for-syntax (pred-from-pat pat val) + (syntax-case pat (?) + [(? pred _) #`(pred #,val)])) + +(define-for-syntax (id-of-pred-pat pat) + (syntax-case pat (?) + [(? _ id) #'id])) + + (define-syntax (struct-match stx) (syntax-case stx () [(_ expr [pattern body0 body ...] ...) @@ -35,6 +49,13 @@ [(null? patterns) #'(error 'match "failed ~e" v)] [(empty-pat? (car patterns)) #`(begin . #,(car bodys))] + [(pred-pat? (car patterns)) + #`(if #,(pred-from-pat (car patterns) #'v) + #,(if (empty-pat? (id-of-pred-pat (car patterns))) + #'(let ([#,(id-of-pred-pat (car patterns)) v]) + . #,(car bodys)) + #`(let () . #,(car bodys))) + (let () . #,(loop (cdr patterns) (cdr bodys))))] [(identifier? (car patterns)) #`(let ([#,(car patterns) v]) . #,(car bodys))] From 2d07519d522d5d410d02e820c1e2e1e51bbb0e7c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 3 Aug 2022 17:01:50 -0400 Subject: [PATCH 116/170] bugs in predicate pattern codegen --- .../racketscript/compiler/struct-match.rkt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 86379dbe..94b91b64 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -52,13 +52,12 @@ [(pred-pat? (car patterns)) #`(if #,(pred-from-pat (car patterns) #'v) #,(if (empty-pat? (id-of-pred-pat (car patterns))) - #'(let ([#,(id-of-pred-pat (car patterns)) v]) - . #,(car bodys)) - #`(let () . #,(car bodys))) - (let () . #,(loop (cdr patterns) (cdr bodys))))] + #`(let () . #,(car bodys)) + #`(let ([#,(id-of-pred-pat (car patterns)) v]) + . #,(car bodys))) + #,(loop (cdr patterns) (cdr bodys)))] [(identifier? (car patterns)) - #`(let ([#,(car patterns) v]) - . #,(car bodys))] + #`(let ([#,(car patterns) v]) . #,(car bodys))] [else #`(let* ([vec-v (struct->vector v)]) ;; TODO maybe don't need vector if using pat-pred crap (cond From e817dd7e035968e9e174c464b2671bb133c8faf1 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:11:32 -0400 Subject: [PATCH 117/170] check patterns at compile time and add guards to struct-match --- .../racketscript/compiler/struct-match.rkt | 95 ++++++++++++------- 1 file changed, 63 insertions(+), 32 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 94b91b64..805b5695 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -1,6 +1,6 @@ #lang racket/base -(require (for-syntax racket/base)) +(require (for-syntax racket/base racket/struct-info)) (provide struct-match struct-match-define struct-match-lambda) @@ -36,42 +36,73 @@ (syntax-case pat (?) [(? _ id) #'id])) +(define-for-syntax (extract-guard body) + (syntax-case body () + [(#:when guard-expr . body) + #'guard-expr] + [_ #f])) + +(define-for-syntax (remove-guard body) + (syntax-case body () + [(#:when guard-expr . body) + #'body] + [_ body])) + +(define-for-syntax (validate-struct-patterns! patterns) + (cond + [(null? patterns) (void)] + [else + (syntax-case (car patterns) () + [(s . pats) + (if (identifier? #'s) + (let ([str-info? (syntax-local-value #'s (λ () #f))]) + (if (not (struct-info? str-info?)) + (raise (format "struct-match: ~a is not a struct") (syntax->datum #'s)) + (let ([info (extract-struct-info str-info?)]) + (displayln (cadddr info)) + ;; TODO the spec for struct-info has additional details about what can appear + ;; in the struct-info field-accessors position, so it may cause bugs + (if (not (eq? (length (cadddr info)) (length (syntax->list #'pats)))) + (raise (format "struct-match: struct ~a expects ~a fields, got ~a in pattern" + #'s + (length (cadddr info)) + (length (syntax->list #'pats)))) + (validate-struct-patterns! (cdr patterns)))))) + (raise (format "struct-match: unrecognizable head pattern ~a" #'s)))] + [_ (validate-struct-patterns! (cdr patterns))])])) (define-syntax (struct-match stx) (syntax-case stx () [(_ expr [pattern body0 body ...] ...) #`(let ([v expr]) - (if (struct? v) - #,(let ([patterns (syntax->list #'(pattern ...))]) - (let loop ([patterns patterns] - [bodys (syntax->list #'((body0 body ...) ...))]) - (cond - [(null? patterns) - #'(error 'match "failed ~e" v)] - [(empty-pat? (car patterns)) #`(begin . #,(car bodys))] - [(pred-pat? (car patterns)) - #`(if #,(pred-from-pat (car patterns) #'v) - #,(if (empty-pat? (id-of-pred-pat (car patterns))) - #`(let () . #,(car bodys)) - #`(let ([#,(id-of-pred-pat (car patterns)) v]) - . #,(car bodys))) - #,(loop (cdr patterns) (cdr bodys)))] - [(identifier? (car patterns)) - #`(let ([#,(car patterns) v]) . #,(car bodys))] - [else - #`(let* ([vec-v (struct->vector v)]) ;; TODO maybe don't need vector if using pat-pred crap - (cond - [(and (#,(pat-pred (car patterns)) v) - (not (= (vector-length vec-v) #,(pat-length (car patterns))))) - ;; TODO make better, want to blow up if pattern doesn't correspond to real struct - (error 'match "head pattern wrong size")] - [(and (#,(pat-pred (car patterns)) v) - (= (vector-length vec-v) #,(pat-length (car patterns)))) - (let-values ([#,(pat-ids (car patterns)) (vector->values vec-v 1)]) - . #,(car bodys))] - [else - #,(loop (cdr patterns) (cdr bodys))]))]))) - (error 'match "~e not a struct" v)))])) + #,(let ([patterns (syntax->list #'(pattern ...))]) + (let loop ([patterns patterns] + [bodys (syntax->list #'((body0 body ...) ...))]) + (validate-struct-patterns! patterns) + (cond + [(null? patterns) + #'(error 'match "failed ~e" v)] + [(empty-pat? (car patterns)) #`(begin . #,(car bodys))] + [(pred-pat? (car patterns)) + #`(if #,(pred-from-pat (car patterns) #'v) + #,(if (empty-pat? (id-of-pred-pat (car patterns))) + #`(let () . #,(car bodys)) + #`(let ([#,(id-of-pred-pat (car patterns)) v]) + . #,(car bodys))) + #,(loop (cdr patterns) (cdr bodys)))] + [(identifier? (car patterns)) + #`(let ([#,(car patterns) v]) . #,(car bodys))] + [else + (define guard? (extract-guard (car bodys))) + #`(let* ([vec-v (struct->vector v)]) ;; TODO maybe don't need vector if using pat-pred crap + (define (alt) #,(loop (cdr patterns) (cdr bodys))) + (cond + [(#,(pat-pred (car patterns)) v) + (let-values ([#,(pat-ids (car patterns)) (vector->values vec-v 1)]) + #,(if guard? + #`(if #,guard? (begin . #,(car bodys)) (alt)) + #`(begin . #,(car bodys))))] + [else (alt)]))]))))])) (define-syntax (struct-match-define stx) (syntax-case stx () From 0ca4945e1ebeb20a1f9dce411f67c26704a94dba Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:11:43 -0400 Subject: [PATCH 118/170] wrong signature for ILExnHandler --- racketscript-compiler/racketscript/compiler/ir.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index c848b6d4..96aa19f5 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -99,7 +99,7 @@ ;; [Listof ILStatement?] ;; [Listof ILStatement?] ;; ILExpr?) -(struct ILExnHandler (try error catch finally expr) #:transparent) +(struct ILExnHandler (try error catch finally) #:transparent) ;; (ILThrow ILExpr?) (struct ILThrow (expr) #:transparent) From 95bf5288b950b263ae983d0bc066a793f6204a9c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:12:13 -0400 Subject: [PATCH 119/170] remove diagnostics --- racketscript-compiler/racketscript/compiler/struct-match.rkt | 1 - 1 file changed, 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 805b5695..fe1973ab 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -59,7 +59,6 @@ (if (not (struct-info? str-info?)) (raise (format "struct-match: ~a is not a struct") (syntax->datum #'s)) (let ([info (extract-struct-info str-info?)]) - (displayln (cadddr info)) ;; TODO the spec for struct-info has additional details about what can appear ;; in the struct-info field-accessors position, so it may cause bugs (if (not (eq? (length (cadddr info)) (length (syntax->list #'pats)))) From f000d6a88e4528107d4c3ecb8289fc29696d2fec Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:14:02 -0400 Subject: [PATCH 120/170] more struct-match bugs --- racketscript-compiler/racketscript/compiler/struct-match.rkt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index fe1973ab..a8ac4f22 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -52,12 +52,13 @@ (cond [(null? patterns) (void)] [else - (syntax-case (car patterns) () + (syntax-case (car patterns) (?) + [(? . _) (validate-struct-patterns! (cdr patterns))] [(s . pats) (if (identifier? #'s) (let ([str-info? (syntax-local-value #'s (λ () #f))]) (if (not (struct-info? str-info?)) - (raise (format "struct-match: ~a is not a struct") (syntax->datum #'s)) + (raise (format "struct-match: ~a is not a struct" (syntax->datum #'s))) (let ([info (extract-struct-info str-info?)]) ;; TODO the spec for struct-info has additional details about what can appear ;; in the struct-info field-accessors position, so it may cause bugs From 5fd3886ef5563b7400d019b746a483bce297d15f Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:22:50 -0400 Subject: [PATCH 121/170] fix set impl --- .../racketscript/compiler/set.rkt | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt index aa96a04f..9e870e7f 100644 --- a/racketscript-compiler/racketscript/compiler/set.rkt +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -2,15 +2,13 @@ ;; basic set implementation -(require (for-syntax racket/base)) - -(provide set set-member? set-add list->set set->list set-map) +(provide set set-member? set-add list->set set->list set-map in-set set-intersect) (struct set-impl (contents) #:transparent) -(define-syntax (set stx) - (syntax-case stx () - [(_ e ...) #'(set-impl (make-immutable-hash (list (cons e #t) ...)))])) +(define (set . args) + (set-impl + (make-immutable-hash (map (λ (e) (cons e #t)) args)))) (define (set-member? st v) (hash-has-key? (set-impl-contents st) v)) @@ -28,3 +26,13 @@ (set-add st elem))) (define (set->list st) (hash-keys (set-impl-contents st))) + +(define (in-set st) (in-list (set->list st))) + +(define (set-intersect s . sets) + (for/fold + ([s1 (set)]) + ([x (in-set s)] + #:when (for/and ([s2 (in-list sets)]) + (set-member? s2 x))) + (set-add s1 x))) From b2eeb81027189f4065a8fa109f8e2d6e5ef419a9 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:29:42 -0400 Subject: [PATCH 122/170] correct structs for ILIf, etc --- racketscript-compiler/racketscript/compiler/ir.rkt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 96aa19f5..3d42b11d 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -3,8 +3,11 @@ (require "ast.rkt") (provide (all-defined-out) - (struct-out SimpleProvide) - (struct-out RenamedProvide)) + (prefix-out IL + (combine-out + (struct-out SimpleProvide) + (struct-out RenamedProvide) + (struct-out IfClause)))) ;; (ILLinklet [Listof ILRequire?] [Listof ILProvide?] [Listof ILStatement?]) (struct ILLinklet (imports exports body) #:transparent) @@ -76,7 +79,7 @@ ;; (ILIf ILExpr? [Listof ILStatement?] [Listof ILStatement?]) (struct ILIf (pred t-branch f-branch) #:transparent) -;; (ILIf* [Listof ILIf?]) +;; (ILIf* [Listof IfClause?]) (struct ILIf* (clauses) #:transparent) ;; (ILAssign (or sumbol? ILRef? ILIndex?) ILExpr?) @@ -122,7 +125,7 @@ (ILArguments? e) (ILThis? e) (symbol? e))) - + (define (ILStatement? e) (or (ILExpr? e) (ILVarDec? e) From 9e8db3429666f96edeecf9e7a3188c54b230d416 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:34:02 -0400 Subject: [PATCH 123/170] il-analyze changes wip --- .../racketscript/compiler/il-analyze.rkt | 197 +++++++----------- 1 file changed, 80 insertions(+), 117 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/il-analyze.rkt b/racketscript-compiler/racketscript/compiler/il-analyze.rkt index 237d2d91..8a294615 100644 --- a/racketscript-compiler/racketscript/compiler/il-analyze.rkt +++ b/racketscript-compiler/racketscript/compiler/il-analyze.rkt @@ -1,12 +1,13 @@ -#lang typed/racket/base +#lang racket/base (require racket/bool racket/list - racket/match - racket/set + "struct-match.rkt" + "match.rkt" + "set.rkt" "environment.rkt" - "il.rkt" - "language.rkt" + "ir.rkt" + "ast.rkt" "util.rkt") (provide self-tail->loop @@ -23,12 +24,14 @@ ;; Eg. ILRef ;; TODO: Identify mutually recursive calls. +(module+ test + (require rackunit) + (require "ir.rkt")) + ;; ---------------------------------------------------------------------------- ;; Add arity checking in IL -(: check-arity-stms (-> ILCheckedFormals ILStatement*)) (define (check-arity-stms formals) - (: check-arity-stm (-> Symbol Natural ILIf)) (define (check-arity-stm op arity) (ILIf (ILBinaryOp op (list (ILRef (ILArguments) 'length) (ILValue arity))) (list @@ -42,19 +45,15 @@ [(list? formals*) (list (check-arity-stm '!== (length formals*)))] [(cons? formals*) - (define pos-formals (cast (car formals*) (Listof Symbol))) + (define pos-formals (car formals*)) (list (check-arity-stm '< (length pos-formals)))])) -(: insert-arity-checks (-> (U ILLinklet ILModule) (U ILLinklet ILModule))) (define (insert-arity-checks mod) - (: traverse-expr (-> ILExpr ILExpr)) (define traverse-expr - (match-lambda + (struct-match-lambda [(ILLambda args body) - (: new-args ILFormals) - (: check-stms ILStatement*) (define-values (new-args check-stms) - (match args + (struct-match args [(ILCheckedFormals args*) (values args* (check-arity-stms args))] @@ -66,7 +65,7 @@ (ILApp (traverse-expr lam) (map traverse-expr args))] [(ILBinaryOp oper args) (ILBinaryOp oper (map traverse-expr args))] [(ILArray items) (ILArray (map traverse-expr items))] - [(ILObject items) (ILObject (map (λ ([o : ObjectPair]) + [(ILObject items) (ILObject (map (λ (o) (cons (car o) (traverse-expr (cdr o)))) items))] @@ -74,15 +73,14 @@ (ILRef (traverse-expr expr) fieldname)] [(ILIndex expr field-expr) (ILIndex (traverse-expr expr) (traverse-expr field-expr))] - [(ILNew e) (ILNew (cast (traverse-expr e) (U ILApp ILLValue)))] + [(ILNew e) (ILNew (traverse-expr e))] [(ILInstanceOf expr type) (ILInstanceOf (traverse-expr expr) (traverse-expr type))] [(ILTypeOf expr) (ILTypeOf (traverse-expr expr))] [v v])) - (: traverse-stm (-> ILStatement ILStatement)) (define traverse-stm - (match-lambda + (struct-match-lambda [(ILVarDec id expr) (ILVarDec id (if expr (traverse-expr expr) @@ -102,7 +100,7 @@ (IfClause (and pred (traverse-expr pred)) (traverse-stm* body))))] [(ILAssign lvalue rvalue) - (ILAssign (cast (traverse-expr lvalue) ILLValue) + (ILAssign (traverse-expr lvalue) (traverse-expr rvalue))] [(ILWhile condition body) (ILWhile (traverse-expr condition) @@ -117,54 +115,38 @@ [(? ILExpr? expr) (traverse-expr expr)] [v v])) - (: traverse-stm* (-> ILStatement* ILStatement*)) (define (traverse-stm* stm*) (map traverse-stm stm*)) - (match mod - [(ILModule id provides requires body) - (ILModule id provides requires (traverse-stm* body))] + (struct-match mod [(ILLinklet importss exports body) (ILLinklet importss exports (traverse-stm* body))])) ;; ---------------------------------------------------------------------------- ;; Tail Call Optimization -(define-type ILLink (Option ILStatement)) -(define-type ILResult (U ILStatement* ILStatement)) -(define-type IdentSet (Setof Symbol)) - -;; Constructor for building identifier sets. -(define ident-set (inst set Symbol)) - -(: self-tail->loop (-> ILStatement* ILStatement*)) ;; Frontend function to convert self tail calls to ;; loops. (define (self-tail->loop il*) (x-self-tail->loop (lift-returns il*))) -(: lift-returns (-> ILStatement* ILStatement*)) ;; Lifts return statements up by one statement, if ;; the identifier returned, was declared or re-assigned ;; in previous statement. (define (lift-returns il*) - (: current-scope-declarations (Parameter (Setof Symbol))) ;; Track all variables delcared in current function scope. (define current-scope-declarations - (make-parameter ((inst set Symbol)))) + (make-parameter (set))) - (: removed-declarations (Parameter (Setof Symbol))) ;; Keep a list of variable declarations whose next runtime statement ;; is returning value held by same variable. We check this set for each ;; ILReturn statement and decide if it should be removed. - (define removed-declarations (make-parameter ((inst set Symbol)))) + (define removed-declarations (make-parameter (set))) - (: next-statement (Parameter ILLink)) ;; Next statement that will be executed after ;; the statement we are currently handling. (define next-statement (make-parameter #f)) - (: add-to-scope! (-> Symbol Void)) ;; Adds sym to scope of declared variables. (define (add-to-scope! sym) (current-scope-declarations @@ -174,9 +156,8 @@ (define (var-in-scope? sym) (set-member? (current-scope-declarations) sym)) - (: handle-expr (-> ILExpr ILExpr)) (define (handle-expr e) - (match e + (struct-match e [(ILLambda args body) (parameterize ([current-scope-declarations (set)] [next-statement #f]) @@ -191,7 +172,7 @@ [(ILArray items) (ILArray (map handle-expr items))] [(ILObject items) - (ILObject (map (λ ([i : ObjectPair]) + (ILObject (map (λ (i) (cons (car i) (handle-expr (cdr i)))) items))] @@ -204,7 +185,7 @@ [(ILTypeOf expr) (ILTypeOf (handle-expr expr))] [(ILNew v) - (ILNew (cast (handle-expr v) (U Symbol ILRef ILIndex ILApp)))] + (ILNew (handle-expr v))] [(ILValue v) e] [(ILUndefined) e] [(ILArguments) e] @@ -212,11 +193,10 @@ [(ILNull) e] [(? symbol? v) v])) - (: handle-stm (-> ILStatement ILResult)) (define (handle-stm stm) - (match stm + (struct-match stm [(ILVarDec id expr) - (match (next-statement) + (struct-match (next-statement) [(ILReturn e) #:when (and expr (equal? e id)) (removed-declarations (set-add (removed-declarations) id)) (ILReturn (handle-expr expr))] @@ -228,19 +208,19 @@ ;; function scope. (ILLetDec id (and expr (handle-expr expr)))] [(ILAssign lvalue rvalue) - (match (next-statement) + (struct-match (next-statement) [(ILReturn e) #:when (and (symbol? lvalue) (var-in-scope? lvalue) (equal? e lvalue)) (ILReturn (handle-expr rvalue))] - [_ (ILAssign (cast (handle-expr lvalue) ILLValue) + [_ (ILAssign (handle-expr lvalue) (handle-expr rvalue))])] [(ILIf pred t-branch f-branch) - (match-define (list t-branch* t-removed) + (match-define `(,t-branch* ,t-removed) (parameterize ([removed-declarations (removed-declarations)]) (list (handle-stm* t-branch) (removed-declarations)))) - (match-define (list f-branch* f-removed) + (match-define `(,f-branch* ,f-removed) (parameterize ([removed-declarations (removed-declarations)]) (list (handle-stm* f-branch) (removed-declarations)))) @@ -248,8 +228,8 @@ (ILIf (handle-expr pred) t-branch* f-branch*)] [(ILIf* clauses) (define-values (clauses* removed) - (for/fold ([c* : (Listof ILIfClause) '()] - [removed : (Listof IdentSet) '()]) + (for/fold ([c* '()] + [removed '()]) ([clause (reverse clauses)]) (let* ([pred (ILIfClause-pred clause)] [body (ILIfClause-body clause)] @@ -258,9 +238,9 @@ (values (cons (ILIfClause pred* (handle-stm* body)) c*) (cons (removed-declarations) removed)))))) (removed-declarations (match removed - [(cons hd '()) hd] - [(cons hd0 tl) - (foldl (inst set-intersect Symbol Symbol) + [`(,hd) hd] + [`(,hd0 . ,tl) + (foldl set-intersect hd0 tl)])) (ILIf* clauses*)] @@ -299,27 +279,29 @@ [(ILContinue _) stm] [(? ILExpr? expr) (handle-expr expr)])) - (: handle-stm* (-> ILStatement* ILStatement*)) (define (handle-stm* stm*) - (let loop ([result : ILStatement* '()] + (let loop ([result '()] [stm* stm*]) (match stm* - ['() result] - [(cons hd tl) - (define next : ILLink (if (empty? tl) - (next-statement) - (car tl))) - (define stm** : ILResult + [`() result] + [`(,hd . ,tl) + (define next (if (empty? tl) + (next-statement) + (car tl))) + (define stm** (if (empty? tl) (handle-stm hd) (parameterize ([next-statement (car tl)]) (handle-stm hd)))) - (match stm** - [(? ILStatement? stm) - (loop (append result (list stm)) tl)] - [(? ILStatement*? stms) - (loop (append result stms) tl)])]))) + (loop (append result (if (list? stm**) stm** (list stm**))) tl)]))) + + + ;; (match stm** + ;; [(? ILStatement? stm) + ;; (loop (append result (list stm)) tl)] + ;; [(? ILStatement*? stms) + ;; (loop (append result stms) tl)]) ;; Try lifting until convergence (let ([result (handle-stm* il*)]) @@ -589,62 +571,60 @@ "Lift return in if-else-if-else statements")] -(: x-self-tail->loop (-> ILStatement* ILStatement*)) ;; Translate self tail calls to loop. The given `il` ;; is assumed to have gone through return lifting. (define (x-self-tail->loop il) - (: lambda-name (Parameter (Option Symbol))) (define lambda-name (make-parameter #f)) - - (: lambda-formals (Parameter ILFormals)) (define lambda-formals (make-parameter '())) ;; If we apply TCO, we will change the original lambda formal names, ;; and inside the loop, use `let` statment to bind the original ;; formal names with values, making closures act sanely - (: lambda-updated-formals (Parameter (Option ILFormals))) (define lambda-updated-formals (make-parameter #f)) - (: lambda-start-label (Parameter (Option Symbol))) (define lambda-start-label (make-parameter #f)) - (: reset-formals (-> ILFormals ILFormals (Listof ILLetDec))) (define (reset-formals original-formals new-formals) - (match (cons original-formals new-formals) - [(cons (ILCheckedFormals original-formals*) (ILCheckedFormals new-formals*)) + (cond + [(and (ILCheckedFormals? original-formals) + (ILCheckedFormals? new-formals)) + (struct-match-define (ILCheckedFormals original-formals*)) + (struct-match-define (ILCheckedFormals new-formals*)) (reset-formals original-formals* new-formals*)] - [(cons (? symbol? original-formals*) (? symbol? new-formals*)) - (list (ILLetDec original-formals* new-formals*))] - [(cons (list original-formals* ...) (list new-formals* ...)) - (map ILLetDec original-formals* new-formals*)] - [(cons (cons original-formals-i original-formals-r) (cons new-formals-i new-formals-r)) + [(and (symbol? original-formals) (symbol? new-formals*)) + (list (ILLetDec original-formals new-formals))] + [(and (list? original-formals) (list? new-formals)) + (map ILLetDec original-formals new-formals)] + [(and (pair? original-formals) (pair? new-formals)) + (match-define `(,(,original-formals-i . ,original-formals-r) . + ,(.new-formals-i . ,new-formals-r)) + (cons original-formals new-formals)) (append (reset-formals original-formals-i new-formals-i) (reset-formals original-formals-r new-formals-r))] [_ (error 'reset-formals "Incompatible formals: ~a vs ~a" original-formals new-formals)])) - (: handle-expr/general (-> ILExpr ILExpr)) + (define (handle-expr/general e) (handle-expr e #f #f)) - (: handle-expr (-> ILExpr Boolean (Option Symbol) ILExpr)) (define (handle-expr e tail-position? vardec) - (match e + (struct-match e [(ILLambda args body) (parameterize ([lambda-name vardec] [lambda-formals args] [lambda-start-label (fresh-id 'lambda-start)] [lambda-updated-formals #f]) - (define body* : ILStatement* + (define body* (let ([s* (handle-stm* body)] [new-frmls (lambda-updated-formals)]) (cond [(false? new-frmls) s*] [else - (define reset-formals-decls : (Listof ILLetDec) + (define reset-formals-decls ;; Let is used as, it has block level scope, as ;; opposed to var which has function level scope, ;; which breaks the closure in case any of the ;; closure variable is mutated. (reset-formals (lambda-formals) new-frmls)) - (list (ILLabel (cast (lambda-start-label) Symbol)) + (list (ILLabel (lambda-start-label)) (ILWhile (ILValue #t) (append reset-formals-decls s*)))]))) (ILLambda (or (lambda-updated-formals) args) @@ -655,7 +635,7 @@ (ILBinaryOp oper (map handle-expr/general args))] [(ILArray items) (ILArray (map handle-expr/general items))] [(ILObject items) (ILObject - (map (λ ([item : (Pairof ObjectKey ILExpr)]) + (map (λ (item) (cons (car item) (handle-expr/general (cdr item)))) items))] @@ -675,7 +655,6 @@ [(ILNew v) e] [(? symbol? v) e])) - (: handle-stm (-> ILStatement ILResult)) (define (handle-stm s) (match s [(ILReturn (ILApp lam args)) @@ -696,7 +675,7 @@ (ILAssign frml (handle-expr/general a)))) (append compute-args (list (ILContinue - (cast (lambda-start-label) Symbol))))] + (lambda-start-label))))] [else (ILReturn (ILApp lam (map handle-expr/general args)))])] [(ILVarDec id expr) (ILVarDec id (and expr @@ -709,8 +688,8 @@ (handle-stm* t-branch) (handle-stm* f-branch))] [(ILIf* clauses) - (ILIf* (map (λ ([c : ILIfClause]) - (match-define (ILIfClause pred body) c) + (ILIf* (map (λ (c) + (struct-match-define (ILIfClause pred body) c) (ILIfClause (and pred (handle-expr/general pred)) (handle-stm* (ILIfClause-body c)))) clauses))] @@ -734,9 +713,8 @@ [(ILLabel n) s] [(? ILExpr? expr) (handle-expr/general expr)])) - (: handle-stm* (-> ILStatement* ILStatement*)) (define (handle-stm* s*) - (for/fold ([result : ILStatement* '()]) + (for/fold ([result '()]) ([s s*]) (define stm* (handle-stm s)) (match stm* @@ -744,8 +722,8 @@ [(? ILStatement*? r*) (append result r*)]))) (handle-stm* il)) + (module+ test - (require typed/rackunit) (define-syntax-rule (check-equal?* args ...) (parameterize ([fresh-id-counter 0]) @@ -822,11 +800,9 @@ ;; ---------------------------------------------------------------------------- ;; Compute defs, use, and free sets -(: free+defined (-> ILStatement* IdentSet (List IdentSet IdentSet))) (define (free+defined stms* defs) (define find* free+defined) - (: find (-> ILStatement IdentSet (List IdentSet IdentSet))) ;; Returns (list defined-idents free-idents) (define (find stm defs) (match stm @@ -915,7 +891,6 @@ (set-union h-free free) tl)]))) -(: free-identifiers (-> ILStatement* IdentSet)) (define (free-identifiers stms) (second (free+defined stms (set)))) @@ -962,7 +937,6 @@ ;;----------------------------------------------------------------------------- -(: has-application? (-> ILExpr Boolean)) ;; Returns true if any subexpression of given input contains an ;; application. (define has-application? @@ -971,7 +945,7 @@ [(ILBinaryOp _ args) (ormap has-application? args)] [(ILApp _ _) #t] [(ILArray items) (ormap has-application? items)] - [(ILObject items) (ormap (λ ([pair : ObjectPair]) + [(ILObject items) (ormap (λ (pair) (has-application? (cdr pair))) items)] [(ILRef expr _) (has-application? expr)] @@ -995,10 +969,6 @@ ;;----------------------------------------------------------------------------- ;; Compute used and defined sets -(define-type StatementKey Natural) -(define-type Statement2UseDef (HashTable ILStatement (List IdentSet IdentSet))) - -(: used+defined/block (-> ILStatement* Boolean (List IdentSet IdentSet))) (define (used+defined/block stms lam-block?) (let loop ([let-decs (ident-set)] [var-decs (ident-set)] @@ -1036,9 +1006,8 @@ final-used tl)])]))) -(: used+defined/statement (-> ILStatement (List IdentSet IdentSet))) (define used+defined/statement - (match-lambda + (struct-match-lambda [(ILVarDec id expr) (match-define (list used _) (if expr (used+defined/statement expr) @@ -1106,9 +1075,8 @@ [(? symbol? v) (list (set v) (set))])) -(: used+defined/statement* (-> ILStatement* Statement2UseDef)) (define (used+defined/statement* stms) - (for/hash : Statement2UseDef ([stm stms]) + (for/hash([stm stms]) (values stm (used+defined/statement stm)))) (module+ test @@ -1189,9 +1157,8 @@ ;;----------------------------------------------------------------------------- ;; Flatten if-else -(: flatten-if-else/expr (-> ILExpr ILExpr)) (define flatten-if-else/expr - (match-lambda + (struct-match-lambda [(ILLambda args body) (ILLambda args (flatten-if-else/stm* body))] [(ILBinaryOp oper args) (ILBinaryOp oper (map flatten-if-else/expr args))] [(ILApp lam args) (ILApp (flatten-if-else/expr lam) @@ -1204,16 +1171,14 @@ [(ILRef expr* fieldname) (ILRef (flatten-if-else/expr expr*) fieldname)] [(ILIndex expr* fieldexpr) (ILIndex (flatten-if-else/expr expr*) (flatten-if-else/expr fieldexpr))] - [(ILNew expr*) (ILNew (cast (flatten-if-else/expr expr*) - (U ILLValue ILApp)))] + [(ILNew expr*) (ILNew (flatten-if-else/expr expr*))] [(ILInstanceOf expr* type) (ILInstanceOf (flatten-if-else/expr expr*) (flatten-if-else/expr type))] [(ILTypeOf expr) (ILTypeOf (flatten-if-else/expr expr))] [v v])) -(: flatten-if-else/stm (-> ILStatement ILStatement)) (define flatten-if-else/stm - (match-lambda + (struct-match-lambda [(ILIf pred t-branch (list (ILIf pred* t-branch* f-branch*))) (flatten-if-else/stm (ILIf* (list (ILIfClause pred t-branch) @@ -1227,7 +1192,7 @@ (flatten-if-else/stm* f-branch))] [(ILIf* (list clauses ... (ILIfClause #f (list (ILIf pred* t-branch* f-branch*))))) (flatten-if-else/stm - (ILIf* (append (cast clauses (Listof IfClause)) + (ILIf* (append clauses (list (ILIfClause pred* t-branch*) (ILIfClause #f f-branch*)))))] @@ -1256,11 +1221,9 @@ [(? ILContinue? stm) stm] [(? ILExpr? stm) (flatten-if-else/expr stm)])) -(: flatten-if-else/stm* (-> ILStatement* ILStatement*)) (define (flatten-if-else/stm* stms) (map flatten-if-else/stm stms)) -(: flatten-if-else (-> ILStatement* ILStatement*)) (define (flatten-if-else stms) (converge flatten-if-else/stm* stms)) From 428944acf9368018af75c9c3579ce3afb1a90b98 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 11:34:13 -0400 Subject: [PATCH 124/170] remove guard from code gen --- racketscript-compiler/racketscript/compiler/struct-match.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index a8ac4f22..d2d473ee 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -100,7 +100,7 @@ [(#,(pat-pred (car patterns)) v) (let-values ([#,(pat-ids (car patterns)) (vector->values vec-v 1)]) #,(if guard? - #`(if #,guard? (begin . #,(car bodys)) (alt)) + #`(if #,guard? (begin . #,(remove-guard (car bodys))) (alt)) #`(begin . #,(car bodys))))] [else (alt)]))]))))])) From 83f8a0d67eebb203bdcdfde9884789d666995f95 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 14:04:49 -0400 Subject: [PATCH 125/170] add helper functions --- .../racketscript/compiler/ast.rkt | 23 ++++++++++++++ .../racketscript/compiler/ir.rkt | 31 ++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 3d7cb9a6..ae89853a 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -1,5 +1,7 @@ #lang racket/base +(require "ident.rkt") + (provide (all-defined-out)) ;; TODO path should get eliminated once things are bootstrapped (or perhaps just before) @@ -82,3 +84,24 @@ ;; (RenamedProvide symbol? symbol?) (struct RenamedProvide (local-id exported-id) #:transparent) + +(define (formals-arity-includes formals k) + (cond + [(symbol? formals) #t] + [(list? formals) (equal? (length formals) k)] + [(pair? formals) (>= k (length (car formals)))])) + +(define (freshen-formals formals) + (cond + [(symbol? formals) (fresh-id (string->symbol (format "_~a" formals)))] + [(list? formals) (for/list ([f formals]) + (freshen-formals f))] + [(pair? formals) (cons (freshen-formals (car formals)) + (freshen-formals (cdr formals)))])) + +(define (formals->list formals) + (cond + [(symbol? formals) (list formals)] + [(list? formals) formals] + [(pair? formals) (append (car formals) + (list (cdr formals)))])) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 3d42b11d..93b2b30c 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -1,6 +1,7 @@ #lang racket/base -(require "ast.rkt") +(require "ast.rkt" + "struct-match.rkt") (provide (all-defined-out) (prefix-out IL @@ -138,3 +139,31 @@ (ILContinue? e) (ILExnHandler? e) (ILThrow? e))) + +(define (ILStatement*? e) (and (list? e) (andmap ILStatement? e))) + +(define (ILObject-fields o) + (for/list ([item (ILObject-items o)]) + (car item))) + +(define (ILObject-bodies o) + (for/list ([item (ILObject-items o)]) + (cdr item))) + +(define (il-formals-arity-includes formals k) + (struct-match formals + [(ILCheckedFormals formals*) + (formals-arity-includes formals* k)] + [v (formals-arity-includes v k)])) + +(define (il-freshen-formals formals) + (struct-match formals + [(ILCheckedFormals formals*) + (ILCheckedFormals (freshen-formals formals*))] + [v (freshen-formals v)])) + +(define (il-formals->list formals) + (struct-match formals + [(ILCheckedFormals formals*) + (formals->list formals*)] + [v (formals->list v)])) From a4882ff841022e7ecc12310ff5a3e2d56624f7dd Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 14:05:01 -0400 Subject: [PATCH 126/170] add set-union --- racketscript-compiler/racketscript/compiler/set.rkt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt index 9e870e7f..a6789c85 100644 --- a/racketscript-compiler/racketscript/compiler/set.rkt +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -2,7 +2,7 @@ ;; basic set implementation -(provide set set-member? set-add list->set set->list set-map in-set set-intersect) +(provide set set-member? set-add list->set set->list set-map in-set set-intersect set-union) (struct set-impl (contents) #:transparent) @@ -36,3 +36,10 @@ #:when (for/and ([s2 (in-list sets)]) (set-member? s2 x))) (set-add s1 x))) + +(define (set-union s . sets) + (for/fold ([s1 s]) + ([s2 (in-list sets)]) + (for/fold ([s1 s1]) + ([x (in-set s2)]) + (set-add s1 x)))) From 0bae33c524bbe2f04a567e5de149dffe18dfcc8f Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 14:05:28 -0400 Subject: [PATCH 127/170] fix begin/let-nil issue --- racketscript-compiler/racketscript/compiler/struct-match.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index d2d473ee..71e5db56 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -100,7 +100,7 @@ [(#,(pat-pred (car patterns)) v) (let-values ([#,(pat-ids (car patterns)) (vector->values vec-v 1)]) #,(if guard? - #`(if #,guard? (begin . #,(remove-guard (car bodys))) (alt)) + #`(if #,guard? (let () . #,(remove-guard (car bodys))) (alt)) #`(begin . #,(car bodys))))] [else (alt)]))]))))])) From de57c3bcf66e76fac2f9d4177ee0792292f1823c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 14:18:38 -0400 Subject: [PATCH 128/170] wip --- .../racketscript/compiler/il-analyze.rkt | 144 +++++++++--------- 1 file changed, 73 insertions(+), 71 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/il-analyze.rkt b/racketscript-compiler/racketscript/compiler/il-analyze.rkt index 8a294615..02a472d9 100644 --- a/racketscript-compiler/racketscript/compiler/il-analyze.rkt +++ b/racketscript-compiler/racketscript/compiler/il-analyze.rkt @@ -588,20 +588,20 @@ (cond [(and (ILCheckedFormals? original-formals) (ILCheckedFormals? new-formals)) - (struct-match-define (ILCheckedFormals original-formals*)) - (struct-match-define (ILCheckedFormals new-formals*)) + (struct-match-define (ILCheckedFormals original-formals*) original-formals) + (struct-match-define (ILCheckedFormals new-formals*) new-formals) (reset-formals original-formals* new-formals*)] - [(and (symbol? original-formals) (symbol? new-formals*)) + [(and (symbol? original-formals) (symbol? new-formals)) (list (ILLetDec original-formals new-formals))] [(and (list? original-formals) (list? new-formals)) (map ILLetDec original-formals new-formals)] [(and (pair? original-formals) (pair? new-formals)) - (match-define `(,(,original-formals-i . ,original-formals-r) . - ,(.new-formals-i . ,new-formals-r)) + (match-define `((,original-formals-i . ,original-formals-r) . + (,new-formals-i . ,new-formals-r)) (cons original-formals new-formals)) (append (reset-formals original-formals-i new-formals-i) (reset-formals original-formals-r new-formals-r))] - [_ (error 'reset-formals "Incompatible formals: ~a vs ~a" original-formals new-formals)])) + [else (error 'reset-formals "Incompatible formals: ~a vs ~a" original-formals new-formals)])) (define (handle-expr/general e) (handle-expr e #f #f)) @@ -656,8 +656,9 @@ [(? symbol? v) e])) (define (handle-stm s) - (match s - [(ILReturn (ILApp lam args)) + (struct-match s + [(ILReturn e) #:when (ILApp? e) + (struct-match-define (ILApp lam args) e) (cond [(and (equal? (lambda-name) lam) #;(not (list? (lambda-formals))) ;; TODO: Make it work for variadict lambdas @@ -669,7 +670,7 @@ (il-freshen-formals (lambda-formals)) old-updated-frmls))) (lambda-updated-formals new-frmls) - (define compute-args : (Listof ILAssign) + (define compute-args (for/list ([frml (il-formals->list new-frmls)] [a args]) (ILAssign frml (handle-expr/general a)))) @@ -717,7 +718,7 @@ (for/fold ([result '()]) ([s s*]) (define stm* (handle-stm s)) - (match stm* + (struct-match stm* [(? ILStatement? r) (append result (list r))] [(? ILStatement*? r*) (append result r*)]))) @@ -805,7 +806,7 @@ ;; Returns (list defined-idents free-idents) (define (find stm defs) - (match stm + (struct-match stm [(ILVarDec id expr) (list (set id) (if expr @@ -818,42 +819,41 @@ (second (find expr (set-add defs id))) (set)))] [(ILIf pred t-branch f-branch) - (match-define (list _ p-free) (find pred defs)) - (match-define (list t-defs t-free) (find* t-branch defs)) - (match-define (list f-defs f-free) (find* f-branch defs)) + (match-define `(,_ ,p-free) (find pred defs)) + (match-define `(,t-defs ,t-free) (find* t-branch defs)) + (match-define `(,f-defs ,f-free) (find* f-branch defs)) (list (set-union t-defs f-defs) (set-union p-free t-free f-free))] [(ILIf* clauses) (define-values (defs* free*) - (for/fold ([r-defs : IdentSet (set)] - [r-free : IdentSet (set)]) + (for/fold ([r-defs (set)] + [r-free (set)]) ([clause clauses]) - (match-define (ILIfClause pred body) clause) - (match-define (list _ p-free) (if pred - (find pred defs) - (list (ident-set) (ident-set)))) - (match-define (list b-defs b-free) (find* body defs)) + (struct-match-define (ILIfClause pred body) clause) + (match-define `(,_ ,p-free) (if pred + (find pred defs) + (list (set) (set)))) + (match-define `(,b-defs ,b-free) (find* body defs)) (values (set-union r-defs b-defs) (set-union r-free p-free b-free)))) (list defs* free*)] [(ILAssign lvalue rvalue) - (match-define (list _ lv-free) (find lvalue defs)) - (match-define (list _ rv-free) (find rvalue defs)) + (match-define `(,_ ,lv-free) (find lvalue defs)) + (match-define `(,_ ,rv-free) (find rvalue defs)) (list (set) (set-union lv-free rv-free))] [(ILWhile condition body) - (match-define (list _ cond-free) (find condition defs)) - (match-define (list body-defs body-free) (find* body defs)) + (match-define `(,_ ,cond-free) (find condition defs)) + (match-define `(,body-defs ,body-free) (find* body defs)) (list body-defs (set-union cond-free body-free))] [(ILReturn expr) (find expr defs)] [(ILLambda args expr) (define args-set (list->set (il-formals->list args))) - (match-define (list _ e-free) - (find* expr (set-union defs args-set))) + (match-define `(,_ ,e-free) (find* expr (set-union defs args-set))) (list (set) e-free)] [(ILApp lam args) - (match-define (list _ l-free) (find lam defs)) - (match-define (list _ a-free) (find* args defs)) + (match-define `(,_ ,l-free) (find lam defs)) + (match-define `(,_ ,a-free) (find* args defs)) (list (set) (set-union l-free a-free))] [(ILBinaryOp oper args) (find* args defs)] @@ -867,8 +867,8 @@ [(ILRef expr fieldname) (find expr defs)] [(ILIndex expr fieldexpr) - (match-define (list _ e-free) (find expr defs)) - (match-define (list _ f-free) (find fieldexpr defs)) + (match-define `(,_ ,e-free) (find expr defs)) + (match-define `(,_ ,f-free) (find fieldexpr defs)) (list (set) (set-union e-free f-free))] [(ILValue v) (list (set) (set))] [(ILUndefined) (list (set) (set))] @@ -880,13 +880,13 @@ (set) (set v)))])) - (let loop ([defs : IdentSet defs] - [free : IdentSet (set)] + (let loop ([defs defs] + [free (set)] [stms stms*]) (match stms - ['() (list defs free)] - [(cons hd tl) - (match-define (list h-defs h-free) (find hd defs)) + [`() (list defs free)] + [`(,hd . ,tl) + (match-define `(,h-defs ,h-free) (find hd defs)) (loop (set-union h-defs defs) (set-union h-free free) tl)]))) @@ -939,22 +939,24 @@ ;; Returns true if any subexpression of given input contains an ;; application. +;; TODO added suffixes to underscore patterns so that I don't have to handle them for real, +;; but might want to at some point (define has-application? - (match-lambda - [(ILLambda _ _) #f] - [(ILBinaryOp _ args) (ormap has-application? args)] - [(ILApp _ _) #t] + (struct-match-lambda + [(ILLambda _fst _snd) #f] + [(ILBinaryOp _fst args) (ormap has-application? args)] + [(ILApp _fst _snd) #t] [(ILArray items) (ormap has-application? items)] [(ILObject items) (ormap (λ (pair) (has-application? (cdr pair))) items)] - [(ILRef expr _) (has-application? expr)] + [(ILRef expr _fst) (has-application? expr)] [(ILIndex expr fieldexpr) (or (has-application? expr) (has-application? fieldexpr))] - [(ILValue _) #f] + [(ILValue _fst) #f] [(ILUndefined) #f] [(ILNull) #f] - [(ILNew _) #t] + [(ILNew _fst) #t] [(ILInstanceOf expr type) (or (has-application? expr) (has-application? type))] [(ILTypeOf expr) (has-application? expr)] @@ -970,13 +972,13 @@ ;; Compute used and defined sets (define (used+defined/block stms lam-block?) - (let loop ([let-decs (ident-set)] - [var-decs (ident-set)] - [defines (ident-set)] - [used (ident-set)] + (let loop ([let-decs (set)] + [var-decs (set)] + [defines (set)] + [used (set)] [stms stms]) (match stms - ['() + [`() ;; If lam-block? is true, the current block is top level block ;; of a lambda, and hence we remove all defines and uses of variables ;; declared in function scope. @@ -985,11 +987,11 @@ let-decs)) (list (set-subtract used scope-defs) (set-subtract defines scope-defs))] - [(cons hd tl) - (match-define (list hd-used hd-defs) (used+defined/statement hd)) + [`(,hd . ,tl) + (match-define `(,hd-used ,hd-defs) (used+defined/statement hd)) (define final-defines (set-union defines hd-defs)) (define final-used (set-union used hd-used)) - (match hd + (struct-match hd [(ILVarDec id _) (loop let-decs (set-add var-decs id) final-defines @@ -1009,37 +1011,37 @@ (define used+defined/statement (struct-match-lambda [(ILVarDec id expr) - (match-define (list used _) (if expr + (match-define `(,used ,_) (if expr (used+defined/statement expr) - (list (ident-set) (ident-set)))) + (list (set) (set)))) (list used (set id))] [(ILLetDec id expr) - (match-define (list used _) (if expr + (match-define `(,used ,_) (if expr (used+defined/statement expr) - (list (ident-set) (ident-set)))) + (list (set) (set)))) (list used (set id))] [(ILIf pred t-branch f-branch) - (match-define (list p-used _) (used+defined/statement pred)) - (match-define (list t-used t-defs) (used+defined/block t-branch #f)) - (match-define (list f-used f-defs) (used+defined/block f-branch #f)) + (match-define `(,p-used ,_) (used+defined/statement pred)) + (match-define `(,t-used ,t-defs) (used+defined/block t-branch #f)) + (match-define `(,f-used ,f-defs) (used+defined/block f-branch #f)) (list (set-union p-used t-used f-used) (set-union t-defs f-defs))] [(ILAssign lvalue rvalue) - (match-define (list lv-used _) (used+defined/statement lvalue)) - (match-define (list rv-used _) (used+defined/statement rvalue)) + (match-define `(,lv-used ,_) (used+defined/statement lvalue)) + (match-define `(,rv-used ,_) (used+defined/statement rvalue)) (list rv-used lv-used)] [(ILWhile condition body) - (match-define (list cond-used _) (used+defined/statement condition)) - (match-define (list body-used body-defs) (used+defined/block body #f)) + (match-define `(,cond-used ,_) (used+defined/statement condition)) + (match-define `(,body-used ,body-defs) (used+defined/block body #f)) (list (set-union cond-used body-used) body-defs)] [(ILReturn expr) (used+defined/statement expr)] [(ILLambda args exprs) - (match-define (list e-used e-defs) (used+defined/block exprs #t)) + (match-define `(,e-used ,e-defs) (used+defined/block exprs #t)) (define args-set (list->set (il-formals->list args))) (list (set-subtract e-used args-set) e-defs)] [(ILApp lam args) - (match-define (list l-used _) (used+defined/statement lam)) - (match-define (list a-used _) (used+defined/block args #f)) + (match-define `(,l-used ,_) (used+defined/statement lam)) + (match-define `(,a-used ,_) (used+defined/block args #f)) (list (set-union l-used a-used) (set))] [(ILBinaryOp oper args) (used+defined/block args #f)] [(ILArray items) (used+defined/block items #f)] @@ -1050,21 +1052,21 @@ ;; different context (this) we can't determine this for sure, so ;; we consider fields as used overall if they are used in bodies. (define bodies (ILObject-bodies stm)) - (match-define (list used defined) (used+defined/block bodies #f)) + (match-define `(,used ,defined) (used+defined/block bodies #f)) (list used defined)] [(ILExnHandler try error catch finally) - (match-define (list t-used t-defs) (used+defined/block try #f)) - (match-define (list c-used c-defs) + (match-define `(,t-used ,t-defs) (used+defined/block try #f)) + (match-define `(,c-used ,c-defs) (match-let ([(list u d) (used+defined/block catch #f)]) (list (set-remove u error) (set-remove d error)))) - (match-define (list f-used f-defs) (used+defined/block finally #f)) + (match-define `(,f-used ,f-defs) (used+defined/block finally #f)) (list (set-union t-used c-used f-used) (set-union t-defs c-defs f-defs))] [(ILRef expr fieldname) (used+defined/statement expr)] [(ILIndex expr fieldexpr) - (match-define (list e-used _) (used+defined/statement expr)) - (match-define (list f-used _) (used+defined/statement fieldexpr)) + (match-define `(,e-used ,_) (used+defined/statement expr)) + (match-define `(,f-used ,_) (used+defined/statement fieldexpr)) (list (set-union e-used f-used) (set))] [(ILValue v) (list (set) (set))] [(ILUndefined) (list (set) (set))] From b448d9e0a5812877273a6bccb1dfa4efb61ca63b Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 14:36:44 -0400 Subject: [PATCH 129/170] match-let --- .../racketscript/compiler/match.rkt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index f1e0cfeb..521ef559 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -2,7 +2,7 @@ (require (for-syntax racket/base)) -(provide match match-define match-lambda) +(provide match match-define match-lambda match-let) ;; Borrowed and slightly modified from `schemify` @@ -157,3 +157,14 @@ (define-syntax (match-lambda stx) (syntax-case stx () [(_ clause ...) #'(λ (a) (match a clause ...))])) + +(define-syntax (match-let stx) + (syntax-case stx () + [(_ ([pat rhs] ...) body ...) + #`(let-values + #,(map (λ (pat rhs) + #`(#,(extract-pattern-variables pat) + (let ([v #,rhs]) (match v [#,pat (values . #,(extract-pattern-variables pat))])))) + (syntax->list #'(pat ...)) + (syntax->list #'(rhs ...))) + body ...)])) From d10a1eb000748ddef73a9897ab1ebab8c74bb603 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 14:36:56 -0400 Subject: [PATCH 130/170] set-remove and set-subtract --- .../racketscript/compiler/set.rkt | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/set.rkt b/racketscript-compiler/racketscript/compiler/set.rkt index a6789c85..d3ca54d7 100644 --- a/racketscript-compiler/racketscript/compiler/set.rkt +++ b/racketscript-compiler/racketscript/compiler/set.rkt @@ -2,7 +2,17 @@ ;; basic set implementation -(provide set set-member? set-add list->set set->list set-map in-set set-intersect set-union) +(provide set + set-member? + set-add + set-remove + list->set + set->list + set-map + in-set + set-intersect + set-union + set-subtract) (struct set-impl (contents) #:transparent) @@ -15,6 +25,9 @@ (define (set-add st v) (set-impl (hash-set (set-impl-contents st) v #t))) +(define (set-remove st v) + (set-impl (hash-remove (set-impl-contents st) v))) + (define (set-map st proc) (set-impl (hash-map (set-impl-contents st) @@ -43,3 +56,12 @@ (for/fold ([s1 s1]) ([x (in-set s2)]) (set-add s1 x)))) + +(define (set-subtract s . sets) + (define (remove? k) + (for/or ([s2 (in-list sets)]) + (set-member? s2 k))) + + (for/fold ([res s]) + ([v (in-set s)] #:when (remove? v)) + (set-remove res v))) From f55867062ec7d4d3dc4faf9fc067ece0894862f5 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 4 Aug 2022 16:11:58 -0400 Subject: [PATCH 131/170] rough draft of il-analyze impl --- .../racketscript/compiler/il-analyze.rkt | 51 ++++++++++++------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/il-analyze.rkt b/racketscript-compiler/racketscript/compiler/il-analyze.rkt index 02a472d9..dd5277f0 100644 --- a/racketscript-compiler/racketscript/compiler/il-analyze.rkt +++ b/racketscript-compiler/racketscript/compiler/il-analyze.rkt @@ -1045,7 +1045,8 @@ (list (set-union l-used a-used) (set))] [(ILBinaryOp oper args) (used+defined/block args #f)] [(ILArray items) (used+defined/block items #f)] - [(and (ILObject items) stm) + [(ILObject items) + (define stm (ILObject items)) ;; Typically the fields of object are in context (this) of any ;; lambda, and hence should be overall be removed from used set. ;; However, since members of objects could be called with @@ -1057,7 +1058,7 @@ [(ILExnHandler try error catch finally) (match-define `(,t-used ,t-defs) (used+defined/block try #f)) (match-define `(,c-used ,c-defs) - (match-let ([(list u d) (used+defined/block catch #f)]) + (match-let ([`(,u ,d) (used+defined/block catch #f)]) (list (set-remove u error) (set-remove d error)))) (match-define `(,f-used ,f-defs) (used+defined/block finally #f)) @@ -1166,7 +1167,7 @@ [(ILApp lam args) (ILApp (flatten-if-else/expr lam) (map flatten-if-else/expr args))] [(ILArray items) (ILArray (map flatten-if-else/expr items))] - [(ILObject items) (ILObject (map (λ ([item : ObjectPair]) + [(ILObject items) (ILObject (map (λ (item) (cons (car item) (flatten-if-else/expr (cdr item)))) items))] @@ -1181,31 +1182,43 @@ (define flatten-if-else/stm (struct-match-lambda - [(ILIf pred t-branch (list (ILIf pred* t-branch* f-branch*))) + [(ILIf pred t-branch f-branch) + #:when (and (= 1 (length f-branch)) + (ILIf? (car f-branch))) + (struct-match-define (ILIf pred* t-branch* f-branch*) (car f-branch)) (flatten-if-else/stm (ILIf* (list (ILIfClause pred t-branch) (ILIfClause pred* t-branch*) (ILIfClause #f f-branch*))))] - [(ILIf pred t-branch (list (ILIf* clauses))) + [(ILIf pred t-branch f-branch) + #:when (and (= 1 (length f-branch)) + (ILIf*? (car f-branch))) + (define clauses (ILIf*-clauses (car f-branch))) (flatten-if-else/stm (ILIf* (cons (ILIfClause pred t-branch) clauses)))] [(ILIf pred t-branch f-branch) (ILIf (flatten-if-else/expr pred) (flatten-if-else/stm* t-branch) (flatten-if-else/stm* f-branch))] - [(ILIf* (list clauses ... (ILIfClause #f (list (ILIf pred* t-branch* f-branch*))))) - (flatten-if-else/stm - (ILIf* (append clauses - (list - (ILIfClause pred* t-branch*) - (ILIfClause #f f-branch*)))))] - [(ILIf* (list clauses ...)) - (ILIf* (map (λ ([c : IfClause]) - (let* ([pred (ILIfClause-pred c)] - [body (ILIfClause-body c)] - [pred* (and pred (flatten-if-else/expr pred))] - [body* (flatten-if-else/stm* body)]) - (ILIfClause pred* body*))) - clauses))] + [(ILIf* clauses) #:when (list? clauses) + (struct-match-define (ILIfClause cnd contents) (last clauses)) + (cond + [(and (not cnd) + (= 1 (length contents)) + (ILIf? (car contents))) + (struct-match-define (ILIf pred* t-branch* f-branch*) (car contents)) + (flatten-if-else/stm + (ILIf* (append clauses + (list + (ILIfClause pred* t-branch*) + (ILIfClause #f f-branch*)))))] + [else + (ILIf* (map (λ (c) + (let* ([pred (ILIfClause-pred c)] + [body (ILIfClause-body c)] + [pred* (and pred (flatten-if-else/expr pred))] + [body* (flatten-if-else/stm* body)]) + (ILIfClause pred* body*))) + clauses))])] ;; Traverse through statements From 0200ecbfb651ca289271d5624b26e5e6d33e831d Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:02:32 -0400 Subject: [PATCH 132/170] struct-match-let --- .../racketscript/compiler/struct-match.rkt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 71e5db56..624652bf 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -2,7 +2,7 @@ (require (for-syntax racket/base racket/struct-info)) -(provide struct-match struct-match-define struct-match-lambda) +(provide struct-match struct-match-define struct-match-lambda struct-match-let) (define-for-syntax (pat-pred pat) (let* ([stx-hd (car (syntax-e pat))] @@ -115,3 +115,14 @@ (define-syntax (struct-match-lambda stx) (syntax-case stx () [(_ clause ...) #'(λ (a) (struct-match a clause ...))])) + +(define-syntax (struct-match-let stx) + (syntax-case stx () + [(_ ([pat rhs] ...) body ...) + #`(let-values + #,(map (λ (pat rhs) + #`(#,(pat-ids pat) + (let ([v #,rhs]) (match v [#,pat (values . #,(pat-ids pat))])))) + (syntax->list #'(pat ...)) + (syntax->list #'(rhs ...))) + body ...)])) From 3ec060ba12584736bcd8049aff698b4a8b187208 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:02:53 -0400 Subject: [PATCH 133/170] il-analyze complete and tests pass --- .../racketscript/compiler/il-analyze.rkt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/il-analyze.rkt b/racketscript-compiler/racketscript/compiler/il-analyze.rkt index dd5277f0..b31c970d 100644 --- a/racketscript-compiler/racketscript/compiler/il-analyze.rkt +++ b/racketscript-compiler/racketscript/compiler/il-analyze.rkt @@ -1180,6 +1180,12 @@ [(ILTypeOf expr) (ILTypeOf (flatten-if-else/expr expr))] [v v])) +(define (remove-last ls) + (match ls + [`() '()] + [`(,e) '()] + [`(,hd . ,tl) (cons hd (remove-last tl))])) + (define flatten-if-else/stm (struct-match-lambda [(ILIf pred t-branch f-branch) @@ -1199,15 +1205,19 @@ [(ILIf pred t-branch f-branch) (ILIf (flatten-if-else/expr pred) (flatten-if-else/stm* t-branch) (flatten-if-else/stm* f-branch))] + ;; TODO this is really bad + [(ILIf* clauses) #:when (null? clauses) + (ILIf* (list))] [(ILIf* clauses) #:when (list? clauses) (struct-match-define (ILIfClause cnd contents) (last clauses)) + (define new-clauses (remove-last clauses)) (cond [(and (not cnd) (= 1 (length contents)) (ILIf? (car contents))) (struct-match-define (ILIf pred* t-branch* f-branch*) (car contents)) (flatten-if-else/stm - (ILIf* (append clauses + (ILIf* (append new-clauses (list (ILIfClause pred* t-branch*) (ILIfClause #f f-branch*)))))] From 841d85a4e5d2458c1c4d80af7c3f9eb3d623f0bb Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:03:12 -0400 Subject: [PATCH 134/170] change imports in transform pass --- racketscript-compiler/racketscript/compiler/transform.rkt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 771b1c44..31c0777a 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -13,11 +13,12 @@ "config.rkt" "environment.rkt" "il-analyze.rkt" - "il.rkt" + "ir.rkt" "logging.rkt" "util.rkt" "set.rkt" - "match.rkt") + "match.rkt" + "struct-match.rkt") (provide absyn-top-level->il absyn-gtl-form->il From 4637292d2e82f1e908c746a6719d107a342d417e Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:29:02 -0400 Subject: [PATCH 135/170] add predicates from typed ast --- .../racketscript/compiler/ast.rkt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index ae89853a..8aff1ab2 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -105,3 +105,27 @@ [(list? formals) formals] [(pair? formals) (append (car formals) (list (cdr formals)))])) + +(define (Ident? e) + (or (ImportedIdent? e) + (TopLevelIdent? e) + (LinkletImportIdent? e) + (LocalIdent? e))) + +;; NOTE the linklet docs specify that: +;; 1. quote-syntax and #%top don't appear in the IR +;; 2. #%plain-app is implicit +;; 3. #%plain-lambda is 'spelled' lambda +(define (Expr? e) + (or (Ident? e) + (VarRef? e) + (Quote? e) + (Begin? e) + (Begin0? e) + (App? e) + (Lambda? e) + (CaseLambda? e) + (If? e) + (LetValues? e) + (Set!? e) + (WithContinuationMark? e))) From 3b344d5e73c7d9cf40c34252905c5d5fbe68afb2 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:29:14 -0400 Subject: [PATCH 136/170] macro-generating macro is unnecessary --- .../racketscript/compiler/logging.rkt | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/logging.rkt b/racketscript-compiler/racketscript/compiler/logging.rkt index 5ba54e2d..757bcd6c 100644 --- a/racketscript-compiler/racketscript/compiler/logging.rkt +++ b/racketscript-compiler/racketscript/compiler/logging.rkt @@ -16,17 +16,25 @@ (string->symbol (format "log-rjs-~a" (syntax-e #'kind))))] [str (symbol->string (syntax-e #'kind))] - [stx (generate-temporaries 'stx)]) - (syntax - (define-syntax (name stx) - (syntax-case stx () - [(_ a0 a* (... ...)) - #'(when (logging?) - (begin (printf "[~a]" 'str) - (unless (equal? (string-ref a0 0) #\[) - (printf " ")) - (printf a0 a* (... ...)) - (printf "\n")))])))])])) + [(fst rst) (generate-temporaries '(fst rst))]) + #'(define (name fst . rst) + (when (logging?) + (begin (printf "[~a]" 'str) + (unless (equal? (string-ref fst 0) #\[) + (printf " ")) + (apply printf fst rst) + (printf "\n")))))])) + ;; (syntax + + ;; (define-syntax (name stx) + ;; (syntax-case stx () + ;; [(_ a0 a* (... ...)) + ;; #'(when (logging?) + ;; (begin (printf "[~a]" 'str) + ;; (unless (equal? (string-ref a0 0) #\[) + ;; (printf " ")) + ;; (printf a0 a* (... ...)) + ;; (printf "\n")))]))))])) ;; (define-syntax log-rjs ;; (syntax-parser From f91be2bcf3631dab584195f731779923d95c2fcf Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:29:33 -0400 Subject: [PATCH 137/170] add guards to _ patterns and use '(let () ...)' over 'begin' --- .../racketscript/compiler/struct-match.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/struct-match.rkt b/racketscript-compiler/racketscript/compiler/struct-match.rkt index 624652bf..610e73f8 100644 --- a/racketscript-compiler/racketscript/compiler/struct-match.rkt +++ b/racketscript-compiler/racketscript/compiler/struct-match.rkt @@ -82,7 +82,11 @@ (cond [(null? patterns) #'(error 'match "failed ~e" v)] - [(empty-pat? (car patterns)) #`(begin . #,(car bodys))] + [(empty-pat? (car patterns)) + (define guard? (extract-guard (car bodys))) + (if guard? + #`(if #,guard? (let () . #,(remove-guard (car bodys))) #,(loop (cdr patterns) (cdr bodys))) + #`(let () . #,(car bodys)))] [(pred-pat? (car patterns)) #`(if #,(pred-from-pat (car patterns) #'v) #,(if (empty-pat? (id-of-pred-pat (car patterns))) From 34cf2f3ffb24fca78e1810e86d5b9e392805db6a Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 10:29:42 -0400 Subject: [PATCH 138/170] transform wip --- .../racketscript/compiler/transform.rkt | 159 ++++++++---------- 1 file changed, 73 insertions(+), 86 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 31c0777a..86e4b0b6 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -4,11 +4,7 @@ ;;; in assumed to be fresh, to enforce lexical scope rules of Racket (require racket/bool - racket/format racket/list - racket/match - racket/set - threading "ast.rkt" "config.rkt" "environment.rkt" @@ -30,13 +26,13 @@ (define (absyn-top-level->il form) (cond - [(Module? form) (error 'absyn-top-level->il - "Not supported. Todo.")] + [(Linklet? form) (error 'absyn-top-level->il + "Not supported. Todo.")] [(Expr? form) (define-values (stmt v) (absyn-expr->il form #f)) (append1 stmt v)] [(Begin? form) (absyn-expr->il form #f)] - [else (error "only modules supported at top level")])) + [else (error "only some forms supported at top level")])) ;; FIXME I do ZERO handling of javascript forms (define (absyn-linklet->il lnk) @@ -98,7 +94,7 @@ (define-values (stms v) (absyn-expr->il form #f)) (append1 stms v)] [(DefineValues? form) - (match-define (DefineValues ids expr) form) + (struct-match-define (DefineValues ids expr) form) (absyn-binding->il (cons ids expr))] [(JSRequire? form) (error 'absyn-gtl-form->il "Required should be hoisted")])) @@ -110,20 +106,11 @@ (for/fold ([result '()]) ([form forms]) - (match form - [(SimpleProvide _) (cons form result)] - [(RenamedProvide _ _) (cons form result)] - [(AllDefined exclude) - (let* ([no-exclude (defs-without-exclude top-level-defs exclude)] - [provides (map SimpleProvide no-exclude)]) - (append result provides))] - [(PrefixAllDefined prefix-id exclude) - (let* ([to-export (defs-without-exclude top-level-defs exclude)] - [new-ids (map (λ (id) - (format-symbol "~a~a" prefix-id id)) - to-export)]) - (append result - (map RenamedProvide to-export new-ids)))]))) + ;; TODO adding sufixes to underscored identifiers so I don't need to add + ;; support for them in my pattern matcher + (struct-match form + [(SimpleProvide _fst) (cons form result)] + [(RenamedProvide _fst _snd) (cons form result)]))) ;;; An expression in Racket may need to be split into several ;;; statements in JS. However, since expression always has a @@ -131,8 +118,8 @@ ;;; of expression. ;;; TODO: returned ILExpr should be just ILValue? (define (absyn-expr->il expr overwrite-mark-frame?) - (match expr - [(PlainLambda formals body unchecked?) + (struct-match expr + [(Lambda formals body unchecked?) (define (->jslist f) (ILApp (name-in-module 'core 'Pair.listFromArray) (list f))) @@ -195,7 +182,7 @@ [(arity-at-least? c) (define-values (_ val) (absyn-expr->il - (PlainApp (ImportedIdent 'make-arity-at-least '#%kernel #t) (list (Quote (arity-at-least-value c)))) + (App (ImportedIdent 'make-arity-at-least '#%kernel #t) (list (Quote (arity-at-least-value c)))) #f)) val] [(number? val) (ILValue val)])))) @@ -235,7 +222,7 @@ (ILAssign id v))) (ILValue (void)))] - [(PlainApp (ImportedIdent '#%js-ffi _ _) args) + [(App (ImportedIdent '#%js-ffi _ _) args) (match args [(list (Quote 'var) (Quote var)) (values '() (cast var Symbol))] @@ -328,7 +315,7 @@ (values '() (ILThis))] [_ (error 'absyn-expr->il "unknown ffi form" args)])] - [(PlainApp lam args) + [(App lam args) ;;NOTE: Comparision operators work only on two operands TODO ;;later (: binops (Listof ImportedIdent)) @@ -385,23 +372,23 @@ (values lam+arg-stms (ILApp lam-val arg-vals)))] - [(TopId id) (values '() id)] ;; FIXME: rename top-levels? - [(Quote datum) (values '() (absyn-value->il datum))] ;; Begin Statements - [(cons hd '()) + [_ #:when (and (pair? expr) (null? (cdr expr))) + (match-define `(,hd) expr) (cond [(Expr? hd) (absyn-expr->il hd overwrite-mark-frame?)] [else (error "last datum in body must be expression")])] - [(cons hd tl) + [_ #:when (pair? expr) + (match-define `(,hd . ,tl) expr) (define hd-stms (absyn-top-level->il hd)) (define-values (tl-stms v) (absyn-expr->il tl overwrite-mark-frame?)) (values (append hd-stms tl-stms) v)] - ['() (values '() (ILValue (void)))] + [_ #:when (null? expr) (values '() (ILValue (void)))] [(LocalIdent id) (values '() id)] @@ -589,8 +576,8 @@ (ILValue d)] [else (error (~a "unsupported value" d))])) -(: expand-normal-case-lambda (-> (Listof PlainLambda) - (Listof PlainLambda) +(: expand-normal-case-lambda (-> (Listof Lambda) + (Listof Lambda) (Values ILStatement* ILExpr))) (define (expand-normal-case-lambda fixed-lams rest-lams) (define fixed-lam-names : (Listof Symbol) @@ -600,30 +587,30 @@ (define fixed-lam-name (fresh-id 'fixed-lam)) (define fixed-lam-map - (ILObject (map (λ ([id : Symbol] [lam : PlainLambda]) + (ILObject (map (λ ([id : Symbol] [lam : Lambda]) (let ([arity (lambda-arity lam)]) (if (number? arity) (cons (string->symbol (~a arity)) id) (error 'expand-normal-case-lambda "assertion failed")))) fixed-lam-names fixed-lams))) - (define *null* (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'null)))) - (define *arguments* (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'arguments)))) + (define *null* (App (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'null)))) + (define *arguments* (App (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'arguments)))) (define-values (var-lam-stms var-lam-val) (absyn-expr->il (let loop : Expr ([lams* rest-lams] [names* rest-lam-names]) (match (list lams* names*) - [(list '() '()) (PlainApp (ImportedIdent 'error '#%kernel #t) + [(list '() '()) (App (ImportedIdent 'error '#%kernel #t) (list (Quote "case-lambda: invalid case")))] [(list (cons lh lt) (cons nh nt)) - (define arguments-length (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) + (define arguments-length (App (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'ref) (LocalIdent nh) (Quote 'length)))) (If ((get-formals-predicate lh) arguments-length) - (PlainApp (PlainApp (ImportedIdent '#%js-ffi '#%kernel #t) + (App (App (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'ref) (LocalIdent nh) (Quote 'apply))) @@ -641,7 +628,7 @@ (append1 var-lam-stms (ILReturn var-lam-val))))) - (let ([make-lam (λ ([id : Symbol] [lam : PlainLambda]) + (let ([make-lam (λ ([id : Symbol] [lam : Lambda]) (define-values (stms lam-expr) (absyn-expr->il lam #f)) (assert stms empty?) (ILVarDec id lam-expr))]) @@ -676,53 +663,53 @@ (check-false (case-lambda-has-dead-clause? (CaseLambda (list - (PlainLambda '(a) '() #f) - (PlainLambda '(a b) '() #f) - (PlainLambda '((a) . c) '() #f)))) + (Lambda '(a) '() #f) + (Lambda '(a b) '() #f) + (Lambda '((a) . c) '() #f)))) "all clauses are reachable") (check-false (case-lambda-has-dead-clause? (CaseLambda (list - (PlainLambda '((a b c) . d) '() #f) - (PlainLambda '(a b) '() #f)))) + (Lambda '((a b c) . d) '() #f) + (Lambda '(a b) '() #f)))) "all clauses are reachable") (check-true (case-lambda-has-dead-clause? (CaseLambda (list - (PlainLambda '((a b c) . d) '() #f) - (PlainLambda '(a b c) '() #f)))) + (Lambda '((a b c) . d) '() #f) + (Lambda '(a b c) '() #f)))) "last clauses is unreachable") (check-true (case-lambda-has-dead-clause? (CaseLambda (list - (PlainLambda '(() . a) '() #f) - (PlainLambda '((a) . c) '() #f) - (PlainLambda '(a b) '() #f)))) + (Lambda '(() . a) '() #f) + (Lambda '((a) . c) '() #f) + (Lambda '(a b) '() #f)))) "second and third clause are unreachable") (check-true (case-lambda-has-dead-clause? (CaseLambda (list - (PlainLambda '(a) '() #f) - (PlainLambda '((a) . c) '() #f) - (PlainLambda '(a b) '() #f)))) + (Lambda '(a) '() #f) + (Lambda '((a) . c) '() #f) + (Lambda '(a b) '() #f)))) "third clause is unreachable")) -(: get-formals-predicate (-> PlainLambda (-> Expr Expr))) +(: get-formals-predicate (-> Lambda (-> Expr Expr))) (define (get-formals-predicate c) ;; TODO: Use binary ops instead of function call for cmp - (define frmls (PlainLambda-formals c)) + (define frmls (Lambda-formals c)) (define length-js-name (ImportedIdent 'length '#%kernel #t)) (cond [(symbol? frmls) (λ (_) (Quote #t))] [(list? frmls) (λ ([v : Expr]) - (PlainApp (ImportedIdent 'equal? '#%kernel #t) + (App (ImportedIdent 'equal? '#%kernel #t) (list v (Quote (length frmls)))))] [(cons? frmls) (λ ([v : Expr]) - (PlainApp (ImportedIdent '>= '#%kernel #t) + (App (ImportedIdent '>= '#%kernel #t) (list v (Quote (sub1 @@ -847,10 +834,10 @@ ;; -------------------------------------------------------------------------- (test-case "Lambda Expressions" - (check-ilexpr (PlainLambda '(x) (LI* 'x) #t) + (check-ilexpr (Lambda '(x) (LI* 'x) #t) '() (ILLambda '(x) (list (ILReturn 'x)))) - (check-ilexpr (PlainLambda 'x (LI* 'x) #t) + (check-ilexpr (Lambda 'x (LI* 'x) #t) '() (ILApp (name-in-module 'core 'attachProcedureArity) @@ -878,14 +865,14 @@ ;; -------------------------------------------------------------------------- (test-case "Lambda expressions" - (check-ilexpr (PlainLambda '(x) (LI* 'x) #t) + (check-ilexpr (Lambda '(x) (LI* 'x) #t) '() (ILLambda '(x) (list (ILReturn 'x)))) - (check-ilexpr (PlainLambda '(a b) + (check-ilexpr (Lambda '(a b) (list - (PlainApp (LocalIdent 'list) + (App (LocalIdent 'list) (LI* 'a 'b))) #t) '() @@ -908,11 +895,11 @@ (Quote 'yes) (Quote 'false))) (cons '(b) - (PlainApp (kident '+) + (App (kident '+) (list (Quote 1) (Quote 2))))) - (list (PlainApp (LocalIdent 'list) + (list (App (LocalIdent 'list) (LI* 'a 'b)))) (list (ILIf (ILBinaryOp '!== (list (~val #t) (~val #f))) @@ -925,16 +912,16 @@ ;; -------------------------------------------------------------------------- (test-case "Identify binary operators" - (check-ilexpr (PlainApp (kident '+) '()) + (check-ilexpr (App (kident '+) '()) '() (ILApp (ILRef 'kernel '+) '())) - (check-ilexpr (PlainApp (kident '/) '()) + (check-ilexpr (App (kident '/) '()) '() (ILApp (ILRef 'kernel '/) '())) - (check-ilexpr (PlainApp (kident '+) (list (Quote 1) (Quote 2))) + (check-ilexpr (App (kident '+) (list (Quote 1) (Quote 2))) '() (ILBinaryOp '+ (list (ILValue 1) (ILValue 2)))) - (check-ilexpr (PlainApp (kident '-) (list (Quote 1) + (check-ilexpr (App (kident '-) (list (Quote 1) (Quote 2) (Quote 3))) '() @@ -959,10 +946,10 @@ (check-ilexpr (CaseLambda (list - (PlainLambda '(a b) (list (PlainApp (kident 'add) + (Lambda '(a b) (list (App (kident 'add) (LI* 'a 'b))) #t) - (PlainLambda '(a b c) (list (PlainApp (kident 'mul) + (Lambda '(a b c) (list (App (kident 'mul) (LI* 'a 'b 'c))) #t))) (list @@ -1003,19 +990,19 @@ (test-case "Foreign Function Interface" (check-ilexpr - (PlainApp absyn-js-ffi (list (Quote 'var) (Quote 'console))) + (App absyn-js-ffi (list (Quote 'var) (Quote 'console))) '() 'console) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'ref) (Quote 'obj) (Quote 'key1) (Quote 'key2))) '() (ILRef (ILRef (~sym 'obj) 'key1) 'key2)) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'ref) (LocalIdent 'obj) (Quote 'key1) (Quote 'key2))) @@ -1023,16 +1010,16 @@ (ILRef (ILRef 'obj 'key1) 'key2)) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'index) (Quote 'obj) - (PlainApp (LocalIdent 'do) (list (Quote "Hello!"))))) + (App (LocalIdent 'do) (list (Quote "Hello!"))))) '() (ILIndex (~sym 'obj) (ILApp 'do (list (~str "Hello!"))))) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'object) (Quote 'key1) (Quote 'key2) (Quote 'key3) @@ -1043,7 +1030,7 @@ (cons 'key3 (~sym 'val3))))) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'array) (Quote 1) (Quote 2) (Quote 3))) @@ -1051,7 +1038,7 @@ (ILArray (list (ILValue 1) (ILValue 2) (ILValue 3)))) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'assign) (LocalIdent 'name) (Quote "John Doe"))) @@ -1059,21 +1046,21 @@ (ILValue (void))) ;;TODO: FFI special case! (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'new) (LocalIdent 'Array))) '() (ILNew 'Array)) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'throw) (Quote "What"))) (list (ILThrow (~str "What"))) (ILValue (void))) (check-ilexpr - (PlainApp + (App absyn-js-ffi (list (Quote 'operator) (Quote '+) (Quote 1) (Quote 2))) '() @@ -1083,8 +1070,8 @@ (test-case "Top Level Forms" (check-iltoplevel - (list (PlainApp (kident 'display) (list (Quote "hello"))) - (PlainApp (kident 'print) (list (Quote "what" ) + (list (App (kident 'display) (list (Quote "hello"))) + (App (kident 'print) (list (Quote "what" ) (LocalIdent 'out)))) (list (ILApp (ILRef 'kernel 'display) (list (~str "hello"))) @@ -1099,9 +1086,9 @@ (check-ilgtl (DefineValues '(x ident) - (PlainApp (kident 'values) + (App (kident 'values) (list (Quote 42) - (PlainLambda '(x) (LI* 'x) #t)))) + (Lambda '(x) (LI* 'x) #t)))) (list (ILVarDec 'let_result1 From fdd6e2f5203da7f51dd685746e2f375a0b8e9ea3 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 14:02:35 -0400 Subject: [PATCH 139/170] more forms --- racketscript-compiler/racketscript/compiler/ast.rkt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 8aff1ab2..463573e3 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -129,3 +129,13 @@ (LetValues? e) (Set!? e) (WithContinuationMark? e))) + +(define (lambda-arity f) + (define frmls (Lambda-formals f)) + (cond + [(symbol? frmls) (arity-at-least 0)] + [(list? frmls) (length frmls)] + [(pair? frmls) (arity-at-least (length (car frmls)))])) + +(define (variadic-lambda? lam) + (not (list? (Lambda-formals lam)))) From 192bb34cdb7c21765ba955a507d2d69765c2b528 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 14:02:45 -0400 Subject: [PATCH 140/170] forms and imports for IR --- racketscript-compiler/racketscript/compiler/ir.rkt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/racketscript-compiler/racketscript/compiler/ir.rkt b/racketscript-compiler/racketscript/compiler/ir.rkt index 93b2b30c..e57acea6 100644 --- a/racketscript-compiler/racketscript/compiler/ir.rkt +++ b/racketscript-compiler/racketscript/compiler/ir.rkt @@ -1,6 +1,7 @@ #lang racket/base -(require "ast.rkt" +(require (only-in racket/list flatten) + "ast.rkt" "struct-match.rkt") (provide (all-defined-out) @@ -167,3 +168,5 @@ [(ILCheckedFormals formals*) (formals->list formals*)] [v (formals->list v)])) + +(define (flatten-statements stms) (flatten stms)) From 84800feadbc1b6193a59b5e00c883b0abaabad5c Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 14:02:59 -0400 Subject: [PATCH 141/170] once again, (let () ...) over begin --- racketscript-compiler/racketscript/compiler/match.rkt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/match.rkt b/racketscript-compiler/racketscript/compiler/match.rkt index 521ef559..012a29a5 100644 --- a/racketscript-compiler/racketscript/compiler/match.rkt +++ b/racketscript-compiler/racketscript/compiler/match.rkt @@ -131,9 +131,9 @@ (let-values ([#,ids #,(extract-one #'v (car patterns))]) #,(if guard #`(if #,guard - (begin . #,(remove-guard (car bodys))) + (let () . #,(remove-guard (car bodys))) (alt)) - #`(begin . #,(remove-guard (car bodys))))) + #`(let () . #,(remove-guard (car bodys))))) (alt)))]))) ;; If the first pattern is `( ....)`, then ;; extract the input head symbol, because we're From 6086e8a5639d028f2b97357a74c9f0e2a929e411 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 14:03:12 -0400 Subject: [PATCH 142/170] add sequence-length to utils --- .../racketscript/compiler/util.rkt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index e1e7200a..0c82ea6e 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -7,6 +7,9 @@ "set.rkt" "match.rkt" "anaphoric.rkt" + racket/flonum + racket/fixnum + (only-in racket/list range) (only-in racket/string string-prefix?) (only-in racket/path find-relative-path)) @@ -37,6 +40,7 @@ primitive-module-path? ++ ~a + sequence-length (all-from-out "ident.rkt")) (module+ test (require rackunit)) @@ -338,6 +342,20 @@ ;;; --------------------------------------------------------------------------- +(define (sequence-length s) + (unless (sequence? s) (raise-argument-error 'sequence-length "sequence?" s)) + (cond [(exact-nonnegative-integer? s) s] + [(list? s) (length s)] + [(vector? s) (vector-length s)] + [(flvector? s) (flvector-length s)] + [(fxvector? s) (fxvector-length s)] + [(string? s) (string-length s)] + [(bytes? s) (bytes-length s)] + [(hash? s) (hash-count s)] + [else + (for/fold ([c 0]) ([i (in-values*-sequence s)]) + (add1 c))])) + (define-syntax (for/fold/last stx) (syntax-case stx () [(_ ([accum-id bw ... init-expr] ...) ([item bw2 ... is-last? lst] ...) body ...) From 4d54576befd69097aedb1240b0bd57a0d3b890f8 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 14:03:23 -0400 Subject: [PATCH 143/170] done with transform.rkt --- .../racketscript/compiler/transform.rkt | 170 ++++++++++-------- 1 file changed, 96 insertions(+), 74 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 86e4b0b6..70869a0e 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -5,6 +5,7 @@ (require racket/bool racket/list + version/utils "ast.rkt" "config.rkt" "environment.rkt" @@ -19,7 +20,6 @@ (provide absyn-top-level->il absyn-gtl-form->il absyn-expr->il - absyn-module->il absyn-linklet->il) (define module-object-name-map (make-parameter hash)) @@ -222,18 +222,28 @@ (ILAssign id v))) (ILValue (void)))] - [(App (ImportedIdent '#%js-ffi _ _) args) + [(App lam args) + #:when (and (ImportedIdent? lam) + (eq? '#%js-ffi (ImportedIdent-id lam))) (match args - [(list (Quote 'var) (Quote var)) - (values '() (cast var Symbol))] - [(list (Quote 'string) (Quote str)) - (values '() (ILValue str))] - [(list (Quote 'ref) b xs ...) + [`(,fst ,snd) + #:when (and (Quote? fst) + (Quote? snd) + (eq? (Quote-datum fst) 'var)) + (values '() (Quote-datum snd))] + [`(,fst ,snd) + #:when (and (Quote? fst) + (Quote? snd) + (eq? (Quote-datum fst) 'string)) + (values '() (ILValue (Quote-datum snd)))] + [`(,fst ,b . ,xs) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'ref)) (define-values (stms il) (absyn-expr->il b #f)) (values stms (for/fold ([il il]) ([x xs]) - (match-define (Quote s) x) ;; Previous phase wrap + (struct-match-define (Quote s) x) ;; Previous phase wrap ;; the symbol in quote ;; HACK: To avoid wrapping the base symbol into @@ -244,7 +254,9 @@ (ILRef (ILValue-v il) s) (ILRef il s))))] - [(list (Quote 'index) b xs ...) + [`(,fst ,b . ,xs) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'index)) (define-values (stms il) (absyn-expr->il b #f)) (for/fold ([stms stms] [il il]) @@ -255,18 +267,24 @@ (ILIndex (ILValue-v il) s-il) (ILIndex il s-il))))] - [(list (Quote 'assign) lv rv) + [`(,fst ,lv ,rv) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'assign)) (define-values (lv-stms lv-il) (absyn-expr->il lv #f)) (define-values (rv-stms rv-il) (absyn-expr->il rv #f)) (values (append lv-stms rv-stms (list (ILAssign lv-il rv-il))) (ILValue (void)))] - [(list (Quote 'new) lv) + [`(,fst ,lv) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'new)) (define-values (stms il) (absyn-expr->il lv #f)) (values stms (ILNew il))] - [(list (Quote 'array) items ...) + [`(,fst . ,items) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'array)) (define-values (stms* items*) (for/fold ([stms '()] [vals '()]) @@ -276,7 +294,9 @@ (append vals (list v*))))) (values stms* (ILArray items*))] - [(list (Quote 'object) items ...) + [`(,fst . ,items) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'object)) (define-values (keys vals) (split-at items (/ (length items) 2))) (define-values (stms* items*) (for/fold ([stms '()] @@ -288,37 +308,54 @@ (append kvs (list (cons (Quote-datum k) v*)))))) (values stms* (ILObject items*))] - [(list (Quote 'throw) e) + [`(,fst ,e) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'throw)) (define-values (stms val) (absyn-expr->il e #f)) (values (append1 stms (ILThrow val)) (ILValue (void)))] - [(list (Quote 'typeof) e) + [`(,fst ,e) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'typeof)) (define-values (stms val) (absyn-expr->il e #f)) (values stms (ILTypeOf val))] - [(list (Quote 'instanceof) e t) + [`(,fst ,e ,t) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'instanceof)) ;;TODO: Not ANF. (define-values (stms val) (absyn-expr->il e #f)) (define-values (tstms tval) (absyn-expr->il t #f)) (values (append stms tstms) (ILInstanceOf val tval))] - [(list (Quote 'operator) (Quote oper) e0 e1) + [`(,fst ,snd ,e0 ,e1) + #:when (and (Quote? fst) + (Quote? snd) + (eq? (Quote-datum fst) 'operator)) + (struct-match-define (Quote oper) snd) ;;TODO: not ANF (define-values (stms0 val0) (absyn-expr->il e0 #f)) (define-values (stms1 val1) (absyn-expr->il e1 #f)) (values (append stms0 stms1) (ILBinaryOp oper (list val0 val1)))] - [(list (Quote 'null)) + [`(,fst) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'null)) (values '() (ILNull))] - [(list (Quote 'undefined)) + [`(,fst) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'undefined)) (values '() (ILUndefined))] - [(list (Quote 'arguments)) + [`(,fst) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'arguments)) (values '() (ILArguments))] - [(list (Quote 'this)) + [`(,fst) + #:when (and (Quote? fst) + (eq? (Quote-datum fst) 'this)) (values '() (ILThis))] - [_ (error 'absyn-expr->il "unknown ffi form" args)])] + [`,_ (error 'absyn-expr->il "unknown ffi form" args)])] [(App lam args) ;;NOTE: Comparision operators work only on two operands TODO ;;later - (: binops (Listof ImportedIdent)) (define binops (map (λ (b) (ImportedIdent b '#%kernel #t)) '(+ - * /))) @@ -340,9 +377,9 @@ ;; If some arguements produce statement, it may have side effects ;; and hence lambda expression should be computed first. (define-values (lam+arg-stms lam-part-vals _rst) - (for/fold/last ([stms : ILStatement* '()] - [vals : (Listof ILExpr) '()] - [next-has-stms? : Boolean #f]) + (for/fold/last ([stms '()] + [vals '()] + [next-has-stms? #f]) ([arg last? (reverse (cons lam args))]) (define-values (s v) (absyn-expr->il arg #f)) (cond @@ -427,8 +464,8 @@ (cond [(and (or (symbol? (current-source-file)) (path? (current-source-file))) - (equal? (actual-module-path (cast (current-source-file) ModuleName)) - (actual-module-path (cast src ModuleName)))) + (equal? (actual-module-path (current-source-file)) + (actual-module-path src))) (absyn-expr->il (LocalIdent id) overwrite-mark-frame?)] [(false? reachable?) ;; Probably a macro-introduced binding. @@ -439,7 +476,7 @@ (log-rjs-warning "missing unreachable binding ~s ~s" id* src) src))) (values '() - (ILRef (ILRef (assert mod-obj-name symbol?) + (ILRef (ILRef mod-obj-name *quoted-binding-ident-name*) id*))] [else @@ -447,9 +484,11 @@ (lambda () (log-rjs-warning "missing reachable binding ~s ~s" id* src) src))) - (values '() (ILRef (assert mod-obj-name symbol?) id*))])] + (values '() (ILRef mod-obj-name id*))])] + + [(WithContinuationMark key _fst wcm) #:when (WithContinuationMark? wcm) + (struct-match-define (WithContinuationMark key _snd _thd) wcm) - [(WithContinuationMark key _ (and (WithContinuationMark key _ _) wcm)) ;; Overwrites previous key (absyn-expr->il wcm overwrite-mark-frame?)] @@ -493,20 +532,18 @@ [_ (error (~a "unsupported expr " expr))])) -(: absyn-binding->il (-> Binding ILStatement*)) (define (absyn-binding->il b) - (match-define (cons args expr) b) + (match-define `(,args . ,expr) b) (define-values (stms v) (absyn-expr->il expr #f)) (match args - [(list a) + [`(,a) (append1 stms (ILVarDec a v))] - [_ + [`,_ (define result-id (fresh-id 'let_result)) - (: binding-stms ILStatement*) (define binding-stms - (for/list ([i : Natural (range (length args))] - [arg : Symbol args]) + (for/list ([i (range (length args))] + [arg args]) (ILVarDec arg (ILApp (ILRef result-id 'getAt) (list (ILValue i)))))) (append stms @@ -514,7 +551,6 @@ binding-stms))])) -(: absyn-value->il (-> Any ILExpr)) (define (absyn-value->il d) (cond [(Quote? d) (absyn-value->il (Quote-datum d))] @@ -541,9 +577,8 @@ (list (ILArray (map absyn-value->il - (vector->list (cast d (Vectorof Any)))))))] + (vector->list d)))))] [(hash? d) - (: maker Symbol) (define maker (cond [(hash-eq? d) 'Hash.makeEq] [(hash-eqv? d) 'Hash.makeEqv] @@ -576,18 +611,15 @@ (ILValue d)] [else (error (~a "unsupported value" d))])) -(: expand-normal-case-lambda (-> (Listof Lambda) - (Listof Lambda) - (Values ILStatement* ILExpr))) (define (expand-normal-case-lambda fixed-lams rest-lams) - (define fixed-lam-names : (Listof Symbol) + (define fixed-lam-names (build-list (length fixed-lams) (λ (_) (fresh-id 'cl)))) - (define rest-lam-names : (Listof Symbol) + (define rest-lam-names (build-list (length rest-lams) (λ (_) (fresh-id 'cl)))) (define fixed-lam-name (fresh-id 'fixed-lam)) (define fixed-lam-map - (ILObject (map (λ ([id : Symbol] [lam : Lambda]) + (ILObject (map (λ (id lam) (let ([arity (lambda-arity lam)]) (if (number? arity) (cons (string->symbol (~a arity)) id) @@ -599,12 +631,12 @@ (define-values (var-lam-stms var-lam-val) (absyn-expr->il - (let loop : Expr ([lams* rest-lams] - [names* rest-lam-names]) + (let loop ([lams* rest-lams] + [names* rest-lam-names]) (match (list lams* names*) - [(list '() '()) (App (ImportedIdent 'error '#%kernel #t) - (list (Quote "case-lambda: invalid case")))] - [(list (cons lh lt) (cons nh nt)) + [`(() ()) (App (ImportedIdent 'error '#%kernel #t) + (list (Quote "case-lambda: invalid case")))] + [`((,lh . ,lt) (,nh . ,nt)) (define arguments-length (App (ImportedIdent '#%js-ffi '#%kernel #t) (list (Quote 'ref) (LocalIdent nh) @@ -628,25 +660,24 @@ (append1 var-lam-stms (ILReturn var-lam-val))))) - (let ([make-lam (λ ([id : Symbol] [lam : Lambda]) + (let ([make-lam (λ (id lam) (define-values (stms lam-expr) (absyn-expr->il lam #f)) - (assert stms empty?) + stms (ILVarDec id lam-expr))]) (values (append (map make-lam fixed-lam-names fixed-lams) (map make-lam rest-lam-names rest-lams)) (ILLambda '() dispatch-stms)))) -(: case-lambda-has-dead-clause? (-> CaseLambda Boolean)) ;; Returns true if the given case-lambda has an unreachable clause. ;; Eg. (case-lambda ;; [(a . b) "take at-least 1"] ;; [(a b) "take exactly 2"]) (define (case-lambda-has-dead-clause? clam) (define-values (result _) - (for/fold : (Values Boolean Number) - ([res : Boolean #f] - [least-var-arity : Real +inf.0]) - ([lam (CaseLambda-clauses clam)]) + (for/fold + ([res #f] + [least-var-arity +inf.0]) + ([lam (CaseLambda-clauses clam)]) (let ([arity (lambda-arity lam)]) (cond [(and (number? arity) (< arity least-var-arity)) @@ -694,7 +725,6 @@ (Lambda '(a b) '() #f)))) "third clause is unreachable")) -(: get-formals-predicate (-> Lambda (-> Expr Expr))) (define (get-formals-predicate c) ;; TODO: Use binary ops instead of function call for cmp (define frmls (Lambda-formals c)) @@ -702,13 +732,13 @@ (cond [(symbol? frmls) (λ (_) (Quote #t))] [(list? frmls) - (λ ([v : Expr]) + (λ (v) (App (ImportedIdent 'equal? '#%kernel #t) (list v (Quote (length frmls)))))] [(cons? frmls) - (λ ([v : Expr]) + (λ (v) (App (ImportedIdent '>= '#%kernel #t) (list v @@ -732,12 +762,12 @@ (let loop ([arities* (sort arities arity<)] [result '()]) (match arities* - ['() (reverse result)] - [(cons (and (arity-at-least v) hd) tl) + [`() (reverse result)] + [`(,hd . ,tl) #:when (arity-at-least? hd) (reverse (if (and (cons? result) (arity-equal? (car result) hd)) (cons hd (cdr result)) (cons hd result)))] - [(cons hd tl) + [`(,hd . ,tl) (loop tl (if (and (cons? result) (arity-equal? (car result) hd)) result (cons hd result)))]))) @@ -746,7 +776,6 @@ (require typed/rackunit racket/pretty) - (: -absyn-expr->il (-> Expr (Values ILStatement* ILExpr))) (define (-absyn-expr->il expr) (absyn-expr->il expr #f)) @@ -771,12 +800,8 @@ (ilcheck absyn-gtl-form->il form stms)) (define LI LocalIdent) - (define LI* (λ s* - ((inst map LocalIdent Symbol) - LocalIdent - (cast s* (Listof Symbol))))) + (define LI* (λ s* (map LocalIdent s*))) - (: kident (-> Symbol ImportedIdent)) (define (kident s) (ImportedIdent s '#%kernel #t)) (define-syntax-rule (convert+print fn absyn) @@ -789,18 +814,15 @@ ;; enable test environment (test-environment? #t) - (: ~str (-> String ILExpr)) (define (~str s) (ILApp (name-in-module 'core 'UString.make) (list (ILValue s)))) - (: ~sym (-> Symbol ILExpr)) (define (~sym s) (ILApp (name-in-module 'core 'PrimitiveSymbol.make) (list (ILValue (symbol->string s))))) - (: ~cons (-> ILExpr ILExpr ILExpr)) (define (~cons a b) (ILApp (name-in-module 'core 'Pair.make) (list a b))) From 816af6f97cc87f0400526f9d734b04b449d7c909 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 15:16:36 -0400 Subject: [PATCH 144/170] missed a few things --- .../racketscript/compiler/ast.rkt | 2 +- .../racketscript/compiler/transform.rkt | 50 +++++++++++-------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 463573e3..2e89f625 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -7,7 +7,7 @@ ;; TODO path should get eliminated once things are bootstrapped (or perhaps just before) (struct Linklet (path imports exports forms) #:transparent) -(struct DefineValues (ids expr)) +(struct DefineValues (ids expr) #:transparent) ;; An Ident is one of: ;; - TopLevelIdent diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 70869a0e..39f70daf 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -22,7 +22,7 @@ absyn-expr->il absyn-linklet->il) -(define module-object-name-map (make-parameter hash)) +(define module-object-name-map (make-parameter (hash))) (define (absyn-top-level->il form) (cond @@ -45,6 +45,7 @@ ;; FIXME it's really odd that we have three things that keep needing to get passed around that have the same information ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map + (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) (ILLinklet (filter ILRequire? requires*) @@ -69,24 +70,26 @@ [else (error 'exports->il "unknown export form in linklet" ex)]))) +;; TODO not using a lot of the code here, eventually should be able to delete (define (absyn-requires->il import-list path) (for/list ([mod-path import-list] [counter (in-naturals)]) (define mod-obj-name (string->symbol (~a "M" counter))) - (define import-name - (if (symbol? mod-path) - (jsruntime-import-path path - (jsruntime-module-path mod-path)) - (module->relative-import mod-path))) - - ;; See expansion of identifier in `expand.rkt` for primitive - ;; modules - (if (or (and (primitive-module? mod-path) ;; a self-import cycle - (equal? path (actual-module-path mod-path))) - (and (primitive-module-path? (actual-module-path path)) - (set-member? ignored-module-imports-in-boot mod-path))) - #f - (ILRequire import-name mod-obj-name '*)))) + (ILRequire mod-path mod-obj-name '*))) + ;; (define import-name + ;; (if (symbol? mod-path) + ;; (jsruntime-import-path path + ;; (jsruntime-module-path mod-path)) + ;; (module->relative-import mod-path))) + + ;; ;; See expansion of identifier in `expand.rkt` for primitive + ;; ;; modules + ;; (if (or (and (primitive-module? mod-path) ;; a self-import cycle + ;; (equal? path (actual-module-path mod-path))) + ;; (and (primitive-module-path? (actual-module-path path)) + ;; (set-member? ignored-module-imports-in-boot mod-path))) + ;; #f + ;; (ILRequire import-name mod-obj-name '*)))) (define (absyn-gtl-form->il form) (cond @@ -236,7 +239,7 @@ (Quote? snd) (eq? (Quote-datum fst) 'string)) (values '() (ILValue (Quote-datum snd)))] - [`(,fst ,b . ,xs) + [`(,fst ,b ,xs ...) #:when (and (Quote? fst) (eq? (Quote-datum fst) 'ref)) (define-values (stms il) (absyn-expr->il b #f)) @@ -254,7 +257,7 @@ (ILRef (ILValue-v il) s) (ILRef il s))))] - [`(,fst ,b . ,xs) + [`(,fst ,b ,xs ...) #:when (and (Quote? fst) (eq? (Quote-datum fst) 'index)) (define-values (stms il) (absyn-expr->il b #f)) @@ -282,7 +285,7 @@ (define-values (stms il) (absyn-expr->il lv #f)) (values stms (ILNew il))] - [`(,fst . ,items) + [`(,fst ,items ...) #:when (and (Quote? fst) (eq? (Quote-datum fst) 'array)) (define-values (stms* items*) @@ -294,7 +297,7 @@ (append vals (list v*))))) (values stms* (ILArray items*))] - [`(,fst . ,items) + [`(,fst ,items ...) #:when (and (Quote? fst) (eq? (Quote-datum fst) 'object)) (define-values (keys vals) (split-at items (/ (length items) 2))) @@ -401,7 +404,7 @@ (cons v vals) (or next-has-stms? (cons? s)))]))) - (match-define `(,lam-val . ,arg-vals) lam-part-vals) + (match-define `(,lam-val ,arg-vals ...) lam-part-vals) (if (Ident? lam) (values lam+arg-stms @@ -413,7 +416,11 @@ ;; Begin Statements [_ #:when (and (pair? expr) (null? (cdr expr))) + (displayln "bar") + (displayln expr) (match-define `(,hd) expr) + (displayln "foo") + (displayln hd) (cond [(Expr? hd) (absyn-expr->il hd overwrite-mark-frame?)] [else (error "last datum in body must be expression")])] @@ -773,8 +780,7 @@ (cons hd result)))]))) (module+ test - (require typed/rackunit - racket/pretty) + (require rackunit) (define (-absyn-expr->il expr) (absyn-expr->il expr #f)) From 96951e8262f1450744c8f5de2a7fd38a4d01abdc Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 15:29:48 -0400 Subject: [PATCH 145/170] bug fixes, get rid of begin --- racketscript-compiler/racketscript/compiler/ast.rkt | 11 ++++++++--- .../racketscript/compiler/linklet-api.rkt | 9 +++++++-- .../racketscript/compiler/transform.rkt | 6 +----- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 2e89f625..38e2f993 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -46,9 +46,6 @@ ;; (Quote datum?) (struct Quote (datum) #:transparent) -;; (Begin [Listof Expr?]) -(struct Begin (exprs) #:transparent) - ;; (Begin0 Expr? [Listof Expr?]) (struct Begin0 (expr0 exprs) #:transparent) @@ -112,6 +109,14 @@ (LinkletImportIdent? e) (LocalIdent? e))) +(define (TopLevelForm? e) + (or (Expr? e) + (DefineValues? e) + (JSRequire? e))) + +(define (Begin? e) + (and (list? e) (andmap TopLevelForm? e))) + ;; NOTE the linklet docs specify that: ;; 1. quote-syntax and #%top don't appear in the IR ;; 2. #%plain-app is implicit diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index b871b311..1834d3a7 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -1,13 +1,18 @@ #lang racket/base (require "ast.rkt" - "sexp-to-ast.rkt") + "sexp-to-ast.rkt" + "transform.rkt") (provide (all-defined-out)) (define (compile-linklet sexp) - (parse-linklet sexp "")) + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) (define (linklet-import-variables lnk) (Linklet-imports lnk)) +(define (foobar) + (compile-linklet (read (open-input-file "/home/gamburgm/racketscript/expander.rktl")))) + +(foobar) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 39f70daf..bd6d2de6 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -188,7 +188,7 @@ (App (ImportedIdent 'make-arity-at-least '#%kernel #t) (list (Quote (arity-at-least-value c)))) #f)) val] - [(number? val) (ILValue val)])))) + [(number? c) (ILValue c)])))) (values stms (ILApp (name-in-module 'core 'attachProcedureArity) (list val arities)))] @@ -416,11 +416,7 @@ ;; Begin Statements [_ #:when (and (pair? expr) (null? (cdr expr))) - (displayln "bar") - (displayln expr) (match-define `(,hd) expr) - (displayln "foo") - (displayln hd) (cond [(Expr? hd) (absyn-expr->il hd overwrite-mark-frame?)] [else (error "last datum in body must be expression")])] From 4696bf6906cfaaa4aac627dd6d9a1a4d9db86216 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 15:47:47 -0400 Subject: [PATCH 146/170] no dependencies! --- .../racketscript/compiler/util-untyped.rkt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util-untyped.rkt b/racketscript-compiler/racketscript/compiler/util-untyped.rkt index e8aac4fa..f83dc456 100644 --- a/racketscript-compiler/racketscript/compiler/util-untyped.rkt +++ b/racketscript-compiler/racketscript/compiler/util-untyped.rkt @@ -1,4 +1,6 @@ -#lang racket +#lang racket/base + +(require "match.rkt") (provide links-module? improper->proper @@ -51,9 +53,9 @@ (define (improper->proper l) (match l - [(cons a b) (cons a (improper->proper b))] - ['() '()] - [_ (cons l '())])) + [`(,a . ,b) (cons a (improper->proper b))] + [`() '()] + [`,_ (cons l '())])) (module+ test (check-equal? (improper->proper '()) '()) (check-equal? (improper->proper '(1 . 2)) '(1 2)) From d5499def7ef05324cde71e5a4a052957f841b789 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 15:48:02 -0400 Subject: [PATCH 147/170] verson/utils not allowed --- racketscript-compiler/racketscript/compiler/transform.rkt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index bd6d2de6..baeabc55 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -5,7 +5,6 @@ (require racket/bool racket/list - version/utils "ast.rkt" "config.rkt" "environment.rkt" @@ -444,7 +443,7 @@ [(ImportedIdent id src_ reachable?) ;; FIXME?: Racket7 workaround (define src - (if (and (version<=? "7.0" (version)) + (if (and (< (string->number (substring (version) 0 1)) 7) (equal? src_ '#%runtime)) '#%kernel src_)) From d9ed2db3c76a81a7bf3a349da4de0a66bcb7a77b Mon Sep 17 00:00:00 2001 From: gamburgm Date: Fri, 5 Aug 2022 21:36:03 -0400 Subject: [PATCH 148/170] delete some module-seeking forms, introducing more dead code --- .../racketscript/compiler/util-untyped.rkt | 20 +----- .../racketscript/compiler/util.rkt | 71 ------------------- 2 files changed, 1 insertion(+), 90 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/util-untyped.rkt b/racketscript-compiler/racketscript/compiler/util-untyped.rkt index f83dc456..263f835b 100644 --- a/racketscript-compiler/racketscript/compiler/util-untyped.rkt +++ b/racketscript-compiler/racketscript/compiler/util-untyped.rkt @@ -2,8 +2,7 @@ (require "match.rkt") -(provide links-module? - improper->proper +(provide improper->proper *jsident-pattern* js-identifier?) @@ -33,23 +32,6 @@ (apply build-path base (map link-path-elem->string (cadr spec))))))) - - -;; Module-Path -> (Maybe (list String Path)) -;; If `mod-path` belongs to a module listed in (find-links-file), -;; return a list containing: -;; - the link name, -;; - and path to root of the module -;; e.g., '("racketscript-compiler" -;; #) -;; else return false. -(define (links-module? mod-path) - (for*/or ([links-file (current-library-collection-links)] - #:when links-file - [link-path (get-root-links links-file)]) - (and (subpath? link-path mod-path) - (let-values ([(base link-name dir?) (split-path link-path)]) - (list (format "~a" link-name) link-path))))) (define (improper->proper l) (match l diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index 0c82ea6e..aef88887 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -24,11 +24,8 @@ assocs->hash-list module-path->name collects-module? - module-output-file - module->relative-import actual-module-path js-identifier? - jsruntime-import-path path-parent length=? string-slice @@ -211,17 +208,6 @@ (define (main-source-directory) (path-parent (main-source-file))) -(define (jsruntime-import-path base runtime-fpath) - ;; TODO: Make runtime, modules, and everything united! - (define (fix-for-down p) - (define p-str (~a p)) - (if (string-prefix? p-str "..") - p - (build-path (~a "./" p-str)))) - (fix-for-down - (find-relative-path (path-parent (module-output-file base)) - runtime-fpath))) - ;;; Module path renaming ------------------------------------------------------ (define (actual-module-path in-path) @@ -262,48 +248,6 @@ (with-handlers ([exn:fail:filesystem:exists? void]) (make-directory dir))))) -;; NOTE: returns simplified path, which is required by fns like find-relative-path -(define (module-output-file mod) - (simple-form-path - (match (module-kind mod) - [`(primitive ,mod-path) - ;; Eg. #%kernel, #%utils ... - (build-path (output-directory) - "runtime" - (~a (substring (symbol->string mod-path) 2) ".rkt.js"))] - [`(runtime ,rel-path) - (build-path (output-directory) "runtime" (~a rel-path ".js"))] - [`(collects ,base ,rel-path) - (build-path (output-directory) "collects" (~a rel-path ".js"))] - [`(links ,name ,root-path ,rel-path) - (define output-path - (build-path (output-directory) "links" name (~a rel-path ".js"))) - ;; because we just created root links directory, but files could be - ;; deep arbitrarily inside - (make-directory* (path-only output-path)) - ;; TODO: doesn't handle arbitrary deep files for now - output-path] - [`(general ,mod-path) - (let* ([main (main-source-file)] - [rel-path (find-relative-path (simple-form-path (path-parent main)) - (simple-form-path mod-path))]) - (build-path (output-directory) "modules" (~a rel-path ".js")))]))) - -(define (module->relative-import mod-path) - ;; ES6 modules imports need "./" prefix for importing relatively - ;; to current module, rather than relative to main module. Weird :/ - (define (fix-for-down p) - (define p-str (~a p)) - (if (string-prefix? p-str "..") - p - (build-path (~a "./" p-str)))) - - (let ([src (current-source-file)]) - (if src - (fix-for-down - (find-relative-path (path-parent (module-output-file src)) - (module-output-file mod-path))) - (error 'module->relative-import "current-source-file is #f")))) (define (collects-module? mod-path) (let loop ([collects (current-library-collection-paths)]) @@ -318,21 +262,6 @@ (and (string-prefix? (~a mod-path) (~a racketscript-runtime-dir)) (find-relative-path racketscript-runtime-dir mod-path))) -(define (module-kind mod-path) - (acond - [(symbol? mod-path) (list 'primitive mod-path)] - [(runtime-module? mod-path) (list 'runtime it)] - [(collects-module? mod-path) - (list 'collects - it - (find-relative-path it mod-path))] - [(links-module? mod-path) - (list 'links - (car it) - (cadr it) - (find-relative-path (cadr it) mod-path))] - [else (list 'general mod-path)])) - (define (converge fn init-val) (let loop ([val init-val]) (let ([new-val (fn val)]) From c6591a27359ba19dc4959a0e3757998d48caffd4 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 8 Aug 2022 14:16:26 -0400 Subject: [PATCH 149/170] stdlib missing and impl --- .../racketscript/compiler/linklet-api.rkt | 5 -- .../racketscript/compiler/transform.rkt | 2 +- .../racketscript/compiler/util.rkt | 53 ++++++++++++++----- 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 1834d3a7..8d2f9e76 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -11,8 +11,3 @@ (define (linklet-import-variables lnk) (Linklet-imports lnk)) - -(define (foobar) - (compile-linklet (read (open-input-file "/home/gamburgm/racketscript/expander.rktl")))) - -(foobar) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index baeabc55..f2cea28d 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -443,7 +443,7 @@ [(ImportedIdent id src_ reachable?) ;; FIXME?: Racket7 workaround (define src - (if (and (< (string->number (substring (version) 0 1)) 7) + (if (and (< (get-major-version (substring (version) 0 1)) 7) (equal? src_ '#%runtime)) '#%kernel src_)) diff --git a/racketscript-compiler/racketscript/compiler/util.rkt b/racketscript-compiler/racketscript/compiler/util.rkt index aef88887..b054e8e4 100644 --- a/racketscript-compiler/racketscript/compiler/util.rkt +++ b/racketscript-compiler/racketscript/compiler/util.rkt @@ -23,13 +23,11 @@ reverse-pair assocs->hash-list module-path->name - collects-module? actual-module-path js-identifier? path-parent length=? string-slice - log converge override-module-path simple-module-path @@ -38,6 +36,7 @@ ++ ~a sequence-length + get-major-version (all-from-out "ident.rkt")) (module+ test (require rackunit)) @@ -51,6 +50,27 @@ (let* ([fmt-lst (build-list (length args) (λ (_) "~a"))] [fmt-string (apply string-append fmt-lst)]) (apply format fmt-string args))) + +(define (number->string n) + (define (digit->char d) + (cond + [(eq? d 0) #\0] + [(eq? d 1) #\1] + [(eq? d 2) #\2] + [(eq? d 3) #\3] + [(eq? d 4) #\4] + [(eq? d 5) #\5] + [(eq? d 6) #\6] + [(eq? d 7) #\7] + [(eq? d 8) #\8] + [(eq? d 9) #\9])) + + (let loop ([res '()] + [curr n]) + (if (zero? curr) + (list->string (reverse res)) + (loop (cons (digit->char (modulo n 10))) + (quotient n 10))))) ;; taken from racket/collects/racket/syntax.rkt (define (format-symbol fmt . args) @@ -248,16 +268,6 @@ (with-handlers ([exn:fail:filesystem:exists? void]) (make-directory dir))))) - -(define (collects-module? mod-path) - (let loop ([collects (current-library-collection-paths)]) - (match collects - [`() #f] - [`(,ch . ,ct) - (if (string-prefix? (~a mod-path) (~a ch)) - ch - (loop ct))]))) - (define (runtime-module? mod-path) (and (string-prefix? (~a mod-path) (~a racketscript-runtime-dir)) (find-relative-path racketscript-runtime-dir mod-path))) @@ -271,6 +281,25 @@ ;;; --------------------------------------------------------------------------- +(define (get-major-version str) + (for/fold ([res 0]) + ([chr (in-string str)] + #:break (eq? chr #\.)) + (+ (char->number chr) (* 10 res)))) + +(define (char->number chr) + (cond + [(eq? chr #\0) 0] + [(eq? chr #\1) 1] + [(eq? chr #\2) 2] + [(eq? chr #\3) 3] + [(eq? chr #\4) 4] + [(eq? chr #\5) 5] + [(eq? chr #\6) 6] + [(eq? chr #\7) 7] + [(eq? chr #\8) 8] + [(eq? chr #\9) 9])) + (define (sequence-length s) (unless (sequence? s) (raise-argument-error 'sequence-length "sequence?" s)) (cond [(exact-nonnegative-integer? s) s] From 1ece969a6ededf992c4c961fec4c1cd0db8a6e9f Mon Sep 17 00:00:00 2001 From: gamburgm Date: Mon, 8 Aug 2022 17:01:46 -0400 Subject: [PATCH 150/170] stripped assembler, missing import support --- .../racketscript/compiler/assembler.rkt | 146 ++++++++---------- 1 file changed, 68 insertions(+), 78 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index 8cdd994f..e60beca3 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -1,44 +1,40 @@ -#lang typed/racket/base +#lang racket/base ;;; Generate JavaScript code from abstract syntax. Each binding name ;;; in assumed to be fresh, to enforce lexical scope rules of Racket ;;; in JavaScript -(require racket/format - racket/function - racket/list - racket/match +(require racket/list racket/string + (only-in racket/function curry) + "match.rkt" + "struct-match.rkt" "config.rkt" - "il.rkt" + "ir.rkt" "logging.rkt" "util.rkt") (provide assemble - assemble-module assemble-linklet assemble-statement* assemble-statement) -(: assemble (-> ILProgram Void)) (define (assemble p) (assemble-statement* p (current-output-port))) -(: assemble-expr (-> ILExpr Output-Port Void)) (define (assemble-expr expr out) (define emit (curry fprintf out)) - (: emit-args (-> (Listof ILExpr) String Void)) + (define (emit-args args sep) (let loop ([a* args]) (match a* - ['() (void)] - [(cons a '()) (assemble-expr a out)] - [(cons a tl) + [`() (void)] + [`(,a) (assemble-expr a out)] + [`(,a . ,tl) (assemble-expr a out) (emit sep) (loop tl)]))) - (: wrap-e? (-> ILExpr Boolean)) ;; Wrap expression 'e' when being applied, referenced ;; or indexed (define (wrap-e? e) @@ -50,10 +46,10 @@ (number? (ILValue-v e)) (byte? (ILValue-v e))))) - (match expr + (struct-match expr [(ILLambda args body) (emit "function(") - (define args-str : (Listof String) + (define args-str (cond [(symbol? args) (list (~a "..." (normalize-symbol args)))] [(list? args) (map normalize-symbol args)] @@ -73,7 +69,7 @@ (emit-args args ",") (emit ")")] [(ILBinaryOp oper args) - (assert (>= (length args) 2)) ;; TODO: Update the type of ILBinaryOp + ;; (assert (>= (length args) 2)) ;; TODO Update the type of ILBinaryOp (for/last? ([arg last? args]) (when (ILBinaryOp? arg) (emit "(")) (assemble-expr arg out) @@ -139,15 +135,13 @@ (emit (~a (normalize-symbol expr)))] [_ (error "unsupported expr" (void))])) -(: assemble-statement* (-> ILStatement* Output-Port Void)) (define (assemble-statement* stmt* out) (for [(s stmt*)] (assemble-statement s out))) -(: assemble-statement (-> ILStatement Output-Port Void)) (define (assemble-statement stmt out) (define emit (curry fprintf out)) - (match stmt + (struct-match stmt [(ILVarDec id expr) (emit (~a "var " (normalize-symbol id))) (when expr @@ -174,12 +168,13 @@ (emit "}")] [(ILIf* clauses) (let loop ([clauses clauses]) - (match clauses - [(cons (ILIfClause #f body) ctl) + (match-define `(,hd . ,ctl) clauses) + (struct-match hd + [(ILIfClause cnd body) #:when (not cnd) (emit "{") (assemble-statement* body out) (emit "}")] - [(cons (ILIfClause (? ILExpr? pred) body) ctl) + [(ILIfClause pred body) #:when (ILExpr? pred) (emit "if (") (assemble-expr pred out) (emit ") {") @@ -235,65 +230,61 @@ (emit ")")) (emit ";")])) -(: assemble-linklet (-> ILLinklet Output-Port Void)) (define (assemble-linklet lnk out) - (match-define (ILLinklet imports exports body) lnk) + (struct-match-define (ILLinklet imports exports body) lnk) (log-rjs-info "[assemble linklet]") - (assemble-requires* imports out) + ;; (assemble-requires* imports out) (for ([b body]) (assemble-statement b out)) (assemble-provides* exports out)) -(: assemble-module (-> ILModule (Option Output-Port) Void)) -(define (assemble-module mod maybeout) - (match-define (ILModule id provides requires body) mod) - (log-rjs-info "[assemble] ~a" id) - (let ([cb (λ ([out : Output-Port]) - (assemble-requires* requires out) - (for ([b body]) - (assemble-statement b out)) - (assemble-provides* provides out))]) - (if maybeout - (cb maybeout) - ;; For all other cases we need a valid module name, eg. kernel - (call-with-output-file (module-output-file (assert id path?)) - #:exists 'replace - cb)))) - -(: assemble-requires* (-> ILRequire* Output-Port Void)) -(define (assemble-requires* reqs* out) - (define emit (curry fprintf out)) - (define core-import-path - ;; (current-source-file) should not be false, else abort - (jsruntime-import-path (cast (current-source-file) (U Symbol Path)) - (jsruntime-module-path 'core))) - - (emit "import * as ~a from '~a';" - (jsruntime-core-module) - core-import-path) - (for ([req reqs*]) - (match-define (ILRequire mod obj-name import-sym) req) - (define import-string - (case import-sym - [(default) (format "import ~a from \"~a\";" - (normalize-symbol obj-name) - mod)] - [(*) (format "import * as ~a from \"~a\";" - (normalize-symbol obj-name) - mod)] - [else (error 'assemble-requires* "invalid require mode")])) - - (emit import-string))) - -(: assemble-provides* (-> ILProvide* Output-Port Void)) +;; (define (assemble-module mod maybeout) +;; (match-define (ILModule id provides requires body) mod) +;; (log-rjs-info "[assemble] ~a" id) +;; (let ([cb (λ ([out : Output-Port]) +;; (assemble-requires* requires out) +;; (for ([b body]) +;; (assemble-statement b out)) +;; (assemble-provides* provides out))]) +;; (if maybeout +;; (cb maybeout) +;; ;; For all other cases we need a valid module name, eg. kernel +;; (call-with-output-file (module-output-file (assert id path?)) +;; #:exists 'replace +;; cb)))) + +;; (define (assemble-requires* reqs* out) +;; (define emit (curry fprintf out)) +;; (define core-import-path +;; ;; (current-source-file) should not be false, else abort +;; (jsruntime-import-path (cast (current-source-file) (U Symbol Path)) +;; (jsruntime-module-path 'core))) + +;; (emit "import * as ~a from '~a';" +;; (jsruntime-core-module) +;; core-import-path) +;; (for ([req reqs*]) +;; (struct-match-define (ILRequire mod obj-name import-sym) req) +;; (define import-string +;; (case import-sym +;; [(default) (format "import ~a from \"~a\";" +;; (normalize-symbol obj-name) +;; mod)] +;; [(*) (format "import * as ~a from \"~a\";" +;; (normalize-symbol obj-name) +;; mod)] +;; [else (error 'assemble-requires* "invalid require mode")])) + +;; (emit import-string))) + (define (assemble-provides* p* out) (define emit (curry fprintf out)) (unless (empty? p*) (emit "export { ") (for/last? ([p last? p*]) - (match p + (struct-match p [(ILSimpleProvide id) (emit (~a (normalize-symbol id)))] [(ILRenamedProvide local-id exported-id) @@ -305,7 +296,6 @@ (emit " };"))) -(: assemble-value (-> Any Output-Port Void)) (define (assemble-value v out) (define emit (curry fprintf out)) ;; TODO: this will eventually be replaced by runtime primitives @@ -313,20 +303,20 @@ [(string? v) (emit "~s" v)] [(number? v) - (match v - [+inf.0 (emit "Infinity")] - [-inf.0 (emit "-Infinity")] - [+nan.0 (emit "NaN")] - [+nan.f (emit "NaN")] - [_ #:when (single-flonum? v) (emit (~a (exact->inexact (inexact->exact v))))] - [_ (emit (~a v))])] ;; TODO + (cond + [(eq? +inf.0 v) (emit "Infinity")] + [(eq? -inf.0 v) (emit "-Infinity")] + [(eq? +nan.0 v) (emit "NaN")] + [(eq? +nan.f v) (emit "NaN")] + [(single-flonum? v) (emit (~a (exact->inexact (inexact->exact v))))] + [else (emit (~a v))])] ;; TODO [(boolean? v) (emit (if v "true" "false"))] [(void? v) (emit "null")] [else (error "Unexpected value: " v)])) [module+ test - (require typed/rackunit + (require rackunit racket/port) ;; TODO: Replace with this, but fails to typecheck. From d21aa859f9b5b9b3e09fb69b9aa0a2ad7d947986 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Thu, 11 Aug 2022 11:01:52 -0400 Subject: [PATCH 151/170] wip --- .../racketscript/compiler/ast.rkt | 5 +++-- .../racketscript/compiler/linklet-api.rkt | 14 +++++++++++++- .../racketscript/compiler/sexp-to-ast.rkt | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/ast.rkt b/racketscript-compiler/racketscript/compiler/ast.rkt index 38e2f993..b8480ced 100644 --- a/racketscript-compiler/racketscript/compiler/ast.rkt +++ b/racketscript-compiler/racketscript/compiler/ast.rkt @@ -100,8 +100,9 @@ (cond [(symbol? formals) (list formals)] [(list? formals) formals] - [(pair? formals) (append (car formals) - (list (cdr formals)))])) + [(pair? formals) + (append (car formals) + (list (cdr formals)))])) (define (Ident? e) (or (ImportedIdent? e) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 8d2f9e76..86c10133 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -2,7 +2,9 @@ (require "ast.rkt" "sexp-to-ast.rkt" - "transform.rkt") + "transform.rkt" + "il-analyze.rkt" + "assembler.rkt") (provide (all-defined-out)) @@ -11,3 +13,13 @@ (define (linklet-import-variables lnk) (Linklet-imports lnk)) + +;; TODO temporary, for debugging/checking purposes +(define (everything sexp) + (define output-str (open-output-string)) + (assemble-linklet + (insert-arity-checks + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) + output-str) + (get-output-string output-str)) + diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index 17d0fbd2..2ed612df 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -130,5 +130,5 @@ [`(define-values ,is ,_) (for ([i is]) (hash-set! defs i 'define))] [`,_ (void)])) - (Linklet path (cons (list '#%kernel) imports) exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) + (Linklet path imports exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) From 1797503f71288a6b57812d35c34dbad2068c5c05 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Thu, 11 Aug 2022 12:46:29 -0400 Subject: [PATCH 152/170] really dumb imports implementation --- .../racketscript/compiler/assembler.rkt | 41 +++++++++++-------- .../racketscript/compiler/transform.rkt | 13 +++--- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index e60beca3..19ff89ee 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -234,7 +234,7 @@ (struct-match-define (ILLinklet imports exports body) lnk) (log-rjs-info "[assemble linklet]") - ;; (assemble-requires* imports out) + (assemble-requires* imports out) (for ([b body]) (assemble-statement b out)) (assemble-provides* exports out)) @@ -254,6 +254,29 @@ ;; #:exists 'replace ;; cb)))) +(define (assemble-requires* reqs* out) + (define emit (curry fprintf out)) + + ;; need some relative mechanism to do this in the future + + (emit "import * as ~a from '~a';" + (jsruntime-core-module) + "../runtime/core.js") + + (for ([req reqs*]) + (struct-match-define (ILRequire mod obj-name import-sym) req) + (define import-string + (case import-sym + [(default) (format "import ~a from \"~a\";" + (normalize-symbol obj-name) + mod)] + [(*) (format "import * as ~a from \"~a\";" + (normalize-symbol obj-name) + mod)] + [else (error 'assemble-requires* "invalid require mode")])) + + (emit import-string))) + ;; (define (assemble-requires* reqs* out) ;; (define emit (curry fprintf out)) ;; (define core-import-path @@ -261,22 +284,6 @@ ;; (jsruntime-import-path (cast (current-source-file) (U Symbol Path)) ;; (jsruntime-module-path 'core))) -;; (emit "import * as ~a from '~a';" -;; (jsruntime-core-module) -;; core-import-path) -;; (for ([req reqs*]) -;; (struct-match-define (ILRequire mod obj-name import-sym) req) -;; (define import-string -;; (case import-sym -;; [(default) (format "import ~a from \"~a\";" -;; (normalize-symbol obj-name) -;; mod)] -;; [(*) (format "import * as ~a from \"~a\";" -;; (normalize-symbol obj-name) -;; mod)] -;; [else (error 'assemble-requires* "invalid require mode")])) - -;; (emit import-string))) (define (assemble-provides* p* out) (define emit (curry fprintf out)) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index f2cea28d..09075a8c 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -45,7 +45,7 @@ ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map - (parameterize ([module-object-name-map (make-module-map requires* imported-mod-path-list)]) + (parameterize ([module-object-name-map (make-module-map requires* '(#%kernel))]) (ILLinklet (filter ILRequire? requires*) (absyn-exports->il exports) @@ -71,10 +71,13 @@ ;; TODO not using a lot of the code here, eventually should be able to delete (define (absyn-requires->il import-list path) - (for/list ([mod-path import-list] - [counter (in-naturals)]) - (define mod-obj-name (string->symbol (~a "M" counter))) - (ILRequire mod-path mod-obj-name '*))) + (list (ILRequire "../runtime/kernel.rkt.js" 'M0 '*))) + + +;; (for/list ([mod-path import-list] +;; [counter (in-naturals)]) +;; (define mod-obj-name (string->symbol (~a "M" counter))) +;; (ILRequire mod-path mod-obj-name '*))) ;; (define import-name ;; (if (symbol? mod-path) ;; (jsruntime-import-path path From dddefb4aeaff77468b37f241ae7b40706b43bf64 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Thu, 11 Aug 2022 12:53:27 -0400 Subject: [PATCH 153/170] racketscript linklet wow --- .gitignore | 1 + racketscript.rktl | 13332 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 13333 insertions(+) create mode 100644 racketscript.rktl diff --git a/.gitignore b/.gitignore index f057645e..215695c4 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ TAGS node_modules/ *.rktl !expander.rktl +!racketscript.rktl diff --git a/racketscript.rktl b/racketscript.rktl new file mode 100644 index 00000000..9e77ae6e --- /dev/null +++ b/racketscript.rktl @@ -0,0 +1,13332 @@ +;; This is not the original source code. Instead, this is the code after +;; fully expanding and flattening into a single linklet. +(linklet + () + ((1/compile-linklet compile-linklet) (everything everything) (1/linklet-import-variables linklet-import-variables)) + (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-arguments-error who_0 "not a proper list" "in" orig-l_0)))) + (define-values + (member) + (letrec-values (((member_0) + (lambda (v_0 orig-l_1 eql?_0) + (begin + 'member + ((letrec-values (((loop_0) + (lambda (ls_0 turtle_0) + (begin + 'loop + (if (null? ls_0) + (let-values () #f) + (if (not (pair? ls_0)) + (let-values () (bad-list$1 'member orig-l_1)) + (if (eql?_0 v_0 (car ls_0)) + (let-values () ls_0) + (let-values () + (let-values (((ls_1) (cdr ls_0))) + (if (null? ls_1) + (let-values () #f) + (if (let-values (((or-part_0) (not (pair? ls_1)))) + (if or-part_0 or-part_0 (eq? ls_1 turtle_0))) + (let-values () (bad-list$1 'member orig-l_1)) + (if (eql?_0 v_0 (car ls_1)) + (let-values () ls_1) + (let-values () + (loop_0 (cdr ls_1) (cdr turtle_0))))))))))))))) + loop_0) + orig-l_1 + orig-l_1))))) + (case-lambda + ((v_1 ls_2) (begin (member_0 v_1 ls_2 equal?))) + ((v_2 ls_3 eql?_1) + (begin + (if (if (procedure? eql?_1) (procedure-arity-includes? eql?_1 2) #f) + (void) + (raise-argument-error 'member "(procedure-arity-includes/c 2)" eq?)) + (member_0 v_2 ls_3 eql?_1)))))) + (define-values (not-there) (gensym)) + (define-values + (hash-has-key?) + (lambda (ht_0 key_0) + (begin + (begin + (if (hash? ht_0) (void) (let-values () (raise-argument-error 'hash-has-key? "hash?" 0 ht_0 key_0))) + (not (eq? not-there (hash-ref ht_0 key_0 not-there))))))) + (define-values + (hash-ref!) + (lambda (ht_1 key_1 new_0) + (begin + (begin + (if (if (hash? ht_1) (not (immutable? ht_1)) #f) + (void) + (let-values () (raise-argument-error 'hash-ref! "(and/c hash? (not/c immutable?))" 0 ht_1 key_1 new_0))) + (let-values (((v_3) (hash-ref ht_1 key_1 not-there))) + (if (eq? not-there v_3) + (let-values (((n_0) (if (procedure? new_0) (new_0) new_0))) (begin (hash-set! ht_1 key_1 n_0) n_0)) + v_3)))))) + (define-values + (displayln) + (case-lambda + ((v_4) (begin (displayln v_4 (current-output-port)))) + ((v_5 p_0) + (begin + (if (output-port? p_0) (void) (let-values () (raise-argument-error 'displayln "output-port?" 1 v_5 p_0))) + (display v_5 p_0) + (newline p_0))))) + (define-values + (prop:keyword-impersonator keyword-impersonator? keyword-impersonator-ref) + (make-struct-type-property 'keyword-impersonator)) + (define-values + (keyword-procedure-impersonator-of) + (lambda (v_6) + (begin (if (keyword-impersonator? v_6) (let-values () ((keyword-impersonator-ref v_6) v_6)) (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-checker) (make-struct-field-accessor keyword-procedure-ref 0)) + (define-values (keyword-procedure-proc) (make-struct-field-accessor keyword-procedure-ref 1)) + (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 + (struct:keyword-method make-km keyword-method? km-ref km-set!) + (make-struct-type 'procedure struct:keyword-procedure 0 0 #f (list (cons prop:method-arity-error #t)))) + (define-values + (generate-arity-string) + (lambda (proc_0) + (begin + (let-values (((req_0 allowed_0) (procedure-keywords proc_0)) + ((a_1) (procedure-arity proc_0)) + ((keywords-desc_0) + (lambda (opt_0 req_1) + (begin + 'keywords-desc + (format + "~a with keyword~a~a" + (if (null? (cdr req_1)) (format "an ~aargument" opt_0) (format "~aarguments" opt_0)) + (if (null? (cdr req_1)) "" "s") + (let-values (((tmp_0) (length req_1))) + (if (equal? tmp_0 1) + (let-values () (format " ~a" (car req_1))) + (if (equal? tmp_0 2) + (let-values () (format " ~a and ~a" (car req_1) (cadr req_1))) + (let-values () + ((letrec-values (((loop_1) + (lambda (req_2) + (begin + 'loop + (if (null? (cdr req_2)) + (format " and ~a" (car req_2)) + (format " ~a,~a" (car req_2) (loop_1 (cdr req_2)))))))) + loop_1) + req_1))))))))) + ((method-adjust_0) + (lambda (a_2) + (begin + 'method-adjust + (if (let-values (((or-part_1) (okm? proc_0))) (if or-part_1 or-part_1 (keyword-method? proc_0))) + (if (zero? a_2) 0 (sub1 a_2)) + a_2))))) + (string-append + (if (number? a_1) + (let-values () (let-values (((a_3) (method-adjust_0 a_1))) (format "~a" a_3))) + (if (arity-at-least? a_1) + (let-values () + (let-values (((a_4) (method-adjust_0 (arity-at-least-value a_1)))) (format "at least ~a" a_4))) + (let-values () "a different number"))) + (if (null? req_0) "" (format " plus ~a" (keywords-desc_0 "" req_0))) + (if allowed_0 + (let-values (((others_0) + ((letrec-values (((loop_2) + (lambda (req_3 allowed_1) + (begin + 'loop + (if (null? req_3) + (let-values () allowed_1) + (if (eq? (car req_3) (car allowed_1)) + (let-values () (loop_2 (cdr req_3) (cdr allowed_1))) + (let-values () + (cons (car allowed_1) (loop_2 req_3 (cdr allowed_1)))))))))) + loop_2) + req_0 + allowed_0))) + (if (null? others_0) "" (format " plus ~a" (keywords-desc_0 "optional " others_0)))) + " plus arbitrary keyword arguments")))))) + (define-values + (struct:okp make-optional-keyword-procedure okp? okp-ref okp-set!) + (make-struct-type + 'procedure + struct:keyword-procedure + 1 + 0 + #f + (list (cons prop:arity-string generate-arity-string)) + (current-inspector) + 0)) + (define-values + (struct:okm make-optional-keyword-method okm? okm-ref okm-set!) + (make-struct-type 'procedure struct:okp 0 0 #f (list (cons prop:method-arity-error #t)))) + (define-values + (prop:named-keyword-procedure named-keyword-procedure? keyword-procedure-name+fail) + (make-struct-type-property 'named-keyword-procedure)) + (define-values + (prop:procedure-accessor procedure-accessor? procedure-accessor-ref) + (make-struct-type-property + 'procedure + (lambda (v_7 info-l_0) (if (exact-integer? v_7) (make-struct-field-accessor (list-ref info-l_0 3) v_7) #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 + (struct:keyword-procedure-impersonator make-kpp keyword-procedure-impersonator? kpp-ref kpp-set!) + (make-struct-type + 'procedure + struct:keyword-procedure + 1 + 0 + #f + (list (cons prop:keyword-impersonator (lambda (v_8) (kpp-ref v_8 0)))))) + (define-values + (struct:keyword-method-impersonator make-kmp keyword-method-impersonator? kmp-ref kmp-set!) + (make-struct-type + 'procedure + struct:keyword-method + 1 + 0 + #f + (list (cons prop:keyword-impersonator (lambda (v_9) (kmp-ref v_9 0)))))) + (define-values + (struct:keyword-procedure/arity-error make-kp/ae kp/ae? kp/ae-ref kp/ae-set!) + (make-struct-type + 'procedure + struct:keyword-procedure + 0 + 0 + #f + (list (cons prop:arity-string generate-arity-string) (cons prop:incomplete-arity #t)))) + (define-values + (struct:keyword-method/arity-error make-km/ae km/ae? km/ae-ref km/ae-set!) + (make-struct-type + 'procedure + struct:keyword-method + 0 + 0 + #f + (list (cons prop:arity-string generate-arity-string) (cons prop:incomplete-arity #t)))) + (define-values + (struct:keyword-procedure-impersonator/arity-error make-kpi/ae kpi/ae? kpi/ae-ref kpi/ae-set!) + (make-struct-type + 'procedure + struct:keyword-procedure-impersonator + 0 + 0 + #f + (list (cons prop:arity-string generate-arity-string) (cons prop:incomplete-arity #t)))) + (define-values + (struct:keyword-method-impersonator/arity-error make-kmi/ae kmi/ae? kmi/ae-ref kmi/ae-set!) + (make-struct-type + 'procedure + struct:keyword-method-impersonator + 0 + 0 + #f + (list (cons prop:arity-string generate-arity-string) (cons prop:incomplete-arity #t)))) + (define-values + (make-required) + (lambda (name_0 realm_0 fail-proc_0 method?_0 impersonator?_0) + (begin + (let-values (((s:_0 mk_0 ?_0 -ref_0 -set!_0) + (make-struct-type + (let-values (((or-part_2) name_0)) (if or-part_2 or-part_2 'unknown)) + (if impersonator?_0 + (if method?_0 + struct:keyword-method-impersonator/arity-error + struct:keyword-procedure-impersonator/arity-error) + (if method?_0 struct:keyword-method/arity-error struct:keyword-procedure/arity-error)) + 0 + 0 + #f + (list (cons prop:named-keyword-procedure (vector name_0 realm_0 fail-proc_0))) + (current-inspector) + fail-proc_0))) + mk_0)))) + (define-values + (make-keyword-procedure) + (case-lambda + ((proc_1) + (begin + (let-values (((proc-name_0) (object-name proc_1)) + ((proc-realm_0) (if (procedure? proc_1) (procedure-realm proc_1) #f)) + ((plain-proc_0) (lambda args_0 (apply proc_1 null null args_0)))) + (make-keyword-procedure + proc_1 + (let-values (((mask_0) (if (procedure? proc_1) (arithmetic-shift (procedure-arity-mask proc_1) -2) #f))) + (if (procedure? plain-proc_0) + (if (exact-integer? mask_0) + (if (symbol? proc-name_0) + (if (symbol? proc-realm_0) + (procedure-reduce-arity-mask plain-proc_0 mask_0 proc-name_0 proc-realm_0) + (procedure-reduce-arity-mask plain-proc_0 mask_0 #f 'ignored)) + (procedure-reduce-arity-mask plain-proc_0 mask_0 #f 'ignored)) + plain-proc_0) + plain-proc_0)))))) + ((proc_2 plain-proc_1) + (make-optional-keyword-procedure + (make-keyword-checker null #f (if (procedure? proc_2) (procedure-arity-mask proc_2) #f)) + proc_2 + null + #f + plain-proc_1)))) + (define-values + (keyword-apply) + (lambda (proc_3 kws_0 kw-vals_0 normal-args_0 . normal-argss_0) + (begin + (let-values (((type-error_0) + (lambda (what_0 which_0) + (begin + 'type-error + (apply + raise-argument-error + 'keyword-apply + what_0 + which_0 + proc_3 + kws_0 + kw-vals_0 + normal-args_0 + normal-argss_0))))) + (begin + (if (procedure? proc_3) (void) (let-values () (type-error_0 "procedure?" 0))) + ((letrec-values (((loop_3) + (lambda (ks_0) + (begin + 'loop + (if (null? ks_0) + (let-values () (void)) + (if (let-values (((or-part_3) (not (pair? ks_0)))) + (if or-part_3 or-part_3 (not (keyword? (car ks_0))))) + (let-values () (type-error_0 "(listof keyword?)" 1)) + (if (null? (cdr ks_0)) + (let-values () (void)) + (if (let-values (((or-part_4) (not (pair? (cdr ks_0))))) + (if or-part_4 or-part_4 (not (keyword? (cadr ks_0))))) + (let-values () (loop_3 (cdr ks_0))) + (if (keyword= n_1 method-n_1) (- n_1 method-n_1) n_1))) + ((args-str_0) + (if (if (null? args_3) (null? kws_12) #f) + "" + (apply + string-append + "\n arguments...:" + (append + (map (lambda (v_12) (format "\n ~e" v_12)) args_3) + (map + (lambda (kw_0 kw-arg_0) (format "\n ~a ~e" kw_0 kw-arg_0)) + kws_12 + kw-args_1))))) + ((proc-name_1) + (lambda (p_5) + (begin + 'proc-name + (let-values (((or-part_8) + (if (named-keyword-procedure? p_5) + (vector-ref (keyword-procedure-name+fail p_5) 0) + #f))) + (if or-part_8 + or-part_8 + (let-values (((or-part_9) (object-name p_5))) (if or-part_9 or-part_9 p_5)))))))) + (let-values (((application-message_0) + (lambda (str_0) + (begin + 'application-message + (error-message->adjusted-string + 'application + 'racket/primitive + str_0 + 'racket/primitive))))) + (raise + ((if (let-values (((or-part_10) extra-kw_0)) (if or-part_10 or-part_10 missing-kw_0)) + exn:fail:contract + exn:fail:contract:arity) + (if extra-kw_0 + (if (keyword-procedure? p_4) + (application-message_0 + (format + (string-append + "procedure does not expect an argument with given keyword\n" + " procedure: ~a\n" + " given keyword: ~a" + "~a") + (proc-name_1 p_4) + extra-kw_0 + args-str_0)) + (if (procedure? p_4) + (application-message_0 + (format + (string-append "procedure does not accept keyword arguments\n" " procedure: ~a" "~a") + (proc-name_1 p_4) + args-str_0)) + (application-message_0 + (format + (string-append + "not a procedure;\n" + " expected a procedure that can be applied to arguments\n" + " given: ~e" + "~a") + p_4 + args-str_0)))) + (if missing-kw_0 + (application-message_0 + (format + (string-append + "required keyword argument not supplied\n" + " procedure: ~a\n" + " required keyword: ~a" + "~a") + (proc-name_1 p_4) + missing-kw_0 + args-str_0)) + (application-message_0 + (format + (string-append "no case matching ~a non-keyword argument~a\n" " procedure: ~a" "~a") + (- n_2 2) + (if (= 1 (- n_2 2)) "" "s") + (proc-name_1 p_4) + args-str_0)))) + (current-continuation-marks))))))))))))) + (define-values + (procedure-reduce-keyword-arity-mask) + (case-lambda + ((proc_5 mask_1 req-kw_0 allowed-kw_0 name_1 realm_1) + (begin + (do-procedure-reduce-keyword-arity + 'procedure-reduce-keyword-arity-mask + proc_5 + #f + mask_1 + name_1 + realm_1 + req-kw_0 + allowed-kw_0))) + ((proc_6 mask_2 req-kw_1 allowed-kw_1 name_2) + (do-procedure-reduce-keyword-arity + 'procedure-reduce-keyword-arity-mask + proc_6 + #f + mask_2 + name_2 + 'racket + req-kw_1 + allowed-kw_1)) + ((proc_7 mask_3 req-kw_2 allowed-kw_2) + (do-procedure-reduce-keyword-arity + 'procedure-reduce-keyword-arity-mask + proc_7 + #f + mask_3 + #f + 'racket + req-kw_2 + allowed-kw_2)))) + (define-values + (do-procedure-reduce-keyword-arity) + (lambda (who_1 proc_8 arity_0 mask_4 name_3 realm_2 req-kw_3 allowed-kw_3) + (begin + (let-values (((plain-proc_2) + (let-values (((p_6) (if (okp? proc_8) (okp-ref proc_8 0) proc_8))) + (if arity_0 + (procedure-reduce-arity p_6 arity_0 name_3 realm_2) + (procedure-reduce-arity-mask p_6 mask_4 name_3 realm_2))))) + (let-values (((sorted?_0) + (lambda (kws_13) + (begin + 'sorted? + ((letrec-values (((loop_7) + (lambda (kws_14) + (begin + 'loop + (if (null? kws_14) + (let-values () #t) + (if (null? (cdr kws_14)) + (let-values () #t) + (if (keywordmask arity_0))))) + (let-values (((new-mask_0) (arithmetic-shift mask_5 2))) + (let-values (((kw-checker_0) (make-keyword-checker req-kw_3 allowed-kw_3 new-mask_0))) + (let-values (((proc_9) (normalize-proc proc_8))) + (let-values (((new-kw-proc_0) + (procedure-reduce-arity-mask (keyword-procedure-proc proc_9) new-mask_0))) + (if (null? req-kw_3) + ((if (okm? proc_9) make-optional-keyword-method make-optional-keyword-procedure) + kw-checker_0 + new-kw-proc_0 + req-kw_3 + allowed-kw_3 + plain-proc_2) + ((make-required + (let-values (((or-part_15) name_3)) + (if or-part_15 + or-part_15 + (let-values (((or-part_16) + (if (named-keyword-procedure? proc_9) + (vector-ref (keyword-procedure-name+fail proc_9) 0) + #f))) + (if or-part_16 or-part_16 (object-name proc_9))))) + (let-values (((or-part_17) (if name_3 realm_2 #f))) + (if or-part_17 + or-part_17 + (let-values (((or-part_18) + (if (named-keyword-procedure? proc_9) + (let-values (((or-part_19) + (vector-ref (keyword-procedure-name+fail proc_9) 1))) + (if or-part_19 + or-part_19 + (procedure-realm + (vector-ref (keyword-procedure-name+fail proc_9) 2)))) + #f))) + (if or-part_18 or-part_18 (procedure-realm proc_9))))) + (procedure-reduce-arity-mask missing-kw (arithmetic-shift mask_5 1)) + (let-values (((or-part_20) (okm? proc_9))) + (if or-part_20 or-part_20 (keyword-method? proc_9))) + #f) + kw-checker_0 + new-kw-proc_0 + req-kw_3 + allowed-kw_3)))))))))))))) + (define-values + (arity->mask) + (lambda (a_14) + (begin + (if (exact-nonnegative-integer? a_14) + (let-values () (arithmetic-shift 1 a_14)) + (if (arity-at-least? a_14) + (let-values () (bitwise-xor -1 (sub1 (arithmetic-shift 1 (arity-at-least-value a_14))))) + (if (list? a_14) + (let-values () + ((letrec-values (((loop_8) + (lambda (mask_6 l_1) + (begin + 'loop + (if (null? l_1) + (let-values () mask_6) + (let-values () + (let-values (((a_15) (car l_1))) + (if (let-values (((or-part_21) (exact-nonnegative-integer? a_15))) + (if or-part_21 or-part_21 (arity-at-least? a_15))) + (let-values () (loop_8 (bitwise-ior mask_6 (arity->mask a_15)) (cdr l_1))) + (let-values () #f))))))))) + loop_8) + 0 + a_14)) + (let-values () #f))))))) + (define-values + (new:procedure-reduce-arity-mask) + (let-values (((procedure-reduce-arity_0) + (case-lambda + ((proc_10 mask_7 name_4 realm_3) + (begin + 'procedure-reduce-arity + (if (if (procedure? proc_10) + (if (let-values (((req_4 allows_0) (procedure-keywords proc_10))) (pair? req_4)) + (not (eqv? mask_7 0)) + #f) + #f) + (raise-arguments-error* + 'procedure-reduce-arity + 'racket/primitive + "procedure has required keyword arguments" + "procedure" + proc_10) + (procedure-reduce-arity-mask + (if (okm? proc_10) (procedure->method proc_10) proc_10) + mask_7 + name_4 + realm_3)))) + ((proc_11 mask_8 name_5) (new:procedure-reduce-arity-mask proc_11 mask_8 name_5 'racket)) + ((proc_12 mask_9) (new:procedure-reduce-arity-mask proc_12 mask_9 #f 'racket))))) + procedure-reduce-arity_0)) + (define-values + (new:procedure-rename) + (let-values (((procedure-rename_0) + (case-lambda + ((proc_13 name_6 realm_4) + (begin + 'procedure-rename + (if (not (if (symbol? name_6) (symbol? realm_4) #f)) + (let-values () (procedure-rename proc_13 name_6 realm_4)) + (let-values (((c1_0) (extract-keyword-root proc_13))) + (if c1_0 + ((lambda (kw-p_0) + (do-procedure-reduce-keyword-arity + 'procedure-rename + proc_13 + #f + (procedure-arity-mask proc_13) + name_6 + realm_4 + (keyword-procedure-required kw-p_0) + (keyword-procedure-allowed kw-p_0))) + c1_0) + (let-values () (procedure-rename proc_13 name_6 realm_4))))))) + ((proc_14 name_7) (new:procedure-rename proc_14 name_7 'racket))))) + procedure-rename_0)) + (define-values + (normalize-proc) + (lambda (proc_15) + (begin + (if (keyword-procedure? proc_15) + (let-values () proc_15) + (if (new-procedure? proc_15) + (let-values () + (let-values (((req-kws_2 allowed-kws_1) (procedure-keywords proc_15))) + (if (null? allowed-kws_1) + proc_15 + (make-optional-keyword-procedure + (lambda (given-kws_0 given-argc_0) + (if (procedure-arity-includes? proc_15 (- given-argc_0 2) #t) + (if (let-values (((or-part_22) (not allowed-kws_1))) + (if or-part_22 or-part_22 (subset? given-kws_0 allowed-kws_1))) + (subset? req-kws_2 given-kws_0) + #f) + #f)) + (lambda (kws_15 kw-args_2 . vals_0) (keyword-apply proc_15 kws_15 kw-args_2 vals_0)) + req-kws_2 + allowed-kws_1 + proc_15)))) + (let-values () proc_15)))))) + (define-values + (reverse$1) + (lambda (l_2) + (begin + 'reverse + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (if (list? l_2) (void) (raise-argument-error 'reverse "list?" l_2))) + (letrec-values (((loop_9) + (lambda (a_16 l_3) + (begin 'loop (if (null? l_3) a_16 (loop_9 (cons (car l_3) a_16) (cdr l_3))))))) + (loop_9 null l_2)))))) + (define-values + (sort vector-sort vector-sort!) + (let-values () + (let-values (((generic-sort_0) + (lambda (A_0 less-than?_0 n_3) + (begin + 'generic-sort + (let-values () + (let-values () + (let-values (((n/2-_0) (unsafe-fxrshift n_3 1))) + (let-values (((n/2+_0) (unsafe-fx- n_3 n/2-_0))) + (letrec-values (((copying-mergesort_0) + (lambda (Alo_0 Blo_0 n_4) + (begin + 'copying-mergesort + (if (unsafe-fx= n_4 1) + (let-values () + (unsafe-vector-set! A_0 Blo_0 (unsafe-vector-ref A_0 Alo_0))) + (if (unsafe-fx= n_4 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_4 16) + (let-values () + (begin + (unsafe-vector-set! + A_0 + Blo_0 + (unsafe-vector-ref A_0 Alo_0)) + ((letrec-values (((iloop_0) + (lambda (i_0) + (begin + 'iloop + (if (unsafe-fx< i_0 n_4) + (let-values () + (let-values (((ref-i_0) + (unsafe-vector-ref + A_0 + (unsafe-fx+ + Alo_0 + i_0)))) + ((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_0 + 1))))))))) + jloop_0) + (unsafe-fx+ Blo_0 i_0)))) + (void)))))) + iloop_0) + 1))) + (let-values () + (let-values (((n/2-_1) (unsafe-fxrshift n_4 1))) + (let-values (((n/2+_1) (unsafe-fx- n_4 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_4))) + ((letrec-values (((loop_10) + (lambda (a1_0 b1_0 c1_1) + (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_1 + x_1) + (let-values (((a1_1) + (unsafe-fx+ + a1_0 + 1)) + ((c1_2) + (unsafe-fx+ + c1_1 + 1))) + (if (unsafe-fx< + c1_2 + b1_0) + (let-values () + (loop_10 + a1_1 + b1_0 + c1_2)) + (void)))) + (begin + (unsafe-vector-set! + A_0 + c1_1 + y_1) + (let-values (((b1_1) + (unsafe-fx+ + b1_0 + 1)) + ((c1_3) + (unsafe-fx+ + c1_1 + 1))) + (if (unsafe-fx<= + b2_0 + b1_1) + ((letrec-values (((loop_11) + (lambda (a1_2 + c1_4) + (begin + 'loop + (if (unsafe-fx< + c1_4 + b1_1) + (let-values () + (begin + (unsafe-vector-set! + A_0 + c1_4 + (unsafe-vector-ref + A_0 + a1_2)) + (loop_11 + (unsafe-fx+ + a1_2 + 1) + (unsafe-fx+ + c1_4 + 1)))) + (void)))))) + loop_11) + a1_0 + c1_3) + (loop_10 + a1_0 + b1_1 + c1_3)))))))))) + 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_3) + ((B1lo_0) n_3)) + (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_5) + (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_5 x_2) + (let-values (((a1_4) (unsafe-fx+ a1_3 1)) + ((c1_6) (unsafe-fx+ c1_5 1))) + (if (unsafe-fx< c1_6 b1_2) + (let-values () (loop_12 a1_4 b1_2 c1_6)) + (void)))) + (begin + (unsafe-vector-set! A_0 c1_5 y_2) + (let-values (((b1_3) (unsafe-fx+ b1_2 1)) + ((c1_7) (unsafe-fx+ c1_5 1))) + (if (unsafe-fx<= b2_1 b1_3) + ((letrec-values (((loop_13) + (lambda (a1_5 c1_8) + (begin + 'loop + (if (unsafe-fx< c1_8 b1_3) + (let-values () + (begin + (unsafe-vector-set! + A_0 + c1_8 + (unsafe-vector-ref + A_0 + a1_5)) + (loop_13 + (unsafe-fx+ a1_5 1) + (unsafe-fx+ + c1_8 + 1)))) + (void)))))) + loop_13) + a1_3 + c1_7) + (loop_12 a1_3 b1_3 c1_7)))))))))) + loop_12) + B1lo_0 + Amid2_1 + Alo_1))))))))))))) + (let-values (((generic-sort/key_0) + (lambda (A_1 less-than?_1 n_5 key_2) + (begin + 'generic-sort/key + (let-values () + (let-values () + (let-values (((n/2-_2) (unsafe-fxrshift n_5 1))) + (let-values (((n/2+_2) (unsafe-fx- n_5 n/2-_2))) + (letrec-values (((copying-mergesort_1) + (lambda (Alo_2 Blo_1 n_6) + (begin + 'copying-mergesort + (if (unsafe-fx= n_6 1) + (let-values () + (unsafe-vector-set! A_1 Blo_1 (unsafe-vector-ref A_1 Alo_2))) + (if (unsafe-fx= n_6 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_2 + (less-than?_1 (key_2 y_3) (key_2 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_6 16) + (let-values () + (begin + (unsafe-vector-set! + A_1 + Blo_1 + (unsafe-vector-ref A_1 Alo_2)) + ((letrec-values (((iloop_1) + (lambda (i_1) + (begin + 'iloop + (if (unsafe-fx< i_1 n_6) + (let-values () + (let-values (((ref-i_1) + (unsafe-vector-ref + A_1 + (unsafe-fx+ + Alo_2 + i_1)))) + ((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_2 + (less-than?_1 + (key_2 + ref-i_1) + (key_2 + 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_1 + 1))))))))) + jloop_1) + (unsafe-fx+ Blo_1 i_1)))) + (void)))))) + iloop_1) + 1))) + (let-values () + (let-values (((n/2-_3) (unsafe-fxrshift n_6 1))) + (let-values (((n/2+_3) (unsafe-fx- n_6 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_6))) + ((letrec-values (((loop_14) + (lambda (a1_6 b1_4 c1_9) + (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_2 + (less-than?_1 + (key_2 y_4) + (key_2 x_4)) + (less-than?_1 + y_4 + x_4))) + (begin + (unsafe-vector-set! + A_1 + c1_9 + x_4) + (let-values (((a1_7) + (unsafe-fx+ + a1_6 + 1)) + ((c1_10) + (unsafe-fx+ + c1_9 + 1))) + (if (unsafe-fx< + c1_10 + b1_4) + (let-values () + (loop_14 + a1_7 + b1_4 + c1_10)) + (void)))) + (begin + (unsafe-vector-set! + A_1 + c1_9 + y_4) + (let-values (((b1_5) + (unsafe-fx+ + b1_4 + 1)) + ((c1_11) + (unsafe-fx+ + c1_9 + 1))) + (if (unsafe-fx<= + b2_2 + b1_5) + ((letrec-values (((loop_15) + (lambda (a1_8 + c1_12) + (begin + 'loop + (if (unsafe-fx< + c1_12 + b1_5) + (let-values () + (begin + (unsafe-vector-set! + A_1 + c1_12 + (unsafe-vector-ref + A_1 + a1_8)) + (loop_15 + (unsafe-fx+ + a1_8 + 1) + (unsafe-fx+ + c1_12 + 1)))) + (void)))))) + loop_15) + a1_6 + c1_11) + (loop_14 + a1_6 + b1_5 + c1_11)))))))))) + 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_5) + ((B1lo_1) n_5)) + (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_13) + (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_2 + (less-than?_1 (key_2 x_5) (key_2 y_5)) + (less-than?_1 x_5 y_5)) + (begin + (unsafe-vector-set! A_1 c1_13 x_5) + (let-values (((a1_10) (unsafe-fx+ a1_9 1)) + ((c1_14) (unsafe-fx+ c1_13 1))) + (if (unsafe-fx< c1_14 b1_6) + (let-values () (loop_16 a1_10 b1_6 c1_14)) + (void)))) + (begin + (unsafe-vector-set! A_1 c1_13 y_5) + (let-values (((b1_7) (unsafe-fx+ b1_6 1)) + ((c1_15) (unsafe-fx+ c1_13 1))) + (if (unsafe-fx<= b2_3 b1_7) + ((letrec-values (((loop_17) + (lambda (a1_11 c1_16) + (begin + 'loop + (if (unsafe-fx< + c1_16 + b1_7) + (let-values () + (begin + (unsafe-vector-set! + A_1 + c1_16 + (unsafe-vector-ref + A_1 + a1_11)) + (loop_17 + (unsafe-fx+ + a1_11 + 1) + (unsafe-fx+ + c1_16 + 1)))) + (void)))))) + loop_17) + a1_9 + c1_15) + (loop_16 a1_9 b1_7 c1_15)))))))))) + loop_16) + B1lo_1 + Amid2_3 + Alo_3))))))))))))) + (values + (case-lambda + ((lst_0 less-than?_2) + (let-values (((n_7) (length lst_0))) + (let-values () + (if (unsafe-fx= n_7 0) + (let-values () lst_0) + (if ((letrec-values (((loop_18) + (lambda (last_0 next_0) + (begin + 'loop + (let-values (((or-part_23) (null? next_0))) + (if or-part_23 + or-part_23 + (if (not (less-than?_2 (unsafe-car next_0) last_0)) + (loop_18 (unsafe-car next_0) (unsafe-cdr next_0)) + #f))))))) + loop_18) + (car lst_0) + (cdr lst_0)) + (let-values () lst_0) + (if (unsafe-fx<= n_7 3) + (let-values () + (if (unsafe-fx= n_7 1) + (let-values () lst_0) + (if (unsafe-fx= n_7 2) + (let-values () (list (cadr lst_0) (car lst_0))) + (let-values () + (let-values (((a_17) (car lst_0)) ((b_1) (cadr lst_0)) ((c_0) (caddr lst_0))) + (if (less-than?_2 b_1 a_17) + (if (less-than?_2 c_0 b_1) + (list c_0 b_1 a_17) + (if (less-than?_2 c_0 a_17) (list b_1 c_0 a_17) (list b_1 a_17 c_0))) + (if (less-than?_2 c_0 a_17) (list c_0 a_17 b_1) (list a_17 c_0 b_1)))))))) + (let-values () + (let-values (((vec_0) (make-vector (+ n_7 (ceiling (/ n_7 2)))))) + (begin + ((letrec-values (((loop_19) + (lambda (i_2 lst_1) + (begin + 'loop + (if (pair? lst_1) + (let-values () + (begin + (vector-set! vec_0 i_2 (car lst_1)) + (loop_19 (add1 i_2) (cdr lst_1)))) + (void)))))) + loop_19) + 0 + lst_0) + (generic-sort_0 vec_0 less-than?_2 n_7) + ((letrec-values (((loop_20) + (lambda (i_3 r_0) + (begin + 'loop + (let-values (((i_4) (sub1 i_3))) + (if (< i_4 0) + r_0 + (loop_20 i_4 (cons (vector-ref vec_0 i_4) r_0)))))))) + loop_20) + n_7 + '())))))))))) + ((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_8) (length lst_3))) + (let-values () + (if (unsafe-fx= n_8 0) + (let-values () lst_3) + (if cache-keys?_0 + (let-values () + (let-values (((vec_1) (make-vector (+ n_8 (ceiling (/ n_8 2)))))) + (begin + ((letrec-values (((loop_21) + (lambda (i_5 lst_4) + (begin + 'loop + (if (pair? lst_4) + (let-values () + (let-values (((x_6) (car lst_4))) + (begin + (unsafe-vector-set! vec_1 i_5 (cons (getkey_1 x_6) x_6)) + (loop_21 (unsafe-fx+ i_5 1) (cdr lst_4))))) + (void)))))) + loop_21) + 0 + lst_3) + (generic-sort/key_0 vec_1 less-than?_4 n_8 unsafe-car) + ((letrec-values (((loop_22) + (lambda (i_6 r_1) + (begin + 'loop + (let-values (((i_7) (unsafe-fx- i_6 1))) + (if (unsafe-fx< i_7 0) + r_1 + (loop_22 + i_7 + (cons (unsafe-cdr (unsafe-vector-ref vec_1 i_7)) r_1)))))))) + loop_22) + n_8 + '())))) + (if ((letrec-values (((loop_23) + (lambda (last_1 next_1) + (begin + 'loop + (let-values (((or-part_24) (null? next_1))) + (if or-part_24 + or-part_24 + (if (not + (if getkey_1 + (less-than?_4 + (getkey_1 (unsafe-car next_1)) + (getkey_1 last_1)) + (less-than?_4 (unsafe-car next_1) last_1))) + (loop_23 (unsafe-car next_1) (unsafe-cdr next_1)) + #f))))))) + loop_23) + (car lst_3) + (cdr lst_3)) + (let-values () lst_3) + (if (unsafe-fx<= n_8 3) + (let-values () + (if (unsafe-fx= n_8 1) + (let-values () lst_3) + (if (unsafe-fx= n_8 2) + (let-values () (list (cadr lst_3) (car lst_3))) + (let-values () + (let-values (((a_18) (car lst_3)) ((b_2) (cadr lst_3)) ((c_1) (caddr lst_3))) + (if (if getkey_1 + (less-than?_4 (getkey_1 b_2) (getkey_1 a_18)) + (less-than?_4 b_2 a_18)) + (if (if getkey_1 + (less-than?_4 (getkey_1 c_1) (getkey_1 b_2)) + (less-than?_4 c_1 b_2)) + (list c_1 b_2 a_18) + (if (if getkey_1 + (less-than?_4 (getkey_1 c_1) (getkey_1 a_18)) + (less-than?_4 c_1 a_18)) + (list b_2 c_1 a_18) + (list b_2 a_18 c_1))) + (if (if getkey_1 + (less-than?_4 (getkey_1 c_1) (getkey_1 a_18)) + (less-than?_4 c_1 a_18)) + (list c_1 a_18 b_2) + (list a_18 c_1 b_2)))))))) + (let-values () + (let-values (((vec_2) (make-vector (+ n_8 (ceiling (/ n_8 2)))))) + (begin + ((letrec-values (((loop_24) + (lambda (i_8 lst_5) + (begin + 'loop + (if (pair? lst_5) + (let-values () + (begin + (vector-set! vec_2 i_8 (car lst_5)) + (loop_24 (add1 i_8) (cdr lst_5)))) + (void)))))) + loop_24) + 0 + lst_3) + (generic-sort/key_0 vec_2 less-than?_4 n_8 getkey_1) + ((letrec-values (((loop_25) + (lambda (i_9 r_2) + (begin + 'loop + (let-values (((i_10) (sub1 i_9))) + (if (< i_10 0) + r_2 + (loop_25 i_10 (cons (vector-ref vec_2 i_10) r_2)))))))) + loop_25) + n_8 + '())))))))))) + (sort lst_3 less-than?_4)))) + (case-lambda + ((vec_3 less-than?_5 start_0 end_0) + (let-values (((n_9) (- end_0 start_0))) + (let-values (((dst-vec_0) (make-vector n_9))) + (let-values (((dst-start_0) 0)) + (begin + (if (unsafe-fx= n_9 0) + (let-values () (void)) + (if ((letrec-values (((loop_26) + (lambda (prev-val_0 next-index_0) + (begin + 'loop + (let-values (((or-part_25) (unsafe-fx= next-index_0 end_0))) + (if or-part_25 + or-part_25 + (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_9 3) + (let-values () + (begin + (let-values () (vector-copy! dst-vec_0 dst-start_0 vec_3 start_0 end_0)) + (if (unsafe-fx= n_9 1) + (let-values () (void)) + (if (unsafe-fx= n_9 2) + (let-values () + (let-values (((tmp_1) (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_1)))) + (let-values () + (let-values (((a_19) (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_2) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 2)))) + (if (less-than?_5 b_3 a_19) + (let-values () + (if (less-than?_5 c_2 b_3) + (let-values () + (begin + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) c_2) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_19))) + (if (less-than?_5 c_2 a_19) + (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_2) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_19))) + (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_19)))))) + (if (less-than?_5 c_2 a_19) + (let-values () + (begin + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) c_2) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) a_19) + (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_2) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_3))))))))))) + (let-values () + (let-values (((work-vec_0) (make-vector (+ n_9 (ceiling (/ n_9 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_9) + (vector-copy! dst-vec_0 dst-start_0 work-vec_0 0 n_9))))))) + 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_10) (- end_1 start_1))) + (let-values (((dst-vec_1) (make-vector n_10))) + (let-values (((dst-start_1) 0)) + (begin + (if (unsafe-fx= n_10 0) + (let-values () (void)) + (if cache-keys?_1 + (let-values () + (let-values (((work-vec_1) (make-vector (+ n_10 (ceiling (/ n_10 2))) #t))) + (begin + ((letrec-values (((loop_27) + (lambda (i_11) + (begin + 'loop + (if (unsafe-fx< i_11 n_10) + (let-values () + (begin + (let-values (((x_7) + (unsafe-vector-ref + vec_4 + (unsafe-fx+ i_11 start_1)))) + (unsafe-vector-set! + work-vec_1 + i_11 + (cons (getkey_2 x_7) x_7))) + (loop_27 (unsafe-fx+ i_11 1)))) + (void)))))) + loop_27) + 0) + (generic-sort/key_0 work-vec_1 less-than?_6 n_10 unsafe-car) + ((letrec-values (((loop_28) + (lambda (i_12) + (begin + 'loop + (if (unsafe-fx< i_12 n_10) + (let-values () + (begin + (unsafe-vector-set! + dst-vec_1 + (unsafe-fx+ i_12 dst-start_1) + (unsafe-cdr (unsafe-vector-ref work-vec_1 i_12))) + (loop_28 (unsafe-fx+ i_12 1)))) + (void)))))) + loop_28) + 0)))) + (if ((letrec-values (((loop_29) + (lambda (prev-val_1 next-index_1) + (begin + 'loop + (let-values (((or-part_26) (unsafe-fx= next-index_1 end_1))) + (if or-part_26 + or-part_26 + (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_10 3) + (let-values () + (begin + (let-values () (vector-copy! dst-vec_1 dst-start_1 vec_4 start_1 end_1)) + (if (unsafe-fx= n_10 1) + (let-values () (void)) + (if (unsafe-fx= n_10 2) + (let-values () + (let-values (((tmp_2) (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_2)))) + (let-values () + (let-values (((a_20) (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_3) (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_20)) + (less-than?_6 b_4 a_20)) + (let-values () + (if (if getkey_2 + (less-than?_6 (getkey_2 c_3) (getkey_2 b_4)) + (less-than?_6 c_3 b_4)) + (let-values () + (begin + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) c_3) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_20))) + (if (if getkey_2 + (less-than?_6 (getkey_2 c_3) (getkey_2 a_20)) + (less-than?_6 c_3 a_20)) + (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_3) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_20))) + (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_20)))))) + (if (if getkey_2 + (less-than?_6 (getkey_2 c_3) (getkey_2 a_20)) + (less-than?_6 c_3 a_20)) + (let-values () + (begin + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) c_3) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) a_20) + (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_3) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_4))))))))))) + (let-values () + (let-values (((work-vec_2) (make-vector (+ n_10 (ceiling (/ n_10 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_10 getkey_2) + (vector-copy! dst-vec_1 dst-start_1 work-vec_2 0 n_10)))))))) + 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_11) (- end_2 start_2))) + (let-values (((dst-vec_2) vec_5)) + (let-values (((dst-start_2) start_2)) + (begin + (if (unsafe-fx= n_11 0) + (let-values () (void)) + (if ((letrec-values (((loop_30) + (lambda (prev-val_2 next-index_2) + (begin + 'loop + (let-values (((or-part_27) (unsafe-fx= next-index_2 end_2))) + (if or-part_27 + or-part_27 + (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_11 3) + (let-values () + (begin + (void) + (if (unsafe-fx= n_11 1) + (let-values () (void)) + (if (unsafe-fx= n_11 2) + (let-values () + (let-values (((tmp_3) (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_3)))) + (let-values () + (let-values (((a_21) (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_4) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 2)))) + (if (less-than?_7 b_5 a_21) + (let-values () + (if (less-than?_7 c_4 b_5) + (let-values () + (begin + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) c_4) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_21))) + (if (less-than?_7 c_4 a_21) + (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_4) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_21))) + (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_21)))))) + (if (less-than?_7 c_4 a_21) + (let-values () + (begin + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) c_4) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) a_21) + (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_4) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_5))))))))))) + (let-values () + (let-values (((work-vec_3) (make-vector (+ n_11 (ceiling (/ n_11 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_11) + (vector-copy! dst-vec_2 dst-start_2 work-vec_3 0 n_11))))))) + (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_12) (- end_3 start_3))) + (let-values (((dst-vec_3) vec_6)) + (let-values (((dst-start_3) start_3)) + (begin + (if (unsafe-fx= n_12 0) + (let-values () (void)) + (if cache-keys?_2 + (let-values () + (let-values (((work-vec_4) (make-vector (+ n_12 (ceiling (/ n_12 2))) #t))) + (begin + ((letrec-values (((loop_31) + (lambda (i_13) + (begin + 'loop + (if (unsafe-fx< i_13 n_12) + (let-values () + (begin + (let-values (((x_8) + (unsafe-vector-ref + vec_6 + (unsafe-fx+ i_13 start_3)))) + (unsafe-vector-set! + work-vec_4 + i_13 + (cons (getkey_3 x_8) x_8))) + (loop_31 (unsafe-fx+ i_13 1)))) + (void)))))) + loop_31) + 0) + (generic-sort/key_0 work-vec_4 less-than?_8 n_12 unsafe-car) + ((letrec-values (((loop_32) + (lambda (i_14) + (begin + 'loop + (if (unsafe-fx< i_14 n_12) + (let-values () + (begin + (unsafe-vector-set! + dst-vec_3 + (unsafe-fx+ i_14 dst-start_3) + (unsafe-cdr (unsafe-vector-ref work-vec_4 i_14))) + (loop_32 (unsafe-fx+ i_14 1)))) + (void)))))) + loop_32) + 0)))) + (if ((letrec-values (((loop_33) + (lambda (prev-val_3 next-index_3) + (begin + 'loop + (let-values (((or-part_28) (unsafe-fx= next-index_3 end_3))) + (if or-part_28 + or-part_28 + (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_12 3) + (let-values () + (begin + (void) + (if (unsafe-fx= n_12 1) + (let-values () (void)) + (if (unsafe-fx= n_12 2) + (let-values () + (let-values (((tmp_4) (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_4)))) + (let-values () + (let-values (((a_22) (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_5) (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_22)) + (less-than?_8 b_6 a_22)) + (let-values () + (if (if getkey_3 + (less-than?_8 (getkey_3 c_5) (getkey_3 b_6)) + (less-than?_8 c_5 b_6)) + (let-values () + (begin + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) c_5) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_22))) + (if (if getkey_3 + (less-than?_8 (getkey_3 c_5) (getkey_3 a_22)) + (less-than?_8 c_5 a_22)) + (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_5) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_22))) + (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_22)))))) + (if (if getkey_3 + (less-than?_8 (getkey_3 c_5) (getkey_3 a_22)) + (less-than?_8 c_5 a_22)) + (let-values () + (begin + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) c_5) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) a_22) + (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_5) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_6))))))))))) + (let-values () + (let-values (((work-vec_5) (make-vector (+ n_12 (ceiling (/ n_12 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_12 getkey_3) + (vector-copy! dst-vec_3 dst-start_3 work-vec_5 0 n_12)))))))) + (void))))) + (vector-sort! vec_6 less-than?_8 start_3 end_3))))))))) + (define-values + (struct:do-sequence make-do-sequence do-sequence? do-sequence-ref do-sequence-set!) + (make-struct-type 'sequence #f 1 0 #f)) + (define-values + (prop:stream stream-via-prop? stream-ref) + (make-struct-type-property + 'stream + (lambda (v_13 si_0) + (begin + (if (if (vector? v_13) + (if (= 3 (vector-length v_13)) + (if (procedure? (vector-ref v_13 0)) + (if (procedure-arity-includes? (vector-ref v_13 0) 1) + (if (procedure? (vector-ref v_13 1)) + (if (procedure-arity-includes? (vector-ref v_13 1) 1) + (if (procedure? (vector-ref v_13 2)) (procedure-arity-includes? (vector-ref v_13 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_13))) + (vector->immutable-vector v_13))) + '() + #t)) + (define-values + (prop:gen-sequence sequence-via-prop? sequence-ref) + (make-struct-type-property + 'sequence + (lambda (v_14 si_1) + (begin + (if (if (procedure? v_14) (procedure-arity-includes? v_14 1) #f) + (void) + (let-values () (raise-argument-error 'guard-for-prop:sequence "(procedure-arity-includes/c 1)" v_14))) + v_14)))) + (define-values + (prop:sequence :sequence? :sequence-ref) + (make-struct-type-property + 'sequence + (lambda (v_15 sinfo_0) + (begin + (if (if (procedure? v_15) (procedure-arity-includes? v_15 1) #f) + (void) + (let-values () (raise-argument-error 'sequence-property-guard "(procedure-arity-includes/c 1)" v_15))) + (lambda (self_0) + (let-values (((s_0) (v_15 self_0))) + (begin + (if (sequence? s_0) + (void) + (let-values () + (raise-mismatch-error + 'sequence-generate + "procedure (value of prop:sequence) produced a non-sequence: " + s_0))) + s_0))))))) + (define-values + (stream?) + (lambda (v_16) (begin (let-values (((or-part_29) (list? v_16))) (if or-part_29 or-part_29 (stream-via-prop? v_16)))))) + (define-values + (unsafe-stream-not-empty?) + (lambda (v_17) + (begin + (if (null? v_17) + #f + (let-values (((or-part_30) (pair? v_17))) + (if or-part_30 or-part_30 (not ((unsafe-vector-ref (stream-ref v_17) 0) v_17)))))))) + (define-values + (unsafe-stream-first) + (lambda (v_18) + (begin + (if (pair? v_18) (let-values () (car v_18)) (let-values () ((unsafe-vector-ref (stream-ref v_18) 1) v_18)))))) + (define-values + (unsafe-stream-rest) + (lambda (v_19) + (begin + (if (pair? v_19) + (let-values () (cdr v_19)) + (let-values () + (let-values (((r_3) ((unsafe-vector-ref (stream-ref v_19) 2) v_19))) + (begin + (if (stream? r_3) + (void) + (let-values () (raise-mismatch-error 'stream-rest-guard "result is not a stream: " r_3))) + r_3))))))) + (define-values + (sequence?) + (lambda (v_20) + (begin + (let-values (((or-part_31) (exact-nonnegative-integer? v_20))) + (if or-part_31 + or-part_31 + (let-values (((or-part_32) (do-sequence? v_20))) + (if or-part_32 + or-part_32 + (let-values (((or-part_33) (sequence-via-prop? v_20))) + (if or-part_33 + or-part_33 + (let-values (((or-part_34) (stream? v_20))) + (if or-part_34 + or-part_34 + (let-values (((or-part_35) (mpair? v_20))) + (if or-part_35 + or-part_35 + (let-values (((or-part_36) (vector? v_20))) + (if or-part_36 + or-part_36 + (let-values (((or-part_37) (flvector? v_20))) + (if or-part_37 + or-part_37 + (let-values (((or-part_38) (fxvector? v_20))) + (if or-part_38 + or-part_38 + (let-values (((or-part_39) (string? v_20))) + (if or-part_39 + or-part_39 + (let-values (((or-part_40) (bytes? v_20))) + (if or-part_40 + or-part_40 + (let-values (((or-part_41) (input-port? v_20))) + (if or-part_41 + or-part_41 + (let-values (((or-part_42) (hash? v_20))) + (if or-part_42 + or-part_42 + (if (:sequence? v_20) + (not (struct-type? v_20)) + #f)))))))))))))))))))))))))))) + (define-values + (make-sequence) + (lambda (who_2 v_21) + (begin + (if (exact-nonnegative-integer? v_21) + (let-values () (:integer-gen v_21)) + (if (do-sequence? v_21) + (let-values () + (call-with-values + (lambda () ((do-sequence-ref v_21 0))) + (case-lambda + ((pos->vals_0 pos-next_0 init_0 pos-cont?_0 val-cont?_0 all-cont?_0) + (values pos->vals_0 #f pos-next_0 init_0 pos-cont?_0 val-cont?_0 all-cont?_0)) + ((pos->vals_1 pre-pos-next_0 pos-next_1 init_1 pos-cont?_1 val-cont?_1 all-cont?_1) + (values pos->vals_1 pre-pos-next_0 pos-next_1 init_1 pos-cont?_1 val-cont?_1 all-cont?_1))))) + (if (mpair? v_21) + (let-values () (:mlist-gen v_21)) + (if (list? v_21) + (let-values () (:list-gen v_21)) + (if (vector? v_21) + (let-values () (:vector-gen v_21 0 (vector-length v_21) 1)) + (if (flvector? v_21) + (let-values () (:flvector-gen v_21 0 (flvector-length v_21) 1)) + (if (fxvector? v_21) + (let-values () (:fxvector-gen v_21 0 (fxvector-length v_21) 1)) + (if (string? v_21) + (let-values () (:string-gen v_21 0 (string-length v_21) 1)) + (if (bytes? v_21) + (let-values () (:bytes-gen v_21 0 (bytes-length v_21) 1)) + (if (input-port? v_21) + (let-values () (:input-port-gen v_21)) + (if (hash? v_21) + (let-values () (:hash-gen v_21 hash-iterate-key+value hash-iterate-first hash-iterate-next)) + (if (sequence-via-prop? v_21) + (let-values () ((sequence-ref v_21) v_21)) + (if (:sequence? v_21) + (let-values () (make-sequence who_2 ((:sequence-ref v_21) v_21))) + (if (stream? v_21) + (let-values () (:stream-gen v_21)) + (let-values () + (raise + (exn:fail:contract + (format + "for: expected a sequence for ~a, got something else: ~v" + (if (= 1 (length who_2)) (car who_2) who_2) + v_21) + (current-continuation-marks))))))))))))))))))))) + (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_22) (let-values (((cont?_0) (range-ref v_22 2))) (if cont?_0 (not (cont?_0 (range-ref v_22 0))) #f))) + (lambda (v_23) (range-ref v_23 0)) + (lambda (v_24) (make-range ((range-ref v_24 1) (range-ref v_24 0)) (range-ref v_24 1) (range-ref v_24 2))))) + (cons + prop:gen-sequence + (lambda (v_25) (values values #f (range-ref v_25 1) (range-ref v_25 0) (range-ref v_25 2) #f #f)))))) + (define-values (check-range) (lambda (a_23 b_7 step_0) (begin (check-range-generic 'in-range a_23 b_7 step_0)))) + (define-values + (check-range-generic) + (lambda (who_3 a_24 b_8 step_1) + (begin + (begin + (if (real? a_24) (void) (let-values () (raise-argument-error who_3 "real?" a_24))) + (if (real? b_8) (void) (let-values () (raise-argument-error who_3 "real?" b_8))) + (if (real? step_1) (void) (let-values () (raise-argument-error who_3 "real?" step_1))))))) + (define-values (:integer-gen) (lambda (v_26) (begin (values values #f add1 0 (lambda (i_15) (< i_15 v_26)) #f #f)))) + (define-values + (check-naturals) + (lambda (n_13) + (begin + (if (if (integer? n_13) (if (exact? n_13) (>= n_13 0) #f) #f) + (void) + (let-values () (raise-argument-error 'in-naturals "exact-nonnegative-integer?" n_13)))))) + (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_27) (not (pair? (list-stream-ref v_27 0)))) + (lambda (v_28) (car (list-stream-ref v_28 0))) + (lambda (v_29) (make-list-stream (cdr (list-stream-ref v_29 0)))))) + (cons prop:gen-sequence (lambda (v_30) (values car cdr values (list-stream-ref v_30 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 (:list-gen) (lambda (l_5) (begin (values car cdr values l_5 pair? #f #f)))) + (define-values (:mlist-gen) (lambda (l_6) (begin (values mcar #f mcdr l_6 mpair? #f #f)))) + (define-values + (:input-port-gen) + (lambda (p_7) (begin (values read-byte #f values p_7 #f (lambda (x_9) (not (eof-object? x_9))) #f)))) + (define-values + (:stream-gen) + (lambda (l_7) (begin (values unsafe-stream-first unsafe-stream-rest values l_7 unsafe-stream-not-empty? #f #f)))) + (define-values + (:hash-gen) + (case-lambda + ((ht_2 -get_0 -first_0 -next_0) + (begin + (values + (lambda (pos_1) (-get_0 ht_2 pos_1)) + #f + (lambda (pos_2) (-next_0 ht_2 pos_2)) + (-first_0 ht_2) + (lambda (pos_3) pos_3) + #f + #f))) + ((ht_3 -get_1 -first_1 -next_1 bad-v_0) + (values + (lambda (pos_4) (-get_1 ht_3 pos_4 bad-v_0)) + #f + (lambda (pos_5) (-next_1 ht_3 pos_5)) + (-first_1 ht_3) + (lambda (pos_6) pos_6) + #f + #f)))) + (define-values + (check-in-hash) + (lambda (ht_4) + (begin + (if ((lambda (ht_5) (hash? ht_5)) ht_4) (void) (let-values () (raise-argument-error 'in-hash "hash?" ht_4)))))) + (define-values + (:vector-gen) + (lambda (v_31 start_4 stop_0 step_2) + (begin + (values + (lambda (i_16) (unsafe-vector-ref v_31 i_16)) + #f + (if (= step_2 1) add1 (lambda (i_17) (+ i_17 step_2))) + start_4 + (if (> step_2 0) (lambda (i_18) (< i_18 stop_0)) (lambda (i_19) (> i_19 stop_0))) + #f + #f)))) + (define-values + (:string-gen) + (lambda (v_32 start_5 stop_1 step_3) + (begin + (values + (lambda (i_20) (string-ref v_32 i_20)) + #f + (if (= step_3 1) add1 (lambda (i_21) (+ i_21 step_3))) + start_5 + (if (> step_3 0) (lambda (i_22) (< i_22 stop_1)) (lambda (i_23) (> i_23 stop_1))) + #f + #f)))) + (define-values + (check-string) + (lambda (v_33) (begin (if (string? v_33) (void) (let-values () (raise-argument-error 'in-string "string" v_33)))))) + (define-values + (:bytes-gen) + (lambda (v_34 start_6 stop_2 step_4) + (begin + (values + (lambda (i_24) (unsafe-bytes-ref v_34 i_24)) + #f + (if (= step_4 1) add1 (lambda (i_25) (+ i_25 step_4))) + start_6 + (if (> step_4 0) (lambda (i_26) (< i_26 stop_2)) (lambda (i_27) (> i_27 stop_2))) + #f + #f)))) + (define-values + (:flvector-gen) + (lambda (v_35 start_7 stop_3 step_5) + (begin + (values + (lambda (i_28) (unsafe-flvector-ref v_35 i_28)) + #f + (if (= step_5 1) add1 (lambda (i_29) (+ i_29 step_5))) + start_7 + (if (> step_5 0) (lambda (i_30) (< i_30 stop_3)) (lambda (i_31) (> i_31 stop_3))) + #f + #f)))) + (define-values + (:fxvector-gen) + (lambda (v_36 start_8 stop_4 step_6) + (begin + (values + (lambda (i_32) (unsafe-fxvector-ref v_36 i_32)) + #f + (if (= step_6 1) add1 (lambda (i_33) (+ i_33 step_6))) + start_8 + (if (> step_6 0) (lambda (i_34) (< i_34 stop_4)) (lambda (i_35) (> i_35 stop_4))) + #f + #f)))) + (define-values + (in-values*-sequence) + (lambda (g_0) + (begin + (begin + (if (sequence? g_0) (void) (let-values () (raise-argument-error 'in-values-sequence "sequence?" g_0))) + (make-do-sequence + (lambda () + (let-values (((pos->val_0 pre-pos-next_1 pos-next_2 init_2 pos-cont?_2 pre-cont?_0 post-cont?_0) + (make-sequence #f g_0))) + (values + (lambda (pos_7) + (call-with-values + (lambda () (pos->val_0 pos_7)) + (case-lambda ((v_37) (if (list? v_37) (list v_37) v_37)) (vs_0 vs_0)))) + pre-pos-next_1 + pos-next_2 + init_2 + pos-cont?_2 + (if pre-cont?_0 (lambda (vals_1) (if (list? vals_1) (apply pre-cont?_0 vals_1) (pre-cont?_0 vals_1))) #f) + (if post-cont?_0 + (lambda (pos_8 vals_2) + (if (list? vals_2) (apply post-cont?_0 pos_8 vals_2) (post-cont?_0 pos_8 vals_2))) + #f))))))))) + (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_38) ((do-stream-ref v_38 0))) + (lambda (v_39) ((do-stream-ref v_39 1))) + (lambda (v_40) ((do-stream-ref v_40 2)))))))) + (define-values (empty-stream) (make-do-stream (lambda () #t) void void)) + (define-values + (map2) + (let-values (((map_0) + (case-lambda + ((f_0 l_8) + (begin + 'map + (if (if (variable-reference-from-unsafe? (#%variable-reference)) + #t + (if (procedure? f_0) (if (procedure-arity-includes? f_0 1) (list? l_8) #f) #f)) + ((letrec-values (((loop_0) + (lambda (l_9) + (begin + 'loop + (if (null? l_9) + (let-values () null) + (let-values () + (let-values (((r_4) (cdr l_9))) + (cons (f_0 (car l_9)) (loop_0 r_4))))))))) + loop_0) + l_8) + (gen-map f_0 (list l_8))))) + ((f_1 l1_2 l2_2) + (if (if (variable-reference-from-unsafe? (#%variable-reference)) + #t + (if (procedure? f_1) + (if (procedure-arity-includes? f_1 2) + (if (list? l1_2) (if (list? l2_2) (= (length l1_2) (length l2_2)) #f) #f) + #f) + #f)) + ((letrec-values (((loop_34) + (lambda (l1_3 l2_3) + (begin + 'loop + (if (null? l1_3) + (let-values () null) + (let-values () + (let-values (((r1_0) (cdr l1_3)) ((r2_0) (cdr l2_3))) + (cons (f_1 (car l1_3) (car l2_3)) (loop_34 r1_0 r2_0))))))))) + loop_34) + l1_2 + l2_2) + (gen-map f_1 (list l1_2 l2_2)))) + ((f_2 l_10 . args_4) (gen-map f_2 (cons l_10 args_4)))))) + map_0)) + (define-values + (andmap2) + (let-values (((andmap_0) + (case-lambda + ((f_3 l_11) + (begin + 'andmap + (if (if (variable-reference-from-unsafe? (#%variable-reference)) + #t + (if (procedure? f_3) (if (procedure-arity-includes? f_3 1) (list? l_11) #f) #f)) + (if (null? l_11) + #t + ((letrec-values (((loop_35) + (lambda (l_12) + (begin + 'loop + (if (null? (cdr l_12)) + (let-values () (f_3 (car l_12))) + (let-values () + (let-values (((r_5) (cdr l_12))) + (if (f_3 (car l_12)) (loop_35 r_5) #f)))))))) + loop_35) + l_11)) + (gen-andmap f_3 (list l_11))))) + ((f_4 l1_4 l2_4) + (if (if (variable-reference-from-unsafe? (#%variable-reference)) + #t + (if (procedure? f_4) + (if (procedure-arity-includes? f_4 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_36) + (lambda (l1_5 l2_5) + (begin + 'loop + (if (null? (cdr l1_5)) + (let-values () (f_4 (car l1_5) (car l2_5))) + (let-values () + (let-values (((r1_1) (cdr l1_5)) ((r2_1) (cdr l2_5))) + (if (f_4 (car l1_5) (car l2_5)) (loop_36 r1_1 r2_1) #f)))))))) + loop_36) + l1_4 + l2_4)) + (gen-andmap f_4 (list l1_4 l2_4)))) + ((f_5 l_13 . args_5) (gen-andmap f_5 (cons l_13 args_5)))))) + andmap_0)) + (define-values + (ormap2) + (let-values (((ormap_0) + (case-lambda + ((f_6 l_14) + (begin + 'ormap + (if (if (variable-reference-from-unsafe? (#%variable-reference)) + #t + (if (procedure? f_6) (if (procedure-arity-includes? f_6 1) (list? l_14) #f) #f)) + (if (null? l_14) + #f + ((letrec-values (((loop_37) + (lambda (l_15) + (begin + 'loop + (if (null? (cdr l_15)) + (let-values () (f_6 (car l_15))) + (let-values () + (let-values (((r_6) (cdr l_15))) + (let-values (((or-part_43) (f_6 (car l_15)))) + (if or-part_43 or-part_43 (loop_37 r_6)))))))))) + loop_37) + l_14)) + (gen-ormap f_6 (list l_14))))) + ((f_7 l1_6 l2_6) + (if (if (variable-reference-from-unsafe? (#%variable-reference)) + #t + (if (procedure? f_7) + (if (procedure-arity-includes? f_7 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_38) + (lambda (l1_7 l2_7) + (begin + 'loop + (if (null? (cdr l1_7)) + (let-values () (f_7 (car l1_7) (car l2_7))) + (let-values () + (let-values (((r1_2) (cdr l1_7)) ((r2_2) (cdr l2_7))) + (let-values (((or-part_44) (f_7 (car l1_7) (car l2_7)))) + (if or-part_44 or-part_44 (loop_38 r1_2 r2_2)))))))))) + loop_38) + l1_6 + l2_6)) + (gen-ormap f_7 (list l1_6 l2_6)))) + ((f_8 l_16 . args_6) (gen-ormap f_8 (cons l_16 args_6)))))) + ormap_0)) + (define-values + (check-args) + (lambda (who_4 f_9 ls_4) + (begin + (begin + (if (procedure? f_9) (void) (let-values () (raise-argument-error who_4 "procedure?" f_9))) + ((letrec-values (((loop_39) + (lambda (prev-len_0 ls_5 i_36) + (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_4 "list?" l_17))) + (let-values (((len_0) (length l_17))) + (begin + (if (if prev-len_0 (not (= len_0 prev-len_0)) #f) + (let-values () + (raise-arguments-error + who_4 + "all lists must have same size" + "first list length" + prev-len_0 + "other list length" + len_0 + "procedure" + f_9)) + (void)) + (loop_39 len_0 (cdr ls_5) (add1 i_36)))))))))))) + loop_39) + #f + ls_4 + 1) + (if (procedure-arity-includes? f_9 (length ls_4)) + (void) + (let-values () + (let-values (((required-keywords_0 optional-keywords_0) (procedure-keywords f_9))) + (apply + raise-arguments-error + who_4 + (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_45) + (let-values (((n_14) (object-name f_9))) (if (symbol? n_14) (symbol->string n_14) #f)))) + (if or-part_45 or-part_45 "#"))) + (append + (let-values (((a_25) (procedure-arity f_9))) + (if (pair? required-keywords_0) + (let-values () null) + (if (integer? a_25) + (let-values () (list "expected" a_25)) + (if (arity-at-least? a_25) + (let-values () + (list + "expected" + (unquoted-printing-string + (string-append "at least " (number->string (arity-at-least-value a_25)))))) + (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_40) + (lambda (kws_16) + (begin + 'loop + (if (null? kws_16) + (let-values () null) + (let-values () + (list* + " " + (string-append "#:" (keyword->string (car kws_16))) + (loop_40 (cdr kws_16))))))))) + loop_40) + 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_41) + (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_41 (cdr ls_6))))))))) + loop_41) + ls_4)))) + null))))))))))) + (define-values + (gen-map) + (lambda (f_10 ls_7) + (begin + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'map f_10 ls_7)) + ((letrec-values (((loop_42) + (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_10 (map2 car ls_8)) (loop_42 next-ls_0))))))))) + loop_42) + ls_7))))) + (define-values + (gen-andmap) + (lambda (f_11 ls_9) + (begin + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'andmap f_11 ls_9)) + ((letrec-values (((loop_43) + (lambda (ls_10) + (begin + 'loop + (if (null? (car ls_10)) + (let-values () #t) + (if (null? (cdar ls_10)) + (let-values () (apply f_11 (map2 car ls_10))) + (let-values () + (let-values (((next-ls_1) (map2 cdr ls_10))) + (if (apply f_11 (map2 car ls_10)) (loop_43 next-ls_1) #f))))))))) + loop_43) + ls_9))))) + (define-values + (gen-ormap) + (lambda (f_12 ls_11) + (begin + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) #t (check-args 'ormap f_12 ls_11)) + ((letrec-values (((loop_44) + (lambda (ls_12) + (begin + 'loop + (if (null? (car ls_12)) + (let-values () #f) + (if (null? (cdar ls_12)) + (let-values () (apply f_12 (map2 car ls_12))) + (let-values () + (let-values (((next-ls_2) (map2 cdr ls_12))) + (let-values (((or-part_46) (apply f_12 (map2 car ls_12)))) + (if or-part_46 or-part_46 (loop_44 next-ls_2))))))))))) + loop_44) + ls_11))))) + (define-values + (new-keyword-apply) + (make-keyword-procedure + (lambda (kws_17 kw-args_3 proc_16 orig-kws_0 orig-kw-args_0 args_7 . rest_0) + (let-values (((kws_18 kw-args_4) + ((letrec-values (((loop_45) + (lambda (kws_19 kw-args_5 kws2_0 kw-args2_0 swapped?_0) + (begin + 'loop + (if (null? kws_19) + (let-values () (values kws2_0 kw-args2_0)) + (if (null? kws2_0) + (let-values () (values kws_19 kw-args_5)) + (if (keywordlist) + (let-values (((hash->list_0) (lambda (h_0 try-order?_0) (begin 'hash->list (hash-map h_0 cons try-order?_0))))) + (let-values (((hash->list_1) + (case-lambda + ((h_1) + (begin + 'hash->list + (begin + (if (hash? h_1) (void) (let-values () (raise-argument-error 'hash->list "hash?" 0 h_1))) + (hash->list_0 h_1 #f)))) + ((h_2 try-order?_1) + (begin + (if (hash? h_2) + (void) + (let-values () (raise-argument-error 'hash->list "hash?" 0 h_2 try-order?_1))) + (hash->list_0 h_2 try-order?_1)))))) + hash->list_1))) + (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_13 list_0) + (begin + (begin + (if (if (procedure? f_13) (procedure-arity-includes? f_13 1) #f) + (void) + (let-values () (raise-argument-error 'filter "(any/c . -> . any/c)" f_13))) + (if (list? list_0) (void) (let-values () (raise-argument-error 'filter "list?" list_0))) + ((letrec-values (((loop_46) + (lambda (l_18 result_0) + (begin + 'loop + (if (null? l_18) + (reverse$1 result_0) + (loop_46 (cdr l_18) (if (f_13 (car l_18)) (cons (car l_18) result_0) result_0))))))) + loop_46) + list_0 + null))))) + (define-values + (build-list) + (lambda (n_15 fcn_0) + (begin + (begin + (if (exact-nonnegative-integer? n_15) + (void) + (let-values () (raise-argument-error 'build-list "exact-nonnegative-integer?" n_15))) + (if (if (procedure? fcn_0) (procedure-arity-includes? fcn_0 1) #f) + (void) + (let-values () (raise-argument-error 'build-list "(exact-nonnegative-integer? . -> . any/c)" fcn_0))) + ((letrec-values (((recr_0) + (lambda (j_2 i_37) + (begin + 'recr + (if (zero? i_37) + (let-values () null) + (let-values () (cons (fcn_0 j_2) (recr_0 (add1 j_2) (sub1 i_37))))))))) + recr_0) + 0 + n_15))))) + (define-values + (compose1 compose) + (let-values () + (let-values (((pipeline1_0) + (lambda (f_14 rfuns_0) + (begin + 'pipeline1 + (lambda (x_10) + ((letrec-values (((loop_47) + (lambda (x_3 f_15 rfuns_1) + (begin + 'loop + (if (null? rfuns_1) + (f_15 x_3) + (loop_47 (f_15 x_3) (car rfuns_1) (cdr rfuns_1))))))) + loop_47) + x_10 + f_14 + rfuns_0)))))) + (let-values (((pipeline*_0) + (lambda (f_16 rfuns_2) + (begin + 'pipeline* + (if (eqv? 1 (procedure-arity f_16)) + ((letrec-values (((loop_48) + (lambda (f_17 rfuns_3) + (begin + 'loop + (if (null? rfuns_3) + f_17 + (loop_48 + (let-values (((fst_0) (car rfuns_3))) + (if (eqv? 1 (procedure-arity fst_0)) + (lambda (x_11) (fst_0 (f_17 x_11))) + (lambda (x_12) + (call-with-values (lambda () (f_17 x_12)) fst_0)))) + (cdr rfuns_3))))))) + loop_48) + f_16 + rfuns_2) + (let-values (((funs_0) (reverse$1 (cons f_16 rfuns_2)))) + ((letrec-values (((loop_49) + (lambda (f_18 funs_1) + (begin + 'loop + (if (null? funs_1) + f_18 + (loop_49 + (let-values (((fst_1) (car funs_1))) + (if (eqv? 1 (procedure-arity f_18)) + (if (eqv? 1 (procedure-arity fst_1)) + (lambda (x_13) (f_18 (fst_1 x_13))) + (lambda xs_0 (f_18 (apply fst_1 xs_0)))) + (if (eqv? 1 (procedure-arity fst_1)) + (lambda (x_4) + (call-with-values (lambda () (fst_1 x_4)) f_18)) + (lambda xs_1 + (call-with-values (lambda () (apply fst_1 xs_1)) f_18))))) + (cdr funs_1))))))) + loop_49) + (car funs_0) + (cdr funs_0)))))))) + (let-values (((compose1_0) + (let-values (((simple-compose_0) + (lambda (f_19 g_1) + (begin + 'simple-compose + (let-values (((arity_1) (procedure-arity g_1))) + (let-values (((required-kwds_0 allowed-kwds_0) (procedure-keywords g_1))) + (let-values (((composed_0) + (if (eq? 1 arity_1) + (lambda (x_14) (begin 'composed (f_19 (g_1 x_14)))) + (case-lambda + ((x_15) (begin 'composed (f_19 (g_1 x_15)))) + ((x_16 y_6) (f_19 (g_1 x_16 y_6))) + (args_8 (f_19 (apply g_1 args_8))))))) + (if (null? allowed-kwds_0) + composed_0 + (make-keyword-procedure + (lambda (kws_20 kw-args_6 . xs_2) + (f_19 (new-keyword-apply g_1 kws_20 kw-args_6 xs_2))) + composed_0))))))))) + (case-lambda + ((f_20) + (begin + 'compose1 + (if (procedure? f_20) f_20 (raise-argument-error 'compose1 "procedure?" 0 f_20)))) + ((f_21 g_2) + (begin + (if (procedure? f_21) + (void) + (let-values () (raise-argument-error 'compose1 "procedure?" 0 f_21 g_2))) + (if (procedure? g_2) + (void) + (let-values () (raise-argument-error 'compose1 "procedure?" 1 f_21 g_2))) + (if (procedure-arity-includes? f_21 1) + (void) + (let-values () (apply raise-argument-error 'compose1 "(any/c . -> . any/c)" 0 f_21 '()))) + (if (null? (let-values (((req_5 __0) (procedure-keywords f_21))) req_5)) + (void) + (let-values () + (apply + raise-argument-error + 'compose1 + "procedure-with-no-required-keywords?" + 0 + f_21 + '()))) + (simple-compose_0 f_21 g_2))) + (() values) + ((f0_0 . fs0_0) + ((letrec-values (((loop_50) + (lambda (f_22 fs_0 i_38 rfuns_4) + (begin + 'loop + (begin + (if (procedure? f_22) + (void) + (let-values () + (apply + raise-argument-error + 'compose1 + "procedure?" + i_38 + f0_0 + fs0_0))) + (if (pair? fs_0) + (begin + (begin + (if (procedure-arity-includes? f_22 1) + (void) + (let-values () + (apply + raise-argument-error + 'compose1 + "(any/c . -> . any/c)" + i_38 + f0_0 + fs0_0))) + (if (null? + (let-values (((req_6 __1) (procedure-keywords f_22))) + req_6)) + (void) + (let-values () + (apply + raise-argument-error + 'compose1 + "procedure-with-no-required-keywords?" + i_38 + f0_0 + fs0_0)))) + (loop_50 (car fs_0) (cdr fs_0) (add1 i_38) (cons f_22 rfuns_4))) + (simple-compose_0 + (pipeline1_0 (car rfuns_4) (cdr rfuns_4)) + f_22))))))) + loop_50) + f0_0 + fs0_0 + 0 + '())))))) + (let-values (((compose_0) + (let-values (((simple-compose_1) + (lambda (f_23 g_3) + (begin + 'simple-compose + (if (eqv? 1 (procedure-arity f_23)) + (let-values (((arity_2) (procedure-arity g_3))) + (let-values (((required-kwds_1 allowed-kwds_1) (procedure-keywords g_3))) + (let-values (((composed_1) + (if (eq? 1 arity_2) + (lambda (x_17) (begin 'composed (f_23 (g_3 x_17)))) + (case-lambda + ((x_18) (begin 'composed (f_23 (g_3 x_18)))) + ((x_19 y_7) (f_23 (g_3 x_19 y_7))) + (args_9 (f_23 (apply g_3 args_9))))))) + (if (null? allowed-kwds_1) + composed_1 + (make-keyword-procedure + (lambda (kws_21 kw-args_7 . xs_3) + (f_23 (new-keyword-apply g_3 kws_21 kw-args_7 xs_3))) + composed_1))))) + (let-values (((arity_3) (procedure-arity g_3))) + (let-values (((required-kwds_2 allowed-kwds_2) (procedure-keywords g_3))) + (let-values (((composed_2) + (if (eq? 1 arity_3) + (lambda (x_20) + (begin + 'composed + (call-with-values (lambda () (g_3 x_20)) f_23))) + (case-lambda + ((x_21) + (begin + 'composed + (call-with-values (lambda () (g_3 x_21)) f_23))) + ((x_22 y_8) + (call-with-values (lambda () (g_3 x_22 y_8)) f_23)) + (args_10 + (call-with-values + (lambda () (apply g_3 args_10)) + f_23)))))) + (if (null? allowed-kwds_2) + composed_2 + (make-keyword-procedure + (lambda (kws_22 kw-args_8 . xs_4) + (call-with-values + (lambda () (new-keyword-apply g_3 kws_22 kw-args_8 xs_4)) + f_23)) + composed_2)))))))))) + (case-lambda + ((f_24) + (begin + 'compose + (if (procedure? f_24) f_24 (raise-argument-error 'compose "procedure?" 0 f_24)))) + ((f_25 g_4) + (begin + (if (procedure? f_25) + (void) + (let-values () (raise-argument-error 'compose "procedure?" 0 f_25 g_4))) + (if (procedure? g_4) + (void) + (let-values () (raise-argument-error 'compose "procedure?" 1 f_25 g_4))) + (if (null? (let-values (((req_7 __2) (procedure-keywords f_25))) req_7)) + (void) + (let-values () + (apply + raise-argument-error + 'compose + "procedure-with-no-required-keywords?" + 0 + f_25 + '()))) + (simple-compose_1 f_25 g_4))) + (() values) + ((f0_1 . fs0_1) + ((letrec-values (((loop_20) + (lambda (f_26 fs_1 i_4 rfuns_5) + (begin + 'loop + (begin + (if (procedure? f_26) + (void) + (let-values () + (apply + raise-argument-error + 'compose + "procedure?" + i_4 + f0_1 + fs0_1))) + (if (pair? fs_1) + (begin + (if (null? + (let-values (((req_8 __3) (procedure-keywords f_26))) + req_8)) + (void) + (let-values () + (apply + raise-argument-error + 'compose + "procedure-with-no-required-keywords?" + i_4 + f0_1 + fs0_1))) + (loop_20 (car fs_1) (cdr fs_1) (add1 i_4) (cons f_26 rfuns_5))) + (simple-compose_1 + (pipeline*_0 (car rfuns_5) (cdr rfuns_5)) + f_26))))))) + loop_20) + f0_1 + fs0_1 + 0 + '())))))) + (values compose1_0 compose_0))))))) + (define-values (regexp-quote-chars:s) '#rx"[][.*?+|(){}\\$^]") + (define-values (regexp-quote-chars:b) '#rx#"[][.*?+|(){}\\$^]") + (define-values + (regexp-quote) + (let-values (((regexp-quote_0) + (lambda (s4_0 case-sens?3_0) + (begin + 'regexp-quote + (let-values (((s_1) s4_0)) + (let-values (((case-sens?_0) case-sens?3_0)) + (let-values () + (let-values (((b?_0) + (if (bytes? s_1) + (let-values () #t) + (if (string? s_1) + (let-values () #f) + (let-values () + (raise-argument-error 'regexp-quote "(or/c string? bytes?)" s_1)))))) + (let-values (((s_2) + (if b?_0 + (regexp-replace* regexp-quote-chars:b s_1 #"\\\\&") + (regexp-replace* regexp-quote-chars:s s_1 "\\\\&")))) + (if case-sens?_0 + (let-values () s_2) + (if b?_0 + (let-values () (bytes-append #"(?i:" s_2 #")")) + (let-values () (string-append "(?i:" s_2 ")"))))))))))))) + (case-lambda ((s_3) (begin (regexp-quote_0 s_3 #t))) ((s_4 case-sens?3_1) (regexp-quote_0 s_4 case-sens?3_1))))) + (define-values + (regexp-match-exact?) + (lambda (p_8 s_5) + (begin + (let-values (((m_0) (regexp-match-positions p_8 s_5))) + (if m_0 + (if (zero? (caar m_0)) + (= + (cdar m_0) + (if (bytes? s_5) + (let-values () (bytes-length s_5)) + (if (let-values (((or-part_47) (byte-regexp? p_8))) (if or-part_47 or-part_47 (bytes? p_8))) + (let-values () (if (path? s_5) (bytes-length (path->bytes s_5)) (string-utf-8-length s_5))) + (let-values () (if (path? s_5) (string-length (path->string s_5)) (string-length s_5)))))) + #f) + #f))))) + (define-values + (print-value-columns) + (make-parameter + +inf.0 + (lambda (c_6) + (if (let-values (((or-part_48) (eqv? c_6 +inf.0))) + (if or-part_48 or-part_48 (if (exact-integer? c_6) (> c_6 5) #f))) + c_6 + (raise-argument-error 'print-value-columns "(or/c +inf.0 (and/c exact-integer? (>/c 5)))" c_6))) + 'print-value-columns)) + (define-values + (struct:set-impl set-impl1.1 set-impl? set-impl-contents) + (let-values (((struct:_0 make-_0 ?_1 -ref_1 -set!_1) + (let-values () (let-values () (make-struct-type 'set-impl #f 1 0 #f null #f #f '(0) #f 'set-impl))))) + (values struct:_0 make-_0 ?_1 (make-struct-field-accessor -ref_1 0 'contents)))) + (define-values + (set) + (lambda args_11 (begin (set-impl1.1 (make-immutable-hash (map2 (lambda (e_0) (cons e_0 #t)) args_11)))))) + (define-values (set-member?) (lambda (st_0 v_41) (begin (hash-has-key? (set-impl-contents st_0) v_41)))) + (define-values (set-add) (lambda (st_1 v_1) (begin (set-impl1.1 (hash-set (set-impl-contents st_1) v_1 #t))))) + (define-values + (list->set) + (lambda (lst_7) + (begin + (let-values (((pos->vals_2 pos-pre-inc_0 pos-next_3 init_3 pos-cont?_3 val-cont?_2 all-cont?_2) + (make-sequence '(elem) lst_7))) + (begin + (void) + ((letrec-values (((for-loop_0) + (lambda (st_2 pos_9) + (begin + 'for-loop + (if (if pos-cont?_3 (pos-cont?_3 pos_9) #t) + (let-values (((elem_0 all-cont?/pos_0) + (let-values (((elem_1) (pos->vals_2 pos_9))) + (values + elem_1 + (if all-cont?_2 (lambda (pos_10) (all-cont?_2 pos_10 elem_1)) #f)))) + ((pos_11) (if pos-pre-inc_0 (pos-pre-inc_0 pos_9) pos_9))) + (if (if val-cont?_2 (val-cont?_2 elem_0) #t) + (let-values (((st_3) + (let-values (((st_4) st_2)) + (let-values (((st_5) (let-values () (set-add st_4 elem_0)))) + (values st_5))))) + (if (if (if all-cont?/pos_0 (all-cont?/pos_0 pos_11) #t) (not #f) #f) + (for-loop_0 st_3 (pos-next_3 pos_11)) + st_3)) + st_2)) + st_2))))) + for-loop_0) + (set) + init_3)))))) + (define-values (output-directory) (make-parameter "js-build")) + (define-values (current-source-file) (make-parameter #f)) + (define-values (main-source-file) (make-parameter #f)) + (define-values (racketscript-main-module) (path->complete-path "main.rkt")) + (define-values + (racketscript-compiler-dir) + (let-values (((dir-path_0 _p_0 _b_0) (split-path racketscript-main-module))) dir-path_0)) + (define-values (racketscript-runtime-dir) (build-path racketscript-compiler-dir "runtime")) + (define-values (racketscript-dir) (simplify-path (build-path racketscript-compiler-dir ".."))) + (define-values (jsruntime-core-module) (make-parameter "$rjs_core")) + (define-values (test-environment?) (make-parameter #f)) + (define-values (logging?) (make-parameter #t)) + (define-values (ignored-module-imports-in-boot) (set (build-path racketscript-dir "private" "interop.rkt"))) + (define-values (ignored-undefined-identifiers) (list (.get-syntax-literal! 0))) + (define-values + (primitive-modules) + (set + '#%runtime + '#%core + '#%main + '#%read + '#%kernel + '#%paramz + '#%unsafe + '#%utils + '#%flfxnum + '#%futures + '#%extfl + '#%place-struct + '#%network + '#%builtin + '#%boot + '#%foreign + '#%place + '#%linklet-primitive + (build-path racketscript-runtime-dir "lib.rkt"))) + (define-values (skip-arity-checks?) (make-parameter #f)) + (define-values (false?) (lambda (v_42) (begin (eq? v_42 #f)))) + (define-values (empty?) (lambda (l_2) (begin (null? l_2)))) + (define-values (cons?) (lambda (l_19) (begin (pair? l_19)))) + (define-values + (too-large) + (lambda (who_5 list_1 n_16) + (begin + (let-values (((proper?_0) (list? list_1))) + (raise-argument-error + who_5 + (format + "a ~alist with at least ~a ~a" + (if proper?_0 "" "(possibly improper) ") + n_16 + (if proper?_0 "elements" "pairs")) + list_1))))) + (define-values + (split-at) + (lambda (list0_0 n0_0) + (begin + (begin + (if (exact-nonnegative-integer? n0_0) + (void) + (let-values () (raise-argument-error 'split-at "exact-nonnegative-integer?" 1 list0_0 n0_0))) + ((letrec-values (((loop_51) + (lambda (list_2 n_17 pfx_0) + (begin + 'loop + (if (zero? n_17) + (let-values () (values (reverse$1 pfx_0) list_2)) + (if (pair? list_2) + (let-values () (loop_51 (cdr list_2) (sub1 n_17) (cons (car list_2) pfx_0))) + (let-values () (too-large 'split-at list0_0 n0_0)))))))) + loop_51) + list0_0 + n0_0 + '()))))) + (define-values + (flatten) + (lambda (orig-sexp_0) + (begin + ((letrec-values (((loop_52) + (lambda (sexp_0 acc_0) + (begin + 'loop + (if (null? sexp_0) + (let-values () acc_0) + (if (pair? sexp_0) + (let-values () (loop_52 (car sexp_0) (loop_52 (cdr sexp_0) acc_0))) + (let-values () (cons sexp_0 acc_0)))))))) + loop_52) + orig-sexp_0 + null)))) + (define-values + (add-between.1) + (lambda (after-last16_0 before-first14_0 before-last15_0 splice?13_0 l21_0 x22_0) + (begin + 'add-between + (let-values (((l_20) l21_0)) + (let-values (((x_23) x22_0)) + (let-values (((splice?_0) splice?13_0)) + (let-values (((before-first_0) before-first14_0)) + (let-values (((before-last_0) (if (eq? before-last15_0 unsafe-undefined) x_23 before-last15_0))) + (let-values (((after-last_0) after-last16_0)) + (let-values () + (begin + (if (list? l_20) (void) (let-values () (raise-argument-error 'add-between "list?" 0 l_20 x_23))) + (if splice?_0 + (let-values () + (let-values (((check-list_0) + (lambda (x_24 which_1) + (begin + 'check-list + (if (list? x_24) + (void) + (let-values () + (raise-arguments-error + 'add-between + (string-append "list needed in splicing mode" which_1) + "given" + x_24 + "given list..." + l_20))))))) + (begin + (check-list_0 x_23 "") + (check-list_0 before-first_0 " for #:before-first") + (check-list_0 before-last_0 " for #:before-last") + (check-list_0 after-last_0 " for #:after-last")))) + (let-values () + (let-values (((check-not-given_0) + (lambda (x_25 which_2) + (begin + 'check-not-given + (if (eq? '() x_25) + (void) + (let-values () + (raise-arguments-error + 'add-between + (string-append which_2 " can only be used in splicing mode") + "given" + x_25 + "given list..." + l_20))))))) + (begin + (check-not-given_0 before-first_0 "#:before-first") + (check-not-given_0 after-last_0 "#:after-last"))))) + (if (let-values (((or-part_49) (null? l_20))) (if or-part_49 or-part_49 (null? (cdr l_20)))) + (let-values () (if splice?_0 (append before-first_0 l_20 after-last_0) l_20)) + (if splice?_0 + (let-values () + (let-values (((x_26) (reverse$1 x_23))) + (let-values (((r_7) + ((letrec-values (((loop_53) + (lambda (i_39 l_21 r_8) + (begin + 'loop + (if (pair? l_21) + (loop_53 + (car l_21) + (cdr l_21) + (cons i_39 (append x_26 r_8))) + (cons + i_39 + (append (reverse$1 before-last_0) r_8))))))) + loop_53) + (cadr l_20) + (cddr l_20) + '()))) + (let-values (((r_9) (reverse$1 (append (reverse$1 after-last_0) r_7)))) + (let-values (((r_10) (qq-append before-first_0 (list* (car l_20) r_9)))) r_10))))) + (let-values () + (cons + (car l_20) + (reverse$1 + ((letrec-values (((loop_54) + (lambda (i_40 l_22 r_11) + (begin + 'loop + (if (pair? l_22) + (loop_54 (car l_22) (cdr l_22) (cons i_40 (cons x_23 r_11))) + (cons i_40 (cons before-last_0 r_11))))))) + loop_54) + (cadr l_20) + (cddr l_20) + '()))))))))))))))))) + (define-values + (append-map) + (case-lambda + ((f_27 l_23) (begin (apply append (map2 f_27 l_23)))) + ((f_28 l1_8 l2_8) (apply append (map2 f_28 l1_8 l2_8))) + ((f_29 l_24 . ls_13) (apply append (apply map2 f_29 l_24 ls_13))))) + (define-values + (string-join.1) + (lambda (after-last3_0 before-first1_0 before-last2_0 strs8_0 sep7_0) + (begin + 'string-join + (let-values (((strs_0) strs8_0)) + (let-values (((sep_0) sep7_0)) + (let-values (((before-first_1) (if (eq? before-first1_0 unsafe-undefined) unsafe-undefined before-first1_0))) + (let-values (((before-last_1) (if (eq? before-last2_0 unsafe-undefined) sep_0 before-last2_0))) + (let-values (((after-last_1) (if (eq? after-last3_0 unsafe-undefined) unsafe-undefined after-last3_0))) + (let-values () + (begin + (if (if (list? strs_0) (andmap2 string? strs_0) #f) + (void) + (let-values () (raise-argument-error 'string-join "(listof string?)" strs_0))) + (if (let-values (((or-part_50) (string? before-first_1))) + (if or-part_50 or-part_50 (eq? before-first_1 unsafe-undefined))) + (void) + (let-values () (raise-argument-error 'string-join "string?" before-first_1))) + (if (string? sep_0) (void) (let-values () (raise-argument-error 'string-join "string?" sep_0))) + (if (let-values (((or-part_51) (string? after-last_1))) + (if or-part_51 or-part_51 (eq? after-last_1 unsafe-undefined))) + (void) + (let-values () (raise-argument-error 'string-join "string?" after-last_1))) + (let-values (((r_12) + (if (let-values (((or-part_52) (null? strs_0))) + (if or-part_52 or-part_52 (null? (cdr strs_0)))) + strs_0 + (let-values (((strs40_0) strs_0) + ((sep41_0) sep_0) + ((before-last42_0) before-last_1)) + (add-between.1 '() '() before-last42_0 #f strs40_0 sep41_0))))) + (let-values (((r_13) + (if (eq? after-last_1 unsafe-undefined) r_12 (append r_12 (list after-last_1))))) + (let-values (((r_14) + (if (eq? before-first_1 unsafe-undefined) r_13 (cons before-first_1 r_13)))) + (apply string-append r_14)))))))))))))) + (define-values (immutable-cache) (make-weak-hasheq)) + (define-values + (string->immutable-string/cache) + (lambda (str_1) + (begin + (if (immutable? str_1) + str_1 + (let-values (((old_0) (hash-ref immutable-cache str_1 #f))) + (if (if old_0 (string=? str_1 old_0) #f) + old_0 + (let-values (((new_1) (string->immutable-string str_1))) + (begin (hash-set! immutable-cache str_1 new_1) new_1)))))))) + (define-values + (get-rxs) + (let-values (((t_0) (make-weak-hasheq)) ((t+_0) (make-weak-hasheq))) + (begin + (let-values (((spaces_0) '(#px"\\s+" #px"^\\s+" #px"\\s+$"))) + (begin (hash-set! t_0 unsafe-undefined spaces_0) (hash-set! t+_0 unsafe-undefined spaces_0))) + (lambda (who_6 rx_0 +?_0) + (begin + 'get-rxs + (let-values (((rx*_0) (if (string? rx_0) (string->immutable-string/cache rx_0) rx_0))) + (hash-ref! + (if +?_0 t+_0 t_0) + rx*_0 + (lambda () + (let-values (((s_6) + (if (string? rx_0) + (let-values () (regexp-quote rx*_0)) + (if (regexp? rx_0) + (let-values () (string-append "(?:" (object-name rx_0) ")")) + (let-values () (raise-argument-error who_6 "(or/c string? regexp?)" rx_0)))))) + (let-values (((s_7) (if +?_0 (string-append "(?:" s_6 ")+") s_6))) + (let-values (((^s_0) (string-append "^" s_7))) + (let-values (((s$_0) (string-append s_7 "$"))) + (if (pregexp? rx_0) + (list (pregexp s_7) (pregexp ^s_0) (pregexp s$_0)) + (list (regexp s_7) (regexp ^s_0) (regexp s$_0))))))))))))))) + (define-values (replace-cache) (make-weak-hasheq)) + (define-values + (string-prefix?) + (lambda (str_2 prefix_0) + (begin + (let-values ((() + (begin + (if (string? str_2) (void) (let-values () (raise-argument-error 'string-prefix? "string?" str_2))) + (values)))) + (let-values ((() + (begin + (if (string? prefix_0) + (void) + (let-values () (raise-argument-error 'string-prefix? "string?" prefix_0))) + (values)))) + (let-values (((l1_9) (string-length str_2))) + (let-values (((l2_9) (string-length prefix_0))) + ((letrec-values (((loop_55) + (lambda (i_41) + (begin + 'loop + (if (= l2_9 i_41) + (let-values () #t) + (if (= l1_9 i_41) + (let-values () #f) + (let-values () + (if (char=? (string-ref str_2 i_41) (string-ref prefix_0 i_41)) + (loop_55 (add1 i_41)) + #f)))))))) + loop_55) + 0)))))))) + (define-values + (normalize-symbol) + (let-values (((normalize-symbol_0) + (lambda (s2_0 ignores1_0) + (begin + 'normalize-symbol + (let-values (((s_8) s2_0)) + (let-values (((ignores_0) ignores1_0)) + (let-values () + (let-values (((should-rename?_0) + (lambda (s_9) + (begin 'should-rename? (not (string-prefix? s_9 (jsruntime-core-module))))))) + (let-values (((ss_0) (symbol->string s_8))) + (if (false? (should-rename?_0 ss_0)) + (let-values () ss_0) + (if (reserved-keyword? s_8) + (let-values () (string-append "r" ss_0)) + (let-values () + (let-values (((ch-first_0 ch-rest_0) + (let-values (((v_43) (string->list ss_0))) + (let-values (((v_1) v_43)) + (let-values () + (let-values (((alt_0) + (lambda () + (begin 'alt (error 'match "failed ~e" v_1))))) + (if (let-values (((p_9) v_1)) (if (pair? p_9) #t #f)) + (let-values (((ch-first_1 ch-rest_1) + (let-values (((p_10) v_1)) + (let-values (((ch-first_2) + (let-values (((a_26) + (car p_10))) + a_26)) + ((ch-rest_2) + (let-values (((d_0) + (cdr p_10))) + d_0))) + (values ch-first_2 ch-rest_2))))) + (let-values () (values ch-first_1 ch-rest_1))) + (alt_0)))))))) + (apply + string-append + (cons + (normalize-symbol-atom ch-first_0 #t ignores_0) + ((letrec-values (((loop_56) + (lambda (ss_1) + (begin + 'loop + (let-values (((v_44) ss_1)) + (let-values () + (let-values (((alt_1) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_2) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_3) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_44))))) + (if (let-values (((p_11) + v_44)) + (if (pair? + p_11) + #t + #f)) + (let-values (((fst_2 + rst_0) + (let-values (((p_12) + v_44)) + (let-values (((fst_3) + (let-values (((a_27) + (car + p_12))) + a_27)) + ((rst_1) + (let-values (((d_1) + (cdr + p_12))) + d_1))) + (values + fst_3 + rst_1))))) + (let-values () + (cons + (normalize-symbol-atom + fst_2 + #f + ignores_0) + (loop_56 + rst_0)))) + (alt_3)))))))) + (if (let-values (((p_13) v_44)) + (if (pair? p_13) + (let-values (((a_28) + (cdr + p_13))) + (let-values (((p_14) + a_28)) + (if (pair? p_14) + #t + #f))) + #f)) + (let-values (((fst_4 + snd_0 + rst_2) + (let-values (((p_15) + v_44)) + (let-values (((fst_5) + (let-values (((a_29) + (car + p_15))) + a_29)) + ((snd_1 + rst_3) + (let-values (((d_2) + (cdr + p_15))) + (let-values (((p_16) + d_2)) + (let-values (((snd_2) + (let-values (((a_30) + (car + p_16))) + a_30)) + ((rst_4) + (let-values (((d_3) + (cdr + p_16))) + d_3))) + (values + snd_2 + rst_4)))))) + (values + fst_5 + snd_1 + rst_3))))) + (if (if (eq? fst_4 "-") + (eq? snd_0 ">") + #f) + (let-values () + (cons + "_to_" + (loop_56 rst_2))) + (alt_2))) + (alt_2)))))))) + (if (eq? '() v_44) + (let-values () (let-values () null)) + (alt_1))))))))) + loop_56) + ch-rest_0)))))))))))))))) + (case-lambda + ((s_10) (begin (normalize-symbol_0 s_10 '()))) + ((s_2 ignores1_1) (normalize-symbol_0 s_2 ignores1_1))))) + (define-values + (valid-literal-atom?) + (lambda (ch_0 first?_0) + (begin + (let-values (((patt_0) + (if first?_0 + '#px"\\$|_|\\p{L}|\\p{Nl}" + '#px"\\$|_|\\p{L}|\\p{Nl}|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}"))) + (regexp-match-exact? patt_0 (string ch_0)))))) + (define-values (reserved-keyword?) (lambda (s_11) (begin (set-member? es6-reserved-keywords s_11)))) + (define-values + (normalize-symbol-atom) + (let-values (((normalize-symbol-atom_0) + (lambda (ch4_0 first?5_0 ignores3_0) + (begin + 'normalize-symbol-atom + (let-values (((ch_1) ch4_0)) + (let-values (((first?_1) first?5_0)) + (let-values (((ignores_1) ignores3_0)) + (let-values () + (let-values (((char-map_0) + '#hash(("!" . "_bang_") + ("&" . "_and_") + ("'" . "_prime_") + ("*" . "_times_") + ("+" . "_plus_") + ("-" . "_") + ("." . "_dot_") + ("/" . "_by_") + ("<" . "_lt_") + ("=" . "_eq_") + (">" . "_gt_") + ("?" . "_p")))) + (let-values (((sch_0) (string ch_1))) + (if (let-values (((or-part_53) (member sch_0 ignores_1))) + (if or-part_53 or-part_53 (valid-literal-atom? ch_1 first?_1))) + (let-values () sch_0) + (if first?_1 + (let-values () (string-append "_" (normalize-symbol-atom ch_1 #f))) + (if (hash-has-key? char-map_0 sch_0) + (let-values () (hash-ref char-map_0 sch_0)) + (let-values () "_")))))))))))))) + (case-lambda + ((ch_2 first?_2) (begin (normalize-symbol-atom_0 ch_2 first?_2 '()))) + ((ch_3 first?_3 ignores3_1) (normalize-symbol-atom_0 ch_3 first?_3 ignores3_1))))) + (define-values (fresh-id-counter) (make-parameter 0)) + (define-values + (fresh-id) + (if (test-environment?) + gensym + (lambda (id_0) + (begin + (begin + (fresh-id-counter (add1 (fresh-id-counter))) + (string->symbol (format "~a~a" id_0 (fresh-id-counter)))))))) + (define-values + (es6-reserved-keywords) + (list->set + '(abstract + arguments + await* + boolean + break + byte + case + catch + char + class* + const + continue + debugger + default + delete + do + double + else + enum* + eval + export* + extends* + false + final + finally + float + for + function + goto + if + implements + import* + in + instanceof + int + interface + let* + long + native + new + null + package + private + protected + public + return + short + static + super* + switch + synchronized + this + throw + throws + transient + true + try + typeof + var + void + volatile + while + with + yield))) + (define-values + (struct:Linklet Linklet1.1 Linklet? Linklet-path Linklet-imports Linklet-exports Linklet-forms) + (let-values (((struct:_0 make-_0 ?_1 -ref_1 -set!_1) + (let-values () + (let-values () (make-struct-type 'Linklet #f 4 0 #f null #f #f '(0 1 2 3) #f 'Linklet))))) + (values + struct:_0 + make-_0 + ?_1 + (make-struct-field-accessor -ref_1 0 'path) + (make-struct-field-accessor -ref_1 1 'imports) + (make-struct-field-accessor -ref_1 2 'exports) + (make-struct-field-accessor -ref_1 3 'forms)))) + (define-values + (struct:DefineValues DefineValues2.1 DefineValues? DefineValues-ids DefineValues-expr) + (let-values (((struct:_1 make-_1 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () (make-struct-type 'DefineValues #f 2 0 #f null #f #f '(0 1) #f 'DefineValues))))) + (values + struct:_1 + make-_1 + ?_2 + (make-struct-field-accessor -ref_2 0 'ids) + (make-struct-field-accessor -ref_2 1 'expr)))) + (define-values + (struct:ImportedIdent ImportedIdent3.1 ImportedIdent? ImportedIdent-id ImportedIdent-src-mod ImportedIdent-reachable?) + (let-values (((struct:_2 make-_2 ?_3 -ref_3 -set!_3) + (let-values () + (let-values () (make-struct-type 'ImportedIdent #f 3 0 #f null #f #f '(0 1 2) #f 'ImportedIdent))))) + (values + struct:_2 + make-_2 + ?_3 + (make-struct-field-accessor -ref_3 0 'id) + (make-struct-field-accessor -ref_3 1 'src-mod) + (make-struct-field-accessor -ref_3 2 'reachable?)))) + (define-values + (struct:TopLevelIdent TopLevelIdent4.1 TopLevelIdent? TopLevelIdent-id) + (let-values (((struct:_3 make-_3 ?_4 -ref_4 -set!_4) + (let-values () + (let-values () (make-struct-type 'TopLevelIdent #f 1 0 #f null #f #f '(0) #f 'TopLevelIdent))))) + (values struct:_3 make-_3 ?_4 (make-struct-field-accessor -ref_4 0 'id)))) + (define-values + (struct:LinkletImportIdent LinkletImportIdent5.1 LinkletImportIdent? LinkletImportIdent-id) + (let-values (((struct:_4 make-_4 ?_5 -ref_5 -set!_5) + (let-values () + (let-values () + (make-struct-type 'LinkletImportIdent #f 1 0 #f null #f #f '(0) #f 'LinkletImportIdent))))) + (values struct:_4 make-_4 ?_5 (make-struct-field-accessor -ref_5 0 'id)))) + (define-values + (struct:LocalIdent LocalIdent6.1 LocalIdent? LocalIdent-id) + (let-values (((struct:_5 make-_5 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () (make-struct-type 'LocalIdent #f 1 0 #f null #f #f '(0) #f 'LocalIdent))))) + (values struct:_5 make-_5 ?_6 (make-struct-field-accessor -ref_6 0 'id)))) + (define-values + (struct:Quote Quote7.1 Quote? Quote-datum) + (let-values (((struct:_6 make-_6 ?_7 -ref_7 -set!_7) + (let-values () (let-values () (make-struct-type 'Quote #f 1 0 #f null #f #f '(0) #f 'Quote))))) + (values struct:_6 make-_6 ?_7 (make-struct-field-accessor -ref_7 0 'datum)))) + (define-values + (struct:Begin0 Begin08.1 Begin0? Begin0-expr0 Begin0-exprs) + (let-values (((struct:_7 make-_7 ?_8 -ref_8 -set!_8) + (let-values () (let-values () (make-struct-type 'Begin0 #f 2 0 #f null #f #f '(0 1) #f 'Begin0))))) + (values + struct:_7 + make-_7 + ?_8 + (make-struct-field-accessor -ref_8 0 'expr0) + (make-struct-field-accessor -ref_8 1 'exprs)))) + (define-values + (struct:App App9.1 App? App-lam App-args) + (let-values (((struct:_8 make-_8 ?_9 -ref_9 -set!_9) + (let-values () (let-values () (make-struct-type 'App #f 2 0 #f null #f #f '(0 1) #f 'App))))) + (values + struct:_8 + make-_8 + ?_9 + (make-struct-field-accessor -ref_9 0 'lam) + (make-struct-field-accessor -ref_9 1 'args)))) + (define-values + (struct:Lambda Lambda10.1 Lambda? Lambda-formals Lambda-exprs Lambda-unchecked?) + (let-values (((struct:_9 make-_9 ?_10 -ref_10 -set!_10) + (let-values () (let-values () (make-struct-type 'Lambda #f 3 0 #f null #f #f '(0 1 2) #f 'Lambda))))) + (values + struct:_9 + make-_9 + ?_10 + (make-struct-field-accessor -ref_10 0 'formals) + (make-struct-field-accessor -ref_10 1 'exprs) + (make-struct-field-accessor -ref_10 2 'unchecked?)))) + (define-values + (struct:CaseLambda CaseLambda11.1 CaseLambda? CaseLambda-clauses) + (let-values (((struct:_10 make-_10 ?_11 -ref_11 -set!_11) + (let-values () + (let-values () (make-struct-type 'CaseLambda #f 1 0 #f null #f #f '(0) #f 'CaseLambda))))) + (values struct:_10 make-_10 ?_11 (make-struct-field-accessor -ref_11 0 'clauses)))) + (define-values + (struct:If If12.1 If? If-pred If-t-branch If-f-branch) + (let-values (((struct:_11 make-_11 ?_12 -ref_12 -set!_12) + (let-values () (let-values () (make-struct-type 'If #f 3 0 #f null #f #f '(0 1 2) #f 'If))))) + (values + struct:_11 + make-_11 + ?_12 + (make-struct-field-accessor -ref_12 0 'pred) + (make-struct-field-accessor -ref_12 1 't-branch) + (make-struct-field-accessor -ref_12 2 'f-branch)))) + (define-values + (struct:LetValues LetValues13.1 LetValues? LetValues-bindings LetValues-body) + (let-values (((struct:_12 make-_12 ?_13 -ref_13 -set!_13) + (let-values () + (let-values () (make-struct-type 'LetValues #f 2 0 #f null #f #f '(0 1) #f 'LetValues))))) + (values + struct:_12 + make-_12 + ?_13 + (make-struct-field-accessor -ref_13 0 'bindings) + (make-struct-field-accessor -ref_13 1 'body)))) + (define-values + (struct:Set! Set!14.1 Set!? Set!-id Set!-expr) + (let-values (((struct:_13 make-_13 ?_14 -ref_14 -set!_14) + (let-values () (let-values () (make-struct-type 'Set! #f 2 0 #f null #f #f '(0 1) #f 'Set!))))) + (values + struct:_13 + make-_13 + ?_14 + (make-struct-field-accessor -ref_14 0 'id) + (make-struct-field-accessor -ref_14 1 'expr)))) + (define-values + (struct:WithContinuationMark + WithContinuationMark15.1 + WithContinuationMark? + WithContinuationMark-key + WithContinuationMark-value + WithContinuationMark-result) + (let-values (((struct:_14 make-_14 ?_15 -ref_15 -set!_15) + (let-values () + (let-values () + (make-struct-type 'WithContinuationMark #f 3 0 #f null #f #f '(0 1 2) #f 'WithContinuationMark))))) + (values + struct:_14 + make-_14 + ?_15 + (make-struct-field-accessor -ref_15 0 'key) + (make-struct-field-accessor -ref_15 1 'value) + (make-struct-field-accessor -ref_15 2 'result)))) + (define-values + (struct:VarRef VarRef16.1 VarRef? VarRef-id) + (let-values (((struct:_15 make-_15 ?_16 -ref_16 -set!_16) + (let-values () (let-values () (make-struct-type 'VarRef #f 1 0 #f null #f #f '(0) #f 'VarRef))))) + (values struct:_15 make-_15 ?_16 (make-struct-field-accessor -ref_16 0 'id)))) + (define-values + (struct:JSRequire JSRequire17.1 JSRequire? JSRequire-alias JSRequire-path JSRequire-mode) + (let-values (((struct:_16 make-_16 ?_17 -ref_17 -set!_17) + (let-values () + (let-values () (make-struct-type 'JSRequire #f 3 0 #f null #f #f '(0 1 2) #f 'JSRequire))))) + (values + struct:_16 + make-_16 + ?_17 + (make-struct-field-accessor -ref_17 0 'alias) + (make-struct-field-accessor -ref_17 1 'path) + (make-struct-field-accessor -ref_17 2 'mode)))) + (define-values + (struct:SimpleProvide SimpleProvide18.1 SimpleProvide? SimpleProvide-id) + (let-values (((struct:_17 make-_17 ?_18 -ref_18 -set!_18) + (let-values () + (let-values () (make-struct-type 'SimpleProvide #f 1 0 #f null #f #f '(0) #f 'SimpleProvide))))) + (values struct:_17 make-_17 ?_18 (make-struct-field-accessor -ref_18 0 'id)))) + (define-values + (struct:RenamedProvide RenamedProvide19.1 RenamedProvide? RenamedProvide-local-id RenamedProvide-exported-id) + (let-values (((struct:_18 make-_18 ?_19 -ref_19 -set!_19) + (let-values () + (let-values () (make-struct-type 'RenamedProvide #f 2 0 #f null #f #f '(0 1) #f 'RenamedProvide))))) + (values + struct:_18 + make-_18 + ?_19 + (make-struct-field-accessor -ref_19 0 'local-id) + (make-struct-field-accessor -ref_19 1 'exported-id)))) + (define-values + (Ident?) + (lambda (e_1) + (begin + (let-values (((or-part_54) (ImportedIdent? e_1))) + (if or-part_54 + or-part_54 + (let-values (((or-part_55) (TopLevelIdent? e_1))) + (if or-part_55 + or-part_55 + (let-values (((or-part_56) (LinkletImportIdent? e_1))) + (if or-part_56 or-part_56 (LocalIdent? e_1)))))))))) + (define-values + (TopLevelForm?) + (lambda (e_2) + (begin + (let-values (((or-part_57) (Expr? e_2))) + (if or-part_57 + or-part_57 + (let-values (((or-part_58) (DefineValues? e_2))) (if or-part_58 or-part_58 (JSRequire? e_2)))))))) + (define-values (Begin?) (lambda (e_3) (begin (if (list? e_3) (andmap2 TopLevelForm? e_3) #f)))) + (define-values + (Expr?) + (lambda (e_4) + (begin + (let-values (((or-part_59) (Ident? e_4))) + (if or-part_59 + or-part_59 + (let-values (((or-part_60) (VarRef? e_4))) + (if or-part_60 + or-part_60 + (let-values (((or-part_61) (Quote? e_4))) + (if or-part_61 + or-part_61 + (let-values (((or-part_62) (Begin? e_4))) + (if or-part_62 + or-part_62 + (let-values (((or-part_63) (Begin0? e_4))) + (if or-part_63 + or-part_63 + (let-values (((or-part_64) (App? e_4))) + (if or-part_64 + or-part_64 + (let-values (((or-part_65) (Lambda? e_4))) + (if or-part_65 + or-part_65 + (let-values (((or-part_66) (CaseLambda? e_4))) + (if or-part_66 + or-part_66 + (let-values (((or-part_67) (If? e_4))) + (if or-part_67 + or-part_67 + (let-values (((or-part_68) (LetValues? e_4))) + (if or-part_68 + or-part_68 + (let-values (((or-part_69) (Set!? e_4))) + (if or-part_69 + or-part_69 + (WithContinuationMark? e_4)))))))))))))))))))))))))) + (define-values + (lambda-arity) + (lambda (f_30) + (begin + (let-values (((frmls_0) (Lambda-formals f_30))) + (if (symbol? frmls_0) + (let-values () (arity-at-least 0)) + (if (list? frmls_0) + (let-values () (length frmls_0)) + (if (pair? frmls_0) (let-values () (arity-at-least (length (car frmls_0)))) (void)))))))) + (define-values (variadic-lambda?) (lambda (lam_0) (begin (not (list? (Lambda-formals lam_0)))))) + (define-values + (hash-union) + (lambda (h1_0 h2_0) + (begin + (let-values (((ht_6) h2_0)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_6))) + ((letrec-values (((for-loop_1) + (lambda (res_0 i_42) + (begin + 'for-loop + (if i_42 + (let-values (((k_0 v_45) (hash-iterate-key+value ht_6 i_42))) + (let-values (((res_1) + (let-values (((res_2) res_0)) + (let-values (((res_3) + (let-values () + (if (hash-has-key? res_2 k_0) + (error 'hash-union) + (hash-set res_2 k_0 v_45))))) + (values res_3))))) + (if (not #f) (for-loop_1 res_1 (hash-iterate-next ht_6 i_42)) res_1))) + res_0))))) + for-loop_1) + h1_0 + (hash-iterate-first ht_6))))))) + (define-values + (formals->absyn) + (lambda (formals_0) + (begin + (if (let-values (((or-part_70) (symbol? formals_0))) (if or-part_70 or-part_70 (list? formals_0))) + (let-values () formals_0) + (if (pair? formals_0) + (let-values () + ((letrec-values (((loop_57) + (lambda (rev-elms_0 rem_0) + (begin + 'loop + (if (pair? rem_0) + (loop_57 (cons (car rem_0) rev-elms_0) (cdr rem_0)) + (cons (reverse$1 rev-elms_0) rem_0)))))) + loop_57) + '() + formals_0)) + (void)))))) + (define-values + (formals->bindings) + (lambda (formals_1) + (begin + (let-values (((get-formals_0) + (lambda (formals_2) + (begin + 'get-formals + (if (symbol? formals_2) + (let-values () (list formals_2)) + (if (list? formals_2) + (let-values () formals_2) + (if (pair? formals_2) + (let-values () + ((letrec-values (((loop_58) + (lambda (rev-elms_1 rem_1) + (begin + 'loop + (if (pair? rem_1) + (loop_58 (cons (car rem_1) rev-elms_1) (cdr rem_1)) + (cons rem_1 (reverse$1 rev-elms_1))))))) + loop_58) + '() + formals_2)) + (void)))))))) + (let-values (((pos->vals_3 pos-pre-inc_1 pos-next_4 init_4 pos-cont?_4 val-cont?_3 all-cont?_3) + (make-sequence '(i) (get-formals_0 formals_1)))) + (begin + (void) + ((letrec-values (((for-loop_2) + (lambda (table_0 pos_11) + (begin + 'for-loop + (if (if pos-cont?_4 (pos-cont?_4 pos_11) #t) + (let-values (((i_43 all-cont?/pos_1) + (let-values (((i_44) (pos->vals_3 pos_11))) + (values + i_44 + (if all-cont?_3 (lambda (pos_12) (all-cont?_3 pos_12 i_44)) #f)))) + ((pos_13) (if pos-pre-inc_1 (pos-pre-inc_1 pos_11) pos_11))) + (if (if val-cont?_3 (val-cont?_3 i_43) #t) + (let-values (((table_1) + (let-values (((table_2) table_0)) + (let-values (((table_3) + (let-values () + (let-values (((key_3 val_0) + (let-values () + (values i_43 'lexical)))) + (hash-set table_2 key_3 val_0))))) + (values table_3))))) + (if (if (if all-cont?/pos_1 (all-cont?/pos_1 pos_13) #t) (not #f) #f) + (for-loop_2 table_1 (pos-next_4 pos_13)) + table_1)) + table_0)) + table_0))))) + for-loop_2) + '#hash() + init_4))))))) + (define-values + (to-absyn) + (lambda (v_46 bindings_0) + (begin + (let-values (((t_1) + (let-values (((t_2) + (lambda (v3_0 b2_4) + (begin + 't + (let-values (((v_47) v3_0)) + (let-values (((b_9) (if (eq? b2_4 unsafe-undefined) bindings_0 b2_4))) + (let-values () (to-absyn v_47 b_9)))))))) + (case-lambda ((v_48) (begin 't (t_2 v_48 unsafe-undefined))) ((v_49 b2_5) (t_2 v_49 b2_5)))))) + (let-values (((v_50) v_46)) + (let-values (((hd_0) (let-values (((p_17) v_50)) (if (pair? p_17) (car p_17) #f)))) + (let-values () + (let-values (((alt_4) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_5) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_6) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_7) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_8) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_9) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_10) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_11) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_12) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_13) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_14) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_15) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_16) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_17) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_18) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_19) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_20) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_21) + (lambda () + (begin + 'alt + (let-values () + (let-values () + (let-values () + (let-values () + (begin + (displayln + "unsupported form =>") + (displayln + v_46) + (error + 'linklet-expand)))))))))) + (if (let-values (((p_18) + v_50)) + (if (pair? + p_18) + #t + #f)) + (let-values (((rator_0 + rands_0) + (let-values (((p_19) + v_50)) + (let-values (((rator_1) + (let-values (((a_31) + (car + p_19))) + a_31)) + ((rands_1) + (let-values (((d_4) + (cdr + p_19))) + d_4))) + (values + rator_1 + rands_1))))) + (let-values () + (App9.1 + (t_1 + rator_0) + (map2 + t_1 + rands_0)))) + (alt_21)))))))) + (if (if (eq? + 'with-continuation-mark + hd_0) + (let-values (((a_32) + (cdr + v_50))) + (let-values (((p_20) + a_32)) + (if (pair? + p_20) + (let-values (((a_33) + (cdr + p_20))) + (let-values (((p_21) + a_33)) + (if (pair? + p_21) + (let-values (((a_34) + (cdr + p_21))) + (let-values (((p_22) + a_34)) + (if (pair? + p_22) + (let-values (((a_35) + (cdr + p_22))) + (eq? + '() + a_35)) + #f))) + #f))) + #f))) + #f) + (let-values (((key_4 + value_0 + result_1) + (let-values (((d_5) + (cdr + v_50))) + (let-values (((p_23) + d_5)) + (let-values (((key_5) + (let-values (((a_36) + (car + p_23))) + a_36)) + ((value_1 + result_2) + (let-values (((d_6) + (cdr + p_23))) + (let-values (((p_0) + d_6)) + (let-values (((value_2) + (let-values (((a_37) + (car + p_0))) + a_37)) + ((result_3) + (let-values (((d_7) + (cdr + p_0))) + (let-values (((a_0) + (car + d_7))) + a_0)))) + (values + value_2 + result_3)))))) + (values + key_5 + value_1 + result_2)))))) + (let-values () + (WithContinuationMark15.1 + (t_1 + key_4) + (t_1 + value_0) + (t_1 + result_1)))) + (alt_20)))))))) + (if (if (eq? + 'set! + hd_0) + (let-values (((a_38) + (cdr + v_50))) + (let-values (((p_24) + a_38)) + (if (pair? + p_24) + (let-values (((a_39) + (cdr + p_24))) + (let-values (((p_25) + a_39)) + (if (pair? + p_25) + (let-values (((a_40) + (cdr + p_25))) + (eq? + '() + a_40)) + #f))) + #f))) + #f) + (let-values (((s_12 + e_5) + (let-values (((d_8) + (cdr + v_50))) + (let-values (((p_26) + d_8)) + (let-values (((s_13) + (let-values (((a_41) + (car + p_26))) + a_41)) + ((e_6) + (let-values (((d_9) + (cdr + p_26))) + (let-values (((a_42) + (car + d_9))) + a_42)))) + (values + s_13 + e_6)))))) + (let-values () + (Set!14.1 + s_12 + (t_1 + e_5)))) + (alt_19)))))))) + (let-values () + (if (symbol? + v_46) + (let-values () + (if (eq? + 'define + (hash-ref + bindings_0 + v_46 + #f)) + (let-values () + (TopLevelIdent4.1 + v_46)) + (if (number? + (hash-ref + bindings_0 + v_46 + #f)) + (let-values () + (LinkletImportIdent5.1 + v_46 + (hash-ref + bindings_0 + v_46))) + (if (eq? + 'lexical + (hash-ref + bindings_0 + v_46 + #f)) + (let-values () + (LocalIdent6.1 + v_46)) + (let-values () + (ImportedIdent3.1 + v_46 + '#%kernel + #t)))))) + (alt_18))))))))) + (if (if (eq? + '#%variable-reference + hd_0) + (let-values (((a_43) + (cdr + v_50))) + (eq? + '() + a_43)) + #f) + (let-values () + (let-values () + (VarRef16.1 + #f))) + (alt_17)))))))) + (if (if (eq? + '#%variable-reference + hd_0) + (let-values (((a_44) + (cdr + v_50))) + (let-values (((p_27) + a_44)) + (if (pair? + p_27) + (let-values (((a_45) + (cdr + p_27))) + (eq? + '() + a_45)) + #f))) + #f) + (let-values (((x_27) + (let-values (((d_10) + (cdr + v_50))) + (let-values (((a_46) + (car + d_10))) + a_46)))) + (let-values () + (VarRef16.1 + x_27))) + (alt_16)))))))) + (if (if (eq? + 'define-values + hd_0) + (let-values (((a_47) + (cdr + v_50))) + (let-values (((p_28) + a_47)) + (if (pair? + p_28) + (if (let-values (((a_48) + (car + p_28))) + (list? + a_48)) + (let-values (((a_49) + (cdr + p_28))) + (let-values (((p_29) + a_49)) + (if (pair? + p_29) + (let-values (((a_50) + (cdr + p_29))) + (eq? + '() + a_50)) + #f))) + #f) + #f))) + #f) + (let-values (((id_1 + b_10) + (let-values (((d_11) + (cdr + v_50))) + (let-values (((p_30) + d_11)) + (let-values (((id_2) + (let-values (((a_51) + (car + p_30))) + a_51)) + ((b_11) + (let-values (((d_12) + (cdr + p_30))) + (let-values (((a_52) + (car + d_12))) + a_52)))) + (values + id_2 + b_11)))))) + (let-values () + (DefineValues2.1 + id_1 + (t_1 + b_10)))) + (alt_15)))))))) + (if (if (eq? + 'define-values + hd_0) + (let-values (((a_53) + (cdr + v_50))) + (let-values (((p_31) + a_53)) + (if (pair? + p_31) + (if (let-values (((a_54) + (car + p_31))) + (let-values (((p_32) + a_54)) + (if (pair? + p_32) + (let-values (((a_55) + (cdr + p_32))) + (eq? + '() + a_55)) + #f))) + (let-values (((a_56) + (cdr + p_31))) + (let-values (((p_33) + a_56)) + (if (pair? + p_33) + (if (let-values (((a_57) + (car + p_33))) + (let-values (((p_34) + a_57)) + (if (pair? + p_34) + (if (let-values (((a_58) + (car + p_34))) + (eq? + '#%js-ffi + a_58)) + (let-values (((a_59) + (cdr + p_34))) + (let-values (((p_35) + a_59)) + (if (pair? + p_35) + (if (let-values (((a_60) + (car + p_35))) + (let-values (((p_36) + a_60)) + (if (pair? + p_36) + (if (let-values (((a_61) + (car + p_36))) + (eq? + 'quote + a_61)) + (let-values (((a_62) + (cdr + p_36))) + (let-values (((p_37) + a_62)) + (if (pair? + p_37) + (if (let-values (((a_63) + (car + p_37))) + (eq? + 'require + a_63)) + (let-values (((a_64) + (cdr + p_37))) + (eq? + '() + a_64)) + #f) + #f))) + #f) + #f))) + (let-values (((a_65) + (cdr + p_35))) + (let-values (((p_38) + a_65)) + (if (pair? + p_38) + (if (let-values (((a_66) + (car + p_38))) + (let-values (((p_39) + a_66)) + (if (pair? + p_39) + (if (let-values (((a_67) + (car + p_39))) + (eq? + 'quote + a_67)) + (let-values (((a_68) + (cdr + p_39))) + (let-values (((p_40) + a_68)) + (if (pair? + p_40) + (if (let-values (((a_69) + (car + p_40))) + (eq? + '* + a_69)) + (let-values (((a_70) + (cdr + p_40))) + (eq? + '() + a_70)) + #f) + #f))) + #f) + #f))) + (let-values (((a_71) + (cdr + p_38))) + (let-values (((p_41) + a_71)) + (if (pair? + p_41) + (if (let-values (((a_72) + (car + p_41))) + (let-values (((p_42) + a_72)) + (if (pair? + p_42) + (if (let-values (((a_73) + (car + p_42))) + (eq? + 'quote + a_73)) + (let-values (((a_74) + (cdr + p_42))) + (let-values (((p_43) + a_74)) + (if (pair? + p_43) + (let-values (((a_75) + (cdr + p_43))) + (eq? + '() + a_75)) + #f))) + #f) + #f))) + (let-values (((a_76) + (cdr + p_41))) + (eq? + '() + a_76)) + #f) + #f))) + #f) + #f))) + #f) + #f))) + #f) + #f))) + (let-values (((a_77) + (cdr + p_33))) + (eq? + '() + a_77)) + #f) + #f))) + #f) + #f))) + #f) + (let-values (((name_8 + mod_0) + (let-values (((d_13) + (cdr + v_50))) + (let-values (((p_44) + d_13)) + (let-values (((name_9) + (let-values (((a_78) + (car + p_44))) + (let-values (((a_79) + (car + a_78))) + a_79))) + ((mod_1) + (let-values (((d_14) + (cdr + p_44))) + (let-values (((a_80) + (car + d_14))) + (let-values (((d_15) + (cdr + a_80))) + (let-values (((d_16) + (cdr + d_15))) + (let-values (((d_17) + (cdr + d_16))) + (let-values (((a_81) + (car + d_17))) + (let-values (((d_18) + (cdr + a_81))) + (let-values (((a_82) + (car + d_18))) + a_82)))))))))) + (values + name_9 + mod_1)))))) + (let-values () + (JSRequire17.1 + name_8 + mod_0 + '*))) + (alt_14)))))))) + (if (if (eq? + 'define-values + hd_0) + (let-values (((a_83) + (cdr + v_50))) + (let-values (((p_45) + a_83)) + (if (pair? + p_45) + (if (let-values (((a_84) + (car + p_45))) + (let-values (((p_46) + a_84)) + (if (pair? + p_46) + (let-values (((a_85) + (cdr + p_46))) + (eq? + '() + a_85)) + #f))) + (let-values (((a_86) + (cdr + p_45))) + (let-values (((p_47) + a_86)) + (if (pair? + p_47) + (if (let-values (((a_87) + (car + p_47))) + (let-values (((p_48) + a_87)) + (if (pair? + p_48) + (if (let-values (((a_88) + (car + p_48))) + (eq? + '#%js-ffi + a_88)) + (let-values (((a_89) + (cdr + p_48))) + (let-values (((p_49) + a_89)) + (if (pair? + p_49) + (if (let-values (((a_90) + (car + p_49))) + (let-values (((p_50) + a_90)) + (if (pair? + p_50) + (if (let-values (((a_91) + (car + p_50))) + (eq? + 'quote + a_91)) + (let-values (((a_92) + (cdr + p_50))) + (let-values (((p_51) + a_92)) + (if (pair? + p_51) + (if (let-values (((a_93) + (car + p_51))) + (eq? + 'require + a_93)) + (let-values (((a_94) + (cdr + p_51))) + (eq? + '() + a_94)) + #f) + #f))) + #f) + #f))) + (let-values (((a_95) + (cdr + p_49))) + (let-values (((p_52) + a_95)) + (if (pair? + p_52) + (if (let-values (((a_96) + (car + p_52))) + (let-values (((p_53) + a_96)) + (if (pair? + p_53) + (if (let-values (((a_97) + (car + p_53))) + (eq? + 'quote + a_97)) + (let-values (((a_98) + (cdr + p_53))) + (let-values (((p_54) + a_98)) + (if (pair? + p_54) + (let-values (((a_99) + (cdr + p_54))) + (eq? + '() + a_99)) + #f))) + #f) + #f))) + (let-values (((a_100) + (cdr + p_52))) + (eq? + '() + a_100)) + #f) + #f))) + #f) + #f))) + #f) + #f))) + (let-values (((a_101) + (cdr + p_47))) + (eq? + '() + a_101)) + #f) + #f))) + #f) + #f))) + #f) + (let-values (((name_10 + mod_2) + (let-values (((d_19) + (cdr + v_50))) + (let-values (((p_55) + d_19)) + (let-values (((name_11) + (let-values (((a_102) + (car + p_55))) + (let-values (((a_103) + (car + a_102))) + a_103))) + ((mod_3) + (let-values (((d_20) + (cdr + p_55))) + (let-values (((a_104) + (car + d_20))) + (let-values (((d_21) + (cdr + a_104))) + (let-values (((d_22) + (cdr + d_21))) + (let-values (((a_105) + (car + d_22))) + (let-values (((d_23) + (cdr + a_105))) + (let-values (((a_106) + (car + d_23))) + a_106))))))))) + (values + name_11 + mod_3)))))) + (let-values () + (JSRequire17.1 + name_10 + mod_2 + 'default))) + (alt_13)))))))) + (if (if (eq? + 'lambda + hd_0) + (let-values (((a_107) + (cdr + v_50))) + (let-values (((p_56) + a_107)) + (if (pair? + p_56) + (let-values (((a_108) + (cdr + p_56))) + (let-values (((p_57) + a_108)) + (if (pair? + p_57) + (let-values (((a_109) + (cdr + p_57))) + (eq? + '() + a_109)) + #f))) + #f))) + #f) + (let-values (((formals_3 + body_0) + (let-values (((d_24) + (cdr + v_50))) + (let-values (((p_58) + d_24)) + (let-values (((formals_4) + (let-values (((a_110) + (car + p_58))) + a_110)) + ((body_1) + (let-values (((d_25) + (cdr + p_58))) + (let-values (((a_111) + (car + d_25))) + a_111)))) + (values + formals_4 + body_1)))))) + (let-values () + (let-values (((fabsyn_0) + (formals->absyn + formals_3))) + (Lambda10.1 + fabsyn_0 + (list + (t_1 + body_0 + (hash-union + bindings_0 + (formals->bindings + formals_3)))) + #f)))) + (alt_12)))))))) + (if (if (eq? + 'case-lambda + hd_0) + #t + #f) + (let-values (((clauses_0) + (let-values (((d_26) + (cdr + v_50))) + d_26))) + (let-values () + (CaseLambda11.1 + (map2 + (lambda (c_7) + (let-values (((v_51) + c_7)) + (let-values () + (let-values (((alt_22) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_51))))) + (if (let-values (((p_59) + v_51)) + (if (pair? + p_59) + (let-values (((a_112) + (cdr + p_59))) + (let-values (((p_60) + a_112)) + (if (pair? + p_60) + (let-values (((a_113) + (cdr + p_60))) + (eq? + '() + a_113)) + #f))) + #f)) + (let-values (((formals_5 + body_2) + (let-values (((p_61) + v_51)) + (let-values (((formals_6) + (let-values (((a_114) + (car + p_61))) + a_114)) + ((body_3) + (let-values (((d_27) + (cdr + p_61))) + (let-values (((a_115) + (car + d_27))) + a_115)))) + (values + formals_6 + body_3))))) + (let-values () + (Lambda10.1 + (formals->absyn + formals_5) + (list + (t_1 + body_2 + (hash-union + bindings_0 + (formals->bindings + formals_5)))) + #f))) + (alt_22)))))) + clauses_0)))) + (alt_11)))))))) + (if (if (eq? + 'letrec-values + hd_0) + (let-values (((a_116) + (cdr + v_50))) + (let-values (((p_62) + a_116)) + (if (pair? + p_62) + (if (let-values (((a_117) + (car + p_62))) + (if (list? + a_117) + (let-values (((lst_8) + a_117)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_8))) + ((letrec-values (((for-loop_3) + (lambda (result_4 + lst_9) + (begin + 'for-loop + (if (pair? + lst_9) + (let-values (((v_52) + (unsafe-car + lst_9)) + ((rest_1) + (unsafe-cdr + lst_9))) + (let-values (((result_5) + (let-values () + (let-values (((result_6) + (let-values () + (let-values () + (let-values (((p_63) + v_52)) + (if (pair? + p_63) + (let-values (((a_118) + (cdr + p_63))) + (let-values (((p_64) + a_118)) + (if (pair? + p_64) + (let-values (((a_119) + (cdr + p_64))) + (eq? + '() + a_119)) + #f))) + #f)))))) + (values + result_6))))) + (if (if (not + ((lambda x_28 + (not + result_5)) + v_52)) + (not + #f) + #f) + (for-loop_3 + result_5 + rest_1) + result_5))) + result_4))))) + for-loop_3) + #t + lst_8))) + #f)) + (let-values (((a_120) + (cdr + p_62))) + (let-values (((p_65) + a_120)) + (if (pair? + p_65) + (let-values (((a_121) + (cdr + p_65))) + (eq? + '() + a_121)) + #f))) + #f) + #f))) + #f) + (let-values (((xs_5 + es_0 + b_12) + (let-values (((d_28) + (cdr + v_50))) + (let-values (((p_66) + d_28)) + (let-values (((xs_6 + es_1) + (let-values (((a_122) + (car + p_66))) + (let-values (((xs_7 + es_2) + (let-values (((lst_10) + a_122)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_10))) + ((letrec-values (((for-loop_4) + (lambda (xs_8 + es_3 + lst_11) + (begin + 'for-loop + (if (pair? + lst_11) + (let-values (((v_53) + (unsafe-car + lst_11)) + ((rest_2) + (unsafe-cdr + lst_11))) + (let-values (((xs_9 + es_4) + (let-values (((xs_10) + xs_8) + ((es_5) + es_3)) + (let-values (((xs_11 + es_6) + (let-values () + (let-values (((xs4_0 + es5_0) + (let-values () + (let-values (((p_67) + v_53)) + (let-values (((xs_12) + (let-values (((a_123) + (car + p_67))) + a_123)) + ((es_7) + (let-values (((d_29) + (cdr + p_67))) + (let-values (((a_124) + (car + d_29))) + a_124)))) + (values + xs_12 + es_7)))))) + (values + (cons + xs4_0 + xs_10) + (cons + es5_0 + es_5)))))) + (values + xs_11 + es_6))))) + (if (not + #f) + (for-loop_4 + xs_9 + es_4 + rest_2) + (values + xs_9 + es_4)))) + (values + xs_8 + es_3)))))) + for-loop_4) + null + null + lst_10))))) + (values + (reverse$1 + xs_7) + (reverse$1 + es_2))))) + ((b_13) + (let-values (((d_30) + (cdr + p_66))) + (let-values (((a_125) + (car + d_30))) + a_125)))) + (values + xs_6 + es_1 + b_13)))))) + (let-values () + (let-values (((bindings*_0) + (hash-union + bindings_0 + (let-values (((pos->vals_4 + pos-pre-inc_2 + pos-next_5 + init_5 + pos-cont?_5 + val-cont?_4 + all-cont?_4) + (make-sequence + '(x) + xs_5))) + (begin + (void) + ((letrec-values (((for-loop_5) + (lambda (table_4 + pos_14) + (begin + 'for-loop + (if (if pos-cont?_5 + (pos-cont?_5 + pos_14) + #t) + (let-values (((x_29 + all-cont?/pos_2) + (let-values (((x_30) + (pos->vals_4 + pos_14))) + (values + x_30 + (if all-cont?_4 + (lambda (pos_15) + (all-cont?_4 + pos_15 + x_30)) + #f)))) + ((pos_16) + (if pos-pre-inc_2 + (pos-pre-inc_2 + pos_14) + pos_14))) + (if (if val-cont?_4 + (val-cont?_4 + x_29) + #t) + (let-values (((table_5) + (let-values (((table_6) + table_4)) + (let-values (((pos->vals_5 + pos-pre-inc_3 + pos-next_6 + init_6 + pos-cont?_6 + val-cont?_5 + all-cont?_5) + (make-sequence + '(i) + x_29))) + (begin + (void) + ((letrec-values (((for-loop_6) + (lambda (table_7 + pos_17) + (begin + 'for-loop + (if (if pos-cont?_6 + (pos-cont?_6 + pos_17) + #t) + (let-values (((i_45 + all-cont?/pos_3) + (let-values (((i_46) + (pos->vals_5 + pos_17))) + (values + i_46 + (if all-cont?_5 + (lambda (pos_18) + (all-cont?_5 + pos_18 + i_46)) + #f)))) + ((pos_19) + (if pos-pre-inc_3 + (pos-pre-inc_3 + pos_17) + pos_17))) + (if (if val-cont?_5 + (val-cont?_5 + i_45) + #t) + (let-values (((table_8) + (let-values (((table_9) + table_7)) + (let-values (((table_10) + table_9)) + (let-values (((table_11) + (let-values () + (let-values (((key_6 + val_1) + (let-values () + (values + i_45 + 'lexical)))) + (hash-set + table_10 + key_6 + val_1))))) + (values + table_11)))))) + (if (if (if all-cont?/pos_3 + (all-cont?/pos_3 + pos_19) + #t) + (not + #f) + #f) + (for-loop_6 + table_8 + (pos-next_6 + pos_19)) + table_8)) + table_7)) + table_7))))) + for-loop_6) + table_6 + init_6)))))) + (if (if (if all-cont?/pos_2 + (all-cont?/pos_2 + pos_16) + #t) + (not + #f) + #f) + (for-loop_5 + table_5 + (pos-next_5 + pos_16)) + table_5)) + table_4)) + table_4))))) + for-loop_5) + '#hash() + init_5)))))) + (LetValues13.1 + (reverse$1 + (let-values (((pos->vals_6 + pos-pre-inc_4 + pos-next_7 + init_7 + pos-cont?_7 + val-cont?_6 + all-cont?_6) + (make-sequence + '(x) + xs_5)) + ((pos->vals_7 + pos-pre-inc_5 + pos-next_8 + init_8 + pos-cont?_8 + val-cont?_7 + all-cont?_7) + (make-sequence + '(e) + es_0))) + (begin + (void) + (void) + ((letrec-values (((for-loop_7) + (lambda (fold-var_0 + pos_20 + pos_21) + (begin + 'for-loop + (if (if (if pos-cont?_7 + (pos-cont?_7 + pos_20) + #t) + (if pos-cont?_8 + (pos-cont?_8 + pos_21) + #t) + #f) + (let-values (((x_18 + all-cont?/pos_4) + (let-values (((x_31) + (pos->vals_6 + pos_20))) + (values + x_31 + (if all-cont?_6 + (lambda (pos_22) + (all-cont?_6 + pos_22 + x_31)) + #f)))) + ((pos_23) + (if pos-pre-inc_4 + (pos-pre-inc_4 + pos_20) + pos_20)) + ((e_7 + all-cont?/pos_5) + (let-values (((e_8) + (pos->vals_7 + pos_21))) + (values + e_8 + (if all-cont?_7 + (lambda (pos_24) + (all-cont?_7 + pos_24 + e_8)) + #f)))) + ((pos_25) + (if pos-pre-inc_5 + (pos-pre-inc_5 + pos_21) + pos_21))) + (if (if (if val-cont?_6 + (val-cont?_6 + x_18) + #t) + (if val-cont?_7 + (val-cont?_7 + e_7) + #t) + #f) + (let-values (((fold-var_1) + (let-values (((fold-var_2) + fold-var_0)) + (let-values (((fold-var_3) + (let-values () + (cons + (let-values () + (cons + x_18 + (t_1 + e_7 + bindings*_0))) + fold-var_2)))) + (values + fold-var_3))))) + (if (if (if all-cont?/pos_4 + (all-cont?/pos_4 + pos_23) + #t) + (if (if all-cont?/pos_5 + (all-cont?/pos_5 + pos_25) + #t) + (not + #f) + #f) + #f) + (for-loop_7 + fold-var_1 + (pos-next_7 + pos_23) + (pos-next_8 + pos_25)) + fold-var_1)) + fold-var_0)) + fold-var_0))))) + for-loop_7) + null + init_7 + init_8)))) + (list + (t_1 + b_12 + bindings*_0)))))) + (alt_10)))))))) + (if (if (eq? + 'let-values + hd_0) + (let-values (((a_126) + (cdr + v_50))) + (let-values (((p_68) + a_126)) + (if (pair? + p_68) + (if (let-values (((a_127) + (car + p_68))) + (if (list? + a_127) + (let-values (((lst_12) + a_127)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_12))) + ((letrec-values (((for-loop_8) + (lambda (result_7 + lst_13) + (begin + 'for-loop + (if (pair? + lst_13) + (let-values (((v_54) + (unsafe-car + lst_13)) + ((rest_3) + (unsafe-cdr + lst_13))) + (let-values (((result_8) + (let-values () + (let-values (((result_9) + (let-values () + (let-values () + (let-values (((p_69) + v_54)) + (if (pair? + p_69) + (let-values (((a_128) + (cdr + p_69))) + (let-values (((p_70) + a_128)) + (if (pair? + p_70) + (let-values (((a_129) + (cdr + p_70))) + (eq? + '() + a_129)) + #f))) + #f)))))) + (values + result_9))))) + (if (if (not + ((lambda x_32 + (not + result_8)) + v_54)) + (not + #f) + #f) + (for-loop_8 + result_8 + rest_3) + result_8))) + result_7))))) + for-loop_8) + #t + lst_12))) + #f)) + (let-values (((a_130) + (cdr + p_68))) + (let-values (((p_71) + a_130)) + (if (pair? + p_71) + (let-values (((a_131) + (cdr + p_71))) + (eq? + '() + a_131)) + #f))) + #f) + #f))) + #f) + (let-values (((xs_13 + es_8 + b_14) + (let-values (((d_31) + (cdr + v_50))) + (let-values (((p_72) + d_31)) + (let-values (((xs_14 + es_9) + (let-values (((a_132) + (car + p_72))) + (let-values (((xs_15 + es_10) + (let-values (((lst_14) + a_132)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list + lst_14))) + ((letrec-values (((for-loop_9) + (lambda (xs_16 + es_11 + lst_15) + (begin + 'for-loop + (if (pair? + lst_15) + (let-values (((v_55) + (unsafe-car + lst_15)) + ((rest_4) + (unsafe-cdr + lst_15))) + (let-values (((xs_17 + es_12) + (let-values (((xs_18) + xs_16) + ((es_13) + es_11)) + (let-values (((xs_19 + es_14) + (let-values () + (let-values (((xs10_0 + es11_0) + (let-values () + (let-values (((p_73) + v_55)) + (let-values (((xs_20) + (let-values (((a_133) + (car + p_73))) + a_133)) + ((es_15) + (let-values (((d_32) + (cdr + p_73))) + (let-values (((a_134) + (car + d_32))) + a_134)))) + (values + xs_20 + es_15)))))) + (values + (cons + xs10_0 + xs_18) + (cons + es11_0 + es_13)))))) + (values + xs_19 + es_14))))) + (if (not + #f) + (for-loop_9 + xs_17 + es_12 + rest_4) + (values + xs_17 + es_12)))) + (values + xs_16 + es_11)))))) + for-loop_9) + null + null + lst_14))))) + (values + (reverse$1 + xs_15) + (reverse$1 + es_10))))) + ((b_15) + (let-values (((d_33) + (cdr + p_72))) + (let-values (((a_135) + (car + d_33))) + a_135)))) + (values + xs_14 + es_9 + b_15)))))) + (let-values () + (let-values (((bindings*_1) + (hash-union + bindings_0 + (let-values (((pos->vals_8 + pos-pre-inc_6 + pos-next_9 + init_9 + pos-cont?_9 + val-cont?_8 + all-cont?_8) + (make-sequence + '(x) + xs_13))) + (begin + (void) + ((letrec-values (((for-loop_10) + (lambda (table_12 + pos_26) + (begin + 'for-loop + (if (if pos-cont?_9 + (pos-cont?_9 + pos_26) + #t) + (let-values (((x_33 + all-cont?/pos_6) + (let-values (((x_34) + (pos->vals_8 + pos_26))) + (values + x_34 + (if all-cont?_8 + (lambda (pos_27) + (all-cont?_8 + pos_27 + x_34)) + #f)))) + ((pos_28) + (if pos-pre-inc_6 + (pos-pre-inc_6 + pos_26) + pos_26))) + (if (if val-cont?_8 + (val-cont?_8 + x_33) + #t) + (let-values (((table_13) + (let-values (((table_14) + table_12)) + (let-values (((pos->vals_9 + pos-pre-inc_7 + pos-next_10 + init_10 + pos-cont?_10 + val-cont?_9 + all-cont?_9) + (make-sequence + '(i) + x_33))) + (begin + (void) + ((letrec-values (((for-loop_11) + (lambda (table_15 + pos_29) + (begin + 'for-loop + (if (if pos-cont?_10 + (pos-cont?_10 + pos_29) + #t) + (let-values (((i_47 + all-cont?/pos_7) + (let-values (((i_48) + (pos->vals_9 + pos_29))) + (values + i_48 + (if all-cont?_9 + (lambda (pos_30) + (all-cont?_9 + pos_30 + i_48)) + #f)))) + ((pos_31) + (if pos-pre-inc_7 + (pos-pre-inc_7 + pos_29) + pos_29))) + (if (if val-cont?_9 + (val-cont?_9 + i_47) + #t) + (let-values (((table_16) + (let-values (((table_17) + table_15)) + (let-values (((table_18) + table_17)) + (let-values (((table_19) + (let-values () + (let-values (((key_1 + val_2) + (let-values () + (values + i_47 + 'lexical)))) + (hash-set + table_18 + key_1 + val_2))))) + (values + table_19)))))) + (if (if (if all-cont?/pos_7 + (all-cont?/pos_7 + pos_31) + #t) + (not + #f) + #f) + (for-loop_11 + table_16 + (pos-next_10 + pos_31)) + table_16)) + table_15)) + table_15))))) + for-loop_11) + table_14 + init_10)))))) + (if (if (if all-cont?/pos_6 + (all-cont?/pos_6 + pos_28) + #t) + (not + #f) + #f) + (for-loop_10 + table_13 + (pos-next_9 + pos_28)) + table_13)) + table_12)) + table_12))))) + for-loop_10) + '#hash() + init_9)))))) + (LetValues13.1 + (reverse$1 + (let-values (((pos->vals_10 + pos-pre-inc_8 + pos-next_11 + init_11 + pos-cont?_11 + val-cont?_10 + all-cont?_10) + (make-sequence + '(x) + xs_13)) + ((pos->vals_11 + pos-pre-inc_9 + pos-next_12 + init_12 + pos-cont?_12 + val-cont?_11 + all-cont?_11) + (make-sequence + '(e) + es_8))) + (begin + (void) + (void) + ((letrec-values (((for-loop_12) + (lambda (fold-var_4 + pos_32 + pos_33) + (begin + 'for-loop + (if (if (if pos-cont?_11 + (pos-cont?_11 + pos_32) + #t) + (if pos-cont?_12 + (pos-cont?_12 + pos_33) + #t) + #f) + (let-values (((x_35 + all-cont?/pos_8) + (let-values (((x_36) + (pos->vals_10 + pos_32))) + (values + x_36 + (if all-cont?_10 + (lambda (pos_34) + (all-cont?_10 + pos_34 + x_36)) + #f)))) + ((pos_35) + (if pos-pre-inc_8 + (pos-pre-inc_8 + pos_32) + pos_32)) + ((e_9 + all-cont?/pos_9) + (let-values (((e_10) + (pos->vals_11 + pos_33))) + (values + e_10 + (if all-cont?_11 + (lambda (pos_36) + (all-cont?_11 + pos_36 + e_10)) + #f)))) + ((pos_37) + (if pos-pre-inc_9 + (pos-pre-inc_9 + pos_33) + pos_33))) + (if (if (if val-cont?_10 + (val-cont?_10 + x_35) + #t) + (if val-cont?_11 + (val-cont?_11 + e_9) + #t) + #f) + (let-values (((fold-var_5) + (let-values (((fold-var_6) + fold-var_4)) + (let-values (((fold-var_7) + (let-values () + (cons + (let-values () + (cons + x_35 + (t_1 + e_9))) + fold-var_6)))) + (values + fold-var_7))))) + (if (if (if all-cont?/pos_8 + (all-cont?/pos_8 + pos_35) + #t) + (if (if all-cont?/pos_9 + (all-cont?/pos_9 + pos_37) + #t) + (not + #f) + #f) + #f) + (for-loop_12 + fold-var_5 + (pos-next_11 + pos_35) + (pos-next_12 + pos_37)) + fold-var_5)) + fold-var_4)) + fold-var_4))))) + for-loop_12) + null + init_11 + init_12)))) + (list + (t_1 + b_14 + bindings*_1)))))) + (alt_9)))))))) + (if (if (eq? 'if hd_0) + (let-values (((a_136) + (cdr + v_50))) + (let-values (((p_74) + a_136)) + (if (pair? + p_74) + (let-values (((a_137) + (cdr + p_74))) + (let-values (((p_75) + a_137)) + (if (pair? + p_75) + (let-values (((a_138) + (cdr + p_75))) + (let-values (((p_76) + a_138)) + (if (pair? + p_76) + (let-values (((a_139) + (cdr + p_76))) + (eq? + '() + a_139)) + #f))) + #f))) + #f))) + #f) + (let-values (((e0_0 + e1_0 + e2_0) + (let-values (((d_34) + (cdr + v_50))) + (let-values (((p_77) + d_34)) + (let-values (((e0_1) + (let-values (((a_140) + (car + p_77))) + a_140)) + ((e1_1 + e2_1) + (let-values (((d_35) + (cdr + p_77))) + (let-values (((p_78) + d_35)) + (let-values (((e1_2) + (let-values (((a_141) + (car + p_78))) + a_141)) + ((e2_2) + (let-values (((d_36) + (cdr + p_78))) + (let-values (((a_142) + (car + d_36))) + a_142)))) + (values + e1_2 + e2_2)))))) + (values + e0_1 + e1_1 + e2_1)))))) + (let-values () + (If12.1 + (t_1 e0_0) + (t_1 e1_0) + (t_1 e2_0)))) + (alt_8)))))))) + (if (if (eq? 'begin hd_0) + (let-values (((a_143) (cdr v_50))) + (list? a_143)) + #f) + (let-values (((e_11) + (let-values (((d_37) + (cdr v_50))) + d_37))) + (let-values () (map2 t_1 e_11))) + (alt_7)))))))) + (if (if (eq? 'begin0 hd_0) + (let-values (((a_144) (cdr v_50))) + (let-values (((p_79) a_144)) + (if (pair? p_79) + (let-values (((a_145) (cdr p_79))) (list? a_145)) + #f))) + #f) + (let-values (((e0_2 e1_3) + (let-values (((d_38) (cdr v_50))) + (let-values (((p_80) d_38)) + (let-values (((e0_3) + (let-values (((a_146) + (car p_80))) + a_146)) + ((e1_4) + (let-values (((d_39) + (cdr p_80))) + d_39))) + (values e0_3 e1_4)))))) + (let-values () (Begin08.1 (t_1 e0_2) (map2 t_1 e1_3)))) + (alt_6)))))))) + (if (if (eq? 'quote hd_0) + (let-values (((a_147) (cdr v_50))) + (let-values (((p_81) a_147)) + (if (pair? p_81) (let-values (((a_148) (cdr p_81))) (eq? '() a_148)) #f))) + #f) + (let-values (((v_56) + (let-values (((d_40) (cdr v_50))) + (let-values (((a_149) (car d_40))) a_149)))) + (let-values () (Quote7.1 v_56))) + (alt_5)))))))) + (let-values () + (if (let-values (((or-part_71) (string? v_46))) + (if or-part_71 + or-part_71 + (let-values (((or-part_72) (number? v_46))) + (if or-part_72 + or-part_72 + (let-values (((or-part_73) (boolean? v_46))) (if or-part_73 or-part_73 (bytes? v_46))))))) + (let-values () (Quote7.1 v_46)) + (alt_4))))))))))) + (define-values + (parse-linklet) + (lambda (v_57 path_0) + (begin + (let-values (((v_58) v_57)) + (let-values (((hd_1) (let-values (((p_82) v_58)) (if (pair? p_82) (car p_82) #f)))) + (let-values () + (let-values (((alt_23) (lambda () (begin 'alt (error 'match "failed ~e" v_58))))) + (if (if (eq? 'linklet hd_1) + (let-values (((a_150) (cdr v_58))) + (let-values (((p_83) a_150)) + (if (pair? p_83) + (let-values (((a_151) (cdr p_83))) (let-values (((p_84) a_151)) (if (pair? p_84) #t #f))) + #f))) + #f) + (let-values (((imports_0 exports_0 body_4) + (let-values (((d_41) (cdr v_58))) + (let-values (((p_85) d_41)) + (let-values (((imports_1) (let-values (((a_152) (car p_85))) a_152)) + ((exports_1 body_5) + (let-values (((d_42) (cdr p_85))) + (let-values (((p_86) d_42)) + (let-values (((exports_2) (let-values (((a_153) (car p_86))) a_153)) + ((body_6) (let-values (((d_43) (cdr p_86))) d_43))) + (values exports_2 body_6)))))) + (values imports_1 exports_1 body_5)))))) + (let-values () + (let-values (((imps_0) + (let-values (((pos->vals_12 + pos-pre-inc_10 + pos-next_13 + init_13 + pos-cont?_13 + val-cont?_12 + all-cont?_12) + (make-sequence '(j) imports_0)) + ((start_9) 0)) + (begin + (if (void) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-naturals start_9))) + #f) + ((letrec-values (((for-loop_13) + (lambda (table_20 pos_38 pos_39) + (begin + 'for-loop + (if (if (if pos-cont?_13 (pos-cont?_13 pos_38) #t) #t #f) + (let-values (((j_3 all-cont?/pos_10) + (let-values (((j_4) (pos->vals_12 pos_38))) + (values + j_4 + (if all-cont?_12 + (lambda (pos_40) + (all-cont?_12 pos_40 j_4)) + #f)))) + ((pos_41) + (if pos-pre-inc_10 + (pos-pre-inc_10 pos_38) + pos_38)) + ((import_0) pos_39)) + (if (if (if val-cont?_12 (val-cont?_12 j_3) #t) #t #f) + (let-values (((table_21) + (let-values (((table_22) table_20)) + (let-values (((pos->vals_13 + pos-pre-inc_11 + pos-next_14 + init_14 + pos-cont?_14 + val-cont?_13 + all-cont?_13) + (make-sequence + '(i) + import_0))) + (begin + (void) + ((letrec-values (((for-loop_14) + (lambda (table_23 + pos_42) + (begin + 'for-loop + (if (if pos-cont?_14 + (pos-cont?_14 + pos_42) + #t) + (let-values (((i_49 + all-cont?/pos_11) + (let-values (((i_50) + (pos->vals_13 + pos_42))) + (values + i_50 + (if all-cont?_13 + (lambda (pos_43) + (all-cont?_13 + pos_43 + i_50)) + #f)))) + ((pos_44) + (if pos-pre-inc_11 + (pos-pre-inc_11 + pos_42) + pos_42))) + (if (if val-cont?_13 + (val-cont?_13 + i_49) + #t) + (let-values (((table_24) + (let-values (((table_25) + table_23)) + (let-values (((table_26) + table_25)) + (let-values (((table_27) + (let-values () + (let-values (((key_7 + val_3) + (let-values () + (values + i_49 + j_3)))) + (hash-set + table_26 + key_7 + val_3))))) + (values + table_27)))))) + (if (if (if all-cont?/pos_11 + (all-cont?/pos_11 + pos_44) + #t) + (not + #f) + #f) + (for-loop_14 + table_24 + (pos-next_14 + pos_44)) + table_24)) + table_23)) + table_23))))) + for-loop_14) + table_22 + init_14)))))) + (if (if (if (if all-cont?/pos_10 + (all-cont?/pos_10 pos_41) + #t) + #t + #f) + (not #f) + #f) + (for-loop_13 + table_21 + (pos-next_13 pos_41) + (+ pos_39 1)) + table_21)) + table_20)) + table_20))))) + for-loop_13) + '#hash() + init_13 + start_9))))) + (let-values (((defs_0) (make-hash))) + (begin + (let-values (((pos->vals_14 + pos-pre-inc_12 + pos-next_15 + init_15 + pos-cont?_15 + val-cont?_14 + all-cont?_14) + (make-sequence '(b) body_4))) + (begin + (void) + ((letrec-values (((for-loop_15) + (lambda (pos_45) + (begin + 'for-loop + (if (if pos-cont?_15 (pos-cont?_15 pos_45) #t) + (let-values (((b_16 all-cont?/pos_12) + (let-values (((b_17) (pos->vals_14 pos_45))) + (values + b_17 + (if all-cont?_14 + (lambda (pos_46) (all-cont?_14 pos_46 b_17)) + #f)))) + ((pos_47) + (if pos-pre-inc_12 (pos-pre-inc_12 pos_45) pos_45))) + (if (if val-cont?_14 (val-cont?_14 b_16) #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((v_59) + b_16)) + (let-values (((hd_2) + (let-values (((p_87) + v_59)) + (if (pair? + p_87) + (car + p_87) + #f)))) + (let-values () + (let-values (((alt_24) + (lambda () + (begin + 'alt + (let-values () + (let-values () + (let-values () + (let-values () + (void))))))))) + (if (if (eq? + 'define-values + hd_2) + (let-values (((a_154) + (cdr + v_59))) + (let-values (((p_88) + a_154)) + (if (pair? + p_88) + (let-values (((a_155) + (cdr + p_88))) + (let-values (((p_89) + a_155)) + (if (pair? + p_89) + (let-values (((a_156) + (cdr + p_89))) + (eq? + '() + a_156)) + #f))) + #f))) + #f) + (let-values (((is_0) + (let-values (((d_44) + (cdr + v_59))) + (let-values (((a_157) + (car + d_44))) + a_157)))) + (let-values () + (begin + (let-values (((pos->vals_15 + pos-pre-inc_13 + pos-next_16 + init_16 + pos-cont?_16 + val-cont?_15 + all-cont?_15) + (make-sequence + '(i) + is_0))) + (begin + (void) + ((letrec-values (((for-loop_16) + (lambda (pos_48) + (begin + 'for-loop + (if (if pos-cont?_16 + (pos-cont?_16 + pos_48) + #t) + (let-values (((i_51 + all-cont?/pos_13) + (let-values (((i_52) + (pos->vals_15 + pos_48))) + (values + i_52 + (if all-cont?_15 + (lambda (pos_49) + (all-cont?_15 + pos_49 + i_52)) + #f)))) + ((pos_50) + (if pos-pre-inc_13 + (pos-pre-inc_13 + pos_48) + pos_48))) + (if (if val-cont?_15 + (val-cont?_15 + i_51) + #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (hash-set! + defs_0 + i_51 + 'define)) + (values))))) + (values))))) + (if (if (if all-cont?/pos_13 + (all-cont?/pos_13 + pos_50) + #t) + (not + #f) + #f) + (for-loop_16 + (pos-next_16 + pos_50)) + (values))) + (values))) + (values)))))) + for-loop_16) + init_16))) + (void)))) + (alt_24))))))) + (values))))) + (values))))) + (if (if (if all-cont?/pos_12 (all-cont?/pos_12 pos_47) #t) + (not #f) + #f) + (for-loop_15 (pos-next_15 pos_47)) + (values))) + (values))) + (values)))))) + for-loop_15) + init_15))) + (void) + (Linklet1.1 + path_0 + imports_0 + exports_0 + (map2 (lambda (v_60) (to-absyn v_60 (hash-union imps_0 defs_0))) body_4))))))) + (alt_23))))))))) + (define-values + (improper->proper) + (lambda (l_25) + (begin + (let-values (((v_61) l_25)) + (let-values () + (let-values (((alt_13) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_14) + (lambda () + (begin + 'alt + (let-values () + (let-values () (let-values () (let-values () (cons l_25 '()))))))))) + (if (eq? '() v_61) (let-values () (let-values () '())) (alt_14)))))))) + (if (let-values (((p_90) v_61)) (if (pair? p_90) #t #f)) + (let-values (((a_158 b_18) + (let-values (((p_91) v_61)) + (let-values (((a_159) (let-values (((a_160) (car p_91))) a_160)) + ((b_19) (let-values (((d_45) (cdr p_91))) d_45))) + (values a_159 b_19))))) + (let-values () (cons a_158 (improper->proper b_18)))) + (alt_13)))))))) + (define-values (*jsident-start-letter*) "\\p{L}|\\p{Nl}|\\$|_") + (define-values + (*jsident-rest-letters*) + (string-append "\\p{L}|\\p{Nl}|\\$|_|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}" "|\u200D|\u200C")) + (define-values (*jsident-pattern*) (format "(~a)(~a)*" *jsident-start-letter* *jsident-rest-letters*)) + (define-values + (js-identifier?) + (lambda (sym_0) + (begin (let-values (((str_3) (symbol->string sym_0))) (regexp-match-exact? (pregexp *jsident-pattern*) str_3))))) + (define-values (simple-form-path) (compose simplify-path path->complete-path)) + (define-values + (~a) + (lambda args_12 + (begin + (let-values (((fmt-lst_0) (build-list (length args_12) (lambda (__4) "~a")))) + (let-values (((fmt-string_0) (apply string-append fmt-lst_0))) (apply format fmt-string_0 args_12)))))) + (define-values (length=?) (lambda (lst_16 n_18) (begin (equal? (length lst_16) n_18)))) + (define-values (append1) (lambda (lst_17 a_68) (begin (append lst_17 (list a_68))))) + (define-values + (actual-module-path) + (lambda (in-path_0) + (begin + (if (path? in-path_0) + (let-values () in-path_0) + (if (if (symbol? in-path_0) (primitive-module? in-path_0) #f) + (let-values () (build-path racketscript-runtime-dir (~a (substring (symbol->string in-path_0) 2) ".rkt"))) + (let-values () (error 'actual-module-path "~a is not a primitive module" in-path_0))))))) + (define-values (primitive-module?) (lambda (mod_4) (begin (set-member? primitive-modules mod_4)))) + (define-values + (get-major-version) + (lambda (str_4) + (begin + (let-values (((vec_7 len_1) + (let-values (((vec_8) str_4)) + (begin (check-string vec_8) (values vec_8 (unsafe-string-length vec_8)))))) + (begin + #f + ((letrec-values (((for-loop_17) + (lambda (res_4 pos_51) + (begin + 'for-loop + (if (unsafe-fx< pos_51 len_1) + (let-values (((chr_0) (string-ref vec_7 pos_51))) + (let-values () + (let-values (((next-k-proc_0) + (lambda (res_5) + (begin 'next-k-proc (for-loop_17 res_5 (unsafe-fx+ 1 pos_51)))))) + (let-values (((res_6) res_4)) + (if (eq? chr_0 '#\.) + res_6 + (let-values (((res_7) res_6)) + (let-values (((res_8) + (let-values () (+ (char->number chr_0) (* 10 res_7))))) + (next-k-proc_0 res_8)))))))) + res_4))))) + for-loop_17) + 0 + 0)))))) + (define-values + (char->number) + (lambda (chr_1) + (begin + (if (eq? chr_1 '#\0) + (let-values () 0) + (if (eq? chr_1 '#\1) + (let-values () 1) + (if (eq? chr_1 '#\2) + (let-values () 2) + (if (eq? chr_1 '#\3) + (let-values () 3) + (if (eq? chr_1 '#\4) + (let-values () 4) + (if (eq? chr_1 '#\5) + (let-values () 5) + (if (eq? chr_1 '#\6) + (let-values () 6) + (if (eq? chr_1 '#\7) + (let-values () 7) + (if (eq? chr_1 '#\8) (let-values () 8) (if (eq? chr_1 '#\9) (let-values () 9) (void)))))))))))))) + (define-values + (sequence-length) + (lambda (s_14) + (begin + (begin + (if (sequence? s_14) (void) (let-values () (raise-argument-error 'sequence-length "sequence?" s_14))) + (if (exact-nonnegative-integer? s_14) + (let-values () s_14) + (if (list? s_14) + (let-values () (length s_14)) + (if (vector? s_14) + (let-values () (vector-length s_14)) + (if (flvector? s_14) + (let-values () (flvector-length s_14)) + (if (fxvector? s_14) + (let-values () (fxvector-length s_14)) + (if (string? s_14) + (let-values () (string-length s_14)) + (if (bytes? s_14) + (let-values () (bytes-length s_14)) + (if (hash? s_14) + (let-values () (hash-count s_14)) + (let-values () + (let-values (((pos->vals_16 + pos-pre-inc_14 + pos-next_17 + init_17 + pos-cont?_17 + val-cont?_16 + all-cont?_16) + (make-sequence '(i) (in-values*-sequence s_14)))) + (begin + (void) + ((letrec-values (((for-loop_18) + (lambda (c_8 pos_52) + (begin + 'for-loop + (if (if pos-cont?_17 (pos-cont?_17 pos_52) #t) + (let-values (((i_53 all-cont?/pos_14) + (let-values (((i_54) (pos->vals_16 pos_52))) + (values + i_54 + (if all-cont?_16 + (lambda (pos_53) (all-cont?_16 pos_53 i_54)) + #f)))) + ((pos_54) + (if pos-pre-inc_14 (pos-pre-inc_14 pos_52) pos_52))) + (if (if val-cont?_16 (val-cont?_16 i_53) #t) + (let-values (((c_9) + (let-values (((c_10) c_8)) + (let-values (((c_11) + (let-values () (add1 c_10)))) + (values c_11))))) + (if (if (if all-cont?/pos_14 (all-cont?/pos_14 pos_54) #t) + (not #f) + #f) + (for-loop_18 c_9 (pos-next_17 pos_54)) + c_9)) + c_8)) + c_8))))) + for-loop_18) + 0 + init_17)))))))))))))))) + (define-values (*quoted-binding-ident-name*) '__rjs_quoted__) + (define-values + (name-in-module) + (lambda (mod_5 name_12) + (begin + (let-values (((v_62) mod_5)) + (let-values () + (let-values (((alt_25) + (lambda () + (begin + 'alt + (let-values () + (let-values () (let-values () (let-values () (error "Invalid module name"))))))))) + (if (eq? 'core v_62) + (let-values () (let-values () (string->symbol (~a (jsruntime-core-module) "." name_12)))) + (alt_25)))))))) + (define-values + (struct:ILLinklet ILLinklet1.1 ILLinklet? ILLinklet-imports ILLinklet-exports ILLinklet-body) + (let-values (((struct:_0 make-_0 ?_1 -ref_1 -set!_1) + (let-values () + (let-values () (make-struct-type 'ILLinklet #f 3 0 #f null #f #f '(0 1 2) #f 'ILLinklet))))) + (values + struct:_0 + make-_0 + ?_1 + (make-struct-field-accessor -ref_1 0 'imports) + (make-struct-field-accessor -ref_1 1 'exports) + (make-struct-field-accessor -ref_1 2 'body)))) + (define-values + (struct:ILRequire ILRequire2.1 ILRequire? ILRequire-mod ILRequire-name ILRequire-import-mode) + (let-values (((struct:_1 make-_1 ?_2 -ref_2 -set!_2) + (let-values () + (let-values () (make-struct-type 'ILRequire #f 3 0 #f null #f #f '(0 1 2) #f 'ILRequire))))) + (values + struct:_1 + make-_1 + ?_2 + (make-struct-field-accessor -ref_2 0 'mod) + (make-struct-field-accessor -ref_2 1 'name) + (make-struct-field-accessor -ref_2 2 'import-mode)))) + (define-values + (struct:IfClause IfClause3.1 IfClause? IfClause-pred IfClause-body) + (let-values (((struct:_2 make-_2 ?_3 -ref_3 -set!_3) + (let-values () (let-values () (make-struct-type 'IfClause #f 2 0 #f null #f #f '(0 1) #f 'IfClause))))) + (values + struct:_2 + make-_2 + ?_3 + (make-struct-field-accessor -ref_3 0 'pred) + (make-struct-field-accessor -ref_3 1 'body)))) + (define-values + (struct:ILCheckedFormals ILCheckedFormals4.1 ILCheckedFormals? ILCheckedFormals-formals) + (let-values (((struct:_3 make-_3 ?_4 -ref_4 -set!_4) + (let-values () + (let-values () (make-struct-type 'ILCheckedFormals #f 1 0 #f null #f #f '(0) #f 'ILCheckedFormals))))) + (values struct:_3 make-_3 ?_4 (make-struct-field-accessor -ref_4 0 'formals)))) + (define-values + (struct:ILLambda ILLambda5.1 ILLambda? ILLambda-args ILLambda-body) + (let-values (((struct:_4 make-_4 ?_5 -ref_5 -set!_5) + (let-values () (let-values () (make-struct-type 'ILLambda #f 2 0 #f null #f #f '(0 1) #f 'ILLambda))))) + (values + struct:_4 + make-_4 + ?_5 + (make-struct-field-accessor -ref_5 0 'args) + (make-struct-field-accessor -ref_5 1 'body)))) + (define-values + (struct:ILBinaryOp ILBinaryOp6.1 ILBinaryOp? ILBinaryOp-operator ILBinaryOp-args) + (let-values (((struct:_5 make-_5 ?_6 -ref_6 -set!_6) + (let-values () + (let-values () (make-struct-type 'ILBinaryOp #f 2 0 #f null #f #f '(0 1) #f 'ILBinaryOp))))) + (values + struct:_5 + make-_5 + ?_6 + (make-struct-field-accessor -ref_6 0 'operator) + (make-struct-field-accessor -ref_6 1 'args)))) + (define-values + (struct:ILApp ILApp7.1 ILApp? ILApp-lam ILApp-args) + (let-values (((struct:_6 make-_6 ?_7 -ref_7 -set!_7) + (let-values () (let-values () (make-struct-type 'ILApp #f 2 0 #f null #f #f '(0 1) #f 'ILApp))))) + (values + struct:_6 + make-_6 + ?_7 + (make-struct-field-accessor -ref_7 0 'lam) + (make-struct-field-accessor -ref_7 1 'args)))) + (define-values + (struct:ILArray ILArray8.1 ILArray? ILArray-items) + (let-values (((struct:_7 make-_7 ?_8 -ref_8 -set!_8) + (let-values () (let-values () (make-struct-type 'ILArray #f 1 0 #f null #f #f '(0) #f 'ILArray))))) + (values struct:_7 make-_7 ?_8 (make-struct-field-accessor -ref_8 0 'items)))) + (define-values + (struct:ILObject ILObject9.1 ILObject? ILObject-items) + (let-values (((struct:_8 make-_8 ?_9 -ref_9 -set!_9) + (let-values () (let-values () (make-struct-type 'ILObject #f 1 0 #f null #f #f '(0) #f 'ILObject))))) + (values struct:_8 make-_8 ?_9 (make-struct-field-accessor -ref_9 0 'items)))) + (define-values + (struct:ILRef ILRef10.1 ILRef? ILRef-expr ILRef-fieldname) + (let-values (((struct:_9 make-_9 ?_10 -ref_10 -set!_10) + (let-values () (let-values () (make-struct-type 'ILRef #f 2 0 #f null #f #f '(0 1) #f 'ILRef))))) + (values + struct:_9 + make-_9 + ?_10 + (make-struct-field-accessor -ref_10 0 'expr) + (make-struct-field-accessor -ref_10 1 'fieldname)))) + (define-values + (struct:ILIndex ILIndex11.1 ILIndex? ILIndex-expr ILIndex-fieldexpr) + (let-values (((struct:_10 make-_10 ?_11 -ref_11 -set!_11) + (let-values () (let-values () (make-struct-type 'ILIndex #f 2 0 #f null #f #f '(0 1) #f 'ILIndex))))) + (values + struct:_10 + make-_10 + ?_11 + (make-struct-field-accessor -ref_11 0 'expr) + (make-struct-field-accessor -ref_11 1 'fieldexpr)))) + (define-values + (struct:ILValue ILValue12.1 ILValue? ILValue-v) + (let-values (((struct:_11 make-_11 ?_12 -ref_12 -set!_12) + (let-values () (let-values () (make-struct-type 'ILValue #f 1 0 #f null #f #f '(0) #f 'ILValue))))) + (values struct:_11 make-_11 ?_12 (make-struct-field-accessor -ref_12 0 'v)))) + (define-values + (struct:ILNew ILNew13.1 ILNew? ILNew-v) + (let-values (((struct:_12 make-_12 ?_13 -ref_13 -set!_13) + (let-values () (let-values () (make-struct-type 'ILNew #f 1 0 #f null #f #f '(0) #f 'ILNew))))) + (values struct:_12 make-_12 ?_13 (make-struct-field-accessor -ref_13 0 'v)))) + (define-values + (struct:ILInstanceOf ILInstanceOf14.1 ILInstanceOf? ILInstanceOf-expr ILInstanceOf-type) + (let-values (((struct:_13 make-_13 ?_14 -ref_14 -set!_14) + (let-values () + (let-values () (make-struct-type 'ILInstanceOf #f 2 0 #f null #f #f '(0 1) #f 'ILInstanceOf))))) + (values + struct:_13 + make-_13 + ?_14 + (make-struct-field-accessor -ref_14 0 'expr) + (make-struct-field-accessor -ref_14 1 'type)))) + (define-values + (struct:ILTypeOf ILTypeOf15.1 ILTypeOf? ILTypeOf-expr) + (let-values (((struct:_14 make-_14 ?_15 -ref_15 -set!_15) + (let-values () (let-values () (make-struct-type 'ILTypeOf #f 1 0 #f null #f #f '(0) #f 'ILTypeOf))))) + (values struct:_14 make-_14 ?_15 (make-struct-field-accessor -ref_15 0 'expr)))) + (define-values + (struct:ILNull ILNull16.1 ILNull?) + (let-values (((struct:_15 make-_15 ?_16 -ref_16 -set!_16) + (let-values () (let-values () (make-struct-type 'ILNull #f 0 0 #f null #f #f '() #f 'ILNull))))) + (values struct:_15 make-_15 ?_16))) + (define-values + (struct:ILUndefined ILUndefined17.1 ILUndefined?) + (let-values (((struct:_16 make-_16 ?_17 -ref_17 -set!_17) + (let-values () + (let-values () (make-struct-type 'ILUndefined #f 0 0 #f null #f #f '() #f 'ILUndefined))))) + (values struct:_16 make-_16 ?_17))) + (define-values + (struct:ILArguments ILArguments18.1 ILArguments?) + (let-values (((struct:_17 make-_17 ?_18 -ref_18 -set!_18) + (let-values () + (let-values () (make-struct-type 'ILArguments #f 0 0 #f null #f #f '() #f 'ILArguments))))) + (values struct:_17 make-_17 ?_18))) + (define-values + (struct:ILThis ILThis19.1 ILThis?) + (let-values (((struct:_18 make-_18 ?_19 -ref_19 -set!_19) + (let-values () (let-values () (make-struct-type 'ILThis #f 0 0 #f null #f #f '() #f 'ILThis))))) + (values struct:_18 make-_18 ?_19))) + (define-values + (struct:ILVarDec ILVarDec20.1 ILVarDec? ILVarDec-id ILVarDec-expr) + (let-values (((struct:_19 make-_19 ?_20 -ref_20 -set!_20) + (let-values () (let-values () (make-struct-type 'ILVarDec #f 2 0 #f null #f #f '(0 1) #f 'ILVarDec))))) + (values + struct:_19 + make-_19 + ?_20 + (make-struct-field-accessor -ref_20 0 'id) + (make-struct-field-accessor -ref_20 1 'expr)))) + (define-values + (struct:ILLetDec ILLetDec21.1 ILLetDec? ILLetDec-id ILLetDec-expr) + (let-values (((struct:_20 make-_20 ?_21 -ref_21 -set!_21) + (let-values () (let-values () (make-struct-type 'ILLetDec #f 2 0 #f null #f #f '(0 1) #f 'ILLetDec))))) + (values + struct:_20 + make-_20 + ?_21 + (make-struct-field-accessor -ref_21 0 'id) + (make-struct-field-accessor -ref_21 1 'expr)))) + (define-values + (struct:ILIf ILIf22.1 ILIf? ILIf-pred ILIf-t-branch ILIf-f-branch) + (let-values (((struct:_21 make-_21 ?_22 -ref_22 -set!_22) + (let-values () (let-values () (make-struct-type 'ILIf #f 3 0 #f null #f #f '(0 1 2) #f 'ILIf))))) + (values + struct:_21 + make-_21 + ?_22 + (make-struct-field-accessor -ref_22 0 'pred) + (make-struct-field-accessor -ref_22 1 't-branch) + (make-struct-field-accessor -ref_22 2 'f-branch)))) + (define-values + (struct:ILIf* ILIf*23.1 ILIf*? ILIf*-clauses) + (let-values (((struct:_22 make-_22 ?_23 -ref_23 -set!_23) + (let-values () (let-values () (make-struct-type 'ILIf* #f 1 0 #f null #f #f '(0) #f 'ILIf*))))) + (values struct:_22 make-_22 ?_23 (make-struct-field-accessor -ref_23 0 'clauses)))) + (define-values + (struct:ILAssign ILAssign24.1 ILAssign? ILAssign-lvalue ILAssign-rvalue) + (let-values (((struct:_23 make-_23 ?_24 -ref_24 -set!_24) + (let-values () (let-values () (make-struct-type 'ILAssign #f 2 0 #f null #f #f '(0 1) #f 'ILAssign))))) + (values + struct:_23 + make-_23 + ?_24 + (make-struct-field-accessor -ref_24 0 'lvalue) + (make-struct-field-accessor -ref_24 1 'rvalue)))) + (define-values + (struct:ILWhile ILWhile25.1 ILWhile? ILWhile-condition ILWhile-body) + (let-values (((struct:_24 make-_24 ?_25 -ref_25 -set!_25) + (let-values () (let-values () (make-struct-type 'ILWhile #f 2 0 #f null #f #f '(0 1) #f 'ILWhile))))) + (values + struct:_24 + make-_24 + ?_25 + (make-struct-field-accessor -ref_25 0 'condition) + (make-struct-field-accessor -ref_25 1 'body)))) + (define-values + (struct:ILReturn ILReturn26.1 ILReturn? ILReturn-expr) + (let-values (((struct:_25 make-_25 ?_26 -ref_26 -set!_26) + (let-values () (let-values () (make-struct-type 'ILReturn #f 1 0 #f null #f #f '(0) #f 'ILReturn))))) + (values struct:_25 make-_25 ?_26 (make-struct-field-accessor -ref_26 0 'expr)))) + (define-values + (struct:ILLabel ILLabel27.1 ILLabel? ILLabel-name) + (let-values (((struct:_26 make-_26 ?_27 -ref_27 -set!_27) + (let-values () (let-values () (make-struct-type 'ILLabel #f 1 0 #f null #f #f '(0) #f 'ILLabel))))) + (values struct:_26 make-_26 ?_27 (make-struct-field-accessor -ref_27 0 'name)))) + (define-values + (struct:ILContinue ILContinue28.1 ILContinue? ILContinue-label) + (let-values (((struct:_27 make-_27 ?_28 -ref_28 -set!_28) + (let-values () + (let-values () (make-struct-type 'ILContinue #f 1 0 #f null #f #f '(0) #f 'ILContinue))))) + (values struct:_27 make-_27 ?_28 (make-struct-field-accessor -ref_28 0 'label)))) + (define-values + (struct:ILExnHandler + ILExnHandler29.1 + ILExnHandler? + ILExnHandler-try + ILExnHandler-error + ILExnHandler-catch + ILExnHandler-finally) + (let-values (((struct:_28 make-_28 ?_29 -ref_29 -set!_29) + (let-values () + (let-values () (make-struct-type 'ILExnHandler #f 4 0 #f null #f #f '(0 1 2 3) #f 'ILExnHandler))))) + (values + struct:_28 + make-_28 + ?_29 + (make-struct-field-accessor -ref_29 0 'try) + (make-struct-field-accessor -ref_29 1 'error) + (make-struct-field-accessor -ref_29 2 'catch) + (make-struct-field-accessor -ref_29 3 'finally)))) + (define-values + (struct:ILThrow ILThrow30.1 ILThrow? ILThrow-expr) + (let-values (((struct:_29 make-_29 ?_30 -ref_30 -set!_30) + (let-values () (let-values () (make-struct-type 'ILThrow #f 1 0 #f null #f #f '(0) #f 'ILThrow))))) + (values struct:_29 make-_29 ?_30 (make-struct-field-accessor -ref_30 0 'expr)))) + (define-values + (ILExpr?) + (lambda (e_12) + (begin + (let-values (((or-part_74) (ILLambda? e_12))) + (if or-part_74 + or-part_74 + (let-values (((or-part_75) (ILBinaryOp? e_12))) + (if or-part_75 + or-part_75 + (let-values (((or-part_76) (ILApp? e_12))) + (if or-part_76 + or-part_76 + (let-values (((or-part_77) (ILArray? e_12))) + (if or-part_77 + or-part_77 + (let-values (((or-part_78) (ILObject? e_12))) + (if or-part_78 + or-part_78 + (let-values (((or-part_79) (ILRef? e_12))) + (if or-part_79 + or-part_79 + (let-values (((or-part_80) (ILIndex? e_12))) + (if or-part_80 + or-part_80 + (let-values (((or-part_81) (ILValue? e_12))) + (if or-part_81 + or-part_81 + (let-values (((or-part_82) (ILNew? e_12))) + (if or-part_82 + or-part_82 + (let-values (((or-part_83) (ILInstanceOf? e_12))) + (if or-part_83 + or-part_83 + (let-values (((or-part_84) (ILTypeOf? e_12))) + (if or-part_84 + or-part_84 + (let-values (((or-part_85) (ILNull? e_12))) + (if or-part_85 + or-part_85 + (let-values (((or-part_86) (ILUndefined? e_12))) + (if or-part_86 + or-part_86 + (let-values (((or-part_87) (ILArguments? e_12))) + (if or-part_87 + or-part_87 + (let-values (((or-part_88) (ILThis? e_12))) + (if or-part_88 + or-part_88 + (symbol? e_12)))))))))))))))))))))))))))))))))) + (define-values (flatten-statements) (lambda (stms_0) (begin (flatten stms_0)))) + (define-values + (check-arity-stms) + (lambda (formals_7) + (begin + (let-values (((check-arity-stm_0) + (lambda (op_0 arity_4) + (begin + 'check-arity-stm + (ILIf22.1 + (ILBinaryOp6.1 op_0 (list (ILRef10.1 (ILArguments18.1) 'length) (ILValue12.1 arity_4))) + (list + (ILThrow30.1 + (ILApp7.1 + (name-in-module 'core 'racketContractError) + (list (ILValue12.1 "arity mismatch"))))) + '()))))) + (let-values (((formals*_0) (ILCheckedFormals-formals formals_7))) + (if (symbol? formals*_0) + (let-values () '()) + (if (list? formals*_0) + (let-values () (list (check-arity-stm_0 '!== (length formals*_0)))) + (if (cons? formals*_0) + (let-values () + (let-values (((pos-formals_0) (car formals*_0))) + (list (check-arity-stm_0 '< (length pos-formals_0))))) + (void))))))))) + (define-values + (insert-arity-checks) + (lambda (mod_6) + (begin + (letrec-values (((traverse-expr_0) + (lambda (a_161) + (begin + 'traverse-expr + (let-values (((v_1) a_161)) + (let-values (((vec-v_0) (struct->vector v_1))) + (let-values (((alt_26) + (lambda () + (begin + 'alt + (let-values (((vec-v_1) (struct->vector v_1))) + (let-values (((alt_27) + (lambda () + (begin + 'alt + (let-values (((vec-v_2) (struct->vector v_1))) + (let-values (((alt_28) + (lambda () + (begin + 'alt + (let-values (((vec-v_3) + (struct->vector + v_1))) + (let-values (((alt_29) + (lambda () + (begin + 'alt + (let-values (((vec-v_4) + (struct->vector + v_1))) + (let-values (((alt_30) + (lambda () + (begin + 'alt + (let-values (((vec-v_5) + (struct->vector + v_1))) + (let-values (((alt_31) + (lambda () + (begin + 'alt + (let-values (((vec-v_6) + (struct->vector + v_1))) + (let-values (((alt_2) + (lambda () + (begin + 'alt + (let-values (((vec-v_7) + (struct->vector + v_1))) + (let-values (((alt_32) + (lambda () + (begin + 'alt + (let-values (((vec-v_8) + (struct->vector + v_1))) + (let-values (((alt_33) + (lambda () + (begin + 'alt + (let-values (((vec-v_9) + (struct->vector + v_1))) + (let-values (((alt_34) + (lambda () + (begin + 'alt + (let-values (((v_42) + v_1)) + v_42))))) + (if (ILTypeOf? + v_1) + (let-values () + (let-values (((expr_0) + (vector->values + vec-v_9 + 1))) + (ILTypeOf15.1 + (traverse-expr_0 + expr_0)))) + (let-values () + (alt_34))))))))) + (if (ILInstanceOf? + v_1) + (let-values () + (let-values (((expr_1 + type_0) + (vector->values + vec-v_8 + 1))) + (ILInstanceOf14.1 + (traverse-expr_0 + expr_1) + (traverse-expr_0 + type_0)))) + (let-values () + (alt_33))))))))) + (if (ILNew? + v_1) + (let-values () + (let-values (((e_13) + (vector->values + vec-v_7 + 1))) + (ILNew13.1 + (traverse-expr_0 + e_13)))) + (let-values () + (alt_32))))))))) + (if (ILIndex? + v_1) + (let-values () + (let-values (((expr_2 + field-expr_0) + (vector->values + vec-v_6 + 1))) + (ILIndex11.1 + (traverse-expr_0 + expr_2) + (traverse-expr_0 + field-expr_0)))) + (let-values () + (alt_2))))))))) + (if (ILRef? + v_1) + (let-values () + (let-values (((expr_3 + fieldname_0) + (vector->values + vec-v_5 + 1))) + (ILRef10.1 + (traverse-expr_0 + expr_3) + fieldname_0))) + (let-values () + (alt_31))))))))) + (if (ILObject? + v_1) + (let-values () + (let-values (((items_0) + (vector->values + vec-v_4 + 1))) + (ILObject9.1 + (map2 + (lambda (o_0) + (cons + (car + o_0) + (traverse-expr_0 + (cdr + o_0)))) + items_0)))) + (let-values () + (alt_30))))))))) + (if (ILArray? v_1) + (let-values () + (let-values (((items_1) + (vector->values + vec-v_3 + 1))) + (ILArray8.1 + (map2 + traverse-expr_0 + items_1)))) + (let-values () + (alt_29))))))))) + (if (ILBinaryOp? v_1) + (let-values () + (let-values (((oper_0 args_13) + (vector->values vec-v_2 1))) + (ILBinaryOp6.1 + oper_0 + (map2 traverse-expr_0 args_13)))) + (let-values () (alt_28))))))))) + (if (ILApp? v_1) + (let-values () + (let-values (((lam_1 args_14) (vector->values vec-v_1 1))) + (ILApp7.1 + (traverse-expr_0 lam_1) + (map2 traverse-expr_0 args_14)))) + (let-values () (alt_27))))))))) + (if (ILLambda? v_1) + (let-values () + (let-values (((args_15 body_7) (vector->values vec-v_0 1))) + (let-values (((new-args_0 check-stms_0) + (let-values (((v_63) args_15)) + (let-values (((vec-v_10) (struct->vector v_63))) + (let-values (((alt_35) + (lambda () + (begin + 'alt + (let-values (((v_64) v_63)) + (values v_64 '())))))) + (if (ILCheckedFormals? v_63) + (let-values () + (let-values (((args*_0) (vector->values vec-v_10 1))) + (values args*_0 (check-arity-stms args_15)))) + (let-values () (alt_35)))))))) + (ILLambda5.1 new-args_0 (append check-stms_0 (traverse-stm*_0 body_7)))))) + (let-values () (alt_26))))))))) + ((traverse-stm_0) + (lambda (a_162) + (begin + 'traverse-stm + (let-values (((v_65) a_162)) + (let-values (((vec-v_11) (struct->vector v_65))) + (let-values (((alt_8) + (lambda () + (begin + 'alt + (let-values (((vec-v_12) (struct->vector v_65))) + (let-values (((alt_10) + (lambda () + (begin + 'alt + (let-values (((vec-v_13) (struct->vector v_65))) + (let-values (((alt_12) + (lambda () + (begin + 'alt + (let-values (((vec-v_14) + (struct->vector + v_65))) + (let-values (((alt_14) + (lambda () + (begin + 'alt + (let-values (((vec-v_15) + (struct->vector + v_65))) + (let-values (((alt_16) + (lambda () + (begin + 'alt + (let-values (((vec-v_16) + (struct->vector + v_65))) + (let-values (((alt_18) + (lambda () + (begin + 'alt + (let-values (((vec-v_17) + (struct->vector + v_65))) + (let-values (((alt_20) + (lambda () + (begin + 'alt + (let-values (((vec-v_18) + (struct->vector + v_65))) + (let-values (((alt_36) + (lambda () + (begin + 'alt + (let-values (((vec-v_19) + (struct->vector + v_65))) + (let-values (((alt_37) + (lambda () + (begin + 'alt + (if (ILExpr? + v_65) + (let-values (((expr_4) + v_65)) + (traverse-expr_0 + expr_4)) + (let-values (((v_66) + v_65)) + v_66)))))) + (if (ILThrow? + v_65) + (let-values () + (let-values (((expr_5) + (vector->values + vec-v_19 + 1))) + (ILThrow30.1 + (traverse-expr_0 + expr_5)))) + (let-values () + (alt_37))))))))) + (if (ILReturn? + v_65) + (let-values () + (let-values (((expr_6) + (vector->values + vec-v_18 + 1))) + (ILReturn26.1 + (traverse-expr_0 + expr_6)))) + (let-values () + (alt_36))))))))) + (if (ILExnHandler? + v_65) + (let-values () + (let-values (((try_0 + error_0 + catch_0 + finally_0) + (vector->values + vec-v_17 + 1))) + (ILExnHandler29.1 + (traverse-stm*_0 + try_0) + error_0 + (traverse-stm*_0 + catch_0) + (traverse-stm*_0 + finally_0)))) + (let-values () + (alt_20))))))))) + (if (ILWhile? + v_65) + (let-values () + (let-values (((condition_0 + body_8) + (vector->values + vec-v_16 + 1))) + (ILWhile25.1 + (traverse-expr_0 + condition_0) + (traverse-stm*_0 + body_8)))) + (let-values () + (alt_18))))))))) + (if (ILAssign? + v_65) + (let-values () + (let-values (((lvalue_0 + rvalue_0) + (vector->values + vec-v_15 + 1))) + (ILAssign24.1 + (traverse-expr_0 + lvalue_0) + (traverse-expr_0 + rvalue_0)))) + (let-values () + (alt_16))))))))) + (if (ILIf*? v_65) + (let-values () + (let-values (((clauses_1) + (vector->values + vec-v_14 + 1))) + (ILIf*23.1 + (reverse$1 + (let-values (((pos->vals_17 + pos-pre-inc_15 + pos-next_18 + init_18 + pos-cont?_18 + val-cont?_17 + all-cont?_17) + (make-sequence + '(c) + clauses_1))) + (begin + (void) + ((letrec-values (((for-loop_19) + (lambda (fold-var_8 + pos_55) + (begin + 'for-loop + (if (if pos-cont?_18 + (pos-cont?_18 + pos_55) + #t) + (let-values (((c_12 + all-cont?/pos_15) + (let-values (((c_13) + (pos->vals_17 + pos_55))) + (values + c_13 + (if all-cont?_17 + (lambda (pos_56) + (all-cont?_17 + pos_56 + c_13)) + #f)))) + ((pos_57) + (if pos-pre-inc_15 + (pos-pre-inc_15 + pos_55) + pos_55))) + (if (if val-cont?_17 + (val-cont?_17 + c_12) + #t) + (let-values (((fold-var_9) + (let-values (((fold-var_10) + fold-var_8)) + (let-values (((fold-var_11) + (let-values () + (cons + (let-values () + (let-values (((pred_0) + (IfClause-pred + c_12))) + (let-values (((body_9) + (IfClause-body + c_12))) + (IfClause3.1 + (if pred_0 + (traverse-expr_0 + pred_0) + #f) + (traverse-stm*_0 + body_9))))) + fold-var_10)))) + (values + fold-var_11))))) + (if (if (if all-cont?/pos_15 + (all-cont?/pos_15 + pos_57) + #t) + (not + #f) + #f) + (for-loop_19 + fold-var_9 + (pos-next_18 + pos_57)) + fold-var_9)) + fold-var_8)) + fold-var_8))))) + for-loop_19) + null + init_18))))))) + (let-values () + (alt_14))))))))) + (if (ILIf? v_65) + (let-values () + (let-values (((pred_1 + t-branch_0 + f-branch_0) + (vector->values vec-v_13 1))) + (ILIf22.1 + (traverse-expr_0 pred_1) + (traverse-stm*_0 t-branch_0) + (traverse-stm*_0 f-branch_0)))) + (let-values () (alt_12))))))))) + (if (ILLetDec? v_65) + (let-values () + (let-values (((id_3 expr_7) (vector->values vec-v_12 1))) + (ILLetDec21.1 id_3 (if expr_7 (traverse-expr_0 expr_7) #f)))) + (let-values () (alt_10))))))))) + (if (ILVarDec? v_65) + (let-values () + (let-values (((id_4 expr_8) (vector->values vec-v_11 1))) + (ILVarDec20.1 id_4 (if expr_8 (traverse-expr_0 expr_8) #f)))) + (let-values () (alt_8))))))))) + ((traverse-stm*_0) (lambda (stm*_0) (begin 'traverse-stm* (map2 traverse-stm_0 stm*_0))))) + (let-values (((v_67) mod_6)) + (let-values (((vec-v_20) (struct->vector v_67))) + (let-values (((alt_38) (lambda () (begin 'alt (error 'match "failed ~e" v_67))))) + (if (ILLinklet? v_67) + (let-values () + (let-values (((importss_0 exports_3 body_10) (vector->values vec-v_20 1))) + (ILLinklet1.1 importss_0 exports_3 (traverse-stm*_0 body_10)))) + (let-values () (alt_38)))))))))) + (define-values + (has-application?) + (lambda (a_163) + (begin + (let-values (((v_68) a_163)) + (let-values (((vec-v_21) (struct->vector v_68))) + (let-values (((alt_39) + (lambda () + (begin + 'alt + (let-values (((vec-v_22) (struct->vector v_68))) + (let-values (((alt_40) + (lambda () + (begin + 'alt + (let-values (((vec-v_23) (struct->vector v_68))) + (let-values (((alt_41) + (lambda () + (begin + 'alt + (let-values (((vec-v_24) (struct->vector v_68))) + (let-values (((alt_42) + (lambda () + (begin + 'alt + (let-values (((vec-v_25) + (struct->vector + v_68))) + (let-values (((alt_43) + (lambda () + (begin + 'alt + (let-values (((vec-v_26) + (struct->vector + v_68))) + (let-values (((alt_44) + (lambda () + (begin + 'alt + (let-values (((vec-v_27) + (struct->vector + v_68))) + (let-values (((alt_45) + (lambda () + (begin + 'alt + (let-values (((vec-v_28) + (struct->vector + v_68))) + (let-values (((alt_46) + (lambda () + (begin + 'alt + (let-values (((vec-v_29) + (struct->vector + v_68))) + (let-values (((alt_47) + (lambda () + (begin + 'alt + (let-values (((vec-v_30) + (struct->vector + v_68))) + (let-values (((alt_48) + (lambda () + (begin + 'alt + (let-values (((vec-v_31) + (struct->vector + v_68))) + (let-values (((alt_49) + (lambda () + (begin + 'alt + (let-values (((vec-v_32) + (struct->vector + v_68))) + (let-values (((alt_50) + (lambda () + (begin + 'alt + (let-values (((vec-v_33) + (struct->vector + v_68))) + (let-values (((alt_51) + (lambda () + (begin + 'alt + (if (symbol? + v_68) + (let-values () + #f) + (error + 'match + "failed ~e" + v_68)))))) + (if (ILTypeOf? + v_68) + (let-values () + (let-values (((expr_9) + (vector->values + vec-v_33 + 1))) + (has-application? + expr_9))) + (let-values () + (alt_51))))))))) + (if (ILInstanceOf? + v_68) + (let-values () + (let-values (((expr_10 + type_1) + (vector->values + vec-v_32 + 1))) + (let-values (((or-part_89) + (has-application? + expr_10))) + (if or-part_89 + or-part_89 + (has-application? + type_1))))) + (let-values () + (alt_50))))))))) + (if (ILNew? + v_68) + (let-values () + (let-values (((_fst_0) + (vector->values + vec-v_31 + 1))) + #t)) + (let-values () + (alt_49))))))))) + (if (ILNull? + v_68) + (let-values () + (let-values ((() + (vector->values + vec-v_30 + 1))) + #f)) + (let-values () + (alt_48))))))))) + (if (ILUndefined? + v_68) + (let-values () + (let-values ((() + (vector->values + vec-v_29 + 1))) + #f)) + (let-values () + (alt_47))))))))) + (if (ILValue? + v_68) + (let-values () + (let-values (((_fst_1) + (vector->values + vec-v_28 + 1))) + #f)) + (let-values () + (alt_46))))))))) + (if (ILIndex? + v_68) + (let-values () + (let-values (((expr_11 + fieldexpr_0) + (vector->values + vec-v_27 + 1))) + (let-values (((or-part_90) + (has-application? + expr_11))) + (if or-part_90 + or-part_90 + (has-application? + fieldexpr_0))))) + (let-values () + (alt_45))))))))) + (if (ILRef? + v_68) + (let-values () + (let-values (((expr_12 + _fst_2) + (vector->values + vec-v_26 + 1))) + (has-application? + expr_12))) + (let-values () + (alt_44))))))))) + (if (ILObject? v_68) + (let-values () + (let-values (((items_2) + (vector->values + vec-v_25 + 1))) + (ormap2 + (lambda (pair_0) + (has-application? + (cdr pair_0))) + items_2))) + (let-values () + (alt_43))))))))) + (if (ILArray? v_68) + (let-values () + (let-values (((items_3) + (vector->values vec-v_24 1))) + (ormap2 has-application? items_3))) + (let-values () (alt_42))))))))) + (if (ILApp? v_68) + (let-values () + (let-values (((_fst_3 _snd_0) (vector->values vec-v_23 1))) #t)) + (let-values () (alt_41))))))))) + (if (ILBinaryOp? v_68) + (let-values () + (let-values (((_fst_4 args_16) (vector->values vec-v_22 1))) + (ormap2 has-application? args_16))) + (let-values () (alt_40))))))))) + (if (ILLambda? v_68) + (let-values () (let-values (((_fst_5 _snd_1) (vector->values vec-v_21 1))) #f)) + (let-values () (alt_39))))))))) + (define-values + (log-rjs-info) + (lambda (fst1_0 . rst2_0) + (begin + (if (logging?) + (let-values () + (begin + (printf "[~a]" "info") + (if (equal? (string-ref fst1_0 0) '#\[) (void) (let-values () (printf " "))) + (apply printf fst1_0 rst2_0) + (printf "\n"))) + (void))))) + (define-values + (log-rjs-warning) + (lambda (fst5_0 . rst6_0) + (begin + (if (logging?) + (let-values () + (begin + (printf "[~a]" "warning") + (if (equal? (string-ref fst5_0 0) '#\[) (void) (let-values () (printf " "))) + (apply printf fst5_0 rst6_0) + (printf "\n"))) + (void))))) + (define-values (module-object-name-map) (make-parameter (hash))) + (define-values + (absyn-top-level->il) + (lambda (form_0) + (begin + (if (Linklet? form_0) + (let-values () (error 'absyn-top-level->il "Not supported. Todo.")) + (if (Expr? form_0) + (let-values () (let-values (((stmt_0 v_62) (absyn-expr->il form_0 #f))) (append1 stmt_0 v_62))) + (if (Begin? form_0) + (let-values () (absyn-expr->il form_0 #f)) + (let-values () (error "only some forms supported at top level")))))))) + (define-values + (absyn-linklet->il) + (lambda (lnk_0) + (begin + (let-values (((path_1 imports_2 exports_4 forms_0) + (let-values (((v_43) lnk_0)) + (let-values (((v_1) v_43)) + (let-values (((vec-v_0) (struct->vector v_1))) + (let-values (((alt_26) (lambda () (begin 'alt (error 'match "failed ~e" v_1))))) + (if (Linklet? v_1) + (let-values () + (let-values (((path_2 imports_3 exports_5 forms_1) (vector->values vec-v_0 1))) + (values path_2 imports_3 exports_5 forms_1))) + (let-values () (alt_26))))))))) + (let-values ((() (begin (log-rjs-info "[linklet il]") (values)))) + (let-values (((imported-mod-path-list_0) (flatten imports_2))) + (let-values (((requires*_0) (absyn-requires->il imported-mod-path-list_0 path_1))) + (with-continuation-mark + parameterization-key + (extend-parameterization + (continuation-mark-set-first #f parameterization-key) + module-object-name-map + (make-module-map requires*_0 '(#%kernel))) + (let-values () + (ILLinklet1.1 + (filter ILRequire? requires*_0) + (absyn-exports->il exports_4) + (append-map absyn-gtl-form->il forms_0))))))))))) + (define-values + (make-module-map) + (lambda (reqs_0 imported-paths_0) + (begin + (let-values (((pos->vals_18 pos-pre-inc_16 pos-next_19 init_19 pos-cont?_19 val-cont?_18 all-cont?_18) + (make-sequence '(req) reqs_0)) + ((pos->vals_19 pos-pre-inc_17 pos-next_20 init_20 pos-cont?_20 val-cont?_19 all-cont?_19) + (make-sequence '(mod-path) imported-paths_0))) + (begin + (void) + (void) + ((letrec-values (((for-loop_20) + (lambda (acc_1 pos_12 pos_58) + (begin + 'for-loop + (if (if (if pos-cont?_19 (pos-cont?_19 pos_12) #t) + (if pos-cont?_20 (pos-cont?_20 pos_58) #t) + #f) + (let-values (((req_9 all-cont?/pos_16) + (let-values (((req_10) (pos->vals_18 pos_12))) + (values + req_10 + (if all-cont?_18 + (lambda (pos_59) (all-cont?_18 pos_59 req_10)) + #f)))) + ((pos_60) (if pos-pre-inc_16 (pos-pre-inc_16 pos_12) pos_12)) + ((mod-path_0 all-cont?/pos_17) + (let-values (((mod-path_1) (pos->vals_19 pos_58))) + (values + mod-path_1 + (if all-cont?_19 + (lambda (pos_61) (all-cont?_19 pos_61 mod-path_1)) + #f)))) + ((pos_62) (if pos-pre-inc_17 (pos-pre-inc_17 pos_58) pos_58))) + (if (if (if val-cont?_18 (val-cont?_18 req_9) #t) + (if val-cont?_19 (val-cont?_19 mod-path_0) #t) + #f) + (let-values (((acc_2) + (let-values (((acc_3) acc_1)) + (let-values (((acc_4) + (let-values () + (if (ILRequire? req_9) + (hash-set + acc_3 + mod-path_0 + (ILRequire-name req_9)) + acc_3)))) + (values acc_4))))) + (if (if (if all-cont?/pos_16 (all-cont?/pos_16 pos_60) #t) + (if (if all-cont?/pos_17 (all-cont?/pos_17 pos_62) #t) (not #f) #f) + #f) + (for-loop_20 acc_2 (pos-next_19 pos_60) (pos-next_20 pos_62)) + acc_2)) + acc_1)) + acc_1))))) + for-loop_20) + (module-object-name-map) + init_19 + init_20)))))) + (define-values + (absyn-exports->il) + (lambda (exports_6) + (begin + (reverse$1 + (let-values (((pos->vals_20 pos-pre-inc_18 pos-next_21 init_21 pos-cont?_21 val-cont?_20 all-cont?_20) + (make-sequence '(ex) exports_6))) + (begin + (void) + ((letrec-values (((for-loop_21) + (lambda (fold-var_12 pos_63) + (begin + 'for-loop + (if (if pos-cont?_21 (pos-cont?_21 pos_63) #t) + (let-values (((ex_0 all-cont?/pos_18) + (let-values (((ex_1) (pos->vals_20 pos_63))) + (values + ex_1 + (if all-cont?_20 (lambda (pos_64) (all-cont?_20 pos_64 ex_1)) #f)))) + ((pos_65) (if pos-pre-inc_18 (pos-pre-inc_18 pos_63) pos_63))) + (if (if val-cont?_20 (val-cont?_20 ex_0) #t) + (let-values (((fold-var_13) + (let-values (((fold-var_14) fold-var_12)) + (let-values (((fold-var_15) + (let-values () + (cons + (let-values () + (if (symbol? ex_0) + (let-values () (SimpleProvide18.1 ex_0)) + (if (list? ex_0) + (let-values () + (RenamedProvide19.1 + (car ex_0) + (cadr ex_0))) + (let-values () + (error + 'exports->il + "unknown export form in linklet" + ex_0))))) + fold-var_14)))) + (values fold-var_15))))) + (if (if (if all-cont?/pos_18 (all-cont?/pos_18 pos_65) #t) (not #f) #f) + (for-loop_21 fold-var_13 (pos-next_21 pos_65)) + fold-var_13)) + fold-var_12)) + fold-var_12))))) + for-loop_21) + null + init_21))))))) + (define-values + (absyn-requires->il) + (lambda (import-list_0 path_3) (begin (list (ILRequire2.1 "../runtime/kernel.rkt.js" 'M0 '*))))) + (define-values + (absyn-gtl-form->il) + (lambda (form_1) + (begin + (if (Expr? form_1) + (let-values () (let-values (((stms_1 v_69) (absyn-expr->il form_1 #f))) (append1 stms_1 v_69))) + (if (DefineValues? form_1) + (let-values () + (let-values (((ids_0 expr_13) + (let-values (((v_70) form_1)) + (let-values (((v_66) v_70)) + (let-values (((vec-v_34) (struct->vector v_66))) + (let-values (((alt_52) (lambda () (begin 'alt (error 'match "failed ~e" v_66))))) + (if (DefineValues? v_66) + (let-values () + (let-values (((ids_1 expr_14) (vector->values vec-v_34 1))) + (values ids_1 expr_14))) + (let-values () (alt_52))))))))) + (absyn-binding->il (cons ids_0 expr_13)))) + (if (JSRequire? form_1) (let-values () (error 'absyn-gtl-form->il "Required should be hoisted")) (void))))))) + (define-values + (absyn-expr->il) + (lambda (expr_8 overwrite-mark-frame?_0) + (begin + (let-values (((v_67) expr_8)) + (let-values (((vec-v_20) (struct->vector v_67))) + (let-values (((alt_38) + (lambda () + (begin + 'alt + (let-values (((vec-v_35) (struct->vector v_67))) + (let-values (((alt_53) + (lambda () + (begin + 'alt + (let-values (((vec-v_36) (struct->vector v_67))) + (let-values (((alt_54) + (lambda () + (begin + 'alt + (let-values (((vec-v_37) (struct->vector v_67))) + (let-values (((alt_55) + (lambda () + (begin + 'alt + (let-values (((vec-v_38) + (struct->vector + v_67))) + (let-values (((alt_56) + (lambda () + (begin + 'alt + (let-values (((vec-v_39) + (struct->vector + v_67))) + (let-values (((alt_57) + (lambda () + (begin + 'alt + (let-values (((vec-v_40) + (struct->vector + v_67))) + (let-values (((alt_58) + (lambda () + (begin + 'alt + (let-values (((vec-v_41) + (struct->vector + v_67))) + (let-values (((alt_59) + (lambda () + (begin + 'alt + (if (if (pair? + expr_8) + (null? + (cdr + expr_8)) + #f) + (let-values () + (let-values (((hd_3) + (let-values (((v_71) + expr_8)) + (let-values (((v_72) + v_71)) + (let-values () + (let-values (((alt_60) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_72))))) + (if (let-values (((p_92) + v_72)) + (if (pair? + p_92) + (let-values (((a_164) + (cdr + p_92))) + (eq? + '() + a_164)) + #f)) + (let-values (((hd_4) + (let-values (((a_53) + (car + v_72))) + a_53))) + (let-values () + (values + hd_4))) + (alt_60)))))))) + (if (Expr? + hd_3) + (let-values () + (absyn-expr->il + hd_3 + overwrite-mark-frame?_0)) + (let-values () + (error + "last datum in body must be expression"))))) + (if (pair? + expr_8) + (let-values () + (let-values (((hd_5 + tl_0) + (let-values (((v_73) + expr_8)) + (let-values (((v_74) + v_73)) + (let-values () + (let-values (((alt_61) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_74))))) + (if (let-values (((p_93) + v_74)) + (if (pair? + p_93) + #t + #f)) + (let-values (((hd_6 + tl_1) + (let-values (((p_94) + v_74)) + (let-values (((hd_7) + (let-values (((a_62) + (car + p_94))) + a_62)) + ((tl_2) + (let-values (((d_46) + (cdr + p_94))) + d_46))) + (values + hd_7 + tl_2))))) + (let-values () + (values + hd_6 + tl_1))) + (alt_61)))))))) + (let-values (((hd-stms_0) + (absyn-top-level->il + hd_5))) + (let-values (((tl-stms_0 + v_75) + (absyn-expr->il + tl_0 + overwrite-mark-frame?_0))) + (values + (append + hd-stms_0 + tl-stms_0) + v_75))))) + (if (null? + expr_8) + (let-values () + (values + '() + (ILValue12.1 + (void)))) + (let-values (((vec-v_42) + (struct->vector + v_67))) + (let-values (((alt_62) + (lambda () + (begin + 'alt + (let-values (((vec-v_43) + (struct->vector + v_67))) + (let-values (((alt_63) + (lambda () + (begin + 'alt + (let-values (((vec-v_44) + (struct->vector + v_67))) + (let-values (((alt_64) + (lambda () + (begin + 'alt + (let-values (((vec-v_45) + (struct->vector + v_67))) + (let-values (((alt_65) + (lambda () + (begin + 'alt + (let-values (((vec-v_46) + (struct->vector + v_67))) + (let-values (((alt_66) + (lambda () + (begin + 'alt + (let-values (((vec-v_47) + (struct->vector + v_67))) + (let-values (((alt_67) + (lambda () + (begin + 'alt + (let-values (((vec-v_48) + (struct->vector + v_67))) + (let-values (((alt_68) + (lambda () + (begin + 'alt + (let-values () + (error + (~a + "unsupported expr " + expr_8))))))) + (if (VarRef? + v_67) + (let-values () + (let-values (((__5) + (vector->values + vec-v_48 + 1))) + (values + '() + (absyn-value->il + '#%variable-reference)))) + (let-values () + (alt_68))))))))) + (if (WithContinuationMark? + v_67) + (let-values () + (let-values (((key_8 + value_3 + result_10) + (vector->values + vec-v_47 + 1))) + (let-values (((key-stms_0 + key-expr_0) + (absyn-expr->il + key_8 + #f))) + (let-values (((value-stms_0 + value-expr_0) + (absyn-expr->il + value_3 + #f))) + (let-values (((result-stms_0 + result-expr_0) + (absyn-expr->il + result_10 + #t))) + (let-values (((old-context-id_0) + (fresh-id + '__context))) + (let-values (((new-context-id_0) + (fresh-id + '__context))) + (let-values (((result-id_0) + (fresh-id + '__wcm_result))) + (let-values (((exn-id_0) + (fresh-id + 'exn))) + (let-values (((stms_2) + (list + (ILVarDec20.1 + old-context-id_0 + (ILApp7.1 + (name-in-module + 'core + 'Marks.getFrames) + '())) + (ILVarDec20.1 + new-context-id_0 + #f) + (ILExnHandler29.1 + (flatten-statements + (list + key-stms_0 + value-stms_0 + (if overwrite-mark-frame?_0 + (ILAssign24.1 + new-context-id_0 + old-context-id_0) + (ILAssign24.1 + new-context-id_0 + (ILApp7.1 + (name-in-module + 'core + 'Marks.enterFrame) + '()))) + (ILApp7.1 + (name-in-module + 'core + 'Marks.setMark) + (list + key-expr_0 + value-expr_0)) + result-stms_0 + (ILVarDec20.1 + result-id_0 + result-expr_0))) + 'exn + '() + (list + (ILApp7.1 + (name-in-module + 'core + 'Marks.updateFrame) + (list + old-context-id_0 + new-context-id_0))))))) + (values + stms_2 + result-id_0))))))))))) + (let-values () + (alt_67))))))))) + (if (WithContinuationMark? + v_67) + (let-values () + (let-values (((key_9 + _fst_6 + wcm_0) + (vector->values + vec-v_46 + 1))) + (if (WithContinuationMark? + wcm_0) + (let-values () + (let-values (((key_10 + _snd_2 + _thd_0) + (let-values (((v_76) + wcm_0)) + (let-values (((v_77) + v_76)) + (let-values (((vec-v_49) + (struct->vector + v_77))) + (let-values (((alt_69) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_77))))) + (if (WithContinuationMark? + v_77) + (let-values () + (let-values (((key_11 + _snd_3 + _thd_1) + (vector->values + vec-v_49 + 1))) + (values + key_11 + _snd_3 + _thd_1))) + (let-values () + (alt_69))))))))) + (absyn-expr->il + wcm_0 + overwrite-mark-frame?_0))) + (alt_66)))) + (let-values () + (alt_66))))))))) + (if (ImportedIdent? + v_67) + (let-values () + (let-values (((id_5 + src__0 + reachable?_0) + (vector->values + vec-v_45 + 1))) + (let-values (((src_0) + (if (if (< + (get-major-version + (substring + (version) + 0 + 1)) + 7) + (equal? + src__0 + '#%runtime) + #f) + '#%kernel + src__0))) + (let-values (((id*_0) + (if (reserved-keyword? + id_5) + (string->symbol + (normalize-symbol + id_5)) + id_5))) + (if (if (let-values (((or-part_91) + (symbol? + (current-source-file)))) + (if or-part_91 + or-part_91 + (path? + (current-source-file)))) + (equal? + (actual-module-path + (current-source-file)) + (actual-module-path + src_0)) + #f) + (let-values () + (absyn-expr->il + (LocalIdent6.1 + id_5) + overwrite-mark-frame?_0)) + (if (false? + reachable?_0) + (let-values () + (let-values (((mod-obj-name_0) + (hash-ref + (module-object-name-map) + src_0 + (lambda () + (begin + (log-rjs-warning + "missing unreachable binding ~s ~s" + id*_0 + src_0) + src_0))))) + (values + '() + (ILRef10.1 + (ILRef10.1 + mod-obj-name_0 + *quoted-binding-ident-name*) + id*_0)))) + (let-values () + (let-values (((mod-obj-name_1) + (hash-ref + (module-object-name-map) + src_0 + (lambda () + (begin + (log-rjs-warning + "missing reachable binding ~s ~s" + id*_0 + src_0) + src_0))))) + (values + '() + (ILRef10.1 + mod-obj-name_1 + id*_0)))))))))) + (let-values () + (alt_65))))))))) + (if (Begin0? + v_67) + (let-values () + (let-values (((expr0_0 + expr*_0) + (vector->values + vec-v_44 + 1))) + (let-values (((expr0-id_0) + (fresh-id + 'begin-res))) + (absyn-expr->il + (LetValues13.1 + (list + (cons + (list + expr0-id_0) + expr0_0)) + (append1 + expr*_0 + (LocalIdent6.1 + expr0-id_0))) + overwrite-mark-frame?_0)))) + (let-values () + (alt_64))))))))) + (if (TopLevelIdent? + v_67) + (let-values () + (let-values (((id_6) + (vector->values + vec-v_43 + 1))) + (values + '() + id_6))) + (let-values () + (alt_63))))))))) + (if (LocalIdent? + v_67) + (let-values () + (let-values (((id_7) + (vector->values + vec-v_42 + 1))) + (values + '() + id_7))) + (let-values () + (alt_62)))))))))))) + (if (Quote? + v_67) + (let-values () + (let-values (((datum_0) + (vector->values + vec-v_41 + 1))) + (values + '() + (absyn-value->il + datum_0)))) + (let-values () + (alt_59))))))))) + (if (App? + v_67) + (let-values () + (let-values (((lam_2 + args_17) + (vector->values + vec-v_40 + 1))) + (let-values (((binops_0) + (map2 + (lambda (b_20) + (ImportedIdent3.1 + b_20 + '#%kernel + #t)) + '(+ + - + * + /)))) + (let-values (((il-app/binop_0) + (lambda (v_78 + arg*_0) + (begin + 'il-app/binop + (let-values (((v-il_0) + (let-values (((__6 + v_79) + (absyn-expr->il + v_78 + #f))) + v_79))) + (if (if (equal? + v_78 + (ImportedIdent3.1 + '- + '#%kernel + #t)) + (length=? + arg*_0 + 1) + #f) + (let-values () + (ILApp7.1 + v-il_0 + arg*_0)) + (if (if (equal? + v_78 + (ImportedIdent3.1 + '/ + '#%kernel + #t)) + (length=? + arg*_0 + 1) + #f) + (let-values () + (ILBinaryOp6.1 + '/ + (cons + (ILValue12.1 + 1) + arg*_0))) + (if (if (ImportedIdent? + v_78) + (if (member + v_78 + binops_0) + (>= + (length + arg*_0) + 2) + #f) + #f) + (let-values () + (ILBinaryOp6.1 + (ImportedIdent-id + v_78) + arg*_0)) + (let-values () + (ILApp7.1 + v-il_0 + arg*_0)))))))))) + (let-values (((lam+arg-stms_0 + lam-part-vals_0 + _rst_0) + (let-values (((temp5_0) + (sequence-length + (reverse$1 + (cons + lam_2 + args_17))))) + (let-values (((pos->vals_21 + pos-pre-inc_19 + pos-next_22 + init_22 + pos-cont?_22 + val-cont?_21 + all-cont?_21) + (make-sequence + '(arg) + (reverse$1 + (cons + lam_2 + args_17)))) + ((start_10) + 0) + ((end_4) + temp5_0) + ((inc_0) + 1)) + (begin + (void) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_10 + end_4 + inc_0))) + ((letrec-values (((for-loop_22) + (lambda (stms_3 + vals_3 + next-has-stms?_0 + pos_66 + pos_67) + (begin + 'for-loop + (if (if (if pos-cont?_22 + (pos-cont?_22 + pos_66) + #t) + (< + pos_67 + end_4) + #f) + (let-values (((arg_0 + all-cont?/pos_19) + (let-values (((arg_1) + (pos->vals_21 + pos_66))) + (values + arg_1 + (if all-cont?_21 + (lambda (pos_68) + (all-cont?_21 + pos_68 + arg_1)) + #f)))) + ((pos_69) + (if pos-pre-inc_19 + (pos-pre-inc_19 + pos_66) + pos_66)) + ((temp6_0) + pos_67)) + (if (if (if val-cont?_21 + (val-cont?_21 + arg_0) + #t) + #t + #f) + (let-values (((stms_4 + vals_4 + next-has-stms?_1) + (let-values (((stms_5) + stms_3) + ((vals_5) + vals_3) + ((next-has-stms?_2) + next-has-stms?_0)) + (let-values (((stms_6 + vals_6 + next-has-stms?_3) + (let-values () + (let-values (((last?_0) + (equal? + (sub1 + temp5_0) + temp6_0))) + (let-values (((s_15 + v_80) + (absyn-expr->il + arg_0 + #f))) + (if (if next-has-stms?_2 + (has-application? + v_80) + #f) + (let-values () + (let-values (((temp-id_0) + (fresh-id + (if last?_0 + 'lam + 'temp)))) + (let-values (((arg-stms_0) + (append1 + s_15 + (ILVarDec20.1 + temp-id_0 + v_80)))) + (values + (append + arg-stms_0 + stms_5) + (cons + temp-id_0 + vals_5) + next-has-stms?_2)))) + (if next-has-stms?_2 + (let-values () + (values + (append + s_15 + stms_5) + (cons + v_80 + vals_5) + next-has-stms?_2)) + (let-values () + (values + (append + s_15 + stms_5) + (cons + v_80 + vals_5) + (let-values (((or-part_92) + next-has-stms?_2)) + (if or-part_92 + or-part_92 + (cons? + s_15)))))))))))) + (values + stms_6 + vals_6 + next-has-stms?_3))))) + (if (if (if all-cont?/pos_19 + (all-cont?/pos_19 + pos_69) + #t) + (not + #f) + #f) + (for-loop_22 + stms_4 + vals_4 + next-has-stms?_1 + (pos-next_22 + pos_69) + (+ + pos_67 + inc_0)) + (values + stms_4 + vals_4 + next-has-stms?_1))) + (values + stms_3 + vals_3 + next-has-stms?_0))) + (values + stms_3 + vals_3 + next-has-stms?_0)))))) + for-loop_22) + '() + '() + #f + init_22 + start_10)))))) + (let-values (((lam-val_0 + arg-vals_0) + (let-values (((v_81) + lam-part-vals_0)) + (let-values (((v_82) + v_81)) + (let-values () + (let-values (((alt_70) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_82))))) + (if (let-values (((p_95) + v_82)) + (if (pair? + p_95) + (let-values (((a_116) + (cdr + p_95))) + (list? + a_116)) + #f)) + (let-values (((lam-val_1 + arg-vals_1) + (let-values (((p_96) + v_82)) + (let-values (((lam-val_2) + (let-values (((a_165) + (car + p_96))) + a_165)) + ((arg-vals_2) + (let-values (((d_47) + (cdr + p_96))) + d_47))) + (values + lam-val_2 + arg-vals_2))))) + (let-values () + (values + lam-val_1 + arg-vals_1))) + (alt_70)))))))) + (if (Ident? + lam_2) + (values + lam+arg-stms_0 + (il-app/binop_0 + lam_2 + arg-vals_0)) + (values + lam+arg-stms_0 + (ILApp7.1 + lam-val_0 + arg-vals_0))))))))) + (let-values () + (alt_58))))))))) + (if (App? + v_67) + (let-values () + (let-values (((lam_3 + args_18) + (vector->values + vec-v_39 + 1))) + (if (if (ImportedIdent? + lam_3) + (eq? + '#%js-ffi + (ImportedIdent-id + lam_3)) + #f) + (let-values () + (let-values (((v_83) + args_18)) + (let-values () + (let-values (((alt_71) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_72) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_73) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_74) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_75) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_76) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_77) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_78) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_79) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_80) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_81) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_82) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_83) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_84) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_85) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_86) + (lambda () + (begin + 'alt + (let-values () + (let-values () + (let-values () + (let-values () + (error + 'absyn-expr->il + "unknown ffi form" + args_18))))))))) + (if (let-values (((p_97) + v_83)) + (if (pair? + p_97) + (let-values (((a_166) + (cdr + p_97))) + (eq? + '() + a_166)) + #f)) + (let-values (((fst_6) + (let-values (((a_167) + (car + v_83))) + a_167))) + (if (if (Quote? + fst_6) + (eq? + (Quote-datum + fst_6) + 'this) + #f) + (let-values () + (values + '() + (ILThis19.1))) + (alt_86))) + (alt_86)))))))) + (if (let-values (((p_98) + v_83)) + (if (pair? + p_98) + (let-values (((a_168) + (cdr + p_98))) + (eq? + '() + a_168)) + #f)) + (let-values (((fst_7) + (let-values (((a_169) + (car + v_83))) + a_169))) + (if (if (Quote? + fst_7) + (eq? + (Quote-datum + fst_7) + 'arguments) + #f) + (let-values () + (values + '() + (ILArguments18.1))) + (alt_85))) + (alt_85)))))))) + (if (let-values (((p_99) + v_83)) + (if (pair? + p_99) + (let-values (((a_170) + (cdr + p_99))) + (eq? + '() + a_170)) + #f)) + (let-values (((fst_8) + (let-values (((a_171) + (car + v_83))) + a_171))) + (if (if (Quote? + fst_8) + (eq? + (Quote-datum + fst_8) + 'undefined) + #f) + (let-values () + (values + '() + (ILUndefined17.1))) + (alt_84))) + (alt_84)))))))) + (if (let-values (((p_100) + v_83)) + (if (pair? + p_100) + (let-values (((a_172) + (cdr + p_100))) + (eq? + '() + a_172)) + #f)) + (let-values (((fst_9) + (let-values (((a_173) + (car + v_83))) + a_173))) + (if (if (Quote? + fst_9) + (eq? + (Quote-datum + fst_9) + 'null) + #f) + (let-values () + (values + '() + (ILNull16.1))) + (alt_83))) + (alt_83)))))))) + (if (let-values (((p_101) + v_83)) + (if (pair? + p_101) + (let-values (((a_174) + (cdr + p_101))) + (let-values (((p_67) + a_174)) + (if (pair? + p_67) + (let-values (((a_175) + (cdr + p_67))) + (let-values (((p_102) + a_175)) + (if (pair? + p_102) + (let-values (((a_123) + (cdr + p_102))) + (let-values (((p_103) + a_123)) + (if (pair? + p_103) + (let-values (((a_124) + (cdr + p_103))) + (eq? + '() + a_124)) + #f))) + #f))) + #f))) + #f)) + (let-values (((fst_10 + snd_3 + e0_4 + e1_5) + (let-values (((p_104) + v_83)) + (let-values (((fst_11) + (let-values (((a_176) + (car + p_104))) + a_176)) + ((snd_4 + e0_5 + e1_6) + (let-values (((d_48) + (cdr + p_104))) + (let-values (((p_105) + d_48)) + (let-values (((snd_5) + (let-values (((a_177) + (car + p_105))) + a_177)) + ((e0_6 + e1_7) + (let-values (((d_49) + (cdr + p_105))) + (let-values (((p_106) + d_49)) + (let-values (((e0_7) + (let-values (((a_178) + (car + p_106))) + a_178)) + ((e1_8) + (let-values (((d_50) + (cdr + p_106))) + (let-values (((a_179) + (car + d_50))) + a_179)))) + (values + e0_7 + e1_8)))))) + (values + snd_5 + e0_6 + e1_7)))))) + (values + fst_11 + snd_4 + e0_5 + e1_6))))) + (if (if (Quote? + fst_10) + (if (Quote? + snd_3) + (eq? + (Quote-datum + fst_10) + 'operator) + #f) + #f) + (let-values () + (let-values (((oper_1) + (let-values (((v_84) + snd_3)) + (let-values (((v_85) + v_84)) + (let-values (((vec-v_50) + (struct->vector + v_85))) + (let-values (((alt_87) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_85))))) + (if (Quote? + v_85) + (let-values () + (let-values (((oper_2) + (vector->values + vec-v_50 + 1))) + (values + oper_2))) + (let-values () + (alt_87))))))))) + (let-values (((stms0_0 + val0_0) + (absyn-expr->il + e0_4 + #f))) + (let-values (((stms1_0 + val1_0) + (absyn-expr->il + e1_5 + #f))) + (values + (append + stms0_0 + stms1_0) + (ILBinaryOp6.1 + oper_1 + (list + val0_0 + val1_0))))))) + (alt_82))) + (alt_82)))))))) + (if (let-values (((p_107) + v_83)) + (if (pair? + p_107) + (let-values (((a_180) + (cdr + p_107))) + (let-values (((p_108) + a_180)) + (if (pair? + p_108) + (let-values (((a_181) + (cdr + p_108))) + (let-values (((p_109) + a_181)) + (if (pair? + p_109) + (let-values (((a_182) + (cdr + p_109))) + (eq? + '() + a_182)) + #f))) + #f))) + #f)) + (let-values (((fst_12 + e_14 + t_3) + (let-values (((p_110) + v_83)) + (let-values (((fst_13) + (let-values (((a_183) + (car + p_110))) + a_183)) + ((e_15 + t_4) + (let-values (((d_51) + (cdr + p_110))) + (let-values (((p_111) + d_51)) + (let-values (((e_16) + (let-values (((a_184) + (car + p_111))) + a_184)) + ((t_5) + (let-values (((d_52) + (cdr + p_111))) + (let-values (((a_185) + (car + d_52))) + a_185)))) + (values + e_16 + t_5)))))) + (values + fst_13 + e_15 + t_4))))) + (if (if (Quote? + fst_12) + (eq? + (Quote-datum + fst_12) + 'instanceof) + #f) + (let-values () + (let-values (((stms_7 + val_4) + (absyn-expr->il + e_14 + #f))) + (let-values (((tstms_0 + tval_0) + (absyn-expr->il + t_3 + #f))) + (values + (append + stms_7 + tstms_0) + (ILInstanceOf14.1 + val_4 + tval_0))))) + (alt_81))) + (alt_81)))))))) + (if (let-values (((p_112) + v_83)) + (if (pair? + p_112) + (let-values (((a_186) + (cdr + p_112))) + (let-values (((p_113) + a_186)) + (if (pair? + p_113) + (let-values (((a_187) + (cdr + p_113))) + (eq? + '() + a_187)) + #f))) + #f)) + (let-values (((fst_14 + e_17) + (let-values (((p_114) + v_83)) + (let-values (((fst_15) + (let-values (((a_188) + (car + p_114))) + a_188)) + ((e_18) + (let-values (((d_53) + (cdr + p_114))) + (let-values (((a_189) + (car + d_53))) + a_189)))) + (values + fst_15 + e_18))))) + (if (if (Quote? + fst_14) + (eq? + (Quote-datum + fst_14) + 'typeof) + #f) + (let-values () + (let-values (((stms_8 + val_5) + (absyn-expr->il + e_17 + #f))) + (values + stms_8 + (ILTypeOf15.1 + val_5)))) + (alt_80))) + (alt_80)))))))) + (if (let-values (((p_115) + v_83)) + (if (pair? + p_115) + (let-values (((a_190) + (cdr + p_115))) + (let-values (((p_116) + a_190)) + (if (pair? + p_116) + (let-values (((a_191) + (cdr + p_116))) + (eq? + '() + a_191)) + #f))) + #f)) + (let-values (((fst_16 + e_19) + (let-values (((p_117) + v_83)) + (let-values (((fst_17) + (let-values (((a_192) + (car + p_117))) + a_192)) + ((e_20) + (let-values (((d_54) + (cdr + p_117))) + (let-values (((a_193) + (car + d_54))) + a_193)))) + (values + fst_17 + e_20))))) + (if (if (Quote? + fst_16) + (eq? + (Quote-datum + fst_16) + 'throw) + #f) + (let-values () + (let-values (((stms_9 + val_6) + (absyn-expr->il + e_19 + #f))) + (values + (append1 + stms_9 + (ILThrow30.1 + val_6)) + (ILValue12.1 + (void))))) + (alt_79))) + (alt_79)))))))) + (if (let-values (((p_70) + v_83)) + (if (pair? + p_70) + (let-values (((a_129) + (cdr + p_70))) + (list? + a_129)) + #f)) + (let-values (((fst_18 + items_4) + (let-values (((p_71) + v_83)) + (let-values (((fst_19) + (let-values (((a_194) + (car + p_71))) + a_194)) + ((items_5) + (let-values (((d_55) + (cdr + p_71))) + d_55))) + (values + fst_19 + items_5))))) + (if (if (Quote? + fst_18) + (eq? + (Quote-datum + fst_18) + 'object) + #f) + (let-values () + (let-values (((keys_0 + vals_7) + (split-at + items_4 + (/ + (length + items_4) + 2)))) + (let-values (((stms*_0 + items*_0) + (let-values (((pos->vals_22 + pos-pre-inc_20 + pos-next_23 + init_23 + pos-cont?_23 + val-cont?_22 + all-cont?_22) + (make-sequence + '(k) + keys_0)) + ((pos->vals_23 + pos-pre-inc_21 + pos-next_24 + init_24 + pos-cont?_24 + val-cont?_23 + all-cont?_23) + (make-sequence + '(v) + vals_7))) + (begin + (void) + (void) + ((letrec-values (((for-loop_23) + (lambda (stms_10 + kvs_0 + pos_70 + pos_71) + (begin + 'for-loop + (if (if (if pos-cont?_23 + (pos-cont?_23 + pos_70) + #t) + (if pos-cont?_24 + (pos-cont?_24 + pos_71) + #t) + #f) + (let-values (((k_1 + all-cont?/pos_20) + (let-values (((k_2) + (pos->vals_22 + pos_70))) + (values + k_2 + (if all-cont?_22 + (lambda (pos_72) + (all-cont?_22 + pos_72 + k_2)) + #f)))) + ((pos_73) + (if pos-pre-inc_20 + (pos-pre-inc_20 + pos_70) + pos_70)) + ((v_86 + all-cont?/pos_21) + (let-values (((v_87) + (pos->vals_23 + pos_71))) + (values + v_87 + (if all-cont?_23 + (lambda (pos_74) + (all-cont?_23 + pos_74 + v_87)) + #f)))) + ((pos_75) + (if pos-pre-inc_21 + (pos-pre-inc_21 + pos_71) + pos_71))) + (if (if (if val-cont?_22 + (val-cont?_22 + k_1) + #t) + (if val-cont?_23 + (val-cont?_23 + v_86) + #t) + #f) + (let-values (((stms_11 + kvs_1) + (let-values (((stms_12) + stms_10) + ((kvs_2) + kvs_0)) + (let-values (((stms_13 + kvs_3) + (let-values () + (let-values (((s*_0 + v*_0) + (absyn-expr->il + v_86 + #f))) + (values + (append + stms_12 + s*_0) + (append + kvs_2 + (list + (cons + (Quote-datum + k_1) + v*_0)))))))) + (values + stms_13 + kvs_3))))) + (if (if (if all-cont?/pos_20 + (all-cont?/pos_20 + pos_73) + #t) + (if (if all-cont?/pos_21 + (all-cont?/pos_21 + pos_75) + #t) + (not + #f) + #f) + #f) + (for-loop_23 + stms_11 + kvs_1 + (pos-next_23 + pos_73) + (pos-next_24 + pos_75)) + (values + stms_11 + kvs_1))) + (values + stms_10 + kvs_0))) + (values + stms_10 + kvs_0)))))) + for-loop_23) + '() + '() + init_23 + init_24))))) + (values + stms*_0 + (ILObject9.1 + items*_0))))) + (alt_78))) + (alt_78)))))))) + (if (let-values (((p_118) + v_83)) + (if (pair? + p_118) + (let-values (((a_195) + (cdr + p_118))) + (list? + a_195)) + #f)) + (let-values (((fst_20 + items_6) + (let-values (((p_119) + v_83)) + (let-values (((fst_21) + (let-values (((a_196) + (car + p_119))) + a_196)) + ((items_7) + (let-values (((d_56) + (cdr + p_119))) + d_56))) + (values + fst_21 + items_7))))) + (if (if (Quote? + fst_20) + (eq? + (Quote-datum + fst_20) + 'array) + #f) + (let-values () + (let-values (((stms*_1 + items*_1) + (let-values (((pos->vals_24 + pos-pre-inc_22 + pos-next_25 + init_25 + pos-cont?_25 + val-cont?_24 + all-cont?_24) + (make-sequence + '(item) + items_6))) + (begin + (void) + ((letrec-values (((for-loop_24) + (lambda (stms_14 + vals_8 + pos_76) + (begin + 'for-loop + (if (if pos-cont?_25 + (pos-cont?_25 + pos_76) + #t) + (let-values (((item_0 + all-cont?/pos_22) + (let-values (((item_1) + (pos->vals_24 + pos_76))) + (values + item_1 + (if all-cont?_24 + (lambda (pos_77) + (all-cont?_24 + pos_77 + item_1)) + #f)))) + ((pos_78) + (if pos-pre-inc_22 + (pos-pre-inc_22 + pos_76) + pos_76))) + (if (if val-cont?_24 + (val-cont?_24 + item_0) + #t) + (let-values (((stms_15 + vals_9) + (let-values (((stms_16) + stms_14) + ((vals_10) + vals_8)) + (let-values (((stms_17 + vals_11) + (let-values () + (let-values (((s*_1 + v*_1) + (absyn-expr->il + item_0 + #f))) + (values + (append + stms_16 + s*_1) + (append + vals_10 + (list + v*_1))))))) + (values + stms_17 + vals_11))))) + (if (if (if all-cont?/pos_22 + (all-cont?/pos_22 + pos_78) + #t) + (not + #f) + #f) + (for-loop_24 + stms_15 + vals_9 + (pos-next_25 + pos_78)) + (values + stms_15 + vals_9))) + (values + stms_14 + vals_8))) + (values + stms_14 + vals_8)))))) + for-loop_24) + '() + '() + init_25))))) + (values + stms*_1 + (ILArray8.1 + items*_1)))) + (alt_77))) + (alt_77)))))))) + (if (let-values (((p_120) + v_83)) + (if (pair? + p_120) + (let-values (((a_197) + (cdr + p_120))) + (let-values (((p_121) + a_197)) + (if (pair? + p_121) + (let-values (((a_198) + (cdr + p_121))) + (eq? + '() + a_198)) + #f))) + #f)) + (let-values (((fst_22 + lv_0) + (let-values (((p_122) + v_83)) + (let-values (((fst_23) + (let-values (((a_199) + (car + p_122))) + a_199)) + ((lv_1) + (let-values (((d_57) + (cdr + p_122))) + (let-values (((a_200) + (car + d_57))) + a_200)))) + (values + fst_23 + lv_1))))) + (if (if (Quote? + fst_22) + (eq? + (Quote-datum + fst_22) + 'new) + #f) + (let-values () + (let-values (((stms_18 + il_0) + (absyn-expr->il + lv_0 + #f))) + (values + stms_18 + (ILNew13.1 + il_0)))) + (alt_76))) + (alt_76)))))))) + (if (let-values (((p_123) + v_83)) + (if (pair? + p_123) + (let-values (((a_201) + (cdr + p_123))) + (let-values (((p_124) + a_201)) + (if (pair? + p_124) + (let-values (((a_202) + (cdr + p_124))) + (let-values (((p_125) + a_202)) + (if (pair? + p_125) + (let-values (((a_203) + (cdr + p_125))) + (eq? + '() + a_203)) + #f))) + #f))) + #f)) + (let-values (((fst_24 + lv_2 + rv_0) + (let-values (((p_126) + v_83)) + (let-values (((fst_25) + (let-values (((a_137) + (car + p_126))) + a_137)) + ((lv_3 + rv_1) + (let-values (((d_58) + (cdr + p_126))) + (let-values (((p_127) + d_58)) + (let-values (((lv_4) + (let-values (((a_204) + (car + p_127))) + a_204)) + ((rv_2) + (let-values (((d_59) + (cdr + p_127))) + (let-values (((a_205) + (car + d_59))) + a_205)))) + (values + lv_4 + rv_2)))))) + (values + fst_25 + lv_3 + rv_1))))) + (if (if (Quote? + fst_24) + (eq? + (Quote-datum + fst_24) + 'assign) + #f) + (let-values () + (let-values (((lv-stms_0 + lv-il_0) + (absyn-expr->il + lv_2 + #f))) + (let-values (((rv-stms_0 + rv-il_0) + (absyn-expr->il + rv_0 + #f))) + (values + (append + lv-stms_0 + rv-stms_0 + (list + (ILAssign24.1 + lv-il_0 + rv-il_0))) + (ILValue12.1 + (void)))))) + (alt_75))) + (alt_75)))))))) + (if (let-values (((p_128) + v_83)) + (if (pair? + p_128) + (let-values (((a_140) + (cdr + p_128))) + (let-values (((p_129) + a_140)) + (if (pair? + p_129) + (let-values (((a_206) + (cdr + p_129))) + (list? + a_206)) + #f))) + #f)) + (let-values (((fst_26 + b_21 + xs_21) + (let-values (((p_130) + v_83)) + (let-values (((fst_27) + (let-values (((a_207) + (car + p_130))) + a_207)) + ((b_22 + xs_22) + (let-values (((d_60) + (cdr + p_130))) + (let-values (((p_79) + d_60)) + (let-values (((b_23) + (let-values (((a_208) + (car + p_79))) + a_208)) + ((xs_23) + (let-values (((d_38) + (cdr + p_79))) + d_38))) + (values + b_23 + xs_23)))))) + (values + fst_27 + b_22 + xs_22))))) + (if (if (Quote? + fst_26) + (eq? + (Quote-datum + fst_26) + 'index) + #f) + (let-values () + (let-values (((stms_19 + il_1) + (absyn-expr->il + b_21 + #f))) + (let-values (((pos->vals_25 + pos-pre-inc_23 + pos-next_26 + init_26 + pos-cont?_26 + val-cont?_25 + all-cont?_25) + (make-sequence + '(x) + xs_21))) + (begin + (void) + ((letrec-values (((for-loop_25) + (lambda (stms_20 + il_2 + pos_79) + (begin + 'for-loop + (if (if pos-cont?_26 + (pos-cont?_26 + pos_79) + #t) + (let-values (((x_37 + all-cont?/pos_23) + (let-values (((x_38) + (pos->vals_25 + pos_79))) + (values + x_38 + (if all-cont?_25 + (lambda (pos_80) + (all-cont?_25 + pos_80 + x_38)) + #f)))) + ((pos_81) + (if pos-pre-inc_23 + (pos-pre-inc_23 + pos_79) + pos_79))) + (if (if val-cont?_25 + (val-cont?_25 + x_37) + #t) + (let-values (((stms_21 + il_3) + (let-values (((stms_22) + stms_20) + ((il_4) + il_2)) + (let-values (((stms_23 + il_5) + (let-values () + (let-values (((x-stms_0 + s-il_0) + (absyn-expr->il + x_37 + #f))) + (values + (append + stms_22 + x-stms_0) + (if (ILValue? + il_4) + (ILIndex11.1 + (ILValue-v + il_4) + s-il_0) + (ILIndex11.1 + il_4 + s-il_0))))))) + (values + stms_23 + il_5))))) + (if (if (if all-cont?/pos_23 + (all-cont?/pos_23 + pos_81) + #t) + (not + #f) + #f) + (for-loop_25 + stms_21 + il_3 + (pos-next_26 + pos_81)) + (values + stms_21 + il_3))) + (values + stms_20 + il_2))) + (values + stms_20 + il_2)))))) + for-loop_25) + stms_19 + il_1 + init_26))))) + (alt_74))) + (alt_74)))))))) + (if (let-values (((p_131) + v_83)) + (if (pair? + p_131) + (let-values (((a_209) + (cdr + p_131))) + (let-values (((p_85) + a_209)) + (if (pair? + p_85) + (let-values (((a_210) + (cdr + p_85))) + (list? + a_210)) + #f))) + #f)) + (let-values (((fst_28 + b_24 + xs_24) + (let-values (((p_132) + v_83)) + (let-values (((fst_29) + (let-values (((a_153) + (car + p_132))) + a_153)) + ((b_25 + xs_25) + (let-values (((d_43) + (cdr + p_132))) + (let-values (((p_133) + d_43)) + (let-values (((b_26) + (let-values (((a_211) + (car + p_133))) + a_211)) + ((xs_26) + (let-values (((d_61) + (cdr + p_133))) + d_61))) + (values + b_26 + xs_26)))))) + (values + fst_29 + b_25 + xs_25))))) + (if (if (Quote? + fst_28) + (eq? + (Quote-datum + fst_28) + 'ref) + #f) + (let-values () + (let-values (((stms_24 + il_6) + (absyn-expr->il + b_24 + #f))) + (values + stms_24 + (let-values (((pos->vals_26 + pos-pre-inc_24 + pos-next_27 + init_27 + pos-cont?_27 + val-cont?_26 + all-cont?_26) + (make-sequence + '(x) + xs_24))) + (begin + (void) + ((letrec-values (((for-loop_26) + (lambda (il_7 + pos_41) + (begin + 'for-loop + (if (if pos-cont?_27 + (pos-cont?_27 + pos_41) + #t) + (let-values (((x_39 + all-cont?/pos_24) + (let-values (((x_40) + (pos->vals_26 + pos_41))) + (values + x_40 + (if all-cont?_26 + (lambda (pos_82) + (all-cont?_26 + pos_82 + x_40)) + #f)))) + ((pos_40) + (if pos-pre-inc_24 + (pos-pre-inc_24 + pos_41) + pos_41))) + (if (if val-cont?_26 + (val-cont?_26 + x_39) + #t) + (let-values (((il_8) + (let-values (((il_9) + il_7)) + (let-values (((il_10) + (let-values () + (let-values (((s_16) + (let-values (((v_88) + x_39)) + (let-values (((v_89) + v_88)) + (let-values (((vec-v_51) + (struct->vector + v_89))) + (let-values (((alt_88) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_89))))) + (if (Quote? + v_89) + (let-values () + (let-values (((s_17) + (vector->values + vec-v_51 + 1))) + (values + s_17))) + (let-values () + (alt_88))))))))) + (if (ILValue? + il_9) + (ILRef10.1 + (ILValue-v + il_9) + s_16) + (ILRef10.1 + il_9 + s_16)))))) + (values + il_10))))) + (if (if (if all-cont?/pos_24 + (all-cont?/pos_24 + pos_40) + #t) + (not + #f) + #f) + (for-loop_26 + il_8 + (pos-next_27 + pos_40)) + il_8)) + il_7)) + il_7))))) + for-loop_26) + il_6 + init_27)))))) + (alt_73))) + (alt_73)))))))) + (if (let-values (((p_134) + v_83)) + (if (pair? + p_134) + (let-values (((a_212) + (cdr + p_134))) + (let-values (((p_135) + a_212)) + (if (pair? + p_135) + (let-values (((a_213) + (cdr + p_135))) + (eq? + '() + a_213)) + #f))) + #f)) + (let-values (((fst_30 + snd_6) + (let-values (((p_136) + v_83)) + (let-values (((fst_31) + (let-values (((a_214) + (car + p_136))) + a_214)) + ((snd_7) + (let-values (((d_62) + (cdr + p_136))) + (let-values (((a_215) + (car + d_62))) + a_215)))) + (values + fst_31 + snd_7))))) + (if (if (Quote? + fst_30) + (if (Quote? + snd_6) + (eq? + (Quote-datum + fst_30) + 'string) + #f) + #f) + (let-values () + (values + '() + (ILValue12.1 + (Quote-datum + snd_6)))) + (alt_72))) + (alt_72)))))))) + (if (let-values (((p_137) + v_83)) + (if (pair? + p_137) + (let-values (((a_216) + (cdr + p_137))) + (let-values (((p_138) + a_216)) + (if (pair? + p_138) + (let-values (((a_217) + (cdr + p_138))) + (eq? + '() + a_217)) + #f))) + #f)) + (let-values (((fst_32 + snd_8) + (let-values (((p_139) + v_83)) + (let-values (((fst_33) + (let-values (((a_218) + (car + p_139))) + a_218)) + ((snd_9) + (let-values (((d_63) + (cdr + p_139))) + (let-values (((a_219) + (car + d_63))) + a_219)))) + (values + fst_33 + snd_9))))) + (if (if (Quote? + fst_32) + (if (Quote? + snd_8) + (eq? + (Quote-datum + fst_32) + 'var) + #f) + #f) + (let-values () + (values + '() + (Quote-datum + snd_8))) + (alt_71))) + (alt_71)))))) + (alt_57)))) + (let-values () + (alt_57))))))))) + (if (Set!? v_67) + (let-values () + (let-values (((id_8 + e_21) + (vector->values + vec-v_38 + 1))) + (values + (let-values (((stms_25 + v_90) + (absyn-expr->il + e_21 + #f))) + (append1 + stms_25 + (ILAssign24.1 + id_8 + v_90))) + (ILValue12.1 + (void))))) + (let-values () + (alt_56))))))))) + (if (LetValues? v_67) + (let-values () + (let-values (((bindings_1 body_11) + (vector->values vec-v_37 1))) + (let-values (((binding-stms_0) + (let-values (((pos->vals_27 + pos-pre-inc_25 + pos-next_28 + init_28 + pos-cont?_28 + val-cont?_27 + all-cont?_27) + (make-sequence + '(b) + bindings_1))) + (begin + (void) + ((letrec-values (((for-loop_27) + (lambda (stms_26 + pos_83) + (begin + 'for-loop + (if (if pos-cont?_28 + (pos-cont?_28 + pos_83) + #t) + (let-values (((b_27 + all-cont?/pos_25) + (let-values (((b_28) + (pos->vals_27 + pos_83))) + (values + b_28 + (if all-cont?_27 + (lambda (pos_84) + (all-cont?_27 + pos_84 + b_28)) + #f)))) + ((pos_85) + (if pos-pre-inc_25 + (pos-pre-inc_25 + pos_83) + pos_83))) + (if (if val-cont?_27 + (val-cont?_27 + b_27) + #t) + (let-values (((stms_27) + (let-values (((stms_28) + stms_26)) + (let-values (((stms_29) + (let-values () + (append + stms_28 + (absyn-binding->il + b_27))))) + (values + stms_29))))) + (if (if (if all-cont?/pos_25 + (all-cont?/pos_25 + pos_85) + #t) + (not + #f) + #f) + (for-loop_27 + stms_27 + (pos-next_28 + pos_85)) + stms_27)) + stms_26)) + stms_26))))) + for-loop_27) + '() + init_28))))) + (let-values (((body13_0) + (sequence-length + body_11))) + (let-values (((pos->vals_28 + pos-pre-inc_26 + pos-next_29 + init_29 + pos-cont?_29 + val-cont?_28 + all-cont?_28) + (make-sequence + '(e) + body_11)) + ((start_11) 0) + ((end_5) body13_0) + ((inc_1) 1)) + (begin + (void) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_11 + end_5 + inc_1))) + ((letrec-values (((for-loop_28) + (lambda (stms_30 + rv_3 + pos_86 + pos_87) + (begin + 'for-loop + (if (if (if pos-cont?_29 + (pos-cont?_29 + pos_86) + #t) + (< + pos_87 + end_5) + #f) + (let-values (((e_22 + all-cont?/pos_26) + (let-values (((e_23) + (pos->vals_28 + pos_86))) + (values + e_23 + (if all-cont?_28 + (lambda (pos_88) + (all-cont?_28 + pos_88 + e_23)) + #f)))) + ((pos_89) + (if pos-pre-inc_26 + (pos-pre-inc_26 + pos_86) + pos_86)) + ((body14_0) + pos_87)) + (if (if (if val-cont?_28 + (val-cont?_28 + e_22) + #t) + #t + #f) + (let-values (((stms_31 + rv_4) + (let-values (((stms_32) + stms_30)) + (let-values (((stms_33 + rv_5) + (let-values () + (let-values (((last?_1) + (equal? + (sub1 + body13_0) + body14_0))) + (let-values (((s_18 + nv_0) + (absyn-expr->il + e_22 + (if last?_1 + overwrite-mark-frame?_0 + #f)))) + (if last?_1 + (values + (append + stms_32 + s_18) + nv_0) + (values + (append + stms_32 + s_18 + (list + nv_0)) + nv_0))))))) + (values + stms_33 + rv_5))))) + (if (if (if all-cont?/pos_26 + (all-cont?/pos_26 + pos_89) + #t) + (not + #f) + #f) + (for-loop_28 + stms_31 + rv_4 + (pos-next_29 + pos_89) + (+ + pos_87 + inc_1)) + (values + stms_31 + rv_4))) + (values + stms_30 + rv_3))) + (values + stms_30 + rv_3)))))) + for-loop_28) + binding-stms_0 + (ILValue12.1 (void)) + init_29 + start_11))))))) + (let-values () (alt_55))))))))) + (if (If? v_67) + (let-values () + (let-values (((pred-e_0 t-branch_1 f-branch_1) + (vector->values vec-v_36 1))) + (let-values (((ps_0 pe_0) (absyn-expr->il pred-e_0 #f))) + (let-values (((ts_0 te_0) + (absyn-expr->il + t-branch_1 + overwrite-mark-frame?_0))) + (let-values (((fs_2 fe_0) + (absyn-expr->il + f-branch_1 + overwrite-mark-frame?_0))) + (let-values (((result-id_1) (fresh-id 'if_res))) + (values + (append + ps_0 + (list + (ILIf22.1 + (ILBinaryOp6.1 '!== (list pe_0 (ILValue12.1 #f))) + (append1 ts_0 (ILVarDec20.1 result-id_1 te_0)) + (append1 fs_2 (ILVarDec20.1 result-id_1 fe_0))))) + result-id_1))))))) + (let-values () (alt_54))))))))) + (if (CaseLambda? v_67) + (let-values () + (let-values (((clauses_2) (vector->values vec-v_35 1))) + (let-values (((fixed-lams_0 rest-lams_0) + (if (case-lambda-has-dead-clause? expr_8) + (begin + (log-rjs-warning "found a case-lambda with dead-clause") + (values '() clauses_2)) + (values + (filter (lambda (l_26) (number? (lambda-arity l_26))) clauses_2) + (filter + (lambda (l_27) (not (number? (lambda-arity l_27)))) + clauses_2))))) + (let-values (((stms_34 val_7) + (expand-normal-case-lambda fixed-lams_0 rest-lams_0))) + (let-values (((arities_0) + (ILArray8.1 + (reverse$1 + (let-values (((pos->vals_29 + pos-pre-inc_27 + pos-next_30 + init_30 + pos-cont?_30 + val-cont?_29 + all-cont?_29) + (make-sequence + '(c) + (resolve-procedure-arities + (map2 lambda-arity clauses_2))))) + (begin + (void) + ((letrec-values (((for-loop_29) + (lambda (fold-var_16 pos_90) + (begin + 'for-loop + (if (if pos-cont?_30 + (pos-cont?_30 pos_90) + #t) + (let-values (((c_14 + all-cont?/pos_27) + (let-values (((c_15) + (pos->vals_29 + pos_90))) + (values + c_15 + (if all-cont?_29 + (lambda (pos_91) + (all-cont?_29 + pos_91 + c_15)) + #f)))) + ((pos_92) + (if pos-pre-inc_27 + (pos-pre-inc_27 + pos_90) + pos_90))) + (if (if val-cont?_29 + (val-cont?_29 c_14) + #t) + (let-values (((fold-var_17) + (let-values (((fold-var_18) + fold-var_16)) + (let-values (((fold-var_19) + (let-values () + (cons + (let-values () + (if (arity-at-least? + c_14) + (let-values () + (let-values (((__7 + val_8) + (absyn-expr->il + (App9.1 + (ImportedIdent3.1 + 'make-arity-at-least + '#%kernel + #t) + (list + (Quote7.1 + (arity-at-least-value + c_14)))) + #f))) + val_8)) + (if (number? + c_14) + (let-values () + (ILValue12.1 + c_14)) + (void)))) + fold-var_18)))) + (values + fold-var_19))))) + (if (if (if all-cont?/pos_27 + (all-cont?/pos_27 + pos_92) + #t) + (not #f) + #f) + (for-loop_29 + fold-var_17 + (pos-next_30 pos_92)) + fold-var_17)) + fold-var_16)) + fold-var_16))))) + for-loop_29) + null + init_30))))))) + (values + stms_34 + (ILApp7.1 + (name-in-module 'core 'attachProcedureArity) + (list val_7 arities_0)))))))) + (let-values () (alt_53))))))))) + (if (Lambda? v_67) + (let-values () + (let-values (((formals_8 body_12 unchecked?_0) (vector->values vec-v_20 1))) + (let-values (((->jslist_0) + (lambda (f_31) + (begin '->jslist (ILApp7.1 (name-in-module 'core 'Pair.listFromArray) (list f_31)))))) + (let-values (((maybe-make-checked-formals_0) + (lambda (formals_9) + (begin + 'maybe-make-checked-formals + (if (let-values (((or-part_93) unchecked?_0)) + (if or-part_93 or-part_93 (skip-arity-checks?))) + formals_9 + (ILCheckedFormals4.1 formals_9)))))) + (let-values (((in-formals_0 stms-formals-init_0) + (if (symbol? formals_8) + (let-values () + (let-values (((in-formals_1) (fresh-id formals_8))) + (values + in-formals_1 + (list (ILVarDec20.1 formals_8 (->jslist_0 in-formals_1)))))) + (if (list? formals_8) + (let-values () (values formals_8 '())) + (if (cons? formals_8) + (let-values () + (let-values (((fi_0) (car formals_8))) + (let-values (((fp_0) (cdr formals_8))) + (let-values (((in-fp_0) (fresh-id fp_0))) + (values + (cons fi_0 in-fp_0) + (list (ILVarDec20.1 fp_0 (->jslist_0 in-fp_0)))))))) + (void)))))) + (let-values (((body-stms_0 body-value_0) + (let-values (((body18_0) (sequence-length body_12))) + (let-values (((pos->vals_30 + pos-pre-inc_28 + pos-next_31 + init_31 + pos-cont?_31 + val-cont?_30 + all-cont?_30) + (make-sequence '(e) body_12)) + ((start_12) 0) + ((end_6) body18_0) + ((inc_2) 1)) + (begin + (void) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_12 end_6 inc_2))) + ((letrec-values (((for-loop_30) + (lambda (stms_35 rv_6 pos_93 pos_94) + (begin + 'for-loop + (if (if (if pos-cont?_31 (pos-cont?_31 pos_93) #t) + (< pos_94 end_6) + #f) + (let-values (((e_24 all-cont?/pos_28) + (let-values (((e_25) + (pos->vals_30 pos_93))) + (values + e_25 + (if all-cont?_30 + (lambda (pos_95) + (all-cont?_30 pos_95 e_25)) + #f)))) + ((pos_96) + (if pos-pre-inc_28 + (pos-pre-inc_28 pos_93) + pos_93)) + ((body19_0) pos_94)) + (if (if (if val-cont?_30 (val-cont?_30 e_24) #t) + #t + #f) + (let-values (((stms_36 rv_7) + (let-values (((stms_37) stms_35)) + (let-values (((stms_38 rv_8) + (let-values () + (let-values (((last?_2) + (equal? + (sub1 + body18_0) + body19_0))) + (let-values (((s_19 + v_91) + (absyn-expr->il + e_24 + (if last?_2 + overwrite-mark-frame?_0 + #f)))) + (if last?_2 + (values + (append + stms_37 + s_19) + v_91) + (values + (append + stms_37 + s_19 + (list + v_91)) + v_91))))))) + (values stms_38 rv_8))))) + (if (if (if all-cont?/pos_28 + (all-cont?/pos_28 pos_96) + #t) + (not #f) + #f) + (for-loop_30 + stms_36 + rv_7 + (pos-next_31 pos_96) + (+ pos_94 inc_2)) + (values stms_36 rv_7))) + (values stms_35 rv_6))) + (values stms_35 rv_6)))))) + for-loop_30) + '() + (ILValue12.1 (void)) + init_31 + start_12)))))) + (let-values (((lambda-expr_0) + (ILLambda5.1 + (maybe-make-checked-formals_0 in-formals_0) + (append stms-formals-init_0 body-stms_0 (list (ILReturn26.1 body-value_0)))))) + (values + '() + (if (variadic-lambda? expr_8) + (ILApp7.1 (name-in-module 'core 'attachProcedureArity) (list lambda-expr_0)) + lambda-expr_0))))))))) + (let-values () (alt_38))))))))) + (define-values + (absyn-binding->il) + (lambda (b_29) + (begin + (let-values (((args_19 expr_15) + (let-values (((v_92) b_29)) + (let-values (((v_93) v_92)) + (let-values () + (let-values (((alt_89) (lambda () (begin 'alt (error 'match "failed ~e" v_93))))) + (if (let-values (((p_140) v_93)) (if (pair? p_140) #t #f)) + (let-values (((args_20 expr_16) + (let-values (((p_141) v_93)) + (let-values (((args_21) (let-values (((a_220) (car p_141))) a_220)) + ((expr_17) (let-values (((d_64) (cdr p_141))) d_64))) + (values args_21 expr_17))))) + (let-values () (values args_20 expr_16))) + (alt_89)))))))) + (let-values (((stms_39 v_94) (absyn-expr->il expr_15 #f))) + (let-values (((v_95) args_19)) + (let-values () + (let-values (((alt_90) + (lambda () + (begin + 'alt + (let-values () + (let-values () + (let-values () + (let-values () + (let-values (((result-id_2) (fresh-id 'let_result))) + (let-values (((binding-stms_1) + (reverse$1 + (let-values (((start_13) 0) + ((end_7) (length args_19)) + ((inc_3) 1) + ((pos->vals_31 + pos-pre-inc_29 + pos-next_32 + init_32 + pos-cont?_32 + val-cont?_31 + all-cont?_31) + (make-sequence '(arg) args_19))) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-range start_13 end_7 inc_3))) + (void) + ((letrec-values (((for-loop_31) + (lambda (fold-var_20 pos_97 pos_98) + (begin + 'for-loop + (if (if (< pos_97 end_7) + (if pos-cont?_32 + (pos-cont?_32 pos_98) + #t) + #f) + (let-values (((i_55) pos_97) + ((arg_2 + all-cont?/pos_29) + (let-values (((arg_3) + (pos->vals_31 + pos_98))) + (values + arg_3 + (if all-cont?_31 + (lambda (pos_99) + (all-cont?_31 + pos_99 + arg_3)) + #f)))) + ((pos_100) + (if pos-pre-inc_29 + (pos-pre-inc_29 + pos_98) + pos_98))) + (if (if val-cont?_31 + (val-cont?_31 arg_2) + #t) + (let-values (((fold-var_21) + (let-values (((fold-var_22) + fold-var_20)) + (let-values (((fold-var_23) + (let-values () + (cons + (let-values () + (ILVarDec20.1 + arg_2 + (ILApp7.1 + (ILRef10.1 + result-id_2 + 'getAt) + (list + (ILValue12.1 + i_55))))) + fold-var_22)))) + (values + fold-var_23))))) + (if (if (if all-cont?/pos_29 + (all-cont?/pos_29 + pos_100) + #t) + (not #f) + #f) + (for-loop_31 + fold-var_21 + (+ pos_97 inc_3) + (pos-next_32 pos_100)) + fold-var_21)) + fold-var_20)) + fold-var_20))))) + for-loop_31) + null + start_13 + init_32)))))) + (append + stms_39 + (cons (ILVarDec20.1 result-id_2 v_94) binding-stms_1)))))))))))) + (if (let-values (((p_142) v_95)) + (if (pair? p_142) (let-values (((a_221) (cdr p_142))) (eq? '() a_221)) #f)) + (let-values (((a_222) (let-values (((a_223) (car v_95))) a_223))) + (let-values () (append1 stms_39 (ILVarDec20.1 a_222 v_94)))) + (alt_90)))))))))) + (define-values + (absyn-value->il) + (lambda (d_65) + (begin + (if (Quote? d_65) + (let-values () (absyn-value->il (Quote-datum d_65))) + (if (string? d_65) + (let-values () (ILApp7.1 (name-in-module 'core 'UString.make) (list (ILValue12.1 d_65)))) + (if (symbol? d_65) + (let-values () + (ILApp7.1 (name-in-module 'core 'PrimitiveSymbol.make) (list (ILValue12.1 (symbol->string d_65))))) + (if (keyword? d_65) + (let-values () + (ILApp7.1 (name-in-module 'core 'Keyword.make) (list (ILValue12.1 (keyword->string d_65))))) + (if (list? d_65) + (let-values () (ILApp7.1 (name-in-module 'core 'Pair.makeList) (map2 absyn-value->il d_65))) + (if (empty? d_65) + (let-values () (name-in-module 'core 'Pair.EMPTY)) + (if (cons? d_65) + (let-values () + (ILApp7.1 + (name-in-module 'core 'Pair.make) + (list (absyn-value->il (car d_65)) (absyn-value->il (cdr d_65))))) + (if (vector? d_65) + (let-values () + (ILApp7.1 + (name-in-module 'core 'Vector.make) + (list (ILArray8.1 (map2 absyn-value->il (vector->list d_65)))))) + (if (hash? d_65) + (let-values () + (let-values (((maker_0) + (if (hash-eq? d_65) + (let-values () 'Hash.makeEq) + (if (hash-eqv? d_65) + (let-values () 'Hash.makeEqv) + (if (hash-equal? d_65) + (let-values () 'Hash.makeEqual) + (let-values () (error 'assemble-value "unknown hash type"))))))) + (let-values (((mutable_0) (not (immutable? d_65)))) + (ILApp7.1 + (name-in-module 'core maker_0) + (list + (ILArray8.1 + (reverse$1 + (let-values (((ht_7) d_65)) + (begin + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_7))) + ((letrec-values (((for-loop_32) + (lambda (fold-var_24 i_56) + (begin + 'for-loop + (if i_56 + (let-values (((key_12 value_4) + (hash-iterate-key+value ht_7 i_56))) + (let-values (((fold-var_25) + (let-values (((fold-var_26) fold-var_24)) + (let-values (((fold-var_27) + (let-values () + (cons + (let-values () + (ILArray8.1 + (list + (absyn-value->il + key_12) + (absyn-value->il + value_4)))) + fold-var_26)))) + (values fold-var_27))))) + (if (not #f) + (for-loop_32 + fold-var_25 + (hash-iterate-next ht_7 i_56)) + fold-var_25))) + fold-var_24))))) + for-loop_32) + null + (hash-iterate-first ht_7)))))) + (ILValue12.1 mutable_0)))))) + (if (bytes? d_65) + (let-values () + (ILApp7.1 + (name-in-module 'core 'Bytes.fromIntArray) + (list (ILArray8.1 (map2 ILValue12.1 (bytes->list d_65)))))) + (if (box? d_65) + (let-values () + (ILApp7.1 (name-in-module 'core 'Box.make) (list (absyn-value->il (unbox d_65))))) + (if (char? d_65) + (let-values () + (ILApp7.1 + (name-in-module 'core 'Char.charFromCodepoint) + (list (absyn-value->il (char->integer d_65))))) + (if (let-values (((or-part_94) (regexp? d_65))) + (if or-part_94 or-part_94 (byte-regexp? d_65))) + (let-values () + (let-values (((v_96) (object-name d_65))) + (ILApp7.1 + (name-in-module 'core 'Regexp.fromString) + (list (ILValue12.1 (if (bytes? v_96) (bytes->string/utf-8 v_96) v_96)))))) + (if (let-values (((or-part_95) (integer? d_65))) + (if or-part_95 + or-part_95 + (let-values (((or-part_96) (boolean? d_65))) + (if or-part_96 + or-part_96 + (let-values (((or-part_97) (void? d_65))) + (if or-part_97 or-part_97 (real? d_65))))))) + (let-values () (ILValue12.1 d_65)) + (let-values () (error (~a "unsupported value" d_65)))))))))))))))))))) + (define-values + (expand-normal-case-lambda) + (lambda (fixed-lams_1 rest-lams_1) + (begin + (let-values (((fixed-lam-names_0) (build-list (length fixed-lams_1) (lambda (__8) (fresh-id 'cl))))) + (let-values (((rest-lam-names_0) (build-list (length rest-lams_1) (lambda (__9) (fresh-id 'cl))))) + (let-values (((fixed-lam-name_0) (fresh-id 'fixed-lam))) + (let-values (((fixed-lam-map_0) + (ILObject9.1 + (map2 + (lambda (id_9 lam_4) + (let-values (((arity_5) (lambda-arity lam_4))) + (if (number? arity_5) + (cons (string->symbol (~a arity_5)) id_9) + (error 'expand-normal-case-lambda "assertion failed")))) + fixed-lam-names_0 + fixed-lams_1)))) + (let-values (((*null*_0) (App9.1 (ImportedIdent3.1 '#%js-ffi '#%kernel #t) (list (Quote7.1 'null))))) + (let-values (((*arguments*_0) + (App9.1 (ImportedIdent3.1 '#%js-ffi '#%kernel #t) (list (Quote7.1 'arguments))))) + (let-values (((var-lam-stms_0 var-lam-val_0) + (absyn-expr->il + ((letrec-values (((loop_59) + (lambda (lams*_0 names*_0) + (begin + 'loop + (let-values (((v_97) (list lams*_0 names*_0))) + (let-values () + (let-values (((alt_91) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_92) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_97))))) + (if (let-values (((p_143) v_97)) + (if (pair? p_143) + (if (let-values (((a_224) + (car p_143))) + (let-values (((p_144) + a_224)) + (if (pair? p_144) + #t + #f))) + (let-values (((a_225) + (cdr p_143))) + (let-values (((p_145) + a_225)) + (if (pair? p_145) + (if (let-values (((a_226) + (car + p_145))) + (let-values (((p_146) + a_226)) + (if (pair? + p_146) + #t + #f))) + (let-values (((a_227) + (cdr + p_145))) + (eq? '() a_227)) + #f) + #f))) + #f) + #f)) + (let-values (((lh_0 lt_0 nh_0 nt_0) + (let-values (((p_147) + v_97)) + (let-values (((lh_1 + lt_1) + (let-values (((a_228) + (car + p_147))) + (let-values (((p_148) + a_228)) + (let-values (((lh_2) + (let-values (((a_229) + (car + p_148))) + a_229)) + ((lt_2) + (let-values (((d_66) + (cdr + p_148))) + d_66))) + (values + lh_2 + lt_2))))) + ((nh_1 + nt_1) + (let-values (((d_67) + (cdr + p_147))) + (let-values (((a_230) + (car + d_67))) + (let-values (((p_149) + a_230)) + (let-values (((nh_2) + (let-values (((a_231) + (car + p_149))) + a_231)) + ((nt_2) + (let-values (((d_68) + (cdr + p_149))) + d_68))) + (values + nh_2 + nt_2))))))) + (values + lh_1 + lt_1 + nh_1 + nt_1))))) + (let-values () + (let-values (((arguments-length_0) + (App9.1 + (ImportedIdent3.1 + '#%js-ffi + '#%kernel + #t) + (list + (Quote7.1 'ref) + (LocalIdent6.1 + nh_0) + (Quote7.1 + 'length))))) + (If12.1 + ((get-formals-predicate lh_0) + arguments-length_0) + (App9.1 + (App9.1 + (ImportedIdent3.1 + '#%js-ffi + '#%kernel + #t) + (list + (Quote7.1 'ref) + (LocalIdent6.1 nh_0) + (Quote7.1 'apply))) + (list + *null*_0 + *arguments*_0)) + (loop_59 lt_0 nt_0))))) + (alt_92)))))))) + (if (let-values (((p_150) v_97)) + (if (pair? p_150) + (if (let-values (((a_232) (car p_150))) + (eq? '() a_232)) + (let-values (((a_233) (cdr p_150))) + (let-values (((p_151) a_233)) + (if (pair? p_151) + (if (let-values (((a_234) (car p_151))) + (eq? '() a_234)) + (let-values (((a_235) (cdr p_151))) + (eq? '() a_235)) + #f) + #f))) + #f) + #f)) + (let-values () + (let-values () + (App9.1 + (ImportedIdent3.1 'error '#%kernel #t) + (list (Quote7.1 "case-lambda: invalid case"))))) + (alt_91))))))))) + loop_59) + rest-lams_1 + rest-lam-names_0) + #f))) + (let-values (((dispatch-stms_0) + (list + (ILVarDec20.1 + fixed-lam-name_0 + (ILIndex11.1 fixed-lam-map_0 (ILRef10.1 (ILArguments18.1) 'length))) + (ILIf22.1 + (ILBinaryOp6.1 '!== (list fixed-lam-name_0 (ILUndefined17.1))) + (list + (ILReturn26.1 + (ILApp7.1 + (ILRef10.1 fixed-lam-name_0 'apply) + (list (ILNull16.1) (ILArguments18.1))))) + (append1 var-lam-stms_0 (ILReturn26.1 var-lam-val_0)))))) + (let-values (((make-lam_0) + (lambda (id_10 lam_5) + (begin + 'make-lam + (let-values (((stms_40 lam-expr_0) (absyn-expr->il lam_5 #f))) + (begin stms_40 (ILVarDec20.1 id_10 lam-expr_0))))))) + (values + (append + (map2 make-lam_0 fixed-lam-names_0 fixed-lams_1) + (map2 make-lam_0 rest-lam-names_0 rest-lams_1)) + (ILLambda5.1 '() dispatch-stms_0)))))))))))))) + (define-values + (case-lambda-has-dead-clause?) + (lambda (clam_0) + (begin + (let-values (((result_11 __10) + (let-values (((pos->vals_32 + pos-pre-inc_30 + pos-next_33 + init_33 + pos-cont?_33 + val-cont?_32 + all-cont?_32) + (make-sequence '(lam) (CaseLambda-clauses clam_0)))) + (begin + (void) + ((letrec-values (((for-loop_33) + (lambda (res_9 least-var-arity_0 pos_101) + (begin + 'for-loop + (if (if pos-cont?_33 (pos-cont?_33 pos_101) #t) + (let-values (((lam_6 all-cont?/pos_30) + (let-values (((lam_7) (pos->vals_32 pos_101))) + (values + lam_7 + (if all-cont?_32 + (lambda (pos_102) (all-cont?_32 pos_102 lam_7)) + #f)))) + ((pos_103) + (if pos-pre-inc_30 (pos-pre-inc_30 pos_101) pos_101))) + (if (if val-cont?_32 (val-cont?_32 lam_6) #t) + (let-values (((res_10 least-var-arity_1) + (let-values (((res_11) res_9) + ((least-var-arity_2) least-var-arity_0)) + (let-values (((res_12 least-var-arity_3) + (let-values () + (let-values (((arity_6) + (lambda-arity lam_6))) + (if (if (number? arity_6) + (< + arity_6 + least-var-arity_2) + #f) + (let-values () + (values + res_11 + least-var-arity_2)) + (if (number? arity_6) + (let-values () + (values + #t + least-var-arity_2)) + (if (if (arity-at-least? + arity_6) + (< + (arity-at-least-value + arity_6) + least-var-arity_2) + #f) + (let-values () + (values + res_11 + (arity-at-least-value + arity_6))) + (if (arity-at-least? + arity_6) + (let-values () + (values + #t + least-var-arity_2)) + (void))))))))) + (values res_12 least-var-arity_3))))) + (if (if (if all-cont?/pos_30 (all-cont?/pos_30 pos_103) #t) + (not #f) + #f) + (for-loop_33 res_10 least-var-arity_1 (pos-next_33 pos_103)) + (values res_10 least-var-arity_1))) + (values res_9 least-var-arity_0))) + (values res_9 least-var-arity_0)))))) + for-loop_33) + #f + +inf.0 + init_33))))) + result_11)))) + (define-values + (get-formals-predicate) + (lambda (c_16) + (begin + (let-values (((frmls_1) (Lambda-formals c_16))) + (let-values () + (if (symbol? frmls_1) + (let-values () (lambda (__11) (Quote7.1 #t))) + (if (list? frmls_1) + (let-values () + (lambda (v_98) + (App9.1 (ImportedIdent3.1 'equal? '#%kernel #t) (list v_98 (Quote7.1 (length frmls_1)))))) + (if (cons? frmls_1) + (let-values () + (lambda (v_99) + (App9.1 + (ImportedIdent3.1 '>= '#%kernel #t) + (list v_99 (Quote7.1 (sub1 (length (improper->proper frmls_1)))))))) + (void))))))))) + (define-values + (resolve-procedure-arities) + (lambda (arities_1) + (begin + (let-values (((arity<_0) + (lambda (a_236 b_30) + (begin + 'arity< + (< + (if (arity-at-least? a_236) (arity-at-least-value a_236) a_236) + (if (arity-at-least? b_30) (arity-at-least-value b_30) b_30)))))) + (let-values (((arity-equal?_0) + (lambda (a_237 b_31) + (begin 'arity-equal? (if (not (arity<_0 a_237 b_31)) (not (arity<_0 b_31 a_237)) #f))))) + ((letrec-values (((loop_60) + (lambda (arities*_0 result_12) + (begin + 'loop + (let-values (((v_100) arities*_0)) + (let-values () + (let-values (((alt_93) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_94) + (lambda () + (begin + 'alt + (let-values () + (let-values (((alt_95) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_100))))) + (if (let-values (((p_152) v_100)) + (if (pair? p_152) #t #f)) + (let-values (((hd_8 tl_3) + (let-values (((p_153) + v_100)) + (let-values (((hd_9) + (let-values (((a_238) + (car + p_153))) + a_238)) + ((tl_4) + (let-values (((d_69) + (cdr + p_153))) + d_69))) + (values hd_9 tl_4))))) + (let-values () + (loop_60 + tl_3 + (if (if (cons? result_12) + (arity-equal?_0 + (car result_12) + hd_8) + #f) + result_12 + (cons hd_8 result_12))))) + (alt_95)))))))) + (if (let-values (((p_154) v_100)) (if (pair? p_154) #t #f)) + (let-values (((hd_10 tl_5) + (let-values (((p_155) v_100)) + (let-values (((hd_11) + (let-values (((a_239) + (car p_155))) + a_239)) + ((tl_6) + (let-values (((d_70) + (cdr p_155))) + d_70))) + (values hd_11 tl_6))))) + (if (arity-at-least? hd_10) + (let-values () + (reverse$1 + (if (if (cons? result_12) + (arity-equal?_0 (car result_12) hd_10) + #f) + (cons hd_10 (cdr result_12)) + (cons hd_10 result_12)))) + (alt_94))) + (alt_94)))))))) + (if (eq? '() v_100) + (let-values () (let-values () (reverse$1 result_12))) + (alt_93))))))))) + loop_60) + (let-values (((arities23_0) arities_1) ((arity<24_0) arity<_0)) (sort.1 #f #f arities23_0 arity<24_0)) + '())))))) + (define-values + (make-curry) + (lambda (right?_0) + (begin + (let-values (((arity-upper-bound_0) + (lambda (mask_10) + (begin + 'arity-upper-bound + (if (eqv? mask_10 0) + (let-values () #f) + (if (negative? mask_10) + (let-values () +inf.0) + (let-values () (sub1 (integer-length mask_10))))))))) + (let-values (((partially-applied-procedure-arity-mask_0) + (lambda (mask_11 num-args-so-far_0) + (begin + 'partially-applied-procedure-arity-mask + (if (negative? mask_11) + -1 + (sub1 (arithmetic-shift 1 (- (integer-length mask_11) num-args-so-far_0)))))))) + (let-values (((who_7) (if right?_0 'curryr 'curry))) + (let-values (((incorporate-new-pos-args_0) + (if right?_0 + (lambda (pos-args-so-far_0 new-pos-args_0) + (begin 'incorporate-new-pos-args (append new-pos-args_0 pos-args-so-far_0))) + (lambda (pos-args-so-far_1 new-pos-args_1) + (begin 'incorporate-new-pos-args (append pos-args-so-far_1 new-pos-args_1)))))) + (let-values (((do-curry_0) + (lambda (f_32) + (begin + 'do-curry + (begin + (if (procedure? f_32) + (void) + (let-values () (raise-argument-error who_7 "procedure?" f_32))) + (let-values (((name_13) (object-name f_32))) + (let-values (((curried-name_0) + (if (symbol? name_13) + (string->symbol (string-append "curried:" (symbol->string name_13))) + 'curried))) + (let-values (((arity-mask_1) (procedure-arity-mask f_32))) + (let-values (((max-arity_0) (arity-upper-bound_0 arity-mask_1))) + (let-values (((required-kws_0 allowed-kws_2) (procedure-keywords f_32))) + (if (null? allowed-kws_2) + (let-values () + (let-values (((reduce-arity/rename_0) + (lambda (proc_17 num-args-so-far_1) + (begin + 'reduce-arity/rename + (new:procedure-reduce-arity-mask + proc_17 + (partially-applied-procedure-arity-mask_0 + arity-mask_1 + num-args-so-far_1) + curried-name_0))))) + (letrec-values (((make-curried_0) + (lambda (args-so-far_0) + (begin + 'make-curried + (reduce-arity/rename_0 + (lambda new-args_1 + (let-values (((args_22) + (incorporate-new-pos-args_0 + args-so-far_0 + new-args_1))) + (if (procedure-arity-includes? + f_32 + (length args_22)) + (apply f_32 args_22) + (make-curried_0 args_22)))) + (length args-so-far_0)))))) + (reduce-arity/rename_0 + (lambda args_23 + (if (= (length args_23) max-arity_0) + (apply f_32 args_23) + (make-curried_0 args_23))) + 0)))) + (let-values () + (let-values (((incorporate-new-kws+args_0) + (lambda (kws+args-so-far_0 new-kws+args_0) + (begin + 'incorporate-new-kws+args + (let-values (((ht_8) new-kws+args_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-in-hash ht_8))) + ((letrec-values (((for-loop_34) + (lambda (kws+args_0 i_57) + (begin + 'for-loop + (if i_57 + (let-values (((kw_1 arg_4) + (hash-iterate-key+value + ht_8 + i_57))) + (let-values (((kws+args_1) + (let-values (((kws+args_2) + kws+args_0)) + (let-values (((kws+args_3) + (let-values () + (if (hash-has-key? + kws+args_2 + kw_1) + (raise-arguments-error + curried-name_0 + "duplicate keyword for procedure" + "keyword" + kw_1 + "first value" + (hash-ref + kws+args_2 + kw_1) + "second value" + arg_4) + (hash-set + kws+args_2 + kw_1 + arg_4))))) + (values + kws+args_3))))) + (if (not #f) + (for-loop_34 + kws+args_1 + (hash-iterate-next + ht_8 + i_57)) + kws+args_1))) + kws+args_0))))) + for-loop_34) + kws+args-so-far_0 + (hash-iterate-first ht_8)))))))) + (let-values (((reduce-arity/rename_1) + (lambda (proc_18 num-args-so-far_2 kw+args-so-far_0) + (begin + 'reduce-arity/rename + (procedure-reduce-keyword-arity-mask + proc_18 + (partially-applied-procedure-arity-mask_0 + arity-mask_1 + num-args-so-far_2) + '() + (if allowed-kws_2 + (filter + (lambda (kw_2) + (not (hash-has-key? kw+args-so-far_0 kw_2))) + allowed-kws_2) + #f) + curried-name_0))))) + (letrec-values (((make-curried_1) + (lambda (pos-args-so-far_2 kws+args-so-far_1) + (begin + 'make-curried + (reduce-arity/rename_1 + (make-keyword-procedure + (lambda (new-kws_0 + new-kw-args_0 + . + new-pos-args_2) + (step_7 + (incorporate-new-pos-args_0 + pos-args-so-far_2 + new-pos-args_2) + (incorporate-new-kws+args_0 + kws+args-so-far_1 + (make-immutable-hasheq + (map2 cons new-kws_0 new-kw-args_0))))) + (lambda new-pos-args_3 + (step_7 + (incorporate-new-pos-args_0 + pos-args-so-far_2 + new-pos-args_3) + kws+args-so-far_1))) + (length pos-args-so-far_2) + kws+args-so-far_1)))) + ((step_7) + (lambda (pos-args-so-far_3 kw+args-so-far_1) + (begin + 'step + (if (if (procedure-arity-includes? + f_32 + (length pos-args-so-far_3) + #t) + (let-values (((lst_18) required-kws_0)) + (begin + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-list lst_18))) + ((letrec-values (((for-loop_35) + (lambda (result_13 + lst_19) + (begin + 'for-loop + (if (pair? + lst_19) + (let-values (((required-kw_0) + (unsafe-car + lst_19)) + ((rest_5) + (unsafe-cdr + lst_19))) + (let-values (((result_14) + (let-values () + (let-values (((result_15) + (let-values () + (let-values () + (hash-has-key? + kw+args-so-far_1 + required-kw_0))))) + (values + result_15))))) + (if (if (not + ((lambda x_2 + (not + result_14)) + required-kw_0)) + (not + #f) + #f) + (for-loop_35 + result_14 + rest_5) + result_14))) + result_13))))) + for-loop_35) + #t + lst_18))) + #f) + (let-values (((sorted-kw+args_0) + (let-values (((temp1_0) + (hash->list + kw+args-so-far_1)) + ((keywordvector v_101))) + (let-values (((alt_97) + (lambda () + (begin + 'alt + (let-values (((vec-v_53) (struct->vector v_101))) + (let-values (((alt_98) + (lambda () + (begin + 'alt + (let-values (((vec-v_54) (struct->vector v_101))) + (let-values (((alt_99) + (lambda () + (begin + 'alt + (let-values (((vec-v_55) + (struct->vector v_101))) + (let-values (((alt_100) + (lambda () + (begin + 'alt + (let-values (((vec-v_56) + (struct->vector + v_101))) + (let-values (((alt_101) + (lambda () + (begin + 'alt + (let-values (((vec-v_57) + (struct->vector + v_101))) + (let-values (((alt_102) + (lambda () + (begin + 'alt + (let-values (((vec-v_58) + (struct->vector + v_101))) + (let-values (((alt_103) + (lambda () + (begin + 'alt + (let-values (((vec-v_59) + (struct->vector + v_101))) + (let-values (((alt_104) + (lambda () + (begin + 'alt + (let-values (((vec-v_60) + (struct->vector + v_101))) + (let-values (((alt_105) + (lambda () + (begin + 'alt + (let-values (((vec-v_61) + (struct->vector + v_101))) + (let-values (((alt_106) + (lambda () + (begin + 'alt + (let-values (((vec-v_62) + (struct->vector + v_101))) + (let-values (((alt_107) + (lambda () + (begin + 'alt + (let-values (((vec-v_63) + (struct->vector + v_101))) + (let-values (((alt_108) + (lambda () + (begin + 'alt + (let-values (((vec-v_64) + (struct->vector + v_101))) + (let-values (((alt_5) + (lambda () + (begin + 'alt + (let-values (((vec-v_65) + (struct->vector + v_101))) + (let-values (((alt_7) + (lambda () + (begin + 'alt + (let-values (((vec-v_66) + (struct->vector + v_101))) + (let-values (((alt_9) + (lambda () + (begin + 'alt + (if (symbol? + expr_18) + (let-values () + (emit_0 + (~a + (normalize-symbol + expr_18)))) + (let-values () + (error + "unsupported expr" + (void)))))))) + (if (ILThis? + v_101) + (let-values () + (let-values ((() + (vector->values + vec-v_66 + 1))) + (emit_0 + "this"))) + (let-values () + (alt_9))))))))) + (if (ILArguments? + v_101) + (let-values () + (let-values ((() + (vector->values + vec-v_65 + 1))) + (emit_0 + "arguments"))) + (let-values () + (alt_7))))))))) + (if (ILUndefined? + v_101) + (let-values () + (let-values ((() + (vector->values + vec-v_64 + 1))) + (emit_0 + "undefined"))) + (let-values () + (alt_5))))))))) + (if (ILNull? + v_101) + (let-values () + (let-values ((() + (vector->values + vec-v_63 + 1))) + (emit_0 + "null"))) + (let-values () + (alt_108))))))))) + (if (ILValue? + v_101) + (let-values () + (let-values (((v_102) + (vector->values + vec-v_62 + 1))) + (assemble-value + v_102 + out_0))) + (let-values () + (alt_107))))))))) + (if (ILTypeOf? + v_101) + (let-values () + (let-values (((expr_19) + (vector->values + vec-v_61 + 1))) + (begin + (emit_0 + "typeof(") + (assemble-expr + expr_19 + out_0) + (emit_0 + ")")))) + (let-values () + (alt_106))))))))) + (if (ILInstanceOf? + v_101) + (let-values () + (let-values (((expr_20 + type_2) + (vector->values + vec-v_60 + 1))) + (begin + (emit_0 + "(") + (assemble-expr + expr_20 + out_0) + (emit_0 + ") instanceof (") + (assemble-expr + type_2 + out_0) + (emit_0 + ")")))) + (let-values () + (alt_105))))))))) + (if (ILObject? + v_101) + (let-values () + (let-values (((items_8) + (vector->values + vec-v_59 + 1))) + (begin + (emit_0 + "{") + (let-values (((items1_0) + (sequence-length + items_8))) + (begin + (let-values (((pos->vals_33 + pos-pre-inc_31 + pos-next_34 + init_34 + pos-cont?_34 + val-cont?_33 + all-cont?_33) + (make-sequence + '(i) + items_8)) + ((start_14) + 0) + ((end_8) + items1_0) + ((inc_4) + 1)) + (begin + (void) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range + start_14 + end_8 + inc_4))) + ((letrec-values (((for-loop_36) + (lambda (pos_104 + pos_105) + (begin + 'for-loop + (if (if (if pos-cont?_34 + (pos-cont?_34 + pos_104) + #t) + (< + pos_105 + end_8) + #f) + (let-values (((i_58 + all-cont?/pos_31) + (let-values (((i_59) + (pos->vals_33 + pos_104))) + (values + i_59 + (if all-cont?_33 + (lambda (pos_106) + (all-cont?_33 + pos_106 + i_59)) + #f)))) + ((pos_107) + (if pos-pre-inc_31 + (pos-pre-inc_31 + pos_104) + pos_104)) + ((items2_0) + pos_105)) + (if (if (if val-cont?_33 + (val-cont?_33 + i_58) + #t) + #t + #f) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((last?_3) + (equal? + (sub1 + items1_0) + items2_0))) + (begin + (if (string? + (car + i_58)) + (begin + (emit_0 + "~s" + (car + i_58)) + (emit_0 + ":")) + (emit_0 + "'~a':" + (car + i_58))) + (assemble-expr + (cdr + i_58) + out_0) + (if last?_3 + (void) + (let-values () + (emit_0 + ",")))))) + (values))))) + (values))))) + (if (if (if all-cont?/pos_31 + (all-cont?/pos_31 + pos_107) + #t) + (not + #f) + #f) + (for-loop_36 + (pos-next_34 + pos_107) + (+ + pos_105 + inc_4)) + (values))) + (values))) + (values)))))) + for-loop_36) + init_34 + start_14))) + (void))) + (emit_0 + "}")))) + (let-values () + (alt_104))))))))) + (if (ILArray? + v_101) + (let-values () + (let-values (((items_9) + (vector->values + vec-v_58 + 1))) + (begin + (emit_0 + "[") + (emit-args_0 + items_9 + ",") + (emit_0 + "]")))) + (let-values () + (alt_103))))))))) + (if (ILNew? + v_101) + (let-values () + (let-values (((v_103) + (vector->values + vec-v_57 + 1))) + (begin + (emit_0 + "new ") + (assemble-expr + v_103 + out_0)))) + (let-values () + (alt_102))))))))) + (if (ILIndex? v_101) + (let-values () + (let-values (((e_27 + e0_8) + (vector->values + vec-v_56 + 1))) + (begin + (assemble-expr + e_27 + out_0) + (emit_0 "[") + (assemble-expr + e0_8 + out_0) + (emit_0 + "]")))) + (let-values () + (alt_101))))))))) + (if (ILRef? v_101) + (let-values () + (let-values (((e_28 s_20) + (vector->values + vec-v_55 + 1))) + (begin + (if (wrap-e?_0 e_28) + (let-values () + (begin + (emit_0 "(") + (assemble-expr e_28 out_0) + (emit_0 ")"))) + (let-values () + (assemble-expr e_28 out_0))) + (let-values (((s*_2) + (if (js-identifier? + s_20) + s_20 + (normalize-symbol + s_20)))) + (emit_0 (~a "." s*_2)))))) + (let-values () (alt_100))))))))) + (if (ILBinaryOp? v_101) + (let-values () + (let-values (((oper_3 args_26) + (vector->values vec-v_54 1))) + (let-values (((args4_0) (sequence-length args_26))) + (begin + (let-values (((pos->vals_34 + pos-pre-inc_32 + pos-next_35 + init_35 + pos-cont?_35 + val-cont?_34 + all-cont?_34) + (make-sequence '(arg) args_26)) + ((start_15) 0) + ((end_9) args4_0) + ((inc_5) 1)) + (begin + (void) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () + (check-range start_15 end_9 inc_5))) + ((letrec-values (((for-loop_37) + (lambda (pos_108 pos_109) + (begin + 'for-loop + (if (if (if pos-cont?_35 + (pos-cont?_35 + pos_108) + #t) + (< pos_109 end_9) + #f) + (let-values (((arg_5 + all-cont?/pos_32) + (let-values (((arg_6) + (pos->vals_34 + pos_108))) + (values + arg_6 + (if all-cont?_34 + (lambda (pos_110) + (all-cont?_34 + pos_110 + arg_6)) + #f)))) + ((pos_111) + (if pos-pre-inc_32 + (pos-pre-inc_32 + pos_108) + pos_108)) + ((args5_0) + pos_109)) + (if (if (if val-cont?_34 + (val-cont?_34 + arg_5) + #t) + #t + #f) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((last?_4) + (equal? + (sub1 + args4_0) + args5_0))) + (begin + (if (ILBinaryOp? + arg_5) + (let-values () + (emit_0 + "(")) + (void)) + (assemble-expr + arg_5 + out_0) + (if (ILBinaryOp? + arg_5) + (let-values () + (emit_0 + ")")) + (void)) + (if last?_4 + (void) + (let-values () + (emit_0 + (~a + oper_3))))))) + (values))))) + (values))))) + (if (if (if all-cont?/pos_32 + (all-cont?/pos_32 + pos_111) + #t) + (not #f) + #f) + (for-loop_37 + (pos-next_35 + pos_111) + (+ + pos_109 + inc_5)) + (values))) + (values))) + (values)))))) + for-loop_37) + init_35 + start_15))) + (void))))) + (let-values () (alt_99))))))))) + (if (ILApp? v_101) + (let-values () + (let-values (((lam_8 args_27) (vector->values vec-v_53 1))) + (begin + (if (wrap-e?_0 lam_8) (let-values () (emit_0 "(")) (void)) + (assemble-expr lam_8 out_0) + (if (wrap-e?_0 lam_8) (let-values () (emit_0 ")")) (void)) + (emit_0 "(") + (emit-args_0 args_27 ",") + (emit_0 ")")))) + (let-values () (alt_98))))))))) + (if (ILLambda? v_101) + (let-values () + (let-values (((args_28 body_13) (vector->values vec-v_52 1))) + (let-values ((() (begin (emit_0 "function(") (values)))) + (let-values (((args-str_1) + (if (symbol? args_28) + (let-values () (list (~a "..." (normalize-symbol args_28)))) + (if (list? args_28) + (let-values () (map2 normalize-symbol args_28)) + (if (cons? args_28) + (let-values () + (append1 + (map2 normalize-symbol (car args_28)) + (~a "..." (normalize-symbol (cdr args_28))))) + (let-values () + (begin + (displayln args_28) + (error 'assemble-expr "λ must be unchecked by assembler phase")))))))) + (begin + (emit_0 + (let-values (((args-str7_0) args-str_1) ((temp8_0) ", ")) + (string-join.1 + unsafe-undefined + unsafe-undefined + unsafe-undefined + args-str7_0 + temp8_0))) + (emit_0 ") {") + (let-values (((pos->vals_35 + pos-pre-inc_33 + pos-next_36 + init_36 + pos-cont?_36 + val-cont?_35 + all-cont?_35) + (make-sequence '(s) body_13))) + (begin + (void) + ((letrec-values (((for-loop_38) + (lambda (pos_112) + (begin + 'for-loop + (if (if pos-cont?_36 (pos-cont?_36 pos_112) #t) + (let-values (((s_21 all-cont?/pos_33) + (let-values (((s_22) (pos->vals_35 pos_112))) + (values + s_22 + (if all-cont?_35 + (lambda (pos_113) + (all-cont?_35 pos_113 s_22)) + #f)))) + ((pos_114) + (if pos-pre-inc_33 + (pos-pre-inc_33 pos_112) + pos_112))) + (if (if val-cont?_35 (val-cont?_35 s_21) #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (assemble-statement + s_21 + out_0)) + (values))))) + (values))))) + (if (if (if all-cont?/pos_33 + (all-cont?/pos_33 pos_114) + #t) + (not #f) + #f) + (for-loop_38 (pos-next_36 pos_114)) + (values))) + (values))) + (values)))))) + for-loop_38) + init_36))) + (void) + (emit_0 "}")))))) + (let-values () (alt_97)))))))))))) + (define-values + (assemble-statement*) + (lambda (stmt*_0 out_1) + (begin + (begin + (let-values (((pos->vals_36 pos-pre-inc_34 pos-next_37 init_37 pos-cont?_37 val-cont?_36 all-cont?_36) + (make-sequence '(s) stmt*_0))) + (begin + (void) + ((letrec-values (((for-loop_39) + (lambda (pos_115) + (begin + 'for-loop + (if (if pos-cont?_37 (pos-cont?_37 pos_115) #t) + (let-values (((s_23 all-cont?/pos_34) + (let-values (((s_24) (pos->vals_36 pos_115))) + (values + s_24 + (if all-cont?_36 + (lambda (pos_116) (all-cont?_36 pos_116 s_24)) + #f)))) + ((pos_117) (if pos-pre-inc_34 (pos-pre-inc_34 pos_115) pos_115))) + (if (if val-cont?_36 (val-cont?_36 s_23) #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (assemble-statement s_23 out_1)) + (values))))) + (values))))) + (if (if (if all-cont?/pos_34 (all-cont?/pos_34 pos_117) #t) (not #f) #f) + (for-loop_39 (pos-next_37 pos_117)) + (values))) + (values))) + (values)))))) + for-loop_39) + init_37))) + (void))))) + (define-values + (assemble-statement) + (lambda (stmt_1 out_2) + (begin + (let-values (((emit_1) (curry fprintf out_2))) + (let-values (((v_104) stmt_1)) + (let-values (((vec-v_42) (struct->vector v_104))) + (let-values (((alt_62) + (lambda () + (begin + 'alt + (let-values (((vec-v_43) (struct->vector v_104))) + (let-values (((alt_63) + (lambda () + (begin + 'alt + (let-values (((vec-v_44) (struct->vector v_104))) + (let-values (((alt_64) + (lambda () + (begin + 'alt + (let-values (((vec-v_45) (struct->vector v_104))) + (let-values (((alt_65) + (lambda () + (begin + 'alt + (let-values (((vec-v_46) + (struct->vector + v_104))) + (let-values (((alt_66) + (lambda () + (begin + 'alt + (let-values (((vec-v_47) + (struct->vector + v_104))) + (let-values (((alt_67) + (lambda () + (begin + 'alt + (let-values (((vec-v_48) + (struct->vector + v_104))) + (let-values (((alt_68) + (lambda () + (begin + 'alt + (let-values (((vec-v_67) + (struct->vector + v_104))) + (let-values (((alt_109) + (lambda () + (begin + 'alt + (let-values (((vec-v_68) + (struct->vector + v_104))) + (let-values (((alt_110) + (lambda () + (begin + 'alt + (let-values (((vec-v_69) + (struct->vector + v_104))) + (let-values (((alt_111) + (lambda () + (begin + 'alt + (let-values (((vec-v_70) + (struct->vector + v_104))) + (let-values (((alt_112) + (lambda () + (begin + 'alt + (let-values (((vec-v_71) + (struct->vector + v_104))) + (let-values (((alt_113) + (lambda () + (begin + 'alt + (if (ILExpr? + stmt_1) + (let-values () + (begin + (if (ILLambda? + stmt_1) + (let-values () + (emit_1 + "(")) + (void)) + (assemble-expr + stmt_1 + out_2) + (if (ILLambda? + stmt_1) + (let-values () + (emit_1 + ")")) + (void)) + (emit_1 + ";"))) + (error + 'match + "failed ~e" + v_104)))))) + (if (ILValue? + v_104) + (let-values () + (let-values (((v_105) + (vector->values + vec-v_71 + 1))) + (if (void? + v_105) + (let-values () + (void)) + (alt_113)))) + (let-values () + (alt_113))))))))) + (if (ILLabel? + v_104) + (let-values () + (let-values (((name_9) + (vector->values + vec-v_70 + 1))) + (emit_1 + "~a:" + (normalize-symbol + name_9)))) + (let-values () + (alt_112))))))))) + (if (ILExnHandler? + v_104) + (let-values () + (let-values (((try_1 + error_1 + catch_1 + finally_1) + (vector->values + vec-v_69 + 1))) + (begin + (emit_1 + "try {") + (assemble-statement* + try_1 + out_2) + (emit_1 + "}") + (if (cons? + catch_1) + (let-values () + (begin + (emit_1 + (~a + " catch (" + (normalize-symbol + error_1) + ") {")) + (assemble-statement* + catch_1 + out_2) + (emit_1 + "}"))) + (void)) + (if (cons? + finally_1) + (let-values () + (begin + (emit_1 + (~a + " finally {")) + (assemble-statement* + finally_1 + out_2) + (emit_1 + "}"))) + (void))))) + (let-values () + (alt_111))))))))) + (if (ILThrow? + v_104) + (let-values () + (let-values (((expr_21) + (vector->values + vec-v_68 + 1))) + (begin + (emit_1 + "throw ") + (assemble-expr + expr_21 + out_2) + (emit_1 + ";")))) + (let-values () + (alt_110))))))))) + (if (ILContinue? + v_104) + (let-values () + (let-values (((lab_0) + (vector->values + vec-v_67 + 1))) + (begin + (emit_1 + "continue") + (if lab_0 + (let-values () + (emit_1 + " ~a" + (normalize-symbol + lab_0))) + (void)) + (emit_1 + ";")))) + (let-values () + (alt_109))))))))) + (if (ILAssign? + v_104) + (let-values () + (let-values (((lv_5 + rv_9) + (vector->values + vec-v_48 + 1))) + (begin + (assemble-expr + lv_5 + out_2) + (emit_1 + " = ") + (assemble-expr + rv_9 + out_2) + (emit_1 + ";")))) + (let-values () + (alt_68))))))))) + (if (ILWhile? + v_104) + (let-values () + (let-values (((condition_1 + body_14) + (vector->values + vec-v_47 + 1))) + (begin + (emit_1 + "while (") + (assemble-expr + condition_1 + out_2) + (emit_1 + "){") + (let-values (((pos->vals_37 + pos-pre-inc_35 + pos-next_38 + init_38 + pos-cont?_38 + val-cont?_37 + all-cont?_37) + (make-sequence + '(s) + body_14))) + (begin + (void) + ((letrec-values (((for-loop_40) + (lambda (pos_118) + (begin + 'for-loop + (if (if pos-cont?_38 + (pos-cont?_38 + pos_118) + #t) + (let-values (((s_25 + all-cont?/pos_35) + (let-values (((s_26) + (pos->vals_37 + pos_118))) + (values + s_26 + (if all-cont?_37 + (lambda (pos_119) + (all-cont?_37 + pos_119 + s_26)) + #f)))) + ((pos_120) + (if pos-pre-inc_35 + (pos-pre-inc_35 + pos_118) + pos_118))) + (if (if val-cont?_37 + (val-cont?_37 + s_25) + #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (assemble-statement + s_25 + out_2)) + (values))))) + (values))))) + (if (if (if all-cont?/pos_35 + (all-cont?/pos_35 + pos_120) + #t) + (not + #f) + #f) + (for-loop_40 + (pos-next_38 + pos_120)) + (values))) + (values))) + (values)))))) + for-loop_40) + init_38))) + (void) + (emit_1 + "}")))) + (let-values () + (alt_67))))))))) + (if (ILIf*? v_104) + (let-values () + (let-values (((clauses_3) + (vector->values + vec-v_46 + 1))) + ((letrec-values (((loop_10) + (lambda (clauses_4) + (begin + 'loop + (let-values (((hd_12 + ctl_0) + (let-values (((v_106) + clauses_4)) + (let-values (((v_107) + v_106)) + (let-values () + (let-values (((alt_114) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_107))))) + (if (let-values (((p_159) + v_107)) + (if (pair? + p_159) + #t + #f)) + (let-values (((hd_13 + ctl_1) + (let-values (((p_160) + v_107)) + (let-values (((hd_14) + (let-values (((a_100) + (car + p_160))) + a_100)) + ((ctl_2) + (let-values (((d_72) + (cdr + p_160))) + d_72))) + (values + hd_14 + ctl_2))))) + (let-values () + (values + hd_13 + ctl_1))) + (alt_114)))))))) + (let-values (((v_78) + hd_12)) + (let-values (((vec-v_72) + (struct->vector + v_78))) + (let-values (((alt_115) + (lambda () + (begin + 'alt + (let-values (((vec-v_73) + (struct->vector + v_78))) + (let-values (((alt_116) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_78))))) + (if (IfClause? + v_78) + (let-values () + (let-values (((pred_2 + body_15) + (vector->values + vec-v_73 + 1))) + (if (ILExpr? + pred_2) + (let-values () + (begin + (emit_1 + "if (") + (assemble-expr + pred_2 + out_2) + (emit_1 + ") {") + (assemble-statement* + body_15 + out_2) + (emit_1 + "}") + (if (cons? + ctl_0) + (let-values () + (begin + (emit_1 + " else ") + (loop_10 + ctl_0))) + (void)))) + (alt_116)))) + (let-values () + (alt_116))))))))) + (if (IfClause? + v_78) + (let-values () + (let-values (((cnd_0 + body_16) + (vector->values + vec-v_72 + 1))) + (if (not + cnd_0) + (let-values () + (begin + (emit_1 + "{") + (assemble-statement* + body_16 + out_2) + (emit_1 + "}"))) + (alt_115)))) + (let-values () + (alt_115))))))))))) + loop_10) + clauses_3))) + (let-values () + (alt_66))))))))) + (if (ILIf? v_104) + (let-values () + (let-values (((expr_22 + t-branch_2 + f-branch_2) + (vector->values + vec-v_45 + 1))) + (begin + (emit_1 "if (") + (assemble-expr expr_22 out_2) + (emit_1 ") {") + (assemble-statement* t-branch_2 out_2) + (emit_1 "} else {") + (assemble-statement* f-branch_2 out_2) + (emit_1 "}")))) + (let-values () (alt_65))))))))) + (if (ILReturn? v_104) + (let-values () + (let-values (((expr_23) (vector->values vec-v_44 1))) + (begin + (emit_1 "return ") + (assemble-expr expr_23 out_2) + (emit_1 ";")))) + (let-values () (alt_64))))))))) + (if (ILLetDec? v_104) + (let-values () + (let-values (((id_11 expr_24) (vector->values vec-v_43 1))) + (begin + (emit_1 (~a "let " (normalize-symbol id_11))) + (if expr_24 + (let-values () (begin (emit_1 " = ") (assemble-expr expr_24 out_2))) + (void)) + (emit_1 ";")))) + (let-values () (alt_63))))))))) + (if (ILVarDec? v_104) + (let-values () + (let-values (((id_12 expr_25) (vector->values vec-v_42 1))) + (begin + (emit_1 (~a "var " (normalize-symbol id_12))) + (if expr_25 (let-values () (begin (emit_1 " = ") (assemble-expr expr_25 out_2))) (void)) + (emit_1 ";")))) + (let-values () (alt_62)))))))))) + (define-values + (assemble-linklet) + (lambda (lnk_1 out_3) + (begin + (let-values (((imports_4 exports_7 body_0) + (let-values (((v_108) lnk_1)) + (let-values (((v_109) v_108)) + (let-values (((vec-v_74) (struct->vector v_109))) + (let-values (((alt_117) (lambda () (begin 'alt (error 'match "failed ~e" v_109))))) + (if (ILLinklet? v_109) + (let-values () + (let-values (((imports_5 exports_8 body_17) (vector->values vec-v_74 1))) + (values imports_5 exports_8 body_17))) + (let-values () (alt_117))))))))) + (begin + (log-rjs-info "[assemble linklet]") + (assemble-requires* imports_4 out_3) + (let-values (((pos->vals_38 pos-pre-inc_36 pos-next_39 init_39 pos-cont?_39 val-cont?_38 all-cont?_38) + (make-sequence '(b) body_0))) + (begin + (void) + ((letrec-values (((for-loop_41) + (lambda (pos_121) + (begin + 'for-loop + (if (if pos-cont?_39 (pos-cont?_39 pos_121) #t) + (let-values (((b_32 all-cont?/pos_36) + (let-values (((b_33) (pos->vals_38 pos_121))) + (values + b_33 + (if all-cont?_38 + (lambda (pos_122) (all-cont?_38 pos_122 b_33)) + #f)))) + ((pos_123) (if pos-pre-inc_36 (pos-pre-inc_36 pos_121) pos_121))) + (if (if val-cont?_38 (val-cont?_38 b_32) #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (assemble-statement b_32 out_3)) + (values))))) + (values))))) + (if (if (if all-cont?/pos_36 (all-cont?/pos_36 pos_123) #t) (not #f) #f) + (for-loop_41 (pos-next_39 pos_123)) + (values))) + (values))) + (values)))))) + for-loop_41) + init_39))) + (void) + (assemble-provides* exports_7 out_3)))))) + (define-values + (assemble-requires*) + (lambda (reqs*_0 out_4) + (begin + (let-values (((emit_2) (curry fprintf out_4))) + (begin + (emit_2 "import * as ~a from '~a';" (jsruntime-core-module) "../runtime/core.js") + (let-values (((pos->vals_39 pos-pre-inc_37 pos-next_40 init_40 pos-cont?_40 val-cont?_39 all-cont?_39) + (make-sequence '(req) reqs*_0))) + (begin + (void) + ((letrec-values (((for-loop_42) + (lambda (pos_124) + (begin + 'for-loop + (if (if pos-cont?_40 (pos-cont?_40 pos_124) #t) + (let-values (((req_11 all-cont?/pos_37) + (let-values (((req_12) (pos->vals_39 pos_124))) + (values + req_12 + (if all-cont?_39 + (lambda (pos_125) (all-cont?_39 pos_125 req_12)) + #f)))) + ((pos_126) (if pos-pre-inc_37 (pos-pre-inc_37 pos_124) pos_124))) + (if (if val-cont?_39 (val-cont?_39 req_11) #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((mod_7 + obj-name_0 + import-sym_0) + (let-values (((v_110) + req_11)) + (let-values (((v_111) + v_110)) + (let-values (((vec-v_75) + (struct->vector + v_111))) + (let-values (((alt_80) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_111))))) + (if (ILRequire? + v_111) + (let-values () + (let-values (((mod_8 + obj-name_1 + import-sym_1) + (vector->values + vec-v_75 + 1))) + (values + mod_8 + obj-name_1 + import-sym_1))) + (let-values () + (alt_80))))))))) + (let-values (((import-string_0) + (let-values (((tmp_5) + import-sym_0)) + (if (equal? + tmp_5 + 'default) + (let-values () + (format + "import ~a from \"~a\";" + (normalize-symbol + obj-name_0) + mod_7)) + (if (equal? tmp_5 '*) + (let-values () + (format + "import * as ~a from \"~a\";" + (normalize-symbol + obj-name_0) + mod_7)) + (let-values () + (error + 'assemble-requires* + "invalid require mode"))))))) + (emit_2 import-string_0)))) + (values))))) + (values))))) + (if (if (if all-cont?/pos_37 (all-cont?/pos_37 pos_126) #t) (not #f) #f) + (for-loop_42 (pos-next_40 pos_126)) + (values))) + (values))) + (values)))))) + for-loop_42) + init_40))) + (void)))))) + (define-values + (assemble-provides*) + (lambda (p*_0 out_5) + (begin + (let-values (((emit_3) (curry fprintf out_5))) + (if (empty? p*_0) + (void) + (let-values () + (begin + (emit_3 "export { ") + (let-values (((p*14_0) (sequence-length p*_0))) + (begin + (let-values (((pos->vals_40 pos-pre-inc_38 pos-next_41 init_41 pos-cont?_41 val-cont?_40 all-cont?_40) + (make-sequence '(p) p*_0)) + ((start_16) 0) + ((end_10) p*14_0) + ((inc_6) 1)) + (begin + (void) + (if (variable-reference-from-unsafe? (#%variable-reference)) + (void) + (let-values () (check-range start_16 end_10 inc_6))) + ((letrec-values (((for-loop_43) + (lambda (pos_127 pos_128) + (begin + 'for-loop + (if (if (if pos-cont?_41 (pos-cont?_41 pos_127) #t) (< pos_128 end_10) #f) + (let-values (((p_161 all-cont?/pos_38) + (let-values (((p_67) (pos->vals_40 pos_127))) + (values + p_67 + (if all-cont?_40 + (lambda (pos_129) (all-cont?_40 pos_129 p_67)) + #f)))) + ((pos_130) + (if pos-pre-inc_38 (pos-pre-inc_38 pos_127) pos_127)) + ((p*15_0) pos_128)) + (if (if (if val-cont?_40 (val-cont?_40 p_161) #t) #t #f) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (let-values (((last?_5) + (equal? + (sub1 p*14_0) + p*15_0))) + (begin + (let-values (((v_112) p_161)) + (let-values (((vec-v_76) + (struct->vector + v_112))) + (let-values (((alt_118) + (lambda () + (begin + 'alt + (let-values (((vec-v_77) + (struct->vector + v_112))) + (let-values (((alt_119) + (lambda () + (begin + 'alt + (error + 'match + "failed ~e" + v_112))))) + (if (RenamedProvide? + v_112) + (let-values () + (let-values (((local-id_0 + exported-id_0) + (vector->values + vec-v_77 + 1))) + (emit_3 + "~a as ~a" + (normalize-symbol + local-id_0) + (normalize-symbol + exported-id_0)))) + (let-values () + (alt_119))))))))) + (if (SimpleProvide? + v_112) + (let-values () + (let-values (((id_13) + (vector->values + vec-v_76 + 1))) + (emit_3 + (~a + (normalize-symbol + id_13))))) + (let-values () + (alt_118)))))) + (if last?_5 + (void) + (let-values () + (emit_3 ",")))))) + (values))))) + (values))))) + (if (if (if all-cont?/pos_38 (all-cont?/pos_38 pos_130) #t) + (not #f) + #f) + (for-loop_43 (pos-next_41 pos_130) (+ pos_128 inc_6)) + (values))) + (values))) + (values)))))) + for-loop_43) + init_41 + start_16))) + (void))) + (emit_3 " };")))))))) + (define-values + (assemble-value) + (lambda (v_113 out_6) + (begin + (let-values (((emit_4) (curry fprintf out_6))) + (if (string? v_113) + (let-values () (emit_4 "~s" v_113)) + (if (number? v_113) + (let-values () + (if (eq? +inf.0 v_113) + (let-values () (emit_4 "Infinity")) + (if (eq? -inf.0 v_113) + (let-values () (emit_4 "-Infinity")) + (if (eq? +nan.0 v_113) + (let-values () (emit_4 "NaN")) + (if (eq? +nan.0 v_113) + (let-values () (emit_4 "NaN")) + (if (single-flonum? v_113) + (let-values () (emit_4 (~a (exact->inexact (inexact->exact v_113))))) + (let-values () (emit_4 (~a v_113))))))))) + (if (boolean? v_113) + (let-values () (emit_4 (if v_113 "true" "false"))) + (if (void? v_113) + (let-values () (emit_4 "null")) + (let-values () (error "Unexpected value: " v_113)))))))))) + (define-values + (1/compile-linklet) + (lambda (sexp_1) + (begin 'compile-linklet (absyn-linklet->il (parse-linklet sexp_1 "/home/gamburgm/racketscript/expander.rkt"))))) + (define-values (1/linklet-import-variables) (lambda (lnk_2) (begin 'linklet-import-variables (Linklet-imports lnk_2)))) + (define-values + (everything) + (lambda (sexp_2) + (begin + (let-values (((output-str_0) (open-output-string))) + (begin + (assemble-linklet + (insert-arity-checks (absyn-linklet->il (parse-linklet sexp_2 "/home/gamburgm/racketscript/expander.rkt"))) + output-str_0) + (get-output-string output-str_0))))))) From cb0dfc4302c6360acc304ae00421b772cac75140 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Thu, 11 Aug 2022 16:08:30 -0400 Subject: [PATCH 154/170] fix some bugs --- .../racketscript/compiler/assembler.rkt | 10 +++++----- .../racketscript/compiler/linklet-api.rkt | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/assembler.rkt b/racketscript-compiler/racketscript/compiler/assembler.rkt index 19ff89ee..e6535aca 100644 --- a/racketscript-compiler/racketscript/compiler/assembler.rkt +++ b/racketscript-compiler/racketscript/compiler/assembler.rkt @@ -305,16 +305,16 @@ (define (assemble-value v out) (define emit (curry fprintf out)) - ;; TODO: this will eventually be replaced by runtime primitives + ;; TODO this will eventually be replaced by runtime primitives (cond [(string? v) (emit "~s" v)] [(number? v) (cond - [(eq? +inf.0 v) (emit "Infinity")] - [(eq? -inf.0 v) (emit "-Infinity")] - [(eq? +nan.0 v) (emit "NaN")] - [(eq? +nan.f v) (emit "NaN")] + [(equal? +inf.0 v) (emit "Infinity")] + [(equal? -inf.0 v) (emit "-Infinity")] + [(equal? +nan.0 v) (emit "NaN")] ;; same as +nan.f + ;; [(equal? +nan.f v) (emit "NaN")] [(single-flonum? v) (emit (~a (exact->inexact (inexact->exact v))))] [else (emit (~a v))])] ;; TODO [(boolean? v) (emit (if v "true" "false"))] diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 86c10133..96f36eb9 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -9,17 +9,20 @@ (provide (all-defined-out)) (define (compile-linklet sexp) - (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) (define (linklet-import-variables lnk) (Linklet-imports lnk)) ;; TODO temporary, for debugging/checking purposes -(define (everything sexp) - (define output-str (open-output-string)) - (assemble-linklet - (insert-arity-checks - (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) - output-str) - (get-output-string output-str)) +(define (everything) + (define sexp (read (open-input-file "../../../racketscript.rktl"))) + (call-with-output-file + "../../../js-build/modules/racketscript.js" + (λ (out) + (assemble-linklet + (insert-arity-checks + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) + out)) + #:exists 'replace)) From ee5c07d33b6ada1894397ba697e09b0a38129a5e Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 12 Aug 2022 11:27:01 -0400 Subject: [PATCH 155/170] adding support for more filesystem operations --- .../racketscript/compiler/linklet-api.rkt | 6 ++-- .../racketscript/compiler/runtime/core.js | 4 ++- .../racketscript/compiler/runtime/core/FS.js | 3 ++ .../compiler/runtime/core/path.js | 28 +++++++++++++++++++ .../racketscript/compiler/runtime/kernel.rkt | 23 +++++++++++++++ 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/FS.js diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 96f36eb9..f4b7e286 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -16,13 +16,13 @@ ;; TODO temporary, for debugging/checking purposes (define (everything) - (define sexp (read (open-input-file "../../../racketscript.rktl"))) + (define sexp (read (open-input-file "../../../expander.rktl"))) (call-with-output-file - "../../../js-build/modules/racketscript.js" + "../../../js-build/modules/expander.js" (λ (out) (assemble-linklet (insert-arity-checks - (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) out)) #:exists 'replace)) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core.js b/racketscript-compiler/racketscript/compiler/runtime/core.js index 829ccc8e..146ce78d 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core.js @@ -24,6 +24,7 @@ import * as Path from './core/path.js'; import * as KernelTable from './core/kernel_table.js'; import * as Thread from './core/thread.js'; import * as Semaphore from './core/semaphore.js'; +import * as FS from './core/FS.js'; export { Bytes, @@ -48,7 +49,8 @@ export { Path, KernelTable, Thread, - Semaphore + Semaphore, + FS }; export { argumentsToArray, argumentsSlice } from './core/lib.js'; diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/FS.js b/racketscript-compiler/racketscript/compiler/runtime/core/FS.js new file mode 100644 index 00000000..2be6ee54 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/core/FS.js @@ -0,0 +1,3 @@ +import { fromString } from './path.js'; + +export const currentDir = () => fromString(process.cwd()); diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/path.js b/racketscript-compiler/racketscript/compiler/runtime/core/path.js index 22406aaa..ae1e1b3c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/path.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/path.js @@ -1,10 +1,38 @@ import { PrintablePrimitive } from './printable_primitive.js'; +const UNIX_PATH_SEP = '/'; + +// TODO going to assume this is Unix for now, will fix later class Path extends PrintablePrimitive { constructor(s) { super(); this.s = s; } + + isRelative() { + return this.s.substring(0, 1) !== UNIX_PATH_SEP; + } + + isAbsolute() { + return this.s.substring(0, 1) === UNIX_PATH_SEP; + } + + // TODO isComplete is only different than isAbsolute if on a Windows machine + isComplete() { + return this.isAbsolute(); + } + + appendPath(p) { + const isDirPath = this.isDir(); + const isCompPath = p.isComplete(); + if ((isDirPath && !isCompPath) || (!isDirPath && isCompPath)) { + return fromString(this.s + p.s); + } else if (isDirPath) { + return fromString(this.s + p.s.substring(1)); + } else { + return fromString(this.s + UNIX_PATH_SEP + p.s); + } + } } export function fromString(s) { return new Path(s); } diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 04ed16b1..9c80b110 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1384,6 +1384,29 @@ (define+provide (version) "99.0") ;; fake +(define (->path p) + (cond + [(string? p) (#js.Core.Path.fromString p)] + [(bytes? p) (#js.Core.Path.fromString (#js.Core.Bytes.toString p))] + [(path? p) p] + [else + (raise + (#js.Core.makeArgumentsError "->path" + "argument cannot be transformed into path" + p))])) + +(define+provide current-directory (make-parameter (#js.Core.FS.currentDir))) + +(define+provide (relative-path? p) (#js.p.isRelative)) +(define+provide (absolute-path? p) (#js.p.isAbsolute)) +(define+provide (complete-path? p) (#js.p.isComplete)) + +(define+provide (path->complete-path p [base (current-directory)]) + (cond + [(complete-path? p) p] + [(complete-path? base) (#js.base.appendPath p)] + [else (throw (#js.Core.racketContractError "expected: path?" "given: " base))])) + (define+provide string->path #js.Core.Path.fromString) ;; -------------------------------------------------------------------------- From 8e9ea63ea858dd77f4e24388ad274d437445b517 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 12 Aug 2022 11:46:44 -0400 Subject: [PATCH 156/170] use XOR --- racketscript-compiler/racketscript/compiler/linklet-api.rkt | 6 +++--- .../racketscript/compiler/runtime/core/path.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index f4b7e286..96f36eb9 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -16,13 +16,13 @@ ;; TODO temporary, for debugging/checking purposes (define (everything) - (define sexp (read (open-input-file "../../../expander.rktl"))) + (define sexp (read (open-input-file "../../../racketscript.rktl"))) (call-with-output-file - "../../../js-build/modules/expander.js" + "../../../js-build/modules/racketscript.js" (λ (out) (assemble-linklet (insert-arity-checks - (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) out)) #:exists 'replace)) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/path.js b/racketscript-compiler/racketscript/compiler/runtime/core/path.js index ae1e1b3c..f5b4b3b6 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/path.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/path.js @@ -25,7 +25,7 @@ class Path extends PrintablePrimitive { appendPath(p) { const isDirPath = this.isDir(); const isCompPath = p.isComplete(); - if ((isDirPath && !isCompPath) || (!isDirPath && isCompPath)) { + if (isDirPath ^ isCompPath) { return fromString(this.s + p.s); } else if (isDirPath) { return fromString(this.s + p.s.substring(1)); From 5637b6305ebf15a5189cd745ca0f04f2b7d4d8e1 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 12 Aug 2022 15:29:52 -0400 Subject: [PATCH 157/170] split-path --- .../compiler/runtime/core/path.js | 43 +++++++++++++++++++ .../racketscript/compiler/runtime/kernel.rkt | 14 ++++-- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/path.js b/racketscript-compiler/racketscript/compiler/runtime/core/path.js index f5b4b3b6..106f349c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/path.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/path.js @@ -1,7 +1,21 @@ import { PrintablePrimitive } from './printable_primitive.js'; +import { make as values } from './values.js'; +import { make as sym } from './primitive_symbol.js'; const UNIX_PATH_SEP = '/'; +// ASSUMES that the path does not end with double separator, e.g. '//' +const splitPathString = (str) => { + const lastDirSep = str.substring(0, str.length - 1).lastIndexOf(UNIX_PATH_SEP); + let dirPathStr = ''; + if (lastDirSep !== -1) { + dirPathStr = str.substring(0, lastDirSep + 1); // include the last separator + } + + const basePathStr = str.substring(lastDirSep + 1); + return { dirPathStr, basePathStr }; +}; + // TODO going to assume this is Unix for now, will fix later class Path extends PrintablePrimitive { constructor(s) { @@ -22,6 +36,10 @@ class Path extends PrintablePrimitive { return this.isAbsolute(); } + isDir() { + return this.s.slice(-2, -1) === UNIX_PATH_SEP; + } + appendPath(p) { const isDirPath = this.isDir(); const isCompPath = p.isComplete(); @@ -33,6 +51,31 @@ class Path extends PrintablePrimitive { return fromString(this.s + UNIX_PATH_SEP + p.s); } } + + splitPath() { + const { dirPathStr, basePathStr } = splitPathString(this.s); + + let dirRes = ''; + let baseRes = ''; + + if (dirPathStr === '' && basePathStr === UNIX_PATH_SEP) { + dirRes = false; + } else if (dirPathStr === '') { + dirRes = sym('relative'); + } else { + dirRes = fromString(dirPathStr); + } + + if (basePathStr === '.') { + baseRes = sym('same'); + } else if (basePathStr === '..') { + baseRes = sym('up'); + } else { + baseRes = fromString(basePathStr); + } + + return values([dirRes, baseRes, this.isDir()]); + } } export function fromString(s) { return new Path(s); } diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 9c80b110..b74d1555 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1402,10 +1402,16 @@ (define+provide (complete-path? p) (#js.p.isComplete)) (define+provide (path->complete-path p [base (current-directory)]) - (cond - [(complete-path? p) p] - [(complete-path? base) (#js.base.appendPath p)] - [else (throw (#js.Core.racketContractError "expected: path?" "given: " base))])) + (let ([p^ (->path p)] + [base^ (->path base)]) + (cond + [(complete-path? p^) p^] + [(complete-path? base^) (#js.base^.appendPath p^)] + [else (throw (#js.Core.racketContractError "expected: path?" "given: " base^))]))) + +(define+provide (split-path p) + (let ([p^ (->path p)]) + (#js.p^.splitPath))) (define+provide string->path #js.Core.Path.fromString) From 38bc908c37aec0a45c7abf8d9573b034e54d4140 Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Fri, 12 Aug 2022 15:30:03 -0400 Subject: [PATCH 158/170] ridiculous script to help with compiling runtime --- flash-runtime.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 flash-runtime.sh diff --git a/flash-runtime.sh b/flash-runtime.sh new file mode 100755 index 00000000..3003dcc7 --- /dev/null +++ b/flash-runtime.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +rm -rf ~/rs-orig/racketscript-compiler/racketscript/compiler/runtime/ +rm -rf js-build/runtime/ + +cp -r racketscript-compiler/racketscript/compiler/runtime/ ~/rs-orig/racketscript-compiler/racketscript/compiler/ + +pushd ~/rs-orig/ +./racketscript-compiler/bin/racks foobar.rkt + +cp -r js-build/runtime/ ~/racketscript/js-build/ + +popd From 16353a777d9fc87676c9f5dfd49f7dd92a40e59e Mon Sep 17 00:00:00 2001 From: Mitch Gamburg Date: Tue, 16 Aug 2022 14:11:11 -0400 Subject: [PATCH 159/170] wip --- .../racketscript/compiler/config.rkt | 7 --- .../compiler/runtime/core/path.js | 48 +++++++++++++++++++ .../racketscript/compiler/runtime/kernel.rkt | 5 ++ 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/config.rkt b/racketscript-compiler/racketscript/compiler/config.rkt index 9e899570..f291d7bf 100644 --- a/racketscript-compiler/racketscript/compiler/config.rkt +++ b/racketscript-compiler/racketscript/compiler/config.rkt @@ -20,7 +20,6 @@ primitive-modules ignored-module-imports-in-boot - ignored-undefined-identifier? skip-arity-checks?) @@ -83,12 +82,6 @@ (set (build-path racketscript-dir "private" "interop.rkt"))) -(define ignored-undefined-identifiers - (list #'#%js-ffi)) - -(define (ignored-undefined-identifier? id) - (ormap (λ (ignored) (free-identifier=? id ignored)) ignored-undefined-identifiers)) - (define primitive-modules (set '#%runtime '#%core diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/path.js b/racketscript-compiler/racketscript/compiler/runtime/core/path.js index 106f349c..d0dafc4c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/path.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/path.js @@ -1,6 +1,8 @@ import { PrintablePrimitive } from './printable_primitive.js'; import { make as values } from './values.js'; import { make as sym } from './primitive_symbol.js'; +import { displayNativeString, writeNativeString } from './print_native_string.js'; +import { displayUString, writeUString } from './print_ustring.js'; const UNIX_PATH_SEP = '/'; @@ -16,6 +18,8 @@ const splitPathString = (str) => { return { dirPathStr, basePathStr }; }; +const getComps = str => str.split(UNIX_PATH_SEP).filter(e => e !== ''); + // TODO going to assume this is Unix for now, will fix later class Path extends PrintablePrimitive { constructor(s) { @@ -40,6 +44,10 @@ class Path extends PrintablePrimitive { return this.s.slice(-2, -1) === UNIX_PATH_SEP; } + pathEnding() { + return (this.isDir() ? UNIX_PATH_SEP : ''); + } + appendPath(p) { const isDirPath = this.isDir(); const isCompPath = p.isComplete(); @@ -76,6 +84,46 @@ class Path extends PrintablePrimitive { return values([dirRes, baseRes, this.isDir()]); } + + simplify() { + const finalStack = []; + const currStack = getComps(this.s); + + currStack.forEach((elem) => { + if (elem === '..') { + finalStack.pop(); + } else if (elem !== '.') { + finalStack.push(elem); + } + }); + + return fromString(UNIX_PATH_SEP + finalStack.join(UNIX_PATH_SEP) + this.pathEnding()); + } + + displayNativeString(out) { + out.consume('#'); + } + + displayUString(out) { + out.consume('#'); + } + + writeNativeString(out) { + out.consume('#'); + } + + writeUString(out) { + out.consume('#'); + } } export function fromString(s) { return new Path(s); } diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index b74d1555..635ce9dc 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1413,6 +1413,11 @@ (let ([p^ (->path p)]) (#js.p^.splitPath))) +(define+provide (simplify-path p) + (let* ([p^ (->path p)] + [abs-path (path->complete-path p^)]) + (#js.abs-path.simplify))) + (define+provide string->path #js.Core.Path.fromString) ;; -------------------------------------------------------------------------- From 3c312005d39313592d9fb887ae528f99d0058102 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 14:35:11 -0400 Subject: [PATCH 160/170] bash instead of sh --- flash-runtime.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flash-runtime.sh b/flash-runtime.sh index 3003dcc7..7808cbdd 100755 --- a/flash-runtime.sh +++ b/flash-runtime.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash rm -rf ~/rs-orig/racketscript-compiler/racketscript/compiler/runtime/ rm -rf js-build/runtime/ From 558902369827dc05fb28ac092041fedfd9734c41 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 14:35:27 -0400 Subject: [PATCH 161/170] more runtime forms for racketscript linklet --- .../racketscript/compiler/runtime/kernel.rkt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 635ce9dc..35893431 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1239,6 +1239,11 @@ (define+provide (bitwise-bit-set? mask n) #t) (define+provide (procedure-extract-target f) #f) +;; same implementation as Pyret's. +;; could implement this by checking if mask is a valid arity, then returning a new +;; procedure that takes _at most_ `_mask` arguments. +(define+provide (procedure-reduce-arity-mask proc mask [name #f] [realm 'racket]) proc) + ;; -------------------------------------------------------------------------- ;; Regexp From b1dc24c37eb3ac6a1459bacc34c3358103dd68c9 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 14:35:38 -0400 Subject: [PATCH 162/170] new linklet --- racketscript.rktl | 5576 +++++++++++++-------------------------------- 1 file changed, 1632 insertions(+), 3944 deletions(-) diff --git a/racketscript.rktl b/racketscript.rktl index 9e77ae6e..583dc302 100644 --- a/racketscript.rktl +++ b/racketscript.rktl @@ -2,10 +2,7 @@ ;; fully expanding and flattening into a single linklet. (linklet () - ((1/compile-linklet compile-linklet) (everything everything) (1/linklet-import-variables linklet-import-variables)) - (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))))) + ((1/compile-linklet compile-linklet) (1/linklet-import-variables linklet-import-variables)) (define-values (bad-list$1) (lambda (who_0 orig-l_0) (begin 'bad-list (raise-arguments-error who_0 "not a proper list" "in" orig-l_0)))) @@ -107,7 +104,7 @@ (lambda (proc_0) (begin (let-values (((req_0 allowed_0) (procedure-keywords proc_0)) - ((a_1) (procedure-arity proc_0)) + ((a_0) (procedure-arity proc_0)) ((keywords-desc_0) (lambda (opt_0 req_1) (begin @@ -132,18 +129,18 @@ loop_1) req_1))))))))) ((method-adjust_0) - (lambda (a_2) + (lambda (a_1) (begin 'method-adjust (if (let-values (((or-part_1) (okm? proc_0))) (if or-part_1 or-part_1 (keyword-method? proc_0))) - (if (zero? a_2) 0 (sub1 a_2)) - a_2))))) + (if (zero? a_1) 0 (sub1 a_1)) + a_1))))) (string-append - (if (number? a_1) - (let-values () (let-values (((a_3) (method-adjust_0 a_1))) (format "~a" a_3))) - (if (arity-at-least? a_1) + (if (number? a_0) + (let-values () (let-values (((a_2) (method-adjust_0 a_0))) (format "~a" a_2))) + (if (arity-at-least? a_0) (let-values () - (let-values (((a_4) (method-adjust_0 (arity-at-least-value a_1)))) (format "at least ~a" a_4))) + (let-values (((a_3) (method-adjust_0 (arity-at-least-value a_0)))) (format "at least ~a" a_3))) (let-values () "a different number"))) (if (null? req_0) "" (format " plus ~a" (keywords-desc_0 "" req_0))) (if allowed_0 @@ -381,8 +378,8 @@ (let-values (((v_10) (new-procedure-ref p_1))) (if (procedure? v_10) (procedure-keywords v_10) - (let-values (((a_5) (procedure-accessor-ref p_1))) - (if a_5 (procedure-keywords (a_5 p_1)) (values null null))))) + (let-values (((a_4) (procedure-accessor-ref p_1))) + (if a_4 (procedure-keywords (a_4 p_1)) (values null null))))) (values null null))) (let-values () (raise-argument-error* 'procedure-keywords 'racket/primitive "procedure?" p_1))))))) (define-values @@ -396,7 +393,7 @@ (let-values (((v_11) (new-procedure-ref p_2 #f))) (if (procedure? v_11) (extract-keyword-root v_11) - (let-values (((a_6) (procedure-accessor-ref p_2 #f))) (if a_6 (extract-keyword-root (a_6 p_2)) #f))))) + (let-values (((a_5) (procedure-accessor-ref p_2 #f))) (if a_5 (extract-keyword-root (a_5 p_2)) #f))))) (let-values () #f)))))) (define-values (missing-kw) @@ -433,20 +430,20 @@ (if (not allowed-kws_0) (let-values () (if (null? req-kws_0) - (let-values () (lambda (kws_3 a_7) (bitwise-bit-set? arity-mask_0 a_7))) + (let-values () (lambda (kws_3 a_6) (bitwise-bit-set? arity-mask_0 a_6))) (let-values () - (lambda (kws_4 a_8) (if (subset? req-kws_0 kws_4) (bitwise-bit-set? arity-mask_0 a_8) #f))))) + (lambda (kws_4 a_7) (if (subset? req-kws_0 kws_4) (bitwise-bit-set? arity-mask_0 a_7) #f))))) (if (null? allowed-kws_0) - (let-values () (lambda (kws_5 a_9) (if (null? kws_5) (bitwise-bit-set? arity-mask_0 a_9) #f))) + (let-values () (lambda (kws_5 a_8) (if (null? kws_5) (bitwise-bit-set? arity-mask_0 a_8) #f))) (let-values () (if (null? req-kws_0) (let-values () - (lambda (kws_6 a_10) (if (subset? kws_6 allowed-kws_0) (bitwise-bit-set? arity-mask_0 a_10) #f))) + (lambda (kws_6 a_9) (if (subset? kws_6 allowed-kws_0) (bitwise-bit-set? arity-mask_0 a_9) #f))) (let-values () (if (if (list? req-kws_0) (if (list? allowed-kws_0) (eq? (length req-kws_0) (length allowed-kws_0)) #f) #f) - (lambda (kws_7 a_11) + (lambda (kws_7 a_10) (if ((letrec-values (((loop_6) (lambda (kws_8 req-kws_1) (begin @@ -461,10 +458,10 @@ loop_6) kws_7 req-kws_0) - (bitwise-bit-set? arity-mask_0 a_11) + (bitwise-bit-set? arity-mask_0 a_10) #f)) - (lambda (kws_9 a_12) - (if (subsets? req-kws_0 kws_9 allowed-kws_0) (bitwise-bit-set? arity-mask_0 a_12) #f)))))))))))) + (lambda (kws_9 a_11) + (if (subsets? req-kws_0 kws_9 allowed-kws_0) (bitwise-bit-set? arity-mask_0 a_11) #f)))))))))))) (define-values (subset?) (lambda (l1_0 l2_0) @@ -504,7 +501,7 @@ (if (procedure? p_4) (let-values (((or-part_5) (if (new-procedure? p_4) - (let-values (((a_13) (procedure-accessor-ref p_4))) (if a_13 (a_13 p_4) #f)) + (let-values (((a_12) (procedure-accessor-ref p_4))) (if a_12 (a_12 p_4) #f)) #f))) (if or-part_5 or-part_5 @@ -804,13 +801,13 @@ allowed-kw_3)))))))))))))) (define-values (arity->mask) - (lambda (a_14) + (lambda (a_13) (begin - (if (exact-nonnegative-integer? a_14) - (let-values () (arithmetic-shift 1 a_14)) - (if (arity-at-least? a_14) - (let-values () (bitwise-xor -1 (sub1 (arithmetic-shift 1 (arity-at-least-value a_14))))) - (if (list? a_14) + (if (exact-nonnegative-integer? a_13) + (let-values () (arithmetic-shift 1 a_13)) + (if (arity-at-least? a_13) + (let-values () (bitwise-xor -1 (sub1 (arithmetic-shift 1 (arity-at-least-value a_13))))) + (if (list? a_13) (let-values () ((letrec-values (((loop_8) (lambda (mask_6 l_1) @@ -819,14 +816,14 @@ (if (null? l_1) (let-values () mask_6) (let-values () - (let-values (((a_15) (car l_1))) - (if (let-values (((or-part_21) (exact-nonnegative-integer? a_15))) - (if or-part_21 or-part_21 (arity-at-least? a_15))) - (let-values () (loop_8 (bitwise-ior mask_6 (arity->mask a_15)) (cdr l_1))) + (let-values (((a_14) (car l_1))) + (if (let-values (((or-part_21) (exact-nonnegative-integer? a_14))) + (if or-part_21 or-part_21 (arity-at-least? a_14))) + (let-values () (loop_8 (bitwise-ior mask_6 (arity->mask a_14)) (cdr l_1))) (let-values () #f))))))))) loop_8) 0 - a_14)) + a_13)) (let-values () #f))))))) (define-values (new:procedure-reduce-arity-mask) @@ -913,8 +910,8 @@ (void) (if (list? l_2) (void) (raise-argument-error 'reverse "list?" l_2))) (letrec-values (((loop_9) - (lambda (a_16 l_3) - (begin 'loop (if (null? l_3) a_16 (loop_9 (cons (car l_3) a_16) (cdr l_3))))))) + (lambda (a_15 l_3) + (begin 'loop (if (null? l_3) a_15 (loop_9 (cons (car l_3) a_15) (cdr l_3))))))) (loop_9 null l_2)))))) (define-values (sort vector-sort vector-sort!) @@ -1449,12 +1446,12 @@ (if (unsafe-fx= n_7 2) (let-values () (list (cadr lst_0) (car lst_0))) (let-values () - (let-values (((a_17) (car lst_0)) ((b_1) (cadr lst_0)) ((c_0) (caddr lst_0))) - (if (less-than?_2 b_1 a_17) - (if (less-than?_2 c_0 b_1) - (list c_0 b_1 a_17) - (if (less-than?_2 c_0 a_17) (list b_1 c_0 a_17) (list b_1 a_17 c_0))) - (if (less-than?_2 c_0 a_17) (list c_0 a_17 b_1) (list a_17 c_0 b_1)))))))) + (let-values (((a_16) (car lst_0)) ((b_0) (cadr lst_0)) ((c_0) (caddr lst_0))) + (if (less-than?_2 b_0 a_16) + (if (less-than?_2 c_0 b_0) + (list c_0 b_0 a_16) + (if (less-than?_2 c_0 a_16) (list b_0 c_0 a_16) (list b_0 a_16 c_0))) + (if (less-than?_2 c_0 a_16) (list c_0 a_16 b_0) (list a_16 c_0 b_0)))))))) (let-values () (let-values (((vec_0) (make-vector (+ n_7 (ceiling (/ n_7 2)))))) (begin @@ -1551,24 +1548,24 @@ (if (unsafe-fx= n_8 2) (let-values () (list (cadr lst_3) (car lst_3))) (let-values () - (let-values (((a_18) (car lst_3)) ((b_2) (cadr lst_3)) ((c_1) (caddr lst_3))) + (let-values (((a_17) (car lst_3)) ((b_1) (cadr lst_3)) ((c_1) (caddr lst_3))) (if (if getkey_1 - (less-than?_4 (getkey_1 b_2) (getkey_1 a_18)) - (less-than?_4 b_2 a_18)) + (less-than?_4 (getkey_1 b_1) (getkey_1 a_17)) + (less-than?_4 b_1 a_17)) (if (if getkey_1 - (less-than?_4 (getkey_1 c_1) (getkey_1 b_2)) - (less-than?_4 c_1 b_2)) - (list c_1 b_2 a_18) + (less-than?_4 (getkey_1 c_1) (getkey_1 b_1)) + (less-than?_4 c_1 b_1)) + (list c_1 b_1 a_17) (if (if getkey_1 - (less-than?_4 (getkey_1 c_1) (getkey_1 a_18)) - (less-than?_4 c_1 a_18)) - (list b_2 c_1 a_18) - (list b_2 a_18 c_1))) + (less-than?_4 (getkey_1 c_1) (getkey_1 a_17)) + (less-than?_4 c_1 a_17)) + (list b_1 c_1 a_17) + (list b_1 a_17 c_1))) (if (if getkey_1 - (less-than?_4 (getkey_1 c_1) (getkey_1 a_18)) - (less-than?_4 c_1 a_18)) - (list c_1 a_18 b_2) - (list a_18 c_1 b_2)))))))) + (less-than?_4 (getkey_1 c_1) (getkey_1 a_17)) + (less-than?_4 c_1 a_17)) + (list c_1 a_17 b_1) + (list a_17 c_1 b_1)))))))) (let-values () (let-values (((vec_2) (make-vector (+ n_8 (ceiling (/ n_8 2)))))) (begin @@ -1637,36 +1634,36 @@ (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_1)))) (let-values () - (let-values (((a_19) (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))) + (let-values (((a_18) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 0))) + ((b_2) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 1))) ((c_2) (unsafe-vector-ref dst-vec_0 (unsafe-fx+ dst-start_0 2)))) - (if (less-than?_5 b_3 a_19) + (if (less-than?_5 b_2 a_18) (let-values () - (if (less-than?_5 c_2 b_3) + (if (less-than?_5 c_2 b_2) (let-values () (begin (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) c_2) - (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_19))) - (if (less-than?_5 c_2 a_19) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_18))) + (if (less-than?_5 c_2 a_18) (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 0) b_2) (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) c_2) - (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_19))) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) a_18))) (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_19)))))) - (if (less-than?_5 c_2 a_19) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) b_2) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) a_18)))))) + (if (less-than?_5 c_2 a_18) (let-values () (begin (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 0) c_2) - (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) a_19) - (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_3))) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) a_18) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_2))) (let-values () (begin (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 1) c_2) - (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_3))))))))))) + (unsafe-vector-set! dst-vec_0 (unsafe-fx+ dst-start_0 2) b_2))))))))))) (let-values () (let-values (((work-vec_0) (make-vector (+ n_9 (ceiling (/ n_9 2))) #f))) (begin @@ -1758,44 +1755,44 @@ (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_2)))) (let-values () - (let-values (((a_20) (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))) + (let-values (((a_19) (unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 0))) + ((b_3) (unsafe-vector-ref dst-vec_1 (unsafe-fx+ dst-start_1 1))) ((c_3) (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_20)) - (less-than?_6 b_4 a_20)) + (less-than?_6 (getkey_2 b_3) (getkey_2 a_19)) + (less-than?_6 b_3 a_19)) (let-values () (if (if getkey_2 - (less-than?_6 (getkey_2 c_3) (getkey_2 b_4)) - (less-than?_6 c_3 b_4)) + (less-than?_6 (getkey_2 c_3) (getkey_2 b_3)) + (less-than?_6 c_3 b_3)) (let-values () (begin (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) c_3) - (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_20))) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_19))) (if (if getkey_2 - (less-than?_6 (getkey_2 c_3) (getkey_2 a_20)) - (less-than?_6 c_3 a_20)) + (less-than?_6 (getkey_2 c_3) (getkey_2 a_19)) + (less-than?_6 c_3 a_19)) (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 0) b_3) (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) c_3) - (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_20))) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) a_19))) (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_20)))))) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) b_3) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) a_19)))))) (if (if getkey_2 - (less-than?_6 (getkey_2 c_3) (getkey_2 a_20)) - (less-than?_6 c_3 a_20)) + (less-than?_6 (getkey_2 c_3) (getkey_2 a_19)) + (less-than?_6 c_3 a_19)) (let-values () (begin (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 0) c_3) - (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) a_20) - (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_4))) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) a_19) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_3))) (let-values () (begin (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 1) c_3) - (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_4))))))))))) + (unsafe-vector-set! dst-vec_1 (unsafe-fx+ dst-start_1 2) b_3))))))))))) (let-values () (let-values (((work-vec_2) (make-vector (+ n_10 (ceiling (/ n_10 2))) #f))) (begin @@ -1843,36 +1840,36 @@ (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_3)))) (let-values () - (let-values (((a_21) (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))) + (let-values (((a_20) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 0))) + ((b_4) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 1))) ((c_4) (unsafe-vector-ref dst-vec_2 (unsafe-fx+ dst-start_2 2)))) - (if (less-than?_7 b_5 a_21) + (if (less-than?_7 b_4 a_20) (let-values () - (if (less-than?_7 c_4 b_5) + (if (less-than?_7 c_4 b_4) (let-values () (begin (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) c_4) - (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_21))) - (if (less-than?_7 c_4 a_21) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_20))) + (if (less-than?_7 c_4 a_20) (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 0) b_4) (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) c_4) - (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_21))) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) a_20))) (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_21)))))) - (if (less-than?_7 c_4 a_21) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) b_4) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) a_20)))))) + (if (less-than?_7 c_4 a_20) (let-values () (begin (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 0) c_4) - (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) a_21) - (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_5))) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) a_20) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_4))) (let-values () (begin (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 1) c_4) - (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_5))))))))))) + (unsafe-vector-set! dst-vec_2 (unsafe-fx+ dst-start_2 2) b_4))))))))))) (let-values () (let-values (((work-vec_3) (make-vector (+ n_11 (ceiling (/ n_11 2))) #f))) (begin @@ -1964,44 +1961,44 @@ (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_4)))) (let-values () - (let-values (((a_22) (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))) + (let-values (((a_21) (unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 0))) + ((b_5) (unsafe-vector-ref dst-vec_3 (unsafe-fx+ dst-start_3 1))) ((c_5) (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_22)) - (less-than?_8 b_6 a_22)) + (less-than?_8 (getkey_3 b_5) (getkey_3 a_21)) + (less-than?_8 b_5 a_21)) (let-values () (if (if getkey_3 - (less-than?_8 (getkey_3 c_5) (getkey_3 b_6)) - (less-than?_8 c_5 b_6)) + (less-than?_8 (getkey_3 c_5) (getkey_3 b_5)) + (less-than?_8 c_5 b_5)) (let-values () (begin (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) c_5) - (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_22))) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_21))) (if (if getkey_3 - (less-than?_8 (getkey_3 c_5) (getkey_3 a_22)) - (less-than?_8 c_5 a_22)) + (less-than?_8 (getkey_3 c_5) (getkey_3 a_21)) + (less-than?_8 c_5 a_21)) (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 0) b_5) (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) c_5) - (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_22))) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) a_21))) (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_22)))))) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) b_5) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) a_21)))))) (if (if getkey_3 - (less-than?_8 (getkey_3 c_5) (getkey_3 a_22)) - (less-than?_8 c_5 a_22)) + (less-than?_8 (getkey_3 c_5) (getkey_3 a_21)) + (less-than?_8 c_5 a_21)) (let-values () (begin (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 0) c_5) - (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) a_22) - (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_6))) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) a_21) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_5))) (let-values () (begin (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 1) c_5) - (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_6))))))))))) + (unsafe-vector-set! dst-vec_3 (unsafe-fx+ dst-start_3 2) b_5))))))))))) (let-values () (let-values (((work-vec_5) (make-vector (+ n_12 (ceiling (/ n_12 2))) #f))) (begin @@ -2211,14 +2208,14 @@ (cons prop:gen-sequence (lambda (v_25) (values values #f (range-ref v_25 1) (range-ref v_25 0) (range-ref v_25 2) #f #f)))))) - (define-values (check-range) (lambda (a_23 b_7 step_0) (begin (check-range-generic 'in-range a_23 b_7 step_0)))) + (define-values (check-range) (lambda (a_22 b_6 step_0) (begin (check-range-generic 'in-range a_22 b_6 step_0)))) (define-values (check-range-generic) - (lambda (who_3 a_24 b_8 step_1) + (lambda (who_3 a_23 b_7 step_1) (begin (begin - (if (real? a_24) (void) (let-values () (raise-argument-error who_3 "real?" a_24))) - (if (real? b_8) (void) (let-values () (raise-argument-error who_3 "real?" b_8))) + (if (real? a_23) (void) (let-values () (raise-argument-error who_3 "real?" a_23))) + (if (real? b_7) (void) (let-values () (raise-argument-error who_3 "real?" b_7))) (if (real? step_1) (void) (let-values () (raise-argument-error who_3 "real?" step_1))))))) (define-values (:integer-gen) (lambda (v_26) (begin (values values #f add1 0 (lambda (i_15) (< i_15 v_26)) #f #f)))) (define-values @@ -2584,17 +2581,17 @@ (let-values (((n_14) (object-name f_9))) (if (symbol? n_14) (symbol->string n_14) #f)))) (if or-part_45 or-part_45 "#"))) (append - (let-values (((a_25) (procedure-arity f_9))) + (let-values (((a_24) (procedure-arity f_9))) (if (pair? required-keywords_0) (let-values () null) - (if (integer? a_25) - (let-values () (list "expected" a_25)) - (if (arity-at-least? a_25) + (if (integer? a_24) + (let-values () (list "expected" a_24)) + (if (arity-at-least? a_24) (let-values () (list "expected" (unquoted-printing-string - (string-append "at least " (number->string (arity-at-least-value a_25)))))) + (string-append "at least " (number->string (arity-at-least-value a_24)))))) (let-values () null))))) (if (pair? required-keywords_0) (let-values () null) (let-values () (list "given" (length ls_4)))) (if (pair? required-keywords_0) @@ -2781,14 +2778,14 @@ (void) (let-values () (raise-argument-error 'filter "(any/c . -> . any/c)" f_13))) (if (list? list_0) (void) (let-values () (raise-argument-error 'filter "list?" list_0))) - ((letrec-values (((loop_46) + ((letrec-values (((loop_10) (lambda (l_18 result_0) (begin 'loop (if (null? l_18) (reverse$1 result_0) - (loop_46 (cdr l_18) (if (f_13 (car l_18)) (cons (car l_18) result_0) result_0))))))) - loop_46) + (loop_10 (cdr l_18) (if (f_13 (car l_18)) (cons (car l_18) result_0) result_0))))))) + loop_10) list_0 null))))) (define-values @@ -2820,14 +2817,14 @@ (begin 'pipeline1 (lambda (x_10) - ((letrec-values (((loop_47) - (lambda (x_3 f_15 rfuns_1) + ((letrec-values (((loop_14) + (lambda (x_11 f_15 rfuns_1) (begin 'loop (if (null? rfuns_1) - (f_15 x_3) - (loop_47 (f_15 x_3) (car rfuns_1) (cdr rfuns_1))))))) - loop_47) + (f_15 x_11) + (loop_14 (f_15 x_11) (car rfuns_1) (cdr rfuns_1))))))) + loop_14) x_10 f_14 rfuns_0)))))) @@ -2836,42 +2833,42 @@ (begin 'pipeline* (if (eqv? 1 (procedure-arity f_16)) - ((letrec-values (((loop_48) + ((letrec-values (((loop_46) (lambda (f_17 rfuns_3) (begin 'loop (if (null? rfuns_3) f_17 - (loop_48 + (loop_46 (let-values (((fst_0) (car rfuns_3))) (if (eqv? 1 (procedure-arity fst_0)) - (lambda (x_11) (fst_0 (f_17 x_11))) - (lambda (x_12) - (call-with-values (lambda () (f_17 x_12)) fst_0)))) + (lambda (x_12) (fst_0 (f_17 x_12))) + (lambda (x_13) + (call-with-values (lambda () (f_17 x_13)) fst_0)))) (cdr rfuns_3))))))) - loop_48) + loop_46) f_16 rfuns_2) (let-values (((funs_0) (reverse$1 (cons f_16 rfuns_2)))) - ((letrec-values (((loop_49) + ((letrec-values (((loop_47) (lambda (f_18 funs_1) (begin 'loop (if (null? funs_1) f_18 - (loop_49 + (loop_47 (let-values (((fst_1) (car funs_1))) (if (eqv? 1 (procedure-arity f_18)) (if (eqv? 1 (procedure-arity fst_1)) - (lambda (x_13) (f_18 (fst_1 x_13))) + (lambda (x_14) (f_18 (fst_1 x_14))) (lambda xs_0 (f_18 (apply fst_1 xs_0)))) (if (eqv? 1 (procedure-arity fst_1)) - (lambda (x_4) - (call-with-values (lambda () (fst_1 x_4)) f_18)) + (lambda (x_15) + (call-with-values (lambda () (fst_1 x_15)) f_18)) (lambda xs_1 (call-with-values (lambda () (apply fst_1 xs_1)) f_18))))) (cdr funs_1))))))) - loop_49) + loop_47) (car funs_0) (cdr funs_0)))))))) (let-values (((compose1_0) @@ -2883,10 +2880,10 @@ (let-values (((required-kwds_0 allowed-kwds_0) (procedure-keywords g_1))) (let-values (((composed_0) (if (eq? 1 arity_1) - (lambda (x_14) (begin 'composed (f_19 (g_1 x_14)))) + (lambda (x_16) (begin 'composed (f_19 (g_1 x_16)))) (case-lambda - ((x_15) (begin 'composed (f_19 (g_1 x_15)))) - ((x_16 y_6) (f_19 (g_1 x_16 y_6))) + ((x_17) (begin 'composed (f_19 (g_1 x_17)))) + ((x_18 y_6) (f_19 (g_1 x_18 y_6))) (args_8 (f_19 (apply g_1 args_8))))))) (if (null? allowed-kwds_0) composed_0 @@ -2923,7 +2920,7 @@ (simple-compose_0 f_21 g_2))) (() values) ((f0_0 . fs0_0) - ((letrec-values (((loop_50) + ((letrec-values (((loop_48) (lambda (f_22 fs_0 i_38 rfuns_4) (begin 'loop @@ -2963,11 +2960,11 @@ i_38 f0_0 fs0_0)))) - (loop_50 (car fs_0) (cdr fs_0) (add1 i_38) (cons f_22 rfuns_4))) + (loop_48 (car fs_0) (cdr fs_0) (add1 i_38) (cons f_22 rfuns_4))) (simple-compose_0 (pipeline1_0 (car rfuns_4) (cdr rfuns_4)) f_22))))))) - loop_50) + loop_48) f0_0 fs0_0 0 @@ -2982,10 +2979,10 @@ (let-values (((required-kwds_1 allowed-kwds_1) (procedure-keywords g_3))) (let-values (((composed_1) (if (eq? 1 arity_2) - (lambda (x_17) (begin 'composed (f_23 (g_3 x_17)))) + (lambda (x_19) (begin 'composed (f_23 (g_3 x_19)))) (case-lambda - ((x_18) (begin 'composed (f_23 (g_3 x_18)))) - ((x_19 y_7) (f_23 (g_3 x_19 y_7))) + ((x_20) (begin 'composed (f_23 (g_3 x_20)))) + ((x_21 y_7) (f_23 (g_3 x_21 y_7))) (args_9 (f_23 (apply g_3 args_9))))))) (if (null? allowed-kwds_1) composed_1 @@ -2997,17 +2994,17 @@ (let-values (((required-kwds_2 allowed-kwds_2) (procedure-keywords g_3))) (let-values (((composed_2) (if (eq? 1 arity_3) - (lambda (x_20) + (lambda (x_22) (begin 'composed - (call-with-values (lambda () (g_3 x_20)) f_23))) + (call-with-values (lambda () (g_3 x_22)) f_23))) (case-lambda - ((x_21) + ((x_23) (begin 'composed - (call-with-values (lambda () (g_3 x_21)) f_23))) - ((x_22 y_8) - (call-with-values (lambda () (g_3 x_22 y_8)) f_23)) + (call-with-values (lambda () (g_3 x_23)) f_23))) + ((x_24 y_8) + (call-with-values (lambda () (g_3 x_24 y_8)) f_23)) (args_10 (call-with-values (lambda () (apply g_3 args_10)) @@ -3046,8 +3043,8 @@ (simple-compose_1 f_25 g_4))) (() values) ((f0_1 . fs0_1) - ((letrec-values (((loop_20) - (lambda (f_26 fs_1 i_4 rfuns_5) + ((letrec-values (((loop_49) + (lambda (f_26 fs_1 i_39 rfuns_5) (begin 'loop (begin @@ -3058,7 +3055,7 @@ raise-argument-error 'compose "procedure?" - i_4 + i_39 f0_1 fs0_1))) (if (pair? fs_1) @@ -3072,14 +3069,14 @@ raise-argument-error 'compose "procedure-with-no-required-keywords?" - i_4 + i_39 f0_1 fs0_1))) - (loop_20 (car fs_1) (cdr fs_1) (add1 i_4) (cons f_26 rfuns_5))) + (loop_49 (car fs_1) (cdr fs_1) (add1 i_39) (cons f_26 rfuns_5))) (simple-compose_1 (pipeline*_0 (car rfuns_5) (cdr rfuns_5)) f_26))))))) - loop_20) + loop_49) f0_1 fs0_1 0 @@ -3194,7 +3191,6 @@ (define-values (test-environment?) (make-parameter #f)) (define-values (logging?) (make-parameter #t)) (define-values (ignored-module-imports-in-boot) (set (build-path racketscript-dir "private" "interop.rkt"))) - (define-values (ignored-undefined-identifiers) (list (.get-syntax-literal! 0))) (define-values (primitive-modules) (set @@ -3242,16 +3238,16 @@ (if (exact-nonnegative-integer? n0_0) (void) (let-values () (raise-argument-error 'split-at "exact-nonnegative-integer?" 1 list0_0 n0_0))) - ((letrec-values (((loop_51) + ((letrec-values (((loop_50) (lambda (list_2 n_17 pfx_0) (begin 'loop (if (zero? n_17) (let-values () (values (reverse$1 pfx_0) list_2)) (if (pair? list_2) - (let-values () (loop_51 (cdr list_2) (sub1 n_17) (cons (car list_2) pfx_0))) + (let-values () (loop_50 (cdr list_2) (sub1 n_17) (cons (car list_2) pfx_0))) (let-values () (too-large 'split-at list0_0 n0_0)))))))) - loop_51) + loop_50) list0_0 n0_0 '()))))) @@ -3259,153 +3255,24 @@ (flatten) (lambda (orig-sexp_0) (begin - ((letrec-values (((loop_52) + ((letrec-values (((loop_51) (lambda (sexp_0 acc_0) (begin 'loop (if (null? sexp_0) (let-values () acc_0) (if (pair? sexp_0) - (let-values () (loop_52 (car sexp_0) (loop_52 (cdr sexp_0) acc_0))) + (let-values () (loop_51 (car sexp_0) (loop_51 (cdr sexp_0) acc_0))) (let-values () (cons sexp_0 acc_0)))))))) - loop_52) + loop_51) orig-sexp_0 null)))) - (define-values - (add-between.1) - (lambda (after-last16_0 before-first14_0 before-last15_0 splice?13_0 l21_0 x22_0) - (begin - 'add-between - (let-values (((l_20) l21_0)) - (let-values (((x_23) x22_0)) - (let-values (((splice?_0) splice?13_0)) - (let-values (((before-first_0) before-first14_0)) - (let-values (((before-last_0) (if (eq? before-last15_0 unsafe-undefined) x_23 before-last15_0))) - (let-values (((after-last_0) after-last16_0)) - (let-values () - (begin - (if (list? l_20) (void) (let-values () (raise-argument-error 'add-between "list?" 0 l_20 x_23))) - (if splice?_0 - (let-values () - (let-values (((check-list_0) - (lambda (x_24 which_1) - (begin - 'check-list - (if (list? x_24) - (void) - (let-values () - (raise-arguments-error - 'add-between - (string-append "list needed in splicing mode" which_1) - "given" - x_24 - "given list..." - l_20))))))) - (begin - (check-list_0 x_23 "") - (check-list_0 before-first_0 " for #:before-first") - (check-list_0 before-last_0 " for #:before-last") - (check-list_0 after-last_0 " for #:after-last")))) - (let-values () - (let-values (((check-not-given_0) - (lambda (x_25 which_2) - (begin - 'check-not-given - (if (eq? '() x_25) - (void) - (let-values () - (raise-arguments-error - 'add-between - (string-append which_2 " can only be used in splicing mode") - "given" - x_25 - "given list..." - l_20))))))) - (begin - (check-not-given_0 before-first_0 "#:before-first") - (check-not-given_0 after-last_0 "#:after-last"))))) - (if (let-values (((or-part_49) (null? l_20))) (if or-part_49 or-part_49 (null? (cdr l_20)))) - (let-values () (if splice?_0 (append before-first_0 l_20 after-last_0) l_20)) - (if splice?_0 - (let-values () - (let-values (((x_26) (reverse$1 x_23))) - (let-values (((r_7) - ((letrec-values (((loop_53) - (lambda (i_39 l_21 r_8) - (begin - 'loop - (if (pair? l_21) - (loop_53 - (car l_21) - (cdr l_21) - (cons i_39 (append x_26 r_8))) - (cons - i_39 - (append (reverse$1 before-last_0) r_8))))))) - loop_53) - (cadr l_20) - (cddr l_20) - '()))) - (let-values (((r_9) (reverse$1 (append (reverse$1 after-last_0) r_7)))) - (let-values (((r_10) (qq-append before-first_0 (list* (car l_20) r_9)))) r_10))))) - (let-values () - (cons - (car l_20) - (reverse$1 - ((letrec-values (((loop_54) - (lambda (i_40 l_22 r_11) - (begin - 'loop - (if (pair? l_22) - (loop_54 (car l_22) (cdr l_22) (cons i_40 (cons x_23 r_11))) - (cons i_40 (cons before-last_0 r_11))))))) - loop_54) - (cadr l_20) - (cddr l_20) - '()))))))))))))))))) (define-values (append-map) (case-lambda - ((f_27 l_23) (begin (apply append (map2 f_27 l_23)))) + ((f_27 l_20) (begin (apply append (map2 f_27 l_20)))) ((f_28 l1_8 l2_8) (apply append (map2 f_28 l1_8 l2_8))) - ((f_29 l_24 . ls_13) (apply append (apply map2 f_29 l_24 ls_13))))) - (define-values - (string-join.1) - (lambda (after-last3_0 before-first1_0 before-last2_0 strs8_0 sep7_0) - (begin - 'string-join - (let-values (((strs_0) strs8_0)) - (let-values (((sep_0) sep7_0)) - (let-values (((before-first_1) (if (eq? before-first1_0 unsafe-undefined) unsafe-undefined before-first1_0))) - (let-values (((before-last_1) (if (eq? before-last2_0 unsafe-undefined) sep_0 before-last2_0))) - (let-values (((after-last_1) (if (eq? after-last3_0 unsafe-undefined) unsafe-undefined after-last3_0))) - (let-values () - (begin - (if (if (list? strs_0) (andmap2 string? strs_0) #f) - (void) - (let-values () (raise-argument-error 'string-join "(listof string?)" strs_0))) - (if (let-values (((or-part_50) (string? before-first_1))) - (if or-part_50 or-part_50 (eq? before-first_1 unsafe-undefined))) - (void) - (let-values () (raise-argument-error 'string-join "string?" before-first_1))) - (if (string? sep_0) (void) (let-values () (raise-argument-error 'string-join "string?" sep_0))) - (if (let-values (((or-part_51) (string? after-last_1))) - (if or-part_51 or-part_51 (eq? after-last_1 unsafe-undefined))) - (void) - (let-values () (raise-argument-error 'string-join "string?" after-last_1))) - (let-values (((r_12) - (if (let-values (((or-part_52) (null? strs_0))) - (if or-part_52 or-part_52 (null? (cdr strs_0)))) - strs_0 - (let-values (((strs40_0) strs_0) - ((sep41_0) sep_0) - ((before-last42_0) before-last_1)) - (add-between.1 '() '() before-last42_0 #f strs40_0 sep41_0))))) - (let-values (((r_13) - (if (eq? after-last_1 unsafe-undefined) r_12 (append r_12 (list after-last_1))))) - (let-values (((r_14) - (if (eq? before-first_1 unsafe-undefined) r_13 (cons before-first_1 r_13)))) - (apply string-append r_14)))))))))))))) + ((f_29 l_21 . ls_13) (apply append (apply map2 f_29 l_21 ls_13))))) (define-values (immutable-cache) (make-weak-hasheq)) (define-values (string->immutable-string/cache) @@ -3461,19 +3328,19 @@ (values)))) (let-values (((l1_9) (string-length str_2))) (let-values (((l2_9) (string-length prefix_0))) - ((letrec-values (((loop_55) - (lambda (i_41) + ((letrec-values (((loop_51) + (lambda (i_40) (begin 'loop - (if (= l2_9 i_41) + (if (= l2_9 i_40) (let-values () #t) - (if (= l1_9 i_41) + (if (= l1_9 i_40) (let-values () #f) (let-values () - (if (char=? (string-ref str_2 i_41) (string-ref prefix_0 i_41)) - (loop_55 (add1 i_41)) + (if (char=? (string-ref str_2 i_40) (string-ref prefix_0 i_40)) + (loop_51 (add1 i_40)) #f)))))))) - loop_55) + loop_51) 0)))))))) (define-values (normalize-symbol) @@ -3504,9 +3371,9 @@ (let-values (((ch-first_1 ch-rest_1) (let-values (((p_10) v_1)) (let-values (((ch-first_2) - (let-values (((a_26) + (let-values (((a_25) (car p_10))) - a_26)) + a_25)) ((ch-rest_2) (let-values (((d_0) (cdr p_10))) @@ -3518,7 +3385,7 @@ string-append (cons (normalize-symbol-atom ch-first_0 #t ignores_0) - ((letrec-values (((loop_56) + ((letrec-values (((loop_52) (lambda (ss_1) (begin 'loop @@ -3553,10 +3420,10 @@ (let-values (((p_12) v_44)) (let-values (((fst_3) - (let-values (((a_27) + (let-values (((a_26) (car p_12))) - a_27)) + a_26)) ((rst_1) (let-values (((d_1) (cdr @@ -3571,16 +3438,16 @@ fst_2 #f ignores_0) - (loop_56 + (loop_52 rst_0)))) (alt_3)))))))) (if (let-values (((p_13) v_44)) (if (pair? p_13) - (let-values (((a_28) + (let-values (((a_27) (cdr p_13))) (let-values (((p_14) - a_28)) + a_27)) (if (pair? p_14) #t #f))) @@ -3591,10 +3458,10 @@ (let-values (((p_15) v_44)) (let-values (((fst_5) - (let-values (((a_29) + (let-values (((a_28) (car p_15))) - a_29)) + a_28)) ((snd_1 rst_3) (let-values (((d_2) @@ -3603,10 +3470,10 @@ (let-values (((p_16) d_2)) (let-values (((snd_2) - (let-values (((a_30) + (let-values (((a_29) (car p_16))) - a_30)) + a_29)) ((rst_4) (let-values (((d_3) (cdr @@ -3625,13 +3492,13 @@ (let-values () (cons "_to_" - (loop_56 rst_2))) + (loop_52 rst_2))) (alt_2))) (alt_2)))))))) (if (eq? '() v_44) (let-values () (let-values () null)) (alt_1))))))))) - loop_56) + loop_52) ch-rest_0)))))))))))))))) (case-lambda ((s_10) (begin (normalize-symbol_0 s_10 '()))) @@ -3670,8 +3537,8 @@ (">" . "_gt_") ("?" . "_p")))) (let-values (((sch_0) (string ch_1))) - (if (let-values (((or-part_53) (member sch_0 ignores_1))) - (if or-part_53 or-part_53 (valid-literal-atom? ch_1 first?_1))) + (if (let-values (((or-part_49) (member sch_0 ignores_1))) + (if or-part_49 or-part_49 (valid-literal-atom? ch_1 first?_1))) (let-values () sch_0) (if first?_1 (let-values () (string-append "_" (normalize-symbol-atom ch_1 #f))) @@ -3943,60 +3810,60 @@ (Ident?) (lambda (e_1) (begin - (let-values (((or-part_54) (ImportedIdent? e_1))) - (if or-part_54 - or-part_54 - (let-values (((or-part_55) (TopLevelIdent? e_1))) - (if or-part_55 - or-part_55 - (let-values (((or-part_56) (LinkletImportIdent? e_1))) - (if or-part_56 or-part_56 (LocalIdent? e_1)))))))))) + (let-values (((or-part_50) (ImportedIdent? e_1))) + (if or-part_50 + or-part_50 + (let-values (((or-part_51) (TopLevelIdent? e_1))) + (if or-part_51 + or-part_51 + (let-values (((or-part_52) (LinkletImportIdent? e_1))) + (if or-part_52 or-part_52 (LocalIdent? e_1)))))))))) (define-values (TopLevelForm?) (lambda (e_2) (begin - (let-values (((or-part_57) (Expr? e_2))) - (if or-part_57 - or-part_57 - (let-values (((or-part_58) (DefineValues? e_2))) (if or-part_58 or-part_58 (JSRequire? e_2)))))))) + (let-values (((or-part_53) (Expr? e_2))) + (if or-part_53 + or-part_53 + (let-values (((or-part_54) (DefineValues? e_2))) (if or-part_54 or-part_54 (JSRequire? e_2)))))))) (define-values (Begin?) (lambda (e_3) (begin (if (list? e_3) (andmap2 TopLevelForm? e_3) #f)))) (define-values (Expr?) (lambda (e_4) (begin - (let-values (((or-part_59) (Ident? e_4))) - (if or-part_59 - or-part_59 - (let-values (((or-part_60) (VarRef? e_4))) - (if or-part_60 - or-part_60 - (let-values (((or-part_61) (Quote? e_4))) - (if or-part_61 - or-part_61 - (let-values (((or-part_62) (Begin? e_4))) - (if or-part_62 - or-part_62 - (let-values (((or-part_63) (Begin0? e_4))) - (if or-part_63 - or-part_63 - (let-values (((or-part_64) (App? e_4))) - (if or-part_64 - or-part_64 - (let-values (((or-part_65) (Lambda? e_4))) - (if or-part_65 - or-part_65 - (let-values (((or-part_66) (CaseLambda? e_4))) - (if or-part_66 - or-part_66 - (let-values (((or-part_67) (If? e_4))) - (if or-part_67 - or-part_67 - (let-values (((or-part_68) (LetValues? e_4))) - (if or-part_68 - or-part_68 - (let-values (((or-part_69) (Set!? e_4))) - (if or-part_69 - or-part_69 + (let-values (((or-part_55) (Ident? e_4))) + (if or-part_55 + or-part_55 + (let-values (((or-part_56) (VarRef? e_4))) + (if or-part_56 + or-part_56 + (let-values (((or-part_57) (Quote? e_4))) + (if or-part_57 + or-part_57 + (let-values (((or-part_58) (Begin? e_4))) + (if or-part_58 + or-part_58 + (let-values (((or-part_59) (Begin0? e_4))) + (if or-part_59 + or-part_59 + (let-values (((or-part_60) (App? e_4))) + (if or-part_60 + or-part_60 + (let-values (((or-part_61) (Lambda? e_4))) + (if or-part_61 + or-part_61 + (let-values (((or-part_62) (CaseLambda? e_4))) + (if or-part_62 + or-part_62 + (let-values (((or-part_63) (If? e_4))) + (if or-part_63 + or-part_63 + (let-values (((or-part_64) (LetValues? e_4))) + (if or-part_64 + or-part_64 + (let-values (((or-part_65) (Set!? e_4))) + (if or-part_65 + or-part_65 (WithContinuationMark? e_4)))))))))))))))))))))))))) (define-values (lambda-arity) @@ -4017,11 +3884,11 @@ (begin (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_6))) ((letrec-values (((for-loop_1) - (lambda (res_0 i_42) + (lambda (res_0 i_41) (begin 'for-loop - (if i_42 - (let-values (((k_0 v_45) (hash-iterate-key+value ht_6 i_42))) + (if i_41 + (let-values (((k_0 v_45) (hash-iterate-key+value ht_6 i_41))) (let-values (((res_1) (let-values (((res_2) res_0)) (let-values (((res_3) @@ -4030,7 +3897,7 @@ (error 'hash-union) (hash-set res_2 k_0 v_45))))) (values res_3))))) - (if (not #f) (for-loop_1 res_1 (hash-iterate-next ht_6 i_42)) res_1))) + (if (not #f) (for-loop_1 res_1 (hash-iterate-next ht_6 i_41)) res_1))) res_0))))) for-loop_1) h1_0 @@ -4039,18 +3906,18 @@ (formals->absyn) (lambda (formals_0) (begin - (if (let-values (((or-part_70) (symbol? formals_0))) (if or-part_70 or-part_70 (list? formals_0))) + (if (let-values (((or-part_66) (symbol? formals_0))) (if or-part_66 or-part_66 (list? formals_0))) (let-values () formals_0) (if (pair? formals_0) (let-values () - ((letrec-values (((loop_57) + ((letrec-values (((loop_53) (lambda (rev-elms_0 rem_0) (begin 'loop (if (pair? rem_0) - (loop_57 (cons (car rem_0) rev-elms_0) (cdr rem_0)) + (loop_53 (cons (car rem_0) rev-elms_0) (cdr rem_0)) (cons (reverse$1 rev-elms_0) rem_0)))))) - loop_57) + loop_53) '() formals_0)) (void)))))) @@ -4068,14 +3935,14 @@ (let-values () formals_2) (if (pair? formals_2) (let-values () - ((letrec-values (((loop_58) + ((letrec-values (((loop_54) (lambda (rev-elms_1 rem_1) (begin 'loop (if (pair? rem_1) - (loop_58 (cons (car rem_1) rev-elms_1) (cdr rem_1)) + (loop_54 (cons (car rem_1) rev-elms_1) (cdr rem_1)) (cons rem_1 (reverse$1 rev-elms_1))))))) - loop_58) + loop_54) '() formals_2)) (void)))))))) @@ -4088,20 +3955,20 @@ (begin 'for-loop (if (if pos-cont?_4 (pos-cont?_4 pos_11) #t) - (let-values (((i_43 all-cont?/pos_1) - (let-values (((i_44) (pos->vals_3 pos_11))) + (let-values (((i_42 all-cont?/pos_1) + (let-values (((i_43) (pos->vals_3 pos_11))) (values - i_44 - (if all-cont?_3 (lambda (pos_12) (all-cont?_3 pos_12 i_44)) #f)))) + i_43 + (if all-cont?_3 (lambda (pos_12) (all-cont?_3 pos_12 i_43)) #f)))) ((pos_13) (if pos-pre-inc_1 (pos-pre-inc_1 pos_11) pos_11))) - (if (if val-cont?_3 (val-cont?_3 i_43) #t) + (if (if val-cont?_3 (val-cont?_3 i_42) #t) (let-values (((table_1) (let-values (((table_2) table_0)) (let-values (((table_3) (let-values () (let-values (((key_3 val_0) (let-values () - (values i_43 'lexical)))) + (values i_42 'lexical)))) (hash-set table_2 key_3 val_0))))) (values table_3))))) (if (if (if all-cont?/pos_1 (all-cont?/pos_1 pos_13) #t) (not #f) #f) @@ -4122,8 +3989,8 @@ (begin 't (let-values (((v_47) v3_0)) - (let-values (((b_9) (if (eq? b2_4 unsafe-undefined) bindings_0 b2_4))) - (let-values () (to-absyn v_47 b_9)))))))) + (let-values (((b_8) (if (eq? b2_4 unsafe-undefined) bindings_0 b2_4))) + (let-values () (to-absyn v_47 b_8)))))))) (case-lambda ((v_48) (begin 't (t_2 v_48 unsafe-undefined))) ((v_49 b2_5) (t_2 v_49 b2_5)))))) (let-values (((v_50) v_46)) (let-values (((hd_0) (let-values (((p_17) v_50)) (if (pair? p_17) (car p_17) #f)))) @@ -4239,10 +4106,10 @@ (let-values (((p_19) v_50)) (let-values (((rator_1) - (let-values (((a_31) + (let-values (((a_30) (car p_19))) - a_31)) + a_30)) ((rands_1) (let-values (((d_4) (cdr @@ -4262,33 +4129,33 @@ (if (if (eq? 'with-continuation-mark hd_0) - (let-values (((a_32) + (let-values (((a_31) (cdr v_50))) (let-values (((p_20) - a_32)) + a_31)) (if (pair? p_20) - (let-values (((a_33) + (let-values (((a_32) (cdr p_20))) (let-values (((p_21) - a_33)) + a_32)) (if (pair? p_21) - (let-values (((a_34) + (let-values (((a_33) (cdr p_21))) (let-values (((p_22) - a_34)) + a_33)) (if (pair? p_22) - (let-values (((a_35) + (let-values (((a_34) (cdr p_22))) (eq? '() - a_35)) + a_34)) #f))) #f))) #f))) @@ -4302,10 +4169,10 @@ (let-values (((p_23) d_5)) (let-values (((key_5) - (let-values (((a_36) + (let-values (((a_35) (car p_23))) - a_36)) + a_35)) ((value_1 result_2) (let-values (((d_6) @@ -4314,18 +4181,18 @@ (let-values (((p_0) d_6)) (let-values (((value_2) - (let-values (((a_37) + (let-values (((a_36) (car p_0))) - a_37)) + a_36)) ((result_3) (let-values (((d_7) (cdr p_0))) - (let-values (((a_0) + (let-values (((a_37) (car d_7))) - a_0)))) + a_37)))) (values value_2 result_3)))))) @@ -4469,7 +4336,7 @@ a_45)) #f))) #f) - (let-values (((x_27) + (let-values (((x_25) (let-values (((d_10) (cdr v_50))) @@ -4479,7 +4346,7 @@ a_46)))) (let-values () (VarRef16.1 - x_27))) + x_25))) (alt_16)))))))) (if (if (eq? 'define-values @@ -4514,7 +4381,7 @@ #f))) #f) (let-values (((id_1 - b_10) + b_9) (let-values (((d_11) (cdr v_50))) @@ -4525,7 +4392,7 @@ (car p_30))) a_51)) - ((b_11) + ((b_10) (let-values (((d_12) (cdr p_30))) @@ -4535,12 +4402,12 @@ a_52)))) (values id_2 - b_11)))))) + b_10)))))) (let-values () (DefineValues2.1 id_1 (t_1 - b_10)))) + b_9)))) (alt_15)))))))) (if (if (eq? 'define-values @@ -5183,7 +5050,7 @@ (values result_6))))) (if (if (not - ((lambda x_28 + ((lambda x_26 (not result_5)) v_52)) @@ -5218,7 +5085,7 @@ #f) (let-values (((xs_5 es_0 - b_12) + b_11) (let-values (((d_28) (cdr v_50))) @@ -5315,7 +5182,7 @@ xs_7) (reverse$1 es_2))))) - ((b_13) + ((b_12) (let-values (((d_30) (cdr p_66))) @@ -5326,7 +5193,7 @@ (values xs_6 es_1 - b_13)))))) + b_12)))))) (let-values () (let-values (((bindings*_0) (hash-union @@ -5352,18 +5219,18 @@ (pos-cont?_5 pos_14) #t) - (let-values (((x_29 + (let-values (((x_27 all-cont?/pos_2) - (let-values (((x_30) + (let-values (((x_28) (pos->vals_4 pos_14))) (values - x_30 + x_28 (if all-cont?_4 (lambda (pos_15) (all-cont?_4 pos_15 - x_30)) + x_28)) #f)))) ((pos_16) (if pos-pre-inc_2 @@ -5372,7 +5239,7 @@ pos_14))) (if (if val-cont?_4 (val-cont?_4 - x_29) + x_27) #t) (let-values (((table_5) (let-values (((table_6) @@ -5386,7 +5253,7 @@ all-cont?_5) (make-sequence '(i) - x_29))) + x_27))) (begin (void) ((letrec-values (((for-loop_6) @@ -5398,18 +5265,18 @@ (pos-cont?_6 pos_17) #t) - (let-values (((i_45 + (let-values (((i_44 all-cont?/pos_3) - (let-values (((i_46) + (let-values (((i_45) (pos->vals_5 pos_17))) (values - i_46 + i_45 (if all-cont?_5 (lambda (pos_18) (all-cont?_5 pos_18 - i_46)) + i_45)) #f)))) ((pos_19) (if pos-pre-inc_3 @@ -5418,7 +5285,7 @@ pos_17))) (if (if val-cont?_5 (val-cont?_5 - i_45) + i_44) #t) (let-values (((table_8) (let-values (((table_9) @@ -5431,7 +5298,7 @@ val_1) (let-values () (values - i_45 + i_44 'lexical)))) (hash-set table_10 @@ -5513,18 +5380,18 @@ pos_21) #t) #f) - (let-values (((x_18 + (let-values (((x_29 all-cont?/pos_4) - (let-values (((x_31) + (let-values (((x_30) (pos->vals_6 pos_20))) (values - x_31 + x_30 (if all-cont?_6 (lambda (pos_22) (all-cont?_6 pos_22 - x_31)) + x_30)) #f)))) ((pos_23) (if pos-pre-inc_4 @@ -5551,7 +5418,7 @@ pos_21))) (if (if (if val-cont?_6 (val-cont?_6 - x_18) + x_29) #t) (if val-cont?_7 (val-cont?_7 @@ -5566,7 +5433,7 @@ (cons (let-values () (cons - x_18 + x_29 (t_1 e_7 bindings*_0))) @@ -5600,7 +5467,7 @@ init_8)))) (list (t_1 - b_12 + b_11 bindings*_0)))))) (alt_10)))))))) (if (if (eq? @@ -5667,7 +5534,7 @@ (values result_9))))) (if (if (not - ((lambda x_32 + ((lambda x_31 (not result_8)) v_54)) @@ -5700,20 +5567,20 @@ #f) #f))) #f) - (let-values (((xs_13 + (let-values (((xs_4 es_8 - b_14) + b_13) (let-values (((d_31) (cdr v_50))) (let-values (((p_72) d_31)) - (let-values (((xs_14 + (let-values (((xs_13 es_9) (let-values (((a_132) (car p_72))) - (let-values (((xs_15 + (let-values (((xs_14 es_10) (let-values (((lst_14) a_132)) @@ -5725,7 +5592,7 @@ (check-list lst_14))) ((letrec-values (((for-loop_9) - (lambda (xs_16 + (lambda (xs_15 es_11 lst_15) (begin @@ -5738,13 +5605,13 @@ ((rest_4) (unsafe-cdr lst_15))) - (let-values (((xs_17 + (let-values (((xs_16 es_12) - (let-values (((xs_18) - xs_16) + (let-values (((xs_17) + xs_15) ((es_13) es_11)) - (let-values (((xs_19 + (let-values (((xs_18 es_14) (let-values () (let-values (((xs10_0 @@ -5752,7 +5619,7 @@ (let-values () (let-values (((p_73) v_55)) - (let-values (((xs_20) + (let-values (((xs_19) (let-values (((a_133) (car p_73))) @@ -5766,29 +5633,29 @@ d_32))) a_134)))) (values - xs_20 + xs_19 es_15)))))) (values (cons xs10_0 - xs_18) + xs_17) (cons es11_0 es_13)))))) (values - xs_19 + xs_18 es_14))))) (if (not #f) (for-loop_9 - xs_17 + xs_16 es_12 rest_4) (values - xs_17 + xs_16 es_12)))) (values - xs_16 + xs_15 es_11)))))) for-loop_9) null @@ -5796,10 +5663,10 @@ lst_14))))) (values (reverse$1 - xs_15) + xs_14) (reverse$1 es_10))))) - ((b_15) + ((b_14) (let-values (((d_33) (cdr p_72))) @@ -5808,9 +5675,9 @@ d_33))) a_135)))) (values - xs_14 + xs_13 es_9 - b_15)))))) + b_14)))))) (let-values () (let-values (((bindings*_1) (hash-union @@ -5824,7 +5691,7 @@ all-cont?_8) (make-sequence '(x) - xs_13))) + xs_4))) (begin (void) ((letrec-values (((for-loop_10) @@ -5836,18 +5703,18 @@ (pos-cont?_9 pos_26) #t) - (let-values (((x_33 + (let-values (((x_32 all-cont?/pos_6) - (let-values (((x_34) + (let-values (((x_33) (pos->vals_8 pos_26))) (values - x_34 + x_33 (if all-cont?_8 (lambda (pos_27) (all-cont?_8 pos_27 - x_34)) + x_33)) #f)))) ((pos_28) (if pos-pre-inc_6 @@ -5856,7 +5723,7 @@ pos_26))) (if (if val-cont?_8 (val-cont?_8 - x_33) + x_32) #t) (let-values (((table_13) (let-values (((table_14) @@ -5870,7 +5737,7 @@ all-cont?_9) (make-sequence '(i) - x_33))) + x_32))) (begin (void) ((letrec-values (((for-loop_11) @@ -5882,18 +5749,18 @@ (pos-cont?_10 pos_29) #t) - (let-values (((i_47 + (let-values (((i_46 all-cont?/pos_7) - (let-values (((i_48) + (let-values (((i_47) (pos->vals_9 pos_29))) (values - i_48 + i_47 (if all-cont?_9 (lambda (pos_30) (all-cont?_9 pos_30 - i_48)) + i_47)) #f)))) ((pos_31) (if pos-pre-inc_7 @@ -5902,7 +5769,7 @@ pos_29))) (if (if val-cont?_9 (val-cont?_9 - i_47) + i_46) #t) (let-values (((table_16) (let-values (((table_17) @@ -5915,7 +5782,7 @@ val_2) (let-values () (values - i_47 + i_46 'lexical)))) (hash-set table_18 @@ -5968,7 +5835,7 @@ all-cont?_10) (make-sequence '(x) - xs_13)) + xs_4)) ((pos->vals_11 pos-pre-inc_9 pos-next_12 @@ -5997,18 +5864,18 @@ pos_33) #t) #f) - (let-values (((x_35 + (let-values (((x_34 all-cont?/pos_8) - (let-values (((x_36) + (let-values (((x_35) (pos->vals_10 pos_32))) (values - x_36 + x_35 (if all-cont?_10 (lambda (pos_34) (all-cont?_10 pos_34 - x_36)) + x_35)) #f)))) ((pos_35) (if pos-pre-inc_8 @@ -6035,7 +5902,7 @@ pos_33))) (if (if (if val-cont?_10 (val-cont?_10 - x_35) + x_34) #t) (if val-cont?_11 (val-cont?_11 @@ -6050,7 +5917,7 @@ (cons (let-values () (cons - x_35 + x_34 (t_1 e_9))) fold-var_6)))) @@ -6083,7 +5950,7 @@ init_12)))) (list (t_1 - b_14 + b_13 bindings*_1)))))) (alt_9)))))))) (if (if (eq? 'if hd_0) @@ -6206,13 +6073,13 @@ (let-values () (Quote7.1 v_56))) (alt_5)))))))) (let-values () - (if (let-values (((or-part_71) (string? v_46))) - (if or-part_71 - or-part_71 - (let-values (((or-part_72) (number? v_46))) - (if or-part_72 - or-part_72 - (let-values (((or-part_73) (boolean? v_46))) (if or-part_73 or-part_73 (bytes? v_46))))))) + (if (let-values (((or-part_67) (string? v_46))) + (if or-part_67 + or-part_67 + (let-values (((or-part_68) (number? v_46))) + (if or-part_68 + or-part_68 + (let-values (((or-part_69) (boolean? v_46))) (if or-part_69 or-part_69 (bytes? v_46))))))) (let-values () (Quote7.1 v_46)) (alt_4))))))))))) (define-values @@ -6300,18 +6167,18 @@ (pos-cont?_14 pos_42) #t) - (let-values (((i_49 + (let-values (((i_48 all-cont?/pos_11) - (let-values (((i_50) + (let-values (((i_49) (pos->vals_13 pos_42))) (values - i_50 + i_49 (if all-cont?_13 (lambda (pos_43) (all-cont?_13 pos_43 - i_50)) + i_49)) #f)))) ((pos_44) (if pos-pre-inc_11 @@ -6320,7 +6187,7 @@ pos_42))) (if (if val-cont?_13 (val-cont?_13 - i_49) + i_48) #t) (let-values (((table_24) (let-values (((table_25) @@ -6333,7 +6200,7 @@ val_3) (let-values () (values - i_49 + i_48 j_3)))) (hash-set table_26 @@ -6393,16 +6260,16 @@ (begin 'for-loop (if (if pos-cont?_15 (pos-cont?_15 pos_45) #t) - (let-values (((b_16 all-cont?/pos_12) - (let-values (((b_17) (pos->vals_14 pos_45))) + (let-values (((b_15 all-cont?/pos_12) + (let-values (((b_16) (pos->vals_14 pos_45))) (values - b_17 + b_16 (if all-cont?_14 - (lambda (pos_46) (all-cont?_14 pos_46 b_17)) + (lambda (pos_46) (all-cont?_14 pos_46 b_16)) #f)))) ((pos_47) (if pos-pre-inc_12 (pos-pre-inc_12 pos_45) pos_45))) - (if (if val-cont?_14 (val-cont?_14 b_16) #t) + (if (if val-cont?_14 (val-cont?_14 b_15) #t) (let-values ((() (let-values () (let-values ((() @@ -6410,7 +6277,7 @@ (begin (let-values () (let-values (((v_59) - b_16)) + b_15)) (let-values (((hd_2) (let-values (((p_87) v_59)) @@ -6485,18 +6352,18 @@ (pos-cont?_16 pos_48) #t) - (let-values (((i_51 + (let-values (((i_50 all-cont?/pos_13) - (let-values (((i_52) + (let-values (((i_51) (pos->vals_15 pos_48))) (values - i_52 + i_51 (if all-cont?_15 (lambda (pos_49) (all-cont?_15 pos_49 - i_52)) + i_51)) #f)))) ((pos_50) (if pos-pre-inc_13 @@ -6505,7 +6372,7 @@ pos_48))) (if (if val-cont?_15 (val-cont?_15 - i_51) + i_50) #t) (let-values ((() (let-values () @@ -6515,7 +6382,7 @@ (let-values () (hash-set! defs_0 - i_51 + i_50 'define)) (values))))) (values))))) @@ -6556,9 +6423,9 @@ (alt_23))))))))) (define-values (improper->proper) - (lambda (l_25) + (lambda (l_22) (begin - (let-values (((v_61) l_25)) + (let-values (((v_61) l_22)) (let-values () (let-values (((alt_13) (lambda () @@ -6570,25 +6437,21 @@ (begin 'alt (let-values () - (let-values () (let-values () (let-values () (cons l_25 '()))))))))) + (let-values () (let-values () (let-values () (cons l_22 '()))))))))) (if (eq? '() v_61) (let-values () (let-values () '())) (alt_14)))))))) (if (let-values (((p_90) v_61)) (if (pair? p_90) #t #f)) - (let-values (((a_158 b_18) + (let-values (((a_158 b_17) (let-values (((p_91) v_61)) (let-values (((a_159) (let-values (((a_160) (car p_91))) a_160)) - ((b_19) (let-values (((d_45) (cdr p_91))) d_45))) - (values a_159 b_19))))) - (let-values () (cons a_158 (improper->proper b_18)))) + ((b_18) (let-values (((d_45) (cdr p_91))) d_45))) + (values a_159 b_18))))) + (let-values () (cons a_158 (improper->proper b_17)))) (alt_13)))))))) (define-values (*jsident-start-letter*) "\\p{L}|\\p{Nl}|\\$|_") (define-values (*jsident-rest-letters*) (string-append "\\p{L}|\\p{Nl}|\\$|_|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}" "|\u200D|\u200C")) (define-values (*jsident-pattern*) (format "(~a)(~a)*" *jsident-start-letter* *jsident-rest-letters*)) - (define-values - (js-identifier?) - (lambda (sym_0) - (begin (let-values (((str_3) (symbol->string sym_0))) (regexp-match-exact? (pregexp *jsident-pattern*) str_3))))) (define-values (simple-form-path) (compose simplify-path path->complete-path)) (define-values (~a) @@ -6610,10 +6473,10 @@ (define-values (primitive-module?) (lambda (mod_4) (begin (set-member? primitive-modules mod_4)))) (define-values (get-major-version) - (lambda (str_4) + (lambda (str_3) (begin (let-values (((vec_7 len_1) - (let-values (((vec_8) str_4)) + (let-values (((vec_8) str_3)) (begin (check-string vec_8) (values vec_8 (unsafe-string-length vec_8)))))) (begin #f @@ -6697,16 +6560,16 @@ (begin 'for-loop (if (if pos-cont?_17 (pos-cont?_17 pos_52) #t) - (let-values (((i_53 all-cont?/pos_14) - (let-values (((i_54) (pos->vals_16 pos_52))) + (let-values (((i_52 all-cont?/pos_14) + (let-values (((i_53) (pos->vals_16 pos_52))) (values - i_54 + i_53 (if all-cont?_16 - (lambda (pos_53) (all-cont?_16 pos_53 i_54)) + (lambda (pos_53) (all-cont?_16 pos_53 i_53)) #f)))) ((pos_54) (if pos-pre-inc_14 (pos-pre-inc_14 pos_52) pos_52))) - (if (if val-cont?_16 (val-cont?_16 i_53) #t) + (if (if val-cont?_16 (val-cont?_16 i_52) #t) (let-values (((c_9) (let-values (((c_10) c_8)) (let-values (((c_11) @@ -6762,16 +6625,6 @@ (make-struct-field-accessor -ref_2 0 'mod) (make-struct-field-accessor -ref_2 1 'name) (make-struct-field-accessor -ref_2 2 'import-mode)))) - (define-values - (struct:IfClause IfClause3.1 IfClause? IfClause-pred IfClause-body) - (let-values (((struct:_2 make-_2 ?_3 -ref_3 -set!_3) - (let-values () (let-values () (make-struct-type 'IfClause #f 2 0 #f null #f #f '(0 1) #f 'IfClause))))) - (values - struct:_2 - make-_2 - ?_3 - (make-struct-field-accessor -ref_3 0 'pred) - (make-struct-field-accessor -ref_3 1 'body)))) (define-values (struct:ILCheckedFormals ILCheckedFormals4.1 ILCheckedFormals? ILCheckedFormals-formals) (let-values (((struct:_3 make-_3 ?_4 -ref_4 -set!_4) @@ -6898,67 +6751,31 @@ (make-struct-field-accessor -ref_20 0 'id) (make-struct-field-accessor -ref_20 1 'expr)))) (define-values - (struct:ILLetDec ILLetDec21.1 ILLetDec? ILLetDec-id ILLetDec-expr) + (struct:ILIf ILIf22.1 ILIf? ILIf-pred ILIf-t-branch ILIf-f-branch) (let-values (((struct:_20 make-_20 ?_21 -ref_21 -set!_21) - (let-values () (let-values () (make-struct-type 'ILLetDec #f 2 0 #f null #f #f '(0 1) #f 'ILLetDec))))) + (let-values () (let-values () (make-struct-type 'ILIf #f 3 0 #f null #f #f '(0 1 2) #f 'ILIf))))) (values struct:_20 make-_20 ?_21 - (make-struct-field-accessor -ref_21 0 'id) - (make-struct-field-accessor -ref_21 1 'expr)))) + (make-struct-field-accessor -ref_21 0 'pred) + (make-struct-field-accessor -ref_21 1 't-branch) + (make-struct-field-accessor -ref_21 2 'f-branch)))) (define-values - (struct:ILIf ILIf22.1 ILIf? ILIf-pred ILIf-t-branch ILIf-f-branch) + (struct:ILAssign ILAssign24.1 ILAssign? ILAssign-lvalue ILAssign-rvalue) (let-values (((struct:_21 make-_21 ?_22 -ref_22 -set!_22) - (let-values () (let-values () (make-struct-type 'ILIf #f 3 0 #f null #f #f '(0 1 2) #f 'ILIf))))) + (let-values () (let-values () (make-struct-type 'ILAssign #f 2 0 #f null #f #f '(0 1) #f 'ILAssign))))) (values struct:_21 make-_21 ?_22 - (make-struct-field-accessor -ref_22 0 'pred) - (make-struct-field-accessor -ref_22 1 't-branch) - (make-struct-field-accessor -ref_22 2 'f-branch)))) - (define-values - (struct:ILIf* ILIf*23.1 ILIf*? ILIf*-clauses) - (let-values (((struct:_22 make-_22 ?_23 -ref_23 -set!_23) - (let-values () (let-values () (make-struct-type 'ILIf* #f 1 0 #f null #f #f '(0) #f 'ILIf*))))) - (values struct:_22 make-_22 ?_23 (make-struct-field-accessor -ref_23 0 'clauses)))) - (define-values - (struct:ILAssign ILAssign24.1 ILAssign? ILAssign-lvalue ILAssign-rvalue) - (let-values (((struct:_23 make-_23 ?_24 -ref_24 -set!_24) - (let-values () (let-values () (make-struct-type 'ILAssign #f 2 0 #f null #f #f '(0 1) #f 'ILAssign))))) - (values - struct:_23 - make-_23 - ?_24 - (make-struct-field-accessor -ref_24 0 'lvalue) - (make-struct-field-accessor -ref_24 1 'rvalue)))) - (define-values - (struct:ILWhile ILWhile25.1 ILWhile? ILWhile-condition ILWhile-body) - (let-values (((struct:_24 make-_24 ?_25 -ref_25 -set!_25) - (let-values () (let-values () (make-struct-type 'ILWhile #f 2 0 #f null #f #f '(0 1) #f 'ILWhile))))) - (values - struct:_24 - make-_24 - ?_25 - (make-struct-field-accessor -ref_25 0 'condition) - (make-struct-field-accessor -ref_25 1 'body)))) + (make-struct-field-accessor -ref_22 0 'lvalue) + (make-struct-field-accessor -ref_22 1 'rvalue)))) (define-values (struct:ILReturn ILReturn26.1 ILReturn? ILReturn-expr) - (let-values (((struct:_25 make-_25 ?_26 -ref_26 -set!_26) + (let-values (((struct:_22 make-_22 ?_23 -ref_23 -set!_23) (let-values () (let-values () (make-struct-type 'ILReturn #f 1 0 #f null #f #f '(0) #f 'ILReturn))))) - (values struct:_25 make-_25 ?_26 (make-struct-field-accessor -ref_26 0 'expr)))) - (define-values - (struct:ILLabel ILLabel27.1 ILLabel? ILLabel-name) - (let-values (((struct:_26 make-_26 ?_27 -ref_27 -set!_27) - (let-values () (let-values () (make-struct-type 'ILLabel #f 1 0 #f null #f #f '(0) #f 'ILLabel))))) - (values struct:_26 make-_26 ?_27 (make-struct-field-accessor -ref_27 0 'name)))) - (define-values - (struct:ILContinue ILContinue28.1 ILContinue? ILContinue-label) - (let-values (((struct:_27 make-_27 ?_28 -ref_28 -set!_28) - (let-values () - (let-values () (make-struct-type 'ILContinue #f 1 0 #f null #f #f '(0) #f 'ILContinue))))) - (values struct:_27 make-_27 ?_28 (make-struct-field-accessor -ref_28 0 'label)))) + (values struct:_22 make-_22 ?_23 (make-struct-field-accessor -ref_23 0 'expr)))) (define-values (struct:ILExnHandler ILExnHandler29.1 @@ -6967,800 +6784,247 @@ ILExnHandler-error ILExnHandler-catch ILExnHandler-finally) - (let-values (((struct:_28 make-_28 ?_29 -ref_29 -set!_29) + (let-values (((struct:_23 make-_23 ?_24 -ref_24 -set!_24) (let-values () (let-values () (make-struct-type 'ILExnHandler #f 4 0 #f null #f #f '(0 1 2 3) #f 'ILExnHandler))))) (values - struct:_28 - make-_28 - ?_29 - (make-struct-field-accessor -ref_29 0 'try) - (make-struct-field-accessor -ref_29 1 'error) - (make-struct-field-accessor -ref_29 2 'catch) - (make-struct-field-accessor -ref_29 3 'finally)))) + struct:_23 + make-_23 + ?_24 + (make-struct-field-accessor -ref_24 0 'try) + (make-struct-field-accessor -ref_24 1 'error) + (make-struct-field-accessor -ref_24 2 'catch) + (make-struct-field-accessor -ref_24 3 'finally)))) (define-values (struct:ILThrow ILThrow30.1 ILThrow? ILThrow-expr) - (let-values (((struct:_29 make-_29 ?_30 -ref_30 -set!_30) + (let-values (((struct:_24 make-_24 ?_25 -ref_25 -set!_25) (let-values () (let-values () (make-struct-type 'ILThrow #f 1 0 #f null #f #f '(0) #f 'ILThrow))))) - (values struct:_29 make-_29 ?_30 (make-struct-field-accessor -ref_30 0 'expr)))) - (define-values - (ILExpr?) - (lambda (e_12) - (begin - (let-values (((or-part_74) (ILLambda? e_12))) - (if or-part_74 - or-part_74 - (let-values (((or-part_75) (ILBinaryOp? e_12))) - (if or-part_75 - or-part_75 - (let-values (((or-part_76) (ILApp? e_12))) - (if or-part_76 - or-part_76 - (let-values (((or-part_77) (ILArray? e_12))) - (if or-part_77 - or-part_77 - (let-values (((or-part_78) (ILObject? e_12))) - (if or-part_78 - or-part_78 - (let-values (((or-part_79) (ILRef? e_12))) - (if or-part_79 - or-part_79 - (let-values (((or-part_80) (ILIndex? e_12))) - (if or-part_80 - or-part_80 - (let-values (((or-part_81) (ILValue? e_12))) - (if or-part_81 - or-part_81 - (let-values (((or-part_82) (ILNew? e_12))) - (if or-part_82 - or-part_82 - (let-values (((or-part_83) (ILInstanceOf? e_12))) - (if or-part_83 - or-part_83 - (let-values (((or-part_84) (ILTypeOf? e_12))) - (if or-part_84 - or-part_84 - (let-values (((or-part_85) (ILNull? e_12))) - (if or-part_85 - or-part_85 - (let-values (((or-part_86) (ILUndefined? e_12))) - (if or-part_86 - or-part_86 - (let-values (((or-part_87) (ILArguments? e_12))) - (if or-part_87 - or-part_87 - (let-values (((or-part_88) (ILThis? e_12))) - (if or-part_88 - or-part_88 - (symbol? e_12)))))))))))))))))))))))))))))))))) + (values struct:_24 make-_24 ?_25 (make-struct-field-accessor -ref_25 0 'expr)))) (define-values (flatten-statements) (lambda (stms_0) (begin (flatten stms_0)))) - (define-values - (check-arity-stms) - (lambda (formals_7) - (begin - (let-values (((check-arity-stm_0) - (lambda (op_0 arity_4) - (begin - 'check-arity-stm - (ILIf22.1 - (ILBinaryOp6.1 op_0 (list (ILRef10.1 (ILArguments18.1) 'length) (ILValue12.1 arity_4))) - (list - (ILThrow30.1 - (ILApp7.1 - (name-in-module 'core 'racketContractError) - (list (ILValue12.1 "arity mismatch"))))) - '()))))) - (let-values (((formals*_0) (ILCheckedFormals-formals formals_7))) - (if (symbol? formals*_0) - (let-values () '()) - (if (list? formals*_0) - (let-values () (list (check-arity-stm_0 '!== (length formals*_0)))) - (if (cons? formals*_0) - (let-values () - (let-values (((pos-formals_0) (car formals*_0))) - (list (check-arity-stm_0 '< (length pos-formals_0))))) - (void))))))))) - (define-values - (insert-arity-checks) - (lambda (mod_6) - (begin - (letrec-values (((traverse-expr_0) - (lambda (a_161) - (begin - 'traverse-expr - (let-values (((v_1) a_161)) - (let-values (((vec-v_0) (struct->vector v_1))) - (let-values (((alt_26) - (lambda () - (begin - 'alt - (let-values (((vec-v_1) (struct->vector v_1))) - (let-values (((alt_27) - (lambda () - (begin - 'alt - (let-values (((vec-v_2) (struct->vector v_1))) - (let-values (((alt_28) - (lambda () - (begin - 'alt - (let-values (((vec-v_3) - (struct->vector - v_1))) - (let-values (((alt_29) - (lambda () - (begin - 'alt - (let-values (((vec-v_4) - (struct->vector - v_1))) - (let-values (((alt_30) - (lambda () - (begin - 'alt - (let-values (((vec-v_5) - (struct->vector - v_1))) - (let-values (((alt_31) - (lambda () - (begin - 'alt - (let-values (((vec-v_6) - (struct->vector - v_1))) - (let-values (((alt_2) - (lambda () - (begin - 'alt - (let-values (((vec-v_7) - (struct->vector - v_1))) - (let-values (((alt_32) - (lambda () - (begin - 'alt - (let-values (((vec-v_8) - (struct->vector - v_1))) - (let-values (((alt_33) - (lambda () - (begin - 'alt - (let-values (((vec-v_9) - (struct->vector - v_1))) - (let-values (((alt_34) - (lambda () - (begin - 'alt - (let-values (((v_42) - v_1)) - v_42))))) - (if (ILTypeOf? - v_1) - (let-values () - (let-values (((expr_0) - (vector->values - vec-v_9 - 1))) - (ILTypeOf15.1 - (traverse-expr_0 - expr_0)))) - (let-values () - (alt_34))))))))) - (if (ILInstanceOf? - v_1) - (let-values () - (let-values (((expr_1 - type_0) - (vector->values - vec-v_8 - 1))) - (ILInstanceOf14.1 - (traverse-expr_0 - expr_1) - (traverse-expr_0 - type_0)))) - (let-values () - (alt_33))))))))) - (if (ILNew? - v_1) - (let-values () - (let-values (((e_13) - (vector->values - vec-v_7 - 1))) - (ILNew13.1 - (traverse-expr_0 - e_13)))) - (let-values () - (alt_32))))))))) - (if (ILIndex? - v_1) - (let-values () - (let-values (((expr_2 - field-expr_0) - (vector->values - vec-v_6 - 1))) - (ILIndex11.1 - (traverse-expr_0 - expr_2) - (traverse-expr_0 - field-expr_0)))) - (let-values () - (alt_2))))))))) - (if (ILRef? - v_1) - (let-values () - (let-values (((expr_3 - fieldname_0) - (vector->values - vec-v_5 - 1))) - (ILRef10.1 - (traverse-expr_0 - expr_3) - fieldname_0))) - (let-values () - (alt_31))))))))) - (if (ILObject? - v_1) - (let-values () - (let-values (((items_0) - (vector->values - vec-v_4 - 1))) - (ILObject9.1 - (map2 - (lambda (o_0) - (cons - (car - o_0) - (traverse-expr_0 - (cdr - o_0)))) - items_0)))) - (let-values () - (alt_30))))))))) - (if (ILArray? v_1) - (let-values () - (let-values (((items_1) - (vector->values - vec-v_3 - 1))) - (ILArray8.1 - (map2 - traverse-expr_0 - items_1)))) - (let-values () - (alt_29))))))))) - (if (ILBinaryOp? v_1) - (let-values () - (let-values (((oper_0 args_13) - (vector->values vec-v_2 1))) - (ILBinaryOp6.1 - oper_0 - (map2 traverse-expr_0 args_13)))) - (let-values () (alt_28))))))))) - (if (ILApp? v_1) - (let-values () - (let-values (((lam_1 args_14) (vector->values vec-v_1 1))) - (ILApp7.1 - (traverse-expr_0 lam_1) - (map2 traverse-expr_0 args_14)))) - (let-values () (alt_27))))))))) - (if (ILLambda? v_1) - (let-values () - (let-values (((args_15 body_7) (vector->values vec-v_0 1))) - (let-values (((new-args_0 check-stms_0) - (let-values (((v_63) args_15)) - (let-values (((vec-v_10) (struct->vector v_63))) - (let-values (((alt_35) - (lambda () - (begin - 'alt - (let-values (((v_64) v_63)) - (values v_64 '())))))) - (if (ILCheckedFormals? v_63) - (let-values () - (let-values (((args*_0) (vector->values vec-v_10 1))) - (values args*_0 (check-arity-stms args_15)))) - (let-values () (alt_35)))))))) - (ILLambda5.1 new-args_0 (append check-stms_0 (traverse-stm*_0 body_7)))))) - (let-values () (alt_26))))))))) - ((traverse-stm_0) - (lambda (a_162) - (begin - 'traverse-stm - (let-values (((v_65) a_162)) - (let-values (((vec-v_11) (struct->vector v_65))) - (let-values (((alt_8) - (lambda () - (begin - 'alt - (let-values (((vec-v_12) (struct->vector v_65))) - (let-values (((alt_10) - (lambda () - (begin - 'alt - (let-values (((vec-v_13) (struct->vector v_65))) - (let-values (((alt_12) - (lambda () - (begin - 'alt - (let-values (((vec-v_14) - (struct->vector - v_65))) - (let-values (((alt_14) - (lambda () - (begin - 'alt - (let-values (((vec-v_15) - (struct->vector - v_65))) - (let-values (((alt_16) - (lambda () - (begin - 'alt - (let-values (((vec-v_16) - (struct->vector - v_65))) - (let-values (((alt_18) - (lambda () - (begin - 'alt - (let-values (((vec-v_17) - (struct->vector - v_65))) - (let-values (((alt_20) - (lambda () - (begin - 'alt - (let-values (((vec-v_18) - (struct->vector - v_65))) - (let-values (((alt_36) - (lambda () - (begin - 'alt - (let-values (((vec-v_19) - (struct->vector - v_65))) - (let-values (((alt_37) - (lambda () - (begin - 'alt - (if (ILExpr? - v_65) - (let-values (((expr_4) - v_65)) - (traverse-expr_0 - expr_4)) - (let-values (((v_66) - v_65)) - v_66)))))) - (if (ILThrow? - v_65) - (let-values () - (let-values (((expr_5) - (vector->values - vec-v_19 - 1))) - (ILThrow30.1 - (traverse-expr_0 - expr_5)))) - (let-values () - (alt_37))))))))) - (if (ILReturn? - v_65) - (let-values () - (let-values (((expr_6) - (vector->values - vec-v_18 - 1))) - (ILReturn26.1 - (traverse-expr_0 - expr_6)))) - (let-values () - (alt_36))))))))) - (if (ILExnHandler? - v_65) - (let-values () - (let-values (((try_0 - error_0 - catch_0 - finally_0) - (vector->values - vec-v_17 - 1))) - (ILExnHandler29.1 - (traverse-stm*_0 - try_0) - error_0 - (traverse-stm*_0 - catch_0) - (traverse-stm*_0 - finally_0)))) - (let-values () - (alt_20))))))))) - (if (ILWhile? - v_65) - (let-values () - (let-values (((condition_0 - body_8) - (vector->values - vec-v_16 - 1))) - (ILWhile25.1 - (traverse-expr_0 - condition_0) - (traverse-stm*_0 - body_8)))) - (let-values () - (alt_18))))))))) - (if (ILAssign? - v_65) - (let-values () - (let-values (((lvalue_0 - rvalue_0) - (vector->values - vec-v_15 - 1))) - (ILAssign24.1 - (traverse-expr_0 - lvalue_0) - (traverse-expr_0 - rvalue_0)))) - (let-values () - (alt_16))))))))) - (if (ILIf*? v_65) - (let-values () - (let-values (((clauses_1) - (vector->values - vec-v_14 - 1))) - (ILIf*23.1 - (reverse$1 - (let-values (((pos->vals_17 - pos-pre-inc_15 - pos-next_18 - init_18 - pos-cont?_18 - val-cont?_17 - all-cont?_17) - (make-sequence - '(c) - clauses_1))) - (begin - (void) - ((letrec-values (((for-loop_19) - (lambda (fold-var_8 - pos_55) - (begin - 'for-loop - (if (if pos-cont?_18 - (pos-cont?_18 - pos_55) - #t) - (let-values (((c_12 - all-cont?/pos_15) - (let-values (((c_13) - (pos->vals_17 - pos_55))) - (values - c_13 - (if all-cont?_17 - (lambda (pos_56) - (all-cont?_17 - pos_56 - c_13)) - #f)))) - ((pos_57) - (if pos-pre-inc_15 - (pos-pre-inc_15 - pos_55) - pos_55))) - (if (if val-cont?_17 - (val-cont?_17 - c_12) - #t) - (let-values (((fold-var_9) - (let-values (((fold-var_10) - fold-var_8)) - (let-values (((fold-var_11) - (let-values () - (cons - (let-values () - (let-values (((pred_0) - (IfClause-pred - c_12))) - (let-values (((body_9) - (IfClause-body - c_12))) - (IfClause3.1 - (if pred_0 - (traverse-expr_0 - pred_0) - #f) - (traverse-stm*_0 - body_9))))) - fold-var_10)))) - (values - fold-var_11))))) - (if (if (if all-cont?/pos_15 - (all-cont?/pos_15 - pos_57) - #t) - (not - #f) - #f) - (for-loop_19 - fold-var_9 - (pos-next_18 - pos_57)) - fold-var_9)) - fold-var_8)) - fold-var_8))))) - for-loop_19) - null - init_18))))))) - (let-values () - (alt_14))))))))) - (if (ILIf? v_65) - (let-values () - (let-values (((pred_1 - t-branch_0 - f-branch_0) - (vector->values vec-v_13 1))) - (ILIf22.1 - (traverse-expr_0 pred_1) - (traverse-stm*_0 t-branch_0) - (traverse-stm*_0 f-branch_0)))) - (let-values () (alt_12))))))))) - (if (ILLetDec? v_65) - (let-values () - (let-values (((id_3 expr_7) (vector->values vec-v_12 1))) - (ILLetDec21.1 id_3 (if expr_7 (traverse-expr_0 expr_7) #f)))) - (let-values () (alt_10))))))))) - (if (ILVarDec? v_65) - (let-values () - (let-values (((id_4 expr_8) (vector->values vec-v_11 1))) - (ILVarDec20.1 id_4 (if expr_8 (traverse-expr_0 expr_8) #f)))) - (let-values () (alt_8))))))))) - ((traverse-stm*_0) (lambda (stm*_0) (begin 'traverse-stm* (map2 traverse-stm_0 stm*_0))))) - (let-values (((v_67) mod_6)) - (let-values (((vec-v_20) (struct->vector v_67))) - (let-values (((alt_38) (lambda () (begin 'alt (error 'match "failed ~e" v_67))))) - (if (ILLinklet? v_67) - (let-values () - (let-values (((importss_0 exports_3 body_10) (vector->values vec-v_20 1))) - (ILLinklet1.1 importss_0 exports_3 (traverse-stm*_0 body_10)))) - (let-values () (alt_38)))))))))) (define-values (has-application?) - (lambda (a_163) + (lambda (a_161) (begin - (let-values (((v_68) a_163)) - (let-values (((vec-v_21) (struct->vector v_68))) - (let-values (((alt_39) + (let-values (((v_63) a_161)) + (let-values (((vec-v_0) (struct->vector v_63))) + (let-values (((alt_26) (lambda () (begin 'alt - (let-values (((vec-v_22) (struct->vector v_68))) - (let-values (((alt_40) + (let-values (((vec-v_1) (struct->vector v_63))) + (let-values (((alt_27) (lambda () (begin 'alt - (let-values (((vec-v_23) (struct->vector v_68))) - (let-values (((alt_41) + (let-values (((vec-v_2) (struct->vector v_63))) + (let-values (((alt_28) (lambda () (begin 'alt - (let-values (((vec-v_24) (struct->vector v_68))) - (let-values (((alt_42) + (let-values (((vec-v_3) (struct->vector v_63))) + (let-values (((alt_29) (lambda () (begin 'alt - (let-values (((vec-v_25) + (let-values (((vec-v_4) (struct->vector - v_68))) - (let-values (((alt_43) + v_63))) + (let-values (((alt_30) (lambda () (begin 'alt - (let-values (((vec-v_26) + (let-values (((vec-v_5) (struct->vector - v_68))) - (let-values (((alt_44) + v_63))) + (let-values (((alt_31) (lambda () (begin 'alt - (let-values (((vec-v_27) + (let-values (((vec-v_6) (struct->vector - v_68))) - (let-values (((alt_45) + v_63))) + (let-values (((alt_32) (lambda () (begin 'alt - (let-values (((vec-v_28) + (let-values (((vec-v_7) (struct->vector - v_68))) - (let-values (((alt_46) + v_63))) + (let-values (((alt_33) (lambda () (begin 'alt - (let-values (((vec-v_29) + (let-values (((vec-v_8) (struct->vector - v_68))) - (let-values (((alt_47) + v_63))) + (let-values (((alt_34) (lambda () (begin 'alt - (let-values (((vec-v_30) + (let-values (((vec-v_9) (struct->vector - v_68))) - (let-values (((alt_48) + v_63))) + (let-values (((alt_35) (lambda () (begin 'alt - (let-values (((vec-v_31) + (let-values (((vec-v_10) (struct->vector - v_68))) - (let-values (((alt_49) + v_63))) + (let-values (((alt_36) (lambda () (begin 'alt - (let-values (((vec-v_32) + (let-values (((vec-v_11) (struct->vector - v_68))) - (let-values (((alt_50) + v_63))) + (let-values (((alt_37) (lambda () (begin 'alt - (let-values (((vec-v_33) + (let-values (((vec-v_12) (struct->vector - v_68))) - (let-values (((alt_51) + v_63))) + (let-values (((alt_38) (lambda () (begin 'alt (if (symbol? - v_68) + v_63) (let-values () #f) (error 'match "failed ~e" - v_68)))))) + v_63)))))) (if (ILTypeOf? - v_68) + v_63) (let-values () - (let-values (((expr_9) + (let-values (((expr_0) (vector->values - vec-v_33 + vec-v_12 1))) (has-application? - expr_9))) + expr_0))) (let-values () - (alt_51))))))))) + (alt_38))))))))) (if (ILInstanceOf? - v_68) + v_63) (let-values () - (let-values (((expr_10 - type_1) + (let-values (((expr_1 + type_0) (vector->values - vec-v_32 + vec-v_11 1))) - (let-values (((or-part_89) + (let-values (((or-part_70) (has-application? - expr_10))) - (if or-part_89 - or-part_89 + expr_1))) + (if or-part_70 + or-part_70 (has-application? - type_1))))) + type_0))))) (let-values () - (alt_50))))))))) + (alt_37))))))))) (if (ILNew? - v_68) + v_63) (let-values () (let-values (((_fst_0) (vector->values - vec-v_31 + vec-v_10 1))) #t)) (let-values () - (alt_49))))))))) + (alt_36))))))))) (if (ILNull? - v_68) + v_63) (let-values () (let-values ((() (vector->values - vec-v_30 + vec-v_9 1))) #f)) (let-values () - (alt_48))))))))) + (alt_35))))))))) (if (ILUndefined? - v_68) + v_63) (let-values () (let-values ((() (vector->values - vec-v_29 + vec-v_8 1))) #f)) (let-values () - (alt_47))))))))) + (alt_34))))))))) (if (ILValue? - v_68) + v_63) (let-values () (let-values (((_fst_1) (vector->values - vec-v_28 + vec-v_7 1))) #f)) (let-values () - (alt_46))))))))) + (alt_33))))))))) (if (ILIndex? - v_68) + v_63) (let-values () - (let-values (((expr_11 + (let-values (((expr_2 fieldexpr_0) (vector->values - vec-v_27 + vec-v_6 1))) - (let-values (((or-part_90) + (let-values (((or-part_71) (has-application? - expr_11))) - (if or-part_90 - or-part_90 + expr_2))) + (if or-part_71 + or-part_71 (has-application? fieldexpr_0))))) (let-values () - (alt_45))))))))) + (alt_32))))))))) (if (ILRef? - v_68) + v_63) (let-values () - (let-values (((expr_12 + (let-values (((expr_3 _fst_2) (vector->values - vec-v_26 + vec-v_5 1))) (has-application? - expr_12))) + expr_3))) (let-values () - (alt_44))))))))) - (if (ILObject? v_68) + (alt_31))))))))) + (if (ILObject? v_63) (let-values () - (let-values (((items_2) + (let-values (((items_0) (vector->values - vec-v_25 + vec-v_4 1))) (ormap2 (lambda (pair_0) (has-application? (cdr pair_0))) - items_2))) + items_0))) (let-values () - (alt_43))))))))) - (if (ILArray? v_68) + (alt_30))))))))) + (if (ILArray? v_63) (let-values () - (let-values (((items_3) - (vector->values vec-v_24 1))) - (ormap2 has-application? items_3))) - (let-values () (alt_42))))))))) - (if (ILApp? v_68) + (let-values (((items_1) + (vector->values vec-v_3 1))) + (ormap2 has-application? items_1))) + (let-values () (alt_29))))))))) + (if (ILApp? v_63) (let-values () - (let-values (((_fst_3 _snd_0) (vector->values vec-v_23 1))) #t)) - (let-values () (alt_41))))))))) - (if (ILBinaryOp? v_68) + (let-values (((_fst_3 _snd_0) (vector->values vec-v_2 1))) #t)) + (let-values () (alt_28))))))))) + (if (ILBinaryOp? v_63) (let-values () - (let-values (((_fst_4 args_16) (vector->values vec-v_22 1))) - (ormap2 has-application? args_16))) - (let-values () (alt_40))))))))) - (if (ILLambda? v_68) - (let-values () (let-values (((_fst_5 _snd_1) (vector->values vec-v_21 1))) #f)) - (let-values () (alt_39))))))))) + (let-values (((_fst_4 args_13) (vector->values vec-v_1 1))) + (ormap2 has-application? args_13))) + (let-values () (alt_27))))))))) + (if (ILLambda? v_63) + (let-values () (let-values (((_fst_5 _snd_1) (vector->values vec-v_0 1))) #f)) + (let-values () (alt_26))))))))) (define-values (log-rjs-info) (lambda (fst1_0 . rst2_0) @@ -7801,16 +7065,16 @@ (absyn-linklet->il) (lambda (lnk_0) (begin - (let-values (((path_1 imports_2 exports_4 forms_0) + (let-values (((path_1 imports_2 exports_3 forms_0) (let-values (((v_43) lnk_0)) (let-values (((v_1) v_43)) - (let-values (((vec-v_0) (struct->vector v_1))) - (let-values (((alt_26) (lambda () (begin 'alt (error 'match "failed ~e" v_1))))) + (let-values (((vec-v_13) (struct->vector v_1))) + (let-values (((alt_39) (lambda () (begin 'alt (error 'match "failed ~e" v_1))))) (if (Linklet? v_1) (let-values () - (let-values (((path_2 imports_3 exports_5 forms_1) (vector->values vec-v_0 1))) - (values path_2 imports_3 exports_5 forms_1))) - (let-values () (alt_26))))))))) + (let-values (((path_2 imports_3 exports_4 forms_1) (vector->values vec-v_13 1))) + (values path_2 imports_3 exports_4 forms_1))) + (let-values () (alt_39))))))))) (let-values ((() (begin (log-rjs-info "[linklet il]") (values)))) (let-values (((imported-mod-path-list_0) (flatten imports_2))) (let-values (((requires*_0) (absyn-requires->il imported-mod-path-list_0 path_1))) @@ -7823,44 +7087,44 @@ (let-values () (ILLinklet1.1 (filter ILRequire? requires*_0) - (absyn-exports->il exports_4) + (absyn-exports->il exports_3) (append-map absyn-gtl-form->il forms_0))))))))))) (define-values (make-module-map) (lambda (reqs_0 imported-paths_0) (begin - (let-values (((pos->vals_18 pos-pre-inc_16 pos-next_19 init_19 pos-cont?_19 val-cont?_18 all-cont?_18) + (let-values (((pos->vals_17 pos-pre-inc_15 pos-next_18 init_18 pos-cont?_18 val-cont?_17 all-cont?_17) (make-sequence '(req) reqs_0)) - ((pos->vals_19 pos-pre-inc_17 pos-next_20 init_20 pos-cont?_20 val-cont?_19 all-cont?_19) + ((pos->vals_18 pos-pre-inc_16 pos-next_19 init_19 pos-cont?_19 val-cont?_18 all-cont?_18) (make-sequence '(mod-path) imported-paths_0))) (begin (void) (void) - ((letrec-values (((for-loop_20) - (lambda (acc_1 pos_12 pos_58) + ((letrec-values (((for-loop_19) + (lambda (acc_1 pos_12 pos_55) (begin 'for-loop - (if (if (if pos-cont?_19 (pos-cont?_19 pos_12) #t) - (if pos-cont?_20 (pos-cont?_20 pos_58) #t) + (if (if (if pos-cont?_18 (pos-cont?_18 pos_12) #t) + (if pos-cont?_19 (pos-cont?_19 pos_55) #t) #f) - (let-values (((req_9 all-cont?/pos_16) - (let-values (((req_10) (pos->vals_18 pos_12))) + (let-values (((req_9 all-cont?/pos_15) + (let-values (((req_10) (pos->vals_17 pos_12))) (values req_10 - (if all-cont?_18 - (lambda (pos_59) (all-cont?_18 pos_59 req_10)) + (if all-cont?_17 + (lambda (pos_56) (all-cont?_17 pos_56 req_10)) #f)))) - ((pos_60) (if pos-pre-inc_16 (pos-pre-inc_16 pos_12) pos_12)) - ((mod-path_0 all-cont?/pos_17) - (let-values (((mod-path_1) (pos->vals_19 pos_58))) + ((pos_57) (if pos-pre-inc_15 (pos-pre-inc_15 pos_12) pos_12)) + ((mod-path_0 all-cont?/pos_16) + (let-values (((mod-path_1) (pos->vals_18 pos_55))) (values mod-path_1 - (if all-cont?_19 - (lambda (pos_61) (all-cont?_19 pos_61 mod-path_1)) + (if all-cont?_18 + (lambda (pos_58) (all-cont?_18 pos_58 mod-path_1)) #f)))) - ((pos_62) (if pos-pre-inc_17 (pos-pre-inc_17 pos_58) pos_58))) - (if (if (if val-cont?_18 (val-cont?_18 req_9) #t) - (if val-cont?_19 (val-cont?_19 mod-path_0) #t) + ((pos_59) (if pos-pre-inc_16 (pos-pre-inc_16 pos_55) pos_55))) + (if (if (if val-cont?_17 (val-cont?_17 req_9) #t) + (if val-cont?_18 (val-cont?_18 mod-path_0) #t) #f) (let-values (((acc_2) (let-values (((acc_3) acc_1)) @@ -7873,41 +7137,41 @@ (ILRequire-name req_9)) acc_3)))) (values acc_4))))) - (if (if (if all-cont?/pos_16 (all-cont?/pos_16 pos_60) #t) - (if (if all-cont?/pos_17 (all-cont?/pos_17 pos_62) #t) (not #f) #f) + (if (if (if all-cont?/pos_15 (all-cont?/pos_15 pos_57) #t) + (if (if all-cont?/pos_16 (all-cont?/pos_16 pos_59) #t) (not #f) #f) #f) - (for-loop_20 acc_2 (pos-next_19 pos_60) (pos-next_20 pos_62)) + (for-loop_19 acc_2 (pos-next_18 pos_57) (pos-next_19 pos_59)) acc_2)) acc_1)) acc_1))))) - for-loop_20) + for-loop_19) (module-object-name-map) - init_19 - init_20)))))) + init_18 + init_19)))))) (define-values (absyn-exports->il) - (lambda (exports_6) + (lambda (exports_5) (begin (reverse$1 - (let-values (((pos->vals_20 pos-pre-inc_18 pos-next_21 init_21 pos-cont?_21 val-cont?_20 all-cont?_20) - (make-sequence '(ex) exports_6))) + (let-values (((pos->vals_19 pos-pre-inc_17 pos-next_20 init_20 pos-cont?_20 val-cont?_19 all-cont?_19) + (make-sequence '(ex) exports_5))) (begin (void) - ((letrec-values (((for-loop_21) - (lambda (fold-var_12 pos_63) + ((letrec-values (((for-loop_20) + (lambda (fold-var_8 pos_60) (begin 'for-loop - (if (if pos-cont?_21 (pos-cont?_21 pos_63) #t) - (let-values (((ex_0 all-cont?/pos_18) - (let-values (((ex_1) (pos->vals_20 pos_63))) + (if (if pos-cont?_20 (pos-cont?_20 pos_60) #t) + (let-values (((ex_0 all-cont?/pos_17) + (let-values (((ex_1) (pos->vals_19 pos_60))) (values ex_1 - (if all-cont?_20 (lambda (pos_64) (all-cont?_20 pos_64 ex_1)) #f)))) - ((pos_65) (if pos-pre-inc_18 (pos-pre-inc_18 pos_63) pos_63))) - (if (if val-cont?_20 (val-cont?_20 ex_0) #t) - (let-values (((fold-var_13) - (let-values (((fold-var_14) fold-var_12)) - (let-values (((fold-var_15) + (if all-cont?_19 (lambda (pos_61) (all-cont?_19 pos_61 ex_1)) #f)))) + ((pos_62) (if pos-pre-inc_17 (pos-pre-inc_17 pos_60) pos_60))) + (if (if val-cont?_19 (val-cont?_19 ex_0) #t) + (let-values (((fold-var_9) + (let-values (((fold-var_10) fold-var_8)) + (let-values (((fold-var_11) (let-values () (cons (let-values () @@ -7923,16 +7187,16 @@ 'exports->il "unknown export form in linklet" ex_0))))) - fold-var_14)))) - (values fold-var_15))))) - (if (if (if all-cont?/pos_18 (all-cont?/pos_18 pos_65) #t) (not #f) #f) - (for-loop_21 fold-var_13 (pos-next_21 pos_65)) - fold-var_13)) - fold-var_12)) - fold-var_12))))) - for-loop_21) + fold-var_10)))) + (values fold-var_11))))) + (if (if (if all-cont?/pos_17 (all-cont?/pos_17 pos_62) #t) (not #f) #f) + (for-loop_20 fold-var_9 (pos-next_20 pos_62)) + fold-var_9)) + fold-var_8)) + fold-var_8))))) + for-loop_20) null - init_21))))))) + init_20))))))) (define-values (absyn-requires->il) (lambda (import-list_0 path_3) (begin (list (ILRequire2.1 "../runtime/kernel.rkt.js" 'M0 '*))))) @@ -7941,115 +7205,114 @@ (lambda (form_1) (begin (if (Expr? form_1) - (let-values () (let-values (((stms_1 v_69) (absyn-expr->il form_1 #f))) (append1 stms_1 v_69))) + (let-values () (let-values (((stms_1 v_64) (absyn-expr->il form_1 #f))) (append1 stms_1 v_64))) (if (DefineValues? form_1) (let-values () - (let-values (((ids_0 expr_13) - (let-values (((v_70) form_1)) - (let-values (((v_66) v_70)) - (let-values (((vec-v_34) (struct->vector v_66))) - (let-values (((alt_52) (lambda () (begin 'alt (error 'match "failed ~e" v_66))))) + (let-values (((ids_0 expr_4) + (let-values (((v_65) form_1)) + (let-values (((v_66) v_65)) + (let-values (((vec-v_14) (struct->vector v_66))) + (let-values (((alt_40) (lambda () (begin 'alt (error 'match "failed ~e" v_66))))) (if (DefineValues? v_66) (let-values () - (let-values (((ids_1 expr_14) (vector->values vec-v_34 1))) - (values ids_1 expr_14))) - (let-values () (alt_52))))))))) - (absyn-binding->il (cons ids_0 expr_13)))) + (let-values (((ids_1 expr_5) (vector->values vec-v_14 1))) (values ids_1 expr_5))) + (let-values () (alt_40))))))))) + (absyn-binding->il (cons ids_0 expr_4)))) (if (JSRequire? form_1) (let-values () (error 'absyn-gtl-form->il "Required should be hoisted")) (void))))))) (define-values (absyn-expr->il) - (lambda (expr_8 overwrite-mark-frame?_0) + (lambda (expr_6 overwrite-mark-frame?_0) (begin - (let-values (((v_67) expr_8)) - (let-values (((vec-v_20) (struct->vector v_67))) - (let-values (((alt_38) + (let-values (((v_67) expr_6)) + (let-values (((vec-v_15) (struct->vector v_67))) + (let-values (((alt_41) (lambda () (begin 'alt - (let-values (((vec-v_35) (struct->vector v_67))) - (let-values (((alt_53) + (let-values (((vec-v_16) (struct->vector v_67))) + (let-values (((alt_42) (lambda () (begin 'alt - (let-values (((vec-v_36) (struct->vector v_67))) - (let-values (((alt_54) + (let-values (((vec-v_17) (struct->vector v_67))) + (let-values (((alt_43) (lambda () (begin 'alt - (let-values (((vec-v_37) (struct->vector v_67))) - (let-values (((alt_55) + (let-values (((vec-v_18) (struct->vector v_67))) + (let-values (((alt_44) (lambda () (begin 'alt - (let-values (((vec-v_38) + (let-values (((vec-v_19) (struct->vector v_67))) - (let-values (((alt_56) + (let-values (((alt_45) (lambda () (begin 'alt - (let-values (((vec-v_39) + (let-values (((vec-v_20) (struct->vector v_67))) - (let-values (((alt_57) + (let-values (((alt_46) (lambda () (begin 'alt - (let-values (((vec-v_40) + (let-values (((vec-v_21) (struct->vector v_67))) - (let-values (((alt_58) + (let-values (((alt_47) (lambda () (begin 'alt - (let-values (((vec-v_41) + (let-values (((vec-v_22) (struct->vector v_67))) - (let-values (((alt_59) + (let-values (((alt_48) (lambda () (begin 'alt (if (if (pair? - expr_8) + expr_6) (null? (cdr - expr_8)) + expr_6)) #f) (let-values () (let-values (((hd_3) - (let-values (((v_71) - expr_8)) - (let-values (((v_72) - v_71)) + (let-values (((v_68) + expr_6)) + (let-values (((v_69) + v_68)) (let-values () - (let-values (((alt_60) + (let-values (((alt_49) (lambda () (begin 'alt (error 'match "failed ~e" - v_72))))) + v_69))))) (if (let-values (((p_92) - v_72)) + v_69)) (if (pair? p_92) - (let-values (((a_164) + (let-values (((a_162) (cdr p_92))) (eq? '() - a_164)) + a_162)) #f)) (let-values (((hd_4) (let-values (((a_53) (car - v_72))) + v_69))) a_53))) (let-values () (values hd_4))) - (alt_60)))))))) + (alt_49)))))))) (if (Expr? hd_3) (let-values () @@ -8060,25 +7323,25 @@ (error "last datum in body must be expression"))))) (if (pair? - expr_8) + expr_6) (let-values () (let-values (((hd_5 tl_0) - (let-values (((v_73) - expr_8)) - (let-values (((v_74) - v_73)) + (let-values (((v_70) + expr_6)) + (let-values (((v_71) + v_70)) (let-values () - (let-values (((alt_61) + (let-values (((alt_50) (lambda () (begin 'alt (error 'match "failed ~e" - v_74))))) + v_71))))) (if (let-values (((p_93) - v_74)) + v_71)) (if (pair? p_93) #t @@ -8086,7 +7349,7 @@ (let-values (((hd_6 tl_1) (let-values (((p_94) - v_74)) + v_71)) (let-values (((hd_7) (let-values (((a_62) (car @@ -8104,12 +7367,12 @@ (values hd_6 tl_1))) - (alt_61)))))))) + (alt_50)))))))) (let-values (((hd-stms_0) (absyn-top-level->il hd_5))) (let-values (((tl-stms_0 - v_75) + v_72) (absyn-expr->il tl_0 overwrite-mark-frame?_0))) @@ -8117,60 +7380,60 @@ (append hd-stms_0 tl-stms_0) - v_75))))) + v_72))))) (if (null? - expr_8) + expr_6) (let-values () (values '() (ILValue12.1 (void)))) - (let-values (((vec-v_42) + (let-values (((vec-v_23) (struct->vector v_67))) - (let-values (((alt_62) + (let-values (((alt_51) (lambda () (begin 'alt - (let-values (((vec-v_43) + (let-values (((vec-v_24) (struct->vector v_67))) - (let-values (((alt_63) + (let-values (((alt_52) (lambda () (begin 'alt - (let-values (((vec-v_44) + (let-values (((vec-v_25) (struct->vector v_67))) - (let-values (((alt_64) + (let-values (((alt_53) (lambda () (begin 'alt - (let-values (((vec-v_45) + (let-values (((vec-v_26) (struct->vector v_67))) - (let-values (((alt_65) + (let-values (((alt_54) (lambda () (begin 'alt - (let-values (((vec-v_46) + (let-values (((vec-v_27) (struct->vector v_67))) - (let-values (((alt_66) + (let-values (((alt_55) (lambda () (begin 'alt - (let-values (((vec-v_47) + (let-values (((vec-v_28) (struct->vector v_67))) - (let-values (((alt_67) + (let-values (((alt_56) (lambda () (begin 'alt - (let-values (((vec-v_48) + (let-values (((vec-v_29) (struct->vector v_67))) - (let-values (((alt_68) + (let-values (((alt_57) (lambda () (begin 'alt @@ -8178,20 +7441,20 @@ (error (~a "unsupported expr " - expr_8))))))) + expr_6))))))) (if (VarRef? v_67) (let-values () (let-values (((__5) (vector->values - vec-v_48 + vec-v_29 1))) (values '() (absyn-value->il '#%variable-reference)))) (let-values () - (alt_68))))))))) + (alt_57))))))))) (if (WithContinuationMark? v_67) (let-values () @@ -8199,7 +7462,7 @@ value_3 result_10) (vector->values - vec-v_47 + vec-v_28 1))) (let-values (((key-stms_0 key-expr_0) @@ -8281,7 +7544,7 @@ stms_2 result-id_0))))))))))) (let-values () - (alt_67))))))))) + (alt_56))))))))) (if (WithContinuationMark? v_67) (let-values () @@ -8289,7 +7552,7 @@ _fst_6 wcm_0) (vector->values - vec-v_46 + vec-v_27 1))) (if (WithContinuationMark? wcm_0) @@ -8297,50 +7560,50 @@ (let-values (((key_10 _snd_2 _thd_0) - (let-values (((v_76) + (let-values (((v_73) wcm_0)) - (let-values (((v_77) - v_76)) - (let-values (((vec-v_49) + (let-values (((v_74) + v_73)) + (let-values (((vec-v_30) (struct->vector - v_77))) - (let-values (((alt_69) + v_74))) + (let-values (((alt_58) (lambda () (begin 'alt (error 'match "failed ~e" - v_77))))) + v_74))))) (if (WithContinuationMark? - v_77) + v_74) (let-values () (let-values (((key_11 _snd_3 _thd_1) (vector->values - vec-v_49 + vec-v_30 1))) (values key_11 _snd_3 _thd_1))) (let-values () - (alt_69))))))))) + (alt_58))))))))) (absyn-expr->il wcm_0 overwrite-mark-frame?_0))) - (alt_66)))) + (alt_55)))) (let-values () - (alt_66))))))))) + (alt_55))))))))) (if (ImportedIdent? v_67) (let-values () - (let-values (((id_5 + (let-values (((id_3 src__0 reachable?_0) (vector->values - vec-v_45 + vec-v_26 1))) (let-values (((src_0) (if (if (< @@ -8358,16 +7621,16 @@ src__0))) (let-values (((id*_0) (if (reserved-keyword? - id_5) + id_3) (string->symbol (normalize-symbol - id_5)) - id_5))) - (if (if (let-values (((or-part_91) + id_3)) + id_3))) + (if (if (let-values (((or-part_72) (symbol? (current-source-file)))) - (if or-part_91 - or-part_91 + (if or-part_72 + or-part_72 (path? (current-source-file)))) (equal? @@ -8379,7 +7642,7 @@ (let-values () (absyn-expr->il (LocalIdent6.1 - id_5) + id_3) overwrite-mark-frame?_0)) (if (false? reachable?_0) @@ -8420,14 +7683,14 @@ mod-obj-name_1 id*_0)))))))))) (let-values () - (alt_65))))))))) + (alt_54))))))))) (if (Begin0? v_67) (let-values () (let-values (((expr0_0 expr*_0) (vector->values - vec-v_44 + vec-v_25 1))) (let-values (((expr0-id_0) (fresh-id @@ -8445,57 +7708,57 @@ expr0-id_0))) overwrite-mark-frame?_0)))) (let-values () - (alt_64))))))))) + (alt_53))))))))) (if (TopLevelIdent? v_67) (let-values () - (let-values (((id_6) + (let-values (((id_4) (vector->values - vec-v_43 + vec-v_24 1))) (values '() - id_6))) + id_4))) (let-values () - (alt_63))))))))) + (alt_52))))))))) (if (LocalIdent? v_67) (let-values () - (let-values (((id_7) + (let-values (((id_5) (vector->values - vec-v_42 + vec-v_23 1))) (values '() - id_7))) + id_5))) (let-values () - (alt_62)))))))))))) + (alt_51)))))))))))) (if (Quote? v_67) (let-values () (let-values (((datum_0) (vector->values - vec-v_41 + vec-v_22 1))) (values '() (absyn-value->il datum_0)))) (let-values () - (alt_59))))))))) + (alt_48))))))))) (if (App? v_67) (let-values () - (let-values (((lam_2 - args_17) + (let-values (((lam_1 + args_14) (vector->values - vec-v_40 + vec-v_21 1))) (let-values (((binops_0) (map2 - (lambda (b_20) + (lambda (b_19) (ImportedIdent3.1 - b_20 + b_19 '#%kernel #t)) '(+ @@ -8503,19 +7766,19 @@ * /)))) (let-values (((il-app/binop_0) - (lambda (v_78 + (lambda (v_75 arg*_0) (begin 'il-app/binop (let-values (((v-il_0) (let-values (((__6 - v_79) + v_76) (absyn-expr->il - v_78 + v_75 #f))) - v_79))) + v_76))) (if (if (equal? - v_78 + v_75 (ImportedIdent3.1 '- '#%kernel @@ -8529,7 +7792,7 @@ v-il_0 arg*_0)) (if (if (equal? - v_78 + v_75 (ImportedIdent3.1 '/ '#%kernel @@ -8546,9 +7809,9 @@ 1) arg*_0))) (if (if (ImportedIdent? - v_78) + v_75) (if (member - v_78 + v_75 binops_0) (>= (length @@ -8559,7 +7822,7 @@ (let-values () (ILBinaryOp6.1 (ImportedIdent-id - v_78) + v_75) arg*_0)) (let-values () (ILApp7.1 @@ -8572,21 +7835,21 @@ (sequence-length (reverse$1 (cons - lam_2 - args_17))))) - (let-values (((pos->vals_21 - pos-pre-inc_19 - pos-next_22 - init_22 - pos-cont?_22 - val-cont?_21 - all-cont?_21) + lam_1 + args_14))))) + (let-values (((pos->vals_20 + pos-pre-inc_18 + pos-next_21 + init_21 + pos-cont?_21 + val-cont?_20 + all-cont?_20) (make-sequence '(arg) (reverse$1 (cons - lam_2 - args_17)))) + lam_1 + args_14)))) ((start_10) 0) ((end_4) @@ -8603,44 +7866,44 @@ start_10 end_4 inc_0))) - ((letrec-values (((for-loop_22) + ((letrec-values (((for-loop_21) (lambda (stms_3 vals_3 next-has-stms?_0 - pos_66 - pos_67) + pos_63 + pos_64) (begin 'for-loop - (if (if (if pos-cont?_22 - (pos-cont?_22 - pos_66) + (if (if (if pos-cont?_21 + (pos-cont?_21 + pos_63) #t) (< - pos_67 + pos_64 end_4) #f) (let-values (((arg_0 - all-cont?/pos_19) + all-cont?/pos_18) (let-values (((arg_1) - (pos->vals_21 - pos_66))) + (pos->vals_20 + pos_63))) (values arg_1 - (if all-cont?_21 - (lambda (pos_68) - (all-cont?_21 - pos_68 + (if all-cont?_20 + (lambda (pos_65) + (all-cont?_20 + pos_65 arg_1)) #f)))) - ((pos_69) - (if pos-pre-inc_19 - (pos-pre-inc_19 - pos_66) - pos_66)) + ((pos_66) + (if pos-pre-inc_18 + (pos-pre-inc_18 + pos_63) + pos_63)) ((temp6_0) - pos_67)) - (if (if (if val-cont?_21 - (val-cont?_21 + pos_64)) + (if (if (if val-cont?_20 + (val-cont?_20 arg_0) #t) #t @@ -8664,13 +7927,13 @@ temp5_0) temp6_0))) (let-values (((s_15 - v_80) + v_77) (absyn-expr->il arg_0 #f))) (if (if next-has-stms?_2 (has-application? - v_80) + v_77) #f) (let-values () (let-values (((temp-id_0) @@ -8683,7 +7946,7 @@ s_15 (ILVarDec20.1 temp-id_0 - v_80)))) + v_77)))) (values (append arg-stms_0 @@ -8699,7 +7962,7 @@ s_15 stms_5) (cons - v_80 + v_77 vals_5) next-has-stms?_2)) (let-values () @@ -8708,33 +7971,33 @@ s_15 stms_5) (cons - v_80 + v_77 vals_5) - (let-values (((or-part_92) + (let-values (((or-part_73) next-has-stms?_2)) - (if or-part_92 - or-part_92 + (if or-part_73 + or-part_73 (cons? s_15)))))))))))) (values stms_6 vals_6 next-has-stms?_3))))) - (if (if (if all-cont?/pos_19 - (all-cont?/pos_19 - pos_69) + (if (if (if all-cont?/pos_18 + (all-cont?/pos_18 + pos_66) #t) (not #f) #f) - (for-loop_22 + (for-loop_21 stms_4 vals_4 next-has-stms?_1 - (pos-next_22 - pos_69) + (pos-next_21 + pos_66) (+ - pos_67 + pos_64 inc_0)) (values stms_4 @@ -8748,29 +8011,29 @@ stms_3 vals_3 next-has-stms?_0)))))) - for-loop_22) + for-loop_21) '() '() #f - init_22 + init_21 start_10)))))) (let-values (((lam-val_0 arg-vals_0) - (let-values (((v_81) + (let-values (((v_78) lam-part-vals_0)) - (let-values (((v_82) - v_81)) + (let-values (((v_79) + v_78)) (let-values () - (let-values (((alt_70) + (let-values (((alt_59) (lambda () (begin 'alt (error 'match "failed ~e" - v_82))))) + v_79))))) (if (let-values (((p_95) - v_82)) + v_79)) (if (pair? p_95) (let-values (((a_116) @@ -8782,12 +8045,12 @@ (let-values (((lam-val_1 arg-vals_1) (let-values (((p_96) - v_82)) + v_79)) (let-values (((lam-val_2) - (let-values (((a_165) + (let-values (((a_163) (car p_96))) - a_165)) + a_163)) ((arg-vals_2) (let-values (((d_47) (cdr @@ -8800,13 +8063,13 @@ (values lam-val_1 arg-vals_1))) - (alt_70)))))))) + (alt_59)))))))) (if (Ident? - lam_2) + lam_1) (values lam+arg-stms_0 (il-app/binop_0 - lam_2 + lam_1 arg-vals_0)) (values lam+arg-stms_0 @@ -8814,102 +8077,102 @@ lam-val_0 arg-vals_0))))))))) (let-values () - (alt_58))))))))) + (alt_47))))))))) (if (App? v_67) (let-values () - (let-values (((lam_3 - args_18) + (let-values (((lam_2 + args_15) (vector->values - vec-v_39 + vec-v_20 1))) (if (if (ImportedIdent? - lam_3) + lam_2) (eq? '#%js-ffi (ImportedIdent-id - lam_3)) + lam_2)) #f) (let-values () - (let-values (((v_83) - args_18)) + (let-values (((v_80) + args_15)) (let-values () - (let-values (((alt_71) + (let-values (((alt_60) (lambda () (begin 'alt (let-values () - (let-values (((alt_72) + (let-values (((alt_61) (lambda () (begin 'alt (let-values () - (let-values (((alt_73) + (let-values (((alt_62) (lambda () (begin 'alt (let-values () - (let-values (((alt_74) + (let-values (((alt_63) (lambda () (begin 'alt (let-values () - (let-values (((alt_75) + (let-values (((alt_64) (lambda () (begin 'alt (let-values () - (let-values (((alt_76) + (let-values (((alt_65) (lambda () (begin 'alt (let-values () - (let-values (((alt_77) + (let-values (((alt_66) (lambda () (begin 'alt (let-values () - (let-values (((alt_78) + (let-values (((alt_67) (lambda () (begin 'alt (let-values () - (let-values (((alt_79) + (let-values (((alt_68) (lambda () (begin 'alt (let-values () - (let-values (((alt_80) + (let-values (((alt_69) (lambda () (begin 'alt (let-values () - (let-values (((alt_81) + (let-values (((alt_70) (lambda () (begin 'alt (let-values () - (let-values (((alt_82) + (let-values (((alt_71) (lambda () (begin 'alt (let-values () - (let-values (((alt_83) + (let-values (((alt_72) (lambda () (begin 'alt (let-values () - (let-values (((alt_84) + (let-values (((alt_73) (lambda () (begin 'alt (let-values () - (let-values (((alt_85) + (let-values (((alt_74) (lambda () (begin 'alt (let-values () - (let-values (((alt_86) + (let-values (((alt_75) (lambda () (begin 'alt @@ -8920,23 +8183,23 @@ (error 'absyn-expr->il "unknown ffi form" - args_18))))))))) + args_15))))))))) (if (let-values (((p_97) - v_83)) + v_80)) (if (pair? p_97) - (let-values (((a_166) + (let-values (((a_164) (cdr p_97))) (eq? '() - a_166)) + a_164)) #f)) (let-values (((fst_6) - (let-values (((a_167) + (let-values (((a_165) (car - v_83))) - a_167))) + v_80))) + a_165))) (if (if (Quote? fst_6) (eq? @@ -8948,24 +8211,24 @@ (values '() (ILThis19.1))) - (alt_86))) - (alt_86)))))))) + (alt_75))) + (alt_75)))))))) (if (let-values (((p_98) - v_83)) + v_80)) (if (pair? p_98) - (let-values (((a_168) + (let-values (((a_166) (cdr p_98))) (eq? '() - a_168)) + a_166)) #f)) (let-values (((fst_7) - (let-values (((a_169) + (let-values (((a_167) (car - v_83))) - a_169))) + v_80))) + a_167))) (if (if (Quote? fst_7) (eq? @@ -8977,24 +8240,24 @@ (values '() (ILArguments18.1))) - (alt_85))) - (alt_85)))))))) + (alt_74))) + (alt_74)))))))) (if (let-values (((p_99) - v_83)) + v_80)) (if (pair? p_99) - (let-values (((a_170) + (let-values (((a_168) (cdr p_99))) (eq? '() - a_170)) + a_168)) #f)) (let-values (((fst_8) - (let-values (((a_171) + (let-values (((a_169) (car - v_83))) - a_171))) + v_80))) + a_169))) (if (if (Quote? fst_8) (eq? @@ -9006,24 +8269,24 @@ (values '() (ILUndefined17.1))) - (alt_84))) - (alt_84)))))))) + (alt_73))) + (alt_73)))))))) (if (let-values (((p_100) - v_83)) + v_80)) (if (pair? p_100) - (let-values (((a_172) + (let-values (((a_170) (cdr p_100))) (eq? '() - a_172)) + a_170)) #f)) (let-values (((fst_9) - (let-values (((a_173) + (let-values (((a_171) (car - v_83))) - a_173))) + v_80))) + a_171))) (if (if (Quote? fst_9) (eq? @@ -9035,24 +8298,24 @@ (values '() (ILNull16.1))) - (alt_83))) - (alt_83)))))))) + (alt_72))) + (alt_72)))))))) (if (let-values (((p_101) - v_83)) + v_80)) (if (pair? p_101) - (let-values (((a_174) + (let-values (((a_172) (cdr p_101))) (let-values (((p_67) - a_174)) + a_172)) (if (pair? p_67) - (let-values (((a_175) + (let-values (((a_173) (cdr p_67))) (let-values (((p_102) - a_175)) + a_173)) (if (pair? p_102) (let-values (((a_123) @@ -9077,12 +8340,12 @@ e0_4 e1_5) (let-values (((p_104) - v_83)) + v_80)) (let-values (((fst_11) - (let-values (((a_176) + (let-values (((a_174) (car p_104))) - a_176)) + a_174)) ((snd_4 e0_5 e1_6) @@ -9092,10 +8355,10 @@ (let-values (((p_105) d_48)) (let-values (((snd_5) - (let-values (((a_177) + (let-values (((a_175) (car p_105))) - a_177)) + a_175)) ((e0_6 e1_7) (let-values (((d_49) @@ -9104,18 +8367,18 @@ (let-values (((p_106) d_49)) (let-values (((e0_7) - (let-values (((a_178) + (let-values (((a_176) (car p_106))) - a_178)) + a_176)) ((e1_8) (let-values (((d_50) (cdr p_106))) - (let-values (((a_179) + (let-values (((a_177) (car d_50))) - a_179)))) + a_177)))) (values e0_7 e1_8)))))) @@ -9139,33 +8402,33 @@ #f) #f) (let-values () - (let-values (((oper_1) - (let-values (((v_84) + (let-values (((oper_0) + (let-values (((v_81) snd_3)) - (let-values (((v_85) - v_84)) - (let-values (((vec-v_50) + (let-values (((v_82) + v_81)) + (let-values (((vec-v_31) (struct->vector - v_85))) - (let-values (((alt_87) + v_82))) + (let-values (((alt_76) (lambda () (begin 'alt (error 'match "failed ~e" - v_85))))) + v_82))))) (if (Quote? - v_85) + v_82) (let-values () - (let-values (((oper_2) + (let-values (((oper_1) (vector->values - vec-v_50 + vec-v_31 1))) (values - oper_2))) + oper_1))) (let-values () - (alt_87))))))))) + (alt_76))))))))) (let-values (((stms0_0 val0_0) (absyn-expr->il @@ -9181,75 +8444,75 @@ stms0_0 stms1_0) (ILBinaryOp6.1 - oper_1 + oper_0 (list val0_0 val1_0))))))) - (alt_82))) - (alt_82)))))))) + (alt_71))) + (alt_71)))))))) (if (let-values (((p_107) - v_83)) + v_80)) (if (pair? p_107) - (let-values (((a_180) + (let-values (((a_178) (cdr p_107))) (let-values (((p_108) - a_180)) + a_178)) (if (pair? p_108) - (let-values (((a_181) + (let-values (((a_179) (cdr p_108))) (let-values (((p_109) - a_181)) + a_179)) (if (pair? p_109) - (let-values (((a_182) + (let-values (((a_180) (cdr p_109))) (eq? '() - a_182)) + a_180)) #f))) #f))) #f)) (let-values (((fst_12 - e_14 + e_12 t_3) (let-values (((p_110) - v_83)) + v_80)) (let-values (((fst_13) - (let-values (((a_183) + (let-values (((a_181) (car p_110))) - a_183)) - ((e_15 + a_181)) + ((e_13 t_4) (let-values (((d_51) (cdr p_110))) (let-values (((p_111) d_51)) - (let-values (((e_16) - (let-values (((a_184) + (let-values (((e_14) + (let-values (((a_182) (car p_111))) - a_184)) + a_182)) ((t_5) (let-values (((d_52) (cdr p_111))) - (let-values (((a_185) + (let-values (((a_183) (car d_52))) - a_185)))) + a_183)))) (values - e_16 + e_14 t_5)))))) (values fst_13 - e_15 + e_13 t_4))))) (if (if (Quote? fst_12) @@ -9262,7 +8525,7 @@ (let-values (((stms_7 val_4) (absyn-expr->il - e_14 + e_12 #f))) (let-values (((tstms_0 tval_0) @@ -9276,47 +8539,47 @@ (ILInstanceOf14.1 val_4 tval_0))))) - (alt_81))) - (alt_81)))))))) + (alt_70))) + (alt_70)))))))) (if (let-values (((p_112) - v_83)) + v_80)) (if (pair? p_112) - (let-values (((a_186) + (let-values (((a_184) (cdr p_112))) (let-values (((p_113) - a_186)) + a_184)) (if (pair? p_113) - (let-values (((a_187) + (let-values (((a_185) (cdr p_113))) (eq? '() - a_187)) + a_185)) #f))) #f)) (let-values (((fst_14 - e_17) + e_15) (let-values (((p_114) - v_83)) + v_80)) (let-values (((fst_15) - (let-values (((a_188) + (let-values (((a_186) (car p_114))) - a_188)) - ((e_18) + a_186)) + ((e_16) (let-values (((d_53) (cdr p_114))) - (let-values (((a_189) + (let-values (((a_187) (car d_53))) - a_189)))) + a_187)))) (values fst_15 - e_18))))) + e_16))))) (if (if (Quote? fst_14) (eq? @@ -9328,53 +8591,53 @@ (let-values (((stms_8 val_5) (absyn-expr->il - e_17 + e_15 #f))) (values stms_8 (ILTypeOf15.1 val_5)))) - (alt_80))) - (alt_80)))))))) + (alt_69))) + (alt_69)))))))) (if (let-values (((p_115) - v_83)) + v_80)) (if (pair? p_115) - (let-values (((a_190) + (let-values (((a_188) (cdr p_115))) (let-values (((p_116) - a_190)) + a_188)) (if (pair? p_116) - (let-values (((a_191) + (let-values (((a_189) (cdr p_116))) (eq? '() - a_191)) + a_189)) #f))) #f)) (let-values (((fst_16 - e_19) + e_17) (let-values (((p_117) - v_83)) + v_80)) (let-values (((fst_17) - (let-values (((a_192) + (let-values (((a_190) (car p_117))) - a_192)) - ((e_20) + a_190)) + ((e_18) (let-values (((d_54) (cdr p_117))) - (let-values (((a_193) + (let-values (((a_191) (car d_54))) - a_193)))) + a_191)))) (values fst_17 - e_20))))) + e_18))))) (if (if (Quote? fst_16) (eq? @@ -9386,7 +8649,7 @@ (let-values (((stms_9 val_6) (absyn-expr->il - e_19 + e_17 #f))) (values (append1 @@ -9395,10 +8658,10 @@ val_6)) (ILValue12.1 (void))))) - (alt_79))) - (alt_79)))))))) + (alt_68))) + (alt_68)))))))) (if (let-values (((p_70) - v_83)) + v_80)) (if (pair? p_70) (let-values (((a_129) @@ -9408,22 +8671,22 @@ a_129)) #f)) (let-values (((fst_18 - items_4) + items_2) (let-values (((p_71) - v_83)) + v_80)) (let-values (((fst_19) - (let-values (((a_194) + (let-values (((a_192) (car p_71))) - a_194)) - ((items_5) + a_192)) + ((items_3) (let-values (((d_55) (cdr p_71))) d_55))) (values fst_19 - items_5))))) + items_3))))) (if (if (Quote? fst_18) (eq? @@ -9435,14 +8698,24 @@ (let-values (((keys_0 vals_7) (split-at - items_4 + items_2 (/ (length - items_4) + items_2) 2)))) (let-values (((stms*_0 items*_0) - (let-values (((pos->vals_22 + (let-values (((pos->vals_21 + pos-pre-inc_19 + pos-next_22 + init_22 + pos-cont?_22 + val-cont?_21 + all-cont?_21) + (make-sequence + '(k) + keys_0)) + ((pos->vals_22 pos-pre-inc_20 pos-next_23 init_23 @@ -9450,80 +8723,70 @@ val-cont?_22 all-cont?_22) (make-sequence - '(k) - keys_0)) - ((pos->vals_23 - pos-pre-inc_21 - pos-next_24 - init_24 - pos-cont?_24 - val-cont?_23 - all-cont?_23) - (make-sequence '(v) vals_7))) (begin (void) (void) - ((letrec-values (((for-loop_23) + ((letrec-values (((for-loop_22) (lambda (stms_10 kvs_0 - pos_70 - pos_71) + pos_67 + pos_68) (begin 'for-loop - (if (if (if pos-cont?_23 - (pos-cont?_23 - pos_70) + (if (if (if pos-cont?_22 + (pos-cont?_22 + pos_67) #t) - (if pos-cont?_24 - (pos-cont?_24 - pos_71) + (if pos-cont?_23 + (pos-cont?_23 + pos_68) #t) #f) (let-values (((k_1 - all-cont?/pos_20) + all-cont?/pos_19) (let-values (((k_2) - (pos->vals_22 - pos_70))) + (pos->vals_21 + pos_67))) (values k_2 + (if all-cont?_21 + (lambda (pos_69) + (all-cont?_21 + pos_69 + k_2)) + #f)))) + ((pos_70) + (if pos-pre-inc_19 + (pos-pre-inc_19 + pos_67) + pos_67)) + ((v_83 + all-cont?/pos_20) + (let-values (((v_84) + (pos->vals_22 + pos_68))) + (values + v_84 (if all-cont?_22 - (lambda (pos_72) + (lambda (pos_71) (all-cont?_22 - pos_72 - k_2)) + pos_71 + v_84)) #f)))) - ((pos_73) + ((pos_72) (if pos-pre-inc_20 (pos-pre-inc_20 - pos_70) - pos_70)) - ((v_86 - all-cont?/pos_21) - (let-values (((v_87) - (pos->vals_23 - pos_71))) - (values - v_87 - (if all-cont?_23 - (lambda (pos_74) - (all-cont?_23 - pos_74 - v_87)) - #f)))) - ((pos_75) - (if pos-pre-inc_21 - (pos-pre-inc_21 - pos_71) - pos_71))) - (if (if (if val-cont?_22 - (val-cont?_22 + pos_68) + pos_68))) + (if (if (if val-cont?_21 + (val-cont?_21 k_1) #t) - (if val-cont?_23 - (val-cont?_23 - v_86) + (if val-cont?_22 + (val-cont?_22 + v_83) #t) #f) (let-values (((stms_11 @@ -9538,7 +8801,7 @@ (let-values (((s*_0 v*_0) (absyn-expr->il - v_86 + v_83 #f))) (values (append @@ -9554,25 +8817,25 @@ (values stms_13 kvs_3))))) - (if (if (if all-cont?/pos_20 - (all-cont?/pos_20 - pos_73) + (if (if (if all-cont?/pos_19 + (all-cont?/pos_19 + pos_70) #t) - (if (if all-cont?/pos_21 - (all-cont?/pos_21 - pos_75) + (if (if all-cont?/pos_20 + (all-cont?/pos_20 + pos_72) #t) (not #f) #f) #f) - (for-loop_23 + (for-loop_22 stms_11 kvs_1 + (pos-next_22 + pos_70) (pos-next_23 - pos_73) - (pos-next_24 - pos_75)) + pos_72)) (values stms_11 kvs_1))) @@ -9582,44 +8845,44 @@ (values stms_10 kvs_0)))))) - for-loop_23) + for-loop_22) '() '() - init_23 - init_24))))) + init_22 + init_23))))) (values stms*_0 (ILObject9.1 items*_0))))) - (alt_78))) - (alt_78)))))))) + (alt_67))) + (alt_67)))))))) (if (let-values (((p_118) - v_83)) + v_80)) (if (pair? p_118) - (let-values (((a_195) + (let-values (((a_193) (cdr p_118))) (list? - a_195)) + a_193)) #f)) (let-values (((fst_20 - items_6) + items_4) (let-values (((p_119) - v_83)) + v_80)) (let-values (((fst_21) - (let-values (((a_196) + (let-values (((a_194) (car p_119))) - a_196)) - ((items_7) + a_194)) + ((items_5) (let-values (((d_56) (cdr p_119))) d_56))) (values fst_21 - items_7))))) + items_5))))) (if (if (Quote? fst_20) (eq? @@ -9630,48 +8893,48 @@ (let-values () (let-values (((stms*_1 items*_1) - (let-values (((pos->vals_24 - pos-pre-inc_22 - pos-next_25 - init_25 - pos-cont?_25 - val-cont?_24 - all-cont?_24) + (let-values (((pos->vals_23 + pos-pre-inc_21 + pos-next_24 + init_24 + pos-cont?_24 + val-cont?_23 + all-cont?_23) (make-sequence '(item) - items_6))) + items_4))) (begin (void) - ((letrec-values (((for-loop_24) + ((letrec-values (((for-loop_23) (lambda (stms_14 vals_8 - pos_76) + pos_73) (begin 'for-loop - (if (if pos-cont?_25 - (pos-cont?_25 - pos_76) + (if (if pos-cont?_24 + (pos-cont?_24 + pos_73) #t) (let-values (((item_0 - all-cont?/pos_22) + all-cont?/pos_21) (let-values (((item_1) - (pos->vals_24 - pos_76))) + (pos->vals_23 + pos_73))) (values item_1 - (if all-cont?_24 - (lambda (pos_77) - (all-cont?_24 - pos_77 + (if all-cont?_23 + (lambda (pos_74) + (all-cont?_23 + pos_74 item_1)) #f)))) - ((pos_78) - (if pos-pre-inc_22 - (pos-pre-inc_22 - pos_76) - pos_76))) - (if (if val-cont?_24 - (val-cont?_24 + ((pos_75) + (if pos-pre-inc_21 + (pos-pre-inc_21 + pos_73) + pos_73))) + (if (if val-cont?_23 + (val-cont?_23 item_0) #t) (let-values (((stms_15 @@ -9699,18 +8962,18 @@ (values stms_17 vals_11))))) - (if (if (if all-cont?/pos_22 - (all-cont?/pos_22 - pos_78) + (if (if (if all-cont?/pos_21 + (all-cont?/pos_21 + pos_75) #t) (not #f) #f) - (for-loop_24 + (for-loop_23 stms_15 vals_9 - (pos-next_25 - pos_78)) + (pos-next_24 + pos_75)) (values stms_15 vals_9))) @@ -9720,52 +8983,52 @@ (values stms_14 vals_8)))))) - for-loop_24) + for-loop_23) '() '() - init_25))))) + init_24))))) (values stms*_1 (ILArray8.1 items*_1)))) - (alt_77))) - (alt_77)))))))) + (alt_66))) + (alt_66)))))))) (if (let-values (((p_120) - v_83)) + v_80)) (if (pair? p_120) - (let-values (((a_197) + (let-values (((a_195) (cdr p_120))) (let-values (((p_121) - a_197)) + a_195)) (if (pair? p_121) - (let-values (((a_198) + (let-values (((a_196) (cdr p_121))) (eq? '() - a_198)) + a_196)) #f))) #f)) (let-values (((fst_22 lv_0) (let-values (((p_122) - v_83)) + v_80)) (let-values (((fst_23) - (let-values (((a_199) + (let-values (((a_197) (car p_122))) - a_199)) + a_197)) ((lv_1) (let-values (((d_57) (cdr p_122))) - (let-values (((a_200) + (let-values (((a_198) (car d_57))) - a_200)))) + a_198)))) (values fst_23 lv_1))))) @@ -9786,32 +9049,32 @@ stms_18 (ILNew13.1 il_0)))) - (alt_76))) - (alt_76)))))))) + (alt_65))) + (alt_65)))))))) (if (let-values (((p_123) - v_83)) + v_80)) (if (pair? p_123) - (let-values (((a_201) + (let-values (((a_199) (cdr p_123))) (let-values (((p_124) - a_201)) + a_199)) (if (pair? p_124) - (let-values (((a_202) + (let-values (((a_200) (cdr p_124))) (let-values (((p_125) - a_202)) + a_200)) (if (pair? p_125) - (let-values (((a_203) + (let-values (((a_201) (cdr p_125))) (eq? '() - a_203)) + a_201)) #f))) #f))) #f)) @@ -9819,7 +9082,7 @@ lv_2 rv_0) (let-values (((p_126) - v_83)) + v_80)) (let-values (((fst_25) (let-values (((a_137) (car @@ -9833,18 +9096,18 @@ (let-values (((p_127) d_58)) (let-values (((lv_4) - (let-values (((a_204) + (let-values (((a_202) (car p_127))) - a_204)) + a_202)) ((rv_2) (let-values (((d_59) (cdr p_127))) - (let-values (((a_205) + (let-values (((a_203) (car d_59))) - a_205)))) + a_203)))) (values lv_4 rv_2)))))) @@ -9880,10 +9143,10 @@ rv-il_0))) (ILValue12.1 (void)))))) - (alt_75))) - (alt_75)))))))) + (alt_64))) + (alt_64)))))))) (if (let-values (((p_128) - v_83)) + v_80)) (if (pair? p_128) (let-values (((a_140) @@ -9893,47 +9156,47 @@ a_140)) (if (pair? p_129) - (let-values (((a_206) + (let-values (((a_204) (cdr p_129))) (list? - a_206)) + a_204)) #f))) #f)) (let-values (((fst_26 - b_21 - xs_21) + b_20 + xs_20) (let-values (((p_130) - v_83)) + v_80)) (let-values (((fst_27) - (let-values (((a_207) + (let-values (((a_205) (car p_130))) - a_207)) - ((b_22 - xs_22) + a_205)) + ((b_21 + xs_21) (let-values (((d_60) (cdr p_130))) (let-values (((p_79) d_60)) - (let-values (((b_23) - (let-values (((a_208) + (let-values (((b_22) + (let-values (((a_206) (car p_79))) - a_208)) - ((xs_23) + a_206)) + ((xs_22) (let-values (((d_38) (cdr p_79))) d_38))) (values - b_23 - xs_23)))))) + b_22 + xs_22)))))) (values fst_27 - b_22 - xs_22))))) + b_21 + xs_21))))) (if (if (Quote? fst_26) (eq? @@ -9945,51 +9208,51 @@ (let-values (((stms_19 il_1) (absyn-expr->il - b_21 + b_20 #f))) - (let-values (((pos->vals_25 - pos-pre-inc_23 - pos-next_26 - init_26 - pos-cont?_26 - val-cont?_25 - all-cont?_25) + (let-values (((pos->vals_24 + pos-pre-inc_22 + pos-next_25 + init_25 + pos-cont?_25 + val-cont?_24 + all-cont?_24) (make-sequence '(x) - xs_21))) + xs_20))) (begin (void) - ((letrec-values (((for-loop_25) + ((letrec-values (((for-loop_24) (lambda (stms_20 il_2 - pos_79) + pos_76) (begin 'for-loop - (if (if pos-cont?_26 - (pos-cont?_26 - pos_79) + (if (if pos-cont?_25 + (pos-cont?_25 + pos_76) #t) - (let-values (((x_37 - all-cont?/pos_23) - (let-values (((x_38) - (pos->vals_25 - pos_79))) + (let-values (((x_36 + all-cont?/pos_22) + (let-values (((x_37) + (pos->vals_24 + pos_76))) (values - x_38 - (if all-cont?_25 - (lambda (pos_80) - (all-cont?_25 - pos_80 - x_38)) + x_37 + (if all-cont?_24 + (lambda (pos_77) + (all-cont?_24 + pos_77 + x_37)) #f)))) - ((pos_81) - (if pos-pre-inc_23 - (pos-pre-inc_23 - pos_79) - pos_79))) - (if (if val-cont?_25 - (val-cont?_25 - x_37) + ((pos_78) + (if pos-pre-inc_22 + (pos-pre-inc_22 + pos_76) + pos_76))) + (if (if val-cont?_24 + (val-cont?_24 + x_36) #t) (let-values (((stms_21 il_3) @@ -10003,7 +9266,7 @@ (let-values (((x-stms_0 s-il_0) (absyn-expr->il - x_37 + x_36 #f))) (values (append @@ -10021,18 +9284,18 @@ (values stms_23 il_5))))) - (if (if (if all-cont?/pos_23 - (all-cont?/pos_23 - pos_81) + (if (if (if all-cont?/pos_22 + (all-cont?/pos_22 + pos_78) #t) (not #f) #f) - (for-loop_25 + (for-loop_24 stms_21 il_3 - (pos-next_26 - pos_81)) + (pos-next_25 + pos_78)) (values stms_21 il_3))) @@ -10042,64 +9305,64 @@ (values stms_20 il_2)))))) - for-loop_25) + for-loop_24) stms_19 il_1 - init_26))))) - (alt_74))) - (alt_74)))))))) + init_25))))) + (alt_63))) + (alt_63)))))))) (if (let-values (((p_131) - v_83)) + v_80)) (if (pair? p_131) - (let-values (((a_209) + (let-values (((a_207) (cdr p_131))) (let-values (((p_85) - a_209)) + a_207)) (if (pair? p_85) - (let-values (((a_210) + (let-values (((a_208) (cdr p_85))) (list? - a_210)) + a_208)) #f))) #f)) (let-values (((fst_28 - b_24 - xs_24) + b_23 + xs_23) (let-values (((p_132) - v_83)) + v_80)) (let-values (((fst_29) (let-values (((a_153) (car p_132))) a_153)) - ((b_25 - xs_25) + ((b_24 + xs_24) (let-values (((d_43) (cdr p_132))) (let-values (((p_133) d_43)) - (let-values (((b_26) - (let-values (((a_211) + (let-values (((b_25) + (let-values (((a_209) (car p_133))) - a_211)) - ((xs_26) + a_209)) + ((xs_25) (let-values (((d_61) (cdr p_133))) d_61))) (values - b_26 - xs_26)))))) + b_25 + xs_25)))))) (values fst_29 - b_25 - xs_25))))) + b_24 + xs_24))))) (if (if (Quote? fst_28) (eq? @@ -10111,52 +9374,52 @@ (let-values (((stms_24 il_6) (absyn-expr->il - b_24 + b_23 #f))) (values stms_24 - (let-values (((pos->vals_26 - pos-pre-inc_24 - pos-next_27 - init_27 - pos-cont?_27 - val-cont?_26 - all-cont?_26) + (let-values (((pos->vals_25 + pos-pre-inc_23 + pos-next_26 + init_26 + pos-cont?_26 + val-cont?_25 + all-cont?_25) (make-sequence '(x) - xs_24))) + xs_23))) (begin (void) - ((letrec-values (((for-loop_26) + ((letrec-values (((for-loop_25) (lambda (il_7 pos_41) (begin 'for-loop - (if (if pos-cont?_27 - (pos-cont?_27 + (if (if pos-cont?_26 + (pos-cont?_26 pos_41) #t) - (let-values (((x_39 - all-cont?/pos_24) - (let-values (((x_40) - (pos->vals_26 + (let-values (((x_38 + all-cont?/pos_23) + (let-values (((x_39) + (pos->vals_25 pos_41))) (values - x_40 - (if all-cont?_26 - (lambda (pos_82) - (all-cont?_26 - pos_82 - x_40)) + x_39 + (if all-cont?_25 + (lambda (pos_79) + (all-cont?_25 + pos_79 + x_39)) #f)))) ((pos_40) - (if pos-pre-inc_24 - (pos-pre-inc_24 + (if pos-pre-inc_23 + (pos-pre-inc_23 pos_41) pos_41))) - (if (if val-cont?_26 - (val-cont?_26 - x_39) + (if (if val-cont?_25 + (val-cont?_25 + x_38) #t) (let-values (((il_8) (let-values (((il_9) @@ -10164,32 +9427,32 @@ (let-values (((il_10) (let-values () (let-values (((s_16) - (let-values (((v_88) - x_39)) - (let-values (((v_89) - v_88)) - (let-values (((vec-v_51) + (let-values (((v_85) + x_38)) + (let-values (((v_86) + v_85)) + (let-values (((vec-v_32) (struct->vector - v_89))) - (let-values (((alt_88) + v_86))) + (let-values (((alt_77) (lambda () (begin 'alt (error 'match "failed ~e" - v_89))))) + v_86))))) (if (Quote? - v_89) + v_86) (let-values () (let-values (((s_17) (vector->values - vec-v_51 + vec-v_32 1))) (values s_17))) (let-values () - (alt_88))))))))) + (alt_77))))))))) (if (ILValue? il_9) (ILRef10.1 @@ -10201,61 +9464,61 @@ s_16)))))) (values il_10))))) - (if (if (if all-cont?/pos_24 - (all-cont?/pos_24 + (if (if (if all-cont?/pos_23 + (all-cont?/pos_23 pos_40) #t) (not #f) #f) - (for-loop_26 + (for-loop_25 il_8 - (pos-next_27 + (pos-next_26 pos_40)) il_8)) il_7)) il_7))))) - for-loop_26) + for-loop_25) il_6 - init_27)))))) - (alt_73))) - (alt_73)))))))) + init_26)))))) + (alt_62))) + (alt_62)))))))) (if (let-values (((p_134) - v_83)) + v_80)) (if (pair? p_134) - (let-values (((a_212) + (let-values (((a_210) (cdr p_134))) (let-values (((p_135) - a_212)) + a_210)) (if (pair? p_135) - (let-values (((a_213) + (let-values (((a_211) (cdr p_135))) (eq? '() - a_213)) + a_211)) #f))) #f)) (let-values (((fst_30 snd_6) (let-values (((p_136) - v_83)) + v_80)) (let-values (((fst_31) - (let-values (((a_214) + (let-values (((a_212) (car p_136))) - a_214)) + a_212)) ((snd_7) (let-values (((d_62) (cdr p_136))) - (let-values (((a_215) + (let-values (((a_213) (car d_62))) - a_215)))) + a_213)))) (values fst_31 snd_7))))) @@ -10275,44 +9538,44 @@ (ILValue12.1 (Quote-datum snd_6)))) - (alt_72))) - (alt_72)))))))) + (alt_61))) + (alt_61)))))))) (if (let-values (((p_137) - v_83)) + v_80)) (if (pair? p_137) - (let-values (((a_216) + (let-values (((a_214) (cdr p_137))) (let-values (((p_138) - a_216)) + a_214)) (if (pair? p_138) - (let-values (((a_217) + (let-values (((a_215) (cdr p_138))) (eq? '() - a_217)) + a_215)) #f))) #f)) (let-values (((fst_32 snd_8) (let-values (((p_139) - v_83)) + v_80)) (let-values (((fst_33) - (let-values (((a_218) + (let-values (((a_216) (car p_139))) - a_218)) + a_216)) ((snd_9) (let-values (((d_63) (cdr p_139))) - (let-values (((a_219) + (let-values (((a_217) (car d_63))) - a_219)))) + a_217)))) (values fst_33 snd_9))))) @@ -10331,80 +9594,80 @@ '() (Quote-datum snd_8))) - (alt_71))) - (alt_71)))))) - (alt_57)))) + (alt_60))) + (alt_60)))))) + (alt_46)))) (let-values () - (alt_57))))))))) + (alt_46))))))))) (if (Set!? v_67) (let-values () - (let-values (((id_8 - e_21) + (let-values (((id_6 + e_19) (vector->values - vec-v_38 + vec-v_19 1))) (values (let-values (((stms_25 - v_90) + v_87) (absyn-expr->il - e_21 + e_19 #f))) (append1 stms_25 (ILAssign24.1 - id_8 - v_90))) + id_6 + v_87))) (ILValue12.1 (void))))) (let-values () - (alt_56))))))))) + (alt_45))))))))) (if (LetValues? v_67) (let-values () - (let-values (((bindings_1 body_11) - (vector->values vec-v_37 1))) + (let-values (((bindings_1 body_7) + (vector->values vec-v_18 1))) (let-values (((binding-stms_0) - (let-values (((pos->vals_27 - pos-pre-inc_25 - pos-next_28 - init_28 - pos-cont?_28 - val-cont?_27 - all-cont?_27) + (let-values (((pos->vals_26 + pos-pre-inc_24 + pos-next_27 + init_27 + pos-cont?_27 + val-cont?_26 + all-cont?_26) (make-sequence '(b) bindings_1))) (begin (void) - ((letrec-values (((for-loop_27) + ((letrec-values (((for-loop_26) (lambda (stms_26 - pos_83) + pos_80) (begin 'for-loop - (if (if pos-cont?_28 - (pos-cont?_28 - pos_83) + (if (if pos-cont?_27 + (pos-cont?_27 + pos_80) #t) - (let-values (((b_27 - all-cont?/pos_25) - (let-values (((b_28) - (pos->vals_27 - pos_83))) + (let-values (((b_26 + all-cont?/pos_24) + (let-values (((b_27) + (pos->vals_26 + pos_80))) (values - b_28 - (if all-cont?_27 - (lambda (pos_84) - (all-cont?_27 - pos_84 - b_28)) + b_27 + (if all-cont?_26 + (lambda (pos_81) + (all-cont?_26 + pos_81 + b_27)) #f)))) - ((pos_85) - (if pos-pre-inc_25 - (pos-pre-inc_25 - pos_83) - pos_83))) - (if (if val-cont?_27 - (val-cont?_27 - b_27) + ((pos_82) + (if pos-pre-inc_24 + (pos-pre-inc_24 + pos_80) + pos_80))) + (if (if val-cont?_26 + (val-cont?_26 + b_26) #t) (let-values (((stms_27) (let-values (((stms_28) @@ -10414,39 +9677,38 @@ (append stms_28 (absyn-binding->il - b_27))))) + b_26))))) (values stms_29))))) - (if (if (if all-cont?/pos_25 - (all-cont?/pos_25 - pos_85) + (if (if (if all-cont?/pos_24 + (all-cont?/pos_24 + pos_82) #t) (not #f) #f) - (for-loop_27 + (for-loop_26 stms_27 - (pos-next_28 - pos_85)) + (pos-next_27 + pos_82)) stms_27)) stms_26)) stms_26))))) - for-loop_27) + for-loop_26) '() - init_28))))) + init_27))))) (let-values (((body13_0) - (sequence-length - body_11))) - (let-values (((pos->vals_28 - pos-pre-inc_26 - pos-next_29 - init_29 - pos-cont?_29 - val-cont?_28 - all-cont?_28) + (sequence-length body_7))) + (let-values (((pos->vals_27 + pos-pre-inc_25 + pos-next_28 + init_28 + pos-cont?_28 + val-cont?_27 + all-cont?_27) (make-sequence '(e) - body_11)) + body_7)) ((start_11) 0) ((end_5) body13_0) ((inc_1) 1)) @@ -10460,44 +9722,44 @@ start_11 end_5 inc_1))) - ((letrec-values (((for-loop_28) + ((letrec-values (((for-loop_27) (lambda (stms_30 rv_3 - pos_86 - pos_87) + pos_83 + pos_84) (begin 'for-loop - (if (if (if pos-cont?_29 - (pos-cont?_29 - pos_86) + (if (if (if pos-cont?_28 + (pos-cont?_28 + pos_83) #t) (< - pos_87 + pos_84 end_5) #f) - (let-values (((e_22 - all-cont?/pos_26) - (let-values (((e_23) - (pos->vals_28 - pos_86))) + (let-values (((e_20 + all-cont?/pos_25) + (let-values (((e_21) + (pos->vals_27 + pos_83))) (values - e_23 - (if all-cont?_28 - (lambda (pos_88) - (all-cont?_28 - pos_88 - e_23)) + e_21 + (if all-cont?_27 + (lambda (pos_85) + (all-cont?_27 + pos_85 + e_21)) #f)))) - ((pos_89) - (if pos-pre-inc_26 - (pos-pre-inc_26 - pos_86) - pos_86)) + ((pos_86) + (if pos-pre-inc_25 + (pos-pre-inc_25 + pos_83) + pos_83)) ((body14_0) - pos_87)) - (if (if (if val-cont?_28 - (val-cont?_28 - e_22) + pos_84)) + (if (if (if val-cont?_27 + (val-cont?_27 + e_20) #t) #t #f) @@ -10516,7 +9778,7 @@ (let-values (((s_18 nv_0) (absyn-expr->il - e_22 + e_20 (if last?_1 overwrite-mark-frame?_0 #f)))) @@ -10536,20 +9798,20 @@ (values stms_33 rv_5))))) - (if (if (if all-cont?/pos_26 - (all-cont?/pos_26 - pos_89) + (if (if (if all-cont?/pos_25 + (all-cont?/pos_25 + pos_86) #t) (not #f) #f) - (for-loop_28 + (for-loop_27 stms_31 rv_4 - (pos-next_29 - pos_89) + (pos-next_28 + pos_86) (+ - pos_87 + pos_84 inc_1)) (values stms_31 @@ -10560,24 +9822,24 @@ (values stms_30 rv_3)))))) - for-loop_28) + for-loop_27) binding-stms_0 (ILValue12.1 (void)) - init_29 + init_28 start_11))))))) - (let-values () (alt_55))))))))) + (let-values () (alt_44))))))))) (if (If? v_67) (let-values () - (let-values (((pred-e_0 t-branch_1 f-branch_1) - (vector->values vec-v_36 1))) + (let-values (((pred-e_0 t-branch_0 f-branch_0) + (vector->values vec-v_17 1))) (let-values (((ps_0 pe_0) (absyn-expr->il pred-e_0 #f))) (let-values (((ts_0 te_0) (absyn-expr->il - t-branch_1 + t-branch_0 overwrite-mark-frame?_0))) (let-values (((fs_2 fe_0) (absyn-expr->il - f-branch_1 + f-branch_0 overwrite-mark-frame?_0))) (let-values (((result-id_1) (fresh-id 'if_res))) (values @@ -10589,75 +9851,75 @@ (append1 ts_0 (ILVarDec20.1 result-id_1 te_0)) (append1 fs_2 (ILVarDec20.1 result-id_1 fe_0))))) result-id_1))))))) - (let-values () (alt_54))))))))) + (let-values () (alt_43))))))))) (if (CaseLambda? v_67) (let-values () - (let-values (((clauses_2) (vector->values vec-v_35 1))) + (let-values (((clauses_1) (vector->values vec-v_16 1))) (let-values (((fixed-lams_0 rest-lams_0) - (if (case-lambda-has-dead-clause? expr_8) + (if (case-lambda-has-dead-clause? expr_6) (begin (log-rjs-warning "found a case-lambda with dead-clause") - (values '() clauses_2)) + (values '() clauses_1)) (values - (filter (lambda (l_26) (number? (lambda-arity l_26))) clauses_2) + (filter (lambda (l_23) (number? (lambda-arity l_23))) clauses_1) (filter - (lambda (l_27) (not (number? (lambda-arity l_27)))) - clauses_2))))) + (lambda (l_24) (not (number? (lambda-arity l_24)))) + clauses_1))))) (let-values (((stms_34 val_7) (expand-normal-case-lambda fixed-lams_0 rest-lams_0))) (let-values (((arities_0) (ILArray8.1 (reverse$1 - (let-values (((pos->vals_29 - pos-pre-inc_27 - pos-next_30 - init_30 - pos-cont?_30 - val-cont?_29 - all-cont?_29) + (let-values (((pos->vals_28 + pos-pre-inc_26 + pos-next_29 + init_29 + pos-cont?_29 + val-cont?_28 + all-cont?_28) (make-sequence '(c) (resolve-procedure-arities - (map2 lambda-arity clauses_2))))) + (map2 lambda-arity clauses_1))))) (begin (void) - ((letrec-values (((for-loop_29) - (lambda (fold-var_16 pos_90) + ((letrec-values (((for-loop_28) + (lambda (fold-var_12 pos_87) (begin 'for-loop - (if (if pos-cont?_30 - (pos-cont?_30 pos_90) + (if (if pos-cont?_29 + (pos-cont?_29 pos_87) #t) - (let-values (((c_14 - all-cont?/pos_27) - (let-values (((c_15) - (pos->vals_29 - pos_90))) + (let-values (((c_12 + all-cont?/pos_26) + (let-values (((c_13) + (pos->vals_28 + pos_87))) (values - c_15 - (if all-cont?_29 - (lambda (pos_91) - (all-cont?_29 - pos_91 - c_15)) + c_13 + (if all-cont?_28 + (lambda (pos_88) + (all-cont?_28 + pos_88 + c_13)) #f)))) - ((pos_92) - (if pos-pre-inc_27 - (pos-pre-inc_27 - pos_90) - pos_90))) - (if (if val-cont?_29 - (val-cont?_29 c_14) + ((pos_89) + (if pos-pre-inc_26 + (pos-pre-inc_26 + pos_87) + pos_87))) + (if (if val-cont?_28 + (val-cont?_28 c_12) #t) - (let-values (((fold-var_17) - (let-values (((fold-var_18) - fold-var_16)) - (let-values (((fold-var_19) + (let-values (((fold-var_13) + (let-values (((fold-var_14) + fold-var_12)) + (let-values (((fold-var_15) (let-values () (cons (let-values () (if (arity-at-least? - c_14) + c_12) (let-values () (let-values (((__7 val_8) @@ -10670,81 +9932,81 @@ (list (Quote7.1 (arity-at-least-value - c_14)))) + c_12)))) #f))) val_8)) (if (number? - c_14) + c_12) (let-values () (ILValue12.1 - c_14)) + c_12)) (void)))) - fold-var_18)))) + fold-var_14)))) (values - fold-var_19))))) - (if (if (if all-cont?/pos_27 - (all-cont?/pos_27 - pos_92) + fold-var_15))))) + (if (if (if all-cont?/pos_26 + (all-cont?/pos_26 + pos_89) #t) (not #f) #f) - (for-loop_29 - fold-var_17 - (pos-next_30 pos_92)) - fold-var_17)) - fold-var_16)) - fold-var_16))))) - for-loop_29) + (for-loop_28 + fold-var_13 + (pos-next_29 pos_89)) + fold-var_13)) + fold-var_12)) + fold-var_12))))) + for-loop_28) null - init_30))))))) + init_29))))))) (values stms_34 (ILApp7.1 (name-in-module 'core 'attachProcedureArity) (list val_7 arities_0)))))))) - (let-values () (alt_53))))))))) + (let-values () (alt_42))))))))) (if (Lambda? v_67) (let-values () - (let-values (((formals_8 body_12 unchecked?_0) (vector->values vec-v_20 1))) + (let-values (((formals_7 body_8 unchecked?_0) (vector->values vec-v_15 1))) (let-values (((->jslist_0) (lambda (f_31) (begin '->jslist (ILApp7.1 (name-in-module 'core 'Pair.listFromArray) (list f_31)))))) (let-values (((maybe-make-checked-formals_0) - (lambda (formals_9) + (lambda (formals_8) (begin 'maybe-make-checked-formals - (if (let-values (((or-part_93) unchecked?_0)) - (if or-part_93 or-part_93 (skip-arity-checks?))) - formals_9 - (ILCheckedFormals4.1 formals_9)))))) + (if (let-values (((or-part_74) unchecked?_0)) + (if or-part_74 or-part_74 (skip-arity-checks?))) + formals_8 + (ILCheckedFormals4.1 formals_8)))))) (let-values (((in-formals_0 stms-formals-init_0) - (if (symbol? formals_8) + (if (symbol? formals_7) (let-values () - (let-values (((in-formals_1) (fresh-id formals_8))) + (let-values (((in-formals_1) (fresh-id formals_7))) (values in-formals_1 - (list (ILVarDec20.1 formals_8 (->jslist_0 in-formals_1)))))) - (if (list? formals_8) - (let-values () (values formals_8 '())) - (if (cons? formals_8) + (list (ILVarDec20.1 formals_7 (->jslist_0 in-formals_1)))))) + (if (list? formals_7) + (let-values () (values formals_7 '())) + (if (cons? formals_7) (let-values () - (let-values (((fi_0) (car formals_8))) - (let-values (((fp_0) (cdr formals_8))) + (let-values (((fi_0) (car formals_7))) + (let-values (((fp_0) (cdr formals_7))) (let-values (((in-fp_0) (fresh-id fp_0))) (values (cons fi_0 in-fp_0) (list (ILVarDec20.1 fp_0 (->jslist_0 in-fp_0)))))))) (void)))))) (let-values (((body-stms_0 body-value_0) - (let-values (((body18_0) (sequence-length body_12))) - (let-values (((pos->vals_30 - pos-pre-inc_28 - pos-next_31 - init_31 - pos-cont?_31 - val-cont?_30 - all-cont?_30) - (make-sequence '(e) body_12)) + (let-values (((body18_0) (sequence-length body_8))) + (let-values (((pos->vals_29 + pos-pre-inc_27 + pos-next_30 + init_30 + pos-cont?_30 + val-cont?_29 + all-cont?_29) + (make-sequence '(e) body_8)) ((start_12) 0) ((end_6) body18_0) ((inc_2) 1)) @@ -10753,28 +10015,28 @@ (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-range start_12 end_6 inc_2))) - ((letrec-values (((for-loop_30) - (lambda (stms_35 rv_6 pos_93 pos_94) + ((letrec-values (((for-loop_29) + (lambda (stms_35 rv_6 pos_90 pos_91) (begin 'for-loop - (if (if (if pos-cont?_31 (pos-cont?_31 pos_93) #t) - (< pos_94 end_6) + (if (if (if pos-cont?_30 (pos-cont?_30 pos_90) #t) + (< pos_91 end_6) #f) - (let-values (((e_24 all-cont?/pos_28) - (let-values (((e_25) - (pos->vals_30 pos_93))) + (let-values (((e_22 all-cont?/pos_27) + (let-values (((e_23) + (pos->vals_29 pos_90))) (values - e_25 - (if all-cont?_30 - (lambda (pos_95) - (all-cont?_30 pos_95 e_25)) + e_23 + (if all-cont?_29 + (lambda (pos_92) + (all-cont?_29 pos_92 e_23)) #f)))) - ((pos_96) - (if pos-pre-inc_28 - (pos-pre-inc_28 pos_93) - pos_93)) - ((body19_0) pos_94)) - (if (if (if val-cont?_30 (val-cont?_30 e_24) #t) + ((pos_93) + (if pos-pre-inc_27 + (pos-pre-inc_27 pos_90) + pos_90)) + ((body19_0) pos_91)) + (if (if (if val-cont?_29 (val-cont?_29 e_22) #t) #t #f) (let-values (((stms_36 rv_7) @@ -10787,9 +10049,9 @@ body18_0) body19_0))) (let-values (((s_19 - v_91) + v_88) (absyn-expr->il - e_24 + e_22 (if last?_2 overwrite-mark-frame?_0 #f)))) @@ -10798,32 +10060,32 @@ (append stms_37 s_19) - v_91) + v_88) (values (append stms_37 s_19 (list - v_91)) - v_91))))))) + v_88)) + v_88))))))) (values stms_38 rv_8))))) - (if (if (if all-cont?/pos_28 - (all-cont?/pos_28 pos_96) + (if (if (if all-cont?/pos_27 + (all-cont?/pos_27 pos_93) #t) (not #f) #f) - (for-loop_30 + (for-loop_29 stms_36 rv_7 - (pos-next_31 pos_96) - (+ pos_94 inc_2)) + (pos-next_30 pos_93) + (+ pos_91 inc_2)) (values stms_36 rv_7))) (values stms_35 rv_6))) (values stms_35 rv_6)))))) - for-loop_30) + for-loop_29) '() (ILValue12.1 (void)) - init_31 + init_30 start_12)))))) (let-values (((lambda-expr_0) (ILLambda5.1 @@ -10831,31 +10093,31 @@ (append stms-formals-init_0 body-stms_0 (list (ILReturn26.1 body-value_0)))))) (values '() - (if (variadic-lambda? expr_8) + (if (variadic-lambda? expr_6) (ILApp7.1 (name-in-module 'core 'attachProcedureArity) (list lambda-expr_0)) lambda-expr_0))))))))) - (let-values () (alt_38))))))))) + (let-values () (alt_41))))))))) (define-values (absyn-binding->il) - (lambda (b_29) + (lambda (b_28) (begin - (let-values (((args_19 expr_15) - (let-values (((v_92) b_29)) - (let-values (((v_93) v_92)) + (let-values (((args_16 expr_7) + (let-values (((v_89) b_28)) + (let-values (((v_90) v_89)) (let-values () - (let-values (((alt_89) (lambda () (begin 'alt (error 'match "failed ~e" v_93))))) - (if (let-values (((p_140) v_93)) (if (pair? p_140) #t #f)) - (let-values (((args_20 expr_16) - (let-values (((p_141) v_93)) - (let-values (((args_21) (let-values (((a_220) (car p_141))) a_220)) - ((expr_17) (let-values (((d_64) (cdr p_141))) d_64))) - (values args_21 expr_17))))) - (let-values () (values args_20 expr_16))) - (alt_89)))))))) - (let-values (((stms_39 v_94) (absyn-expr->il expr_15 #f))) - (let-values (((v_95) args_19)) + (let-values (((alt_78) (lambda () (begin 'alt (error 'match "failed ~e" v_90))))) + (if (let-values (((p_140) v_90)) (if (pair? p_140) #t #f)) + (let-values (((args_17 expr_8) + (let-values (((p_141) v_90)) + (let-values (((args_18) (let-values (((a_218) (car p_141))) a_218)) + ((expr_9) (let-values (((d_64) (cdr p_141))) d_64))) + (values args_18 expr_9))))) + (let-values () (values args_17 expr_8))) + (alt_78)))))))) + (let-values (((stms_39 v_91) (absyn-expr->il expr_7 #f))) + (let-values (((v_92) args_16)) (let-values () - (let-values (((alt_90) + (let-values (((alt_79) (lambda () (begin 'alt @@ -10867,57 +10129,57 @@ (let-values (((binding-stms_1) (reverse$1 (let-values (((start_13) 0) - ((end_7) (length args_19)) + ((end_7) (length args_16)) ((inc_3) 1) - ((pos->vals_31 - pos-pre-inc_29 - pos-next_32 - init_32 - pos-cont?_32 - val-cont?_31 - all-cont?_31) - (make-sequence '(arg) args_19))) + ((pos->vals_30 + pos-pre-inc_28 + pos-next_31 + init_31 + pos-cont?_31 + val-cont?_30 + all-cont?_30) + (make-sequence '(arg) args_16))) (begin (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-range start_13 end_7 inc_3))) (void) - ((letrec-values (((for-loop_31) - (lambda (fold-var_20 pos_97 pos_98) + ((letrec-values (((for-loop_30) + (lambda (fold-var_16 pos_94 pos_95) (begin 'for-loop - (if (if (< pos_97 end_7) - (if pos-cont?_32 - (pos-cont?_32 pos_98) + (if (if (< pos_94 end_7) + (if pos-cont?_31 + (pos-cont?_31 pos_95) #t) #f) - (let-values (((i_55) pos_97) + (let-values (((i_54) pos_94) ((arg_2 - all-cont?/pos_29) + all-cont?/pos_28) (let-values (((arg_3) - (pos->vals_31 - pos_98))) + (pos->vals_30 + pos_95))) (values arg_3 - (if all-cont?_31 - (lambda (pos_99) - (all-cont?_31 - pos_99 + (if all-cont?_30 + (lambda (pos_96) + (all-cont?_30 + pos_96 arg_3)) #f)))) - ((pos_100) - (if pos-pre-inc_29 - (pos-pre-inc_29 - pos_98) - pos_98))) - (if (if val-cont?_31 - (val-cont?_31 arg_2) + ((pos_97) + (if pos-pre-inc_28 + (pos-pre-inc_28 + pos_95) + pos_95))) + (if (if val-cont?_30 + (val-cont?_30 arg_2) #t) - (let-values (((fold-var_21) - (let-values (((fold-var_22) - fold-var_20)) - (let-values (((fold-var_23) + (let-values (((fold-var_17) + (let-values (((fold-var_18) + fold-var_16)) + (let-values (((fold-var_19) (let-values () (cons (let-values () @@ -10929,35 +10191,35 @@ 'getAt) (list (ILValue12.1 - i_55))))) - fold-var_22)))) + i_54))))) + fold-var_18)))) (values - fold-var_23))))) - (if (if (if all-cont?/pos_29 - (all-cont?/pos_29 - pos_100) + fold-var_19))))) + (if (if (if all-cont?/pos_28 + (all-cont?/pos_28 + pos_97) #t) (not #f) #f) - (for-loop_31 - fold-var_21 - (+ pos_97 inc_3) - (pos-next_32 pos_100)) - fold-var_21)) - fold-var_20)) - fold-var_20))))) - for-loop_31) + (for-loop_30 + fold-var_17 + (+ pos_94 inc_3) + (pos-next_31 pos_97)) + fold-var_17)) + fold-var_16)) + fold-var_16))))) + for-loop_30) null start_13 - init_32)))))) + init_31)))))) (append stms_39 - (cons (ILVarDec20.1 result-id_2 v_94) binding-stms_1)))))))))))) - (if (let-values (((p_142) v_95)) - (if (pair? p_142) (let-values (((a_221) (cdr p_142))) (eq? '() a_221)) #f)) - (let-values (((a_222) (let-values (((a_223) (car v_95))) a_223))) - (let-values () (append1 stms_39 (ILVarDec20.1 a_222 v_94)))) - (alt_90)))))))))) + (cons (ILVarDec20.1 result-id_2 v_91) binding-stms_1)))))))))))) + (if (let-values (((p_142) v_92)) + (if (pair? p_142) (let-values (((a_219) (cdr p_142))) (eq? '() a_219)) #f)) + (let-values (((a_220) (let-values (((a_221) (car v_92))) a_221))) + (let-values () (append1 stms_39 (ILVarDec20.1 a_220 v_91)))) + (alt_79)))))))))) (define-values (absyn-value->il) (lambda (d_65) @@ -11007,16 +10269,16 @@ (if (variable-reference-from-unsafe? (#%variable-reference)) (void) (let-values () (check-in-hash ht_7))) - ((letrec-values (((for-loop_32) - (lambda (fold-var_24 i_56) + ((letrec-values (((for-loop_31) + (lambda (fold-var_20 i_55) (begin 'for-loop - (if i_56 + (if i_55 (let-values (((key_12 value_4) - (hash-iterate-key+value ht_7 i_56))) - (let-values (((fold-var_25) - (let-values (((fold-var_26) fold-var_24)) - (let-values (((fold-var_27) + (hash-iterate-key+value ht_7 i_55))) + (let-values (((fold-var_21) + (let-values (((fold-var_22) fold-var_20)) + (let-values (((fold-var_23) (let-values () (cons (let-values () @@ -11026,15 +10288,15 @@ key_12) (absyn-value->il value_4)))) - fold-var_26)))) - (values fold-var_27))))) + fold-var_22)))) + (values fold-var_23))))) (if (not #f) - (for-loop_32 - fold-var_25 - (hash-iterate-next ht_7 i_56)) - fold-var_25))) - fold-var_24))))) - for-loop_32) + (for-loop_31 + fold-var_21 + (hash-iterate-next ht_7 i_55)) + fold-var_21))) + fold-var_20))))) + for-loop_31) null (hash-iterate-first ht_7)))))) (ILValue12.1 mutable_0)))))) @@ -11051,21 +10313,21 @@ (ILApp7.1 (name-in-module 'core 'Char.charFromCodepoint) (list (absyn-value->il (char->integer d_65))))) - (if (let-values (((or-part_94) (regexp? d_65))) - (if or-part_94 or-part_94 (byte-regexp? d_65))) + (if (let-values (((or-part_75) (regexp? d_65))) + (if or-part_75 or-part_75 (byte-regexp? d_65))) (let-values () - (let-values (((v_96) (object-name d_65))) + (let-values (((v_93) (object-name d_65))) (ILApp7.1 (name-in-module 'core 'Regexp.fromString) - (list (ILValue12.1 (if (bytes? v_96) (bytes->string/utf-8 v_96) v_96)))))) - (if (let-values (((or-part_95) (integer? d_65))) - (if or-part_95 - or-part_95 - (let-values (((or-part_96) (boolean? d_65))) - (if or-part_96 - or-part_96 - (let-values (((or-part_97) (void? d_65))) - (if or-part_97 or-part_97 (real? d_65))))))) + (list (ILValue12.1 (if (bytes? v_93) (bytes->string/utf-8 v_93) v_93)))))) + (if (let-values (((or-part_76) (integer? d_65))) + (if or-part_76 + or-part_76 + (let-values (((or-part_77) (boolean? d_65))) + (if or-part_77 + or-part_77 + (let-values (((or-part_78) (void? d_65))) + (if or-part_78 or-part_78 (real? d_65))))))) (let-values () (ILValue12.1 d_65)) (let-values () (error (~a "unsupported value" d_65)))))))))))))))))))) (define-values @@ -11078,10 +10340,10 @@ (let-values (((fixed-lam-map_0) (ILObject9.1 (map2 - (lambda (id_9 lam_4) - (let-values (((arity_5) (lambda-arity lam_4))) - (if (number? arity_5) - (cons (string->symbol (~a arity_5)) id_9) + (lambda (id_7 lam_3) + (let-values (((arity_4) (lambda-arity lam_3))) + (if (number? arity_4) + (cons (string->symbol (~a arity_4)) id_7) (error 'expand-normal-case-lambda "assertion failed")))) fixed-lam-names_0 fixed-lams_1)))) @@ -11090,71 +10352,71 @@ (App9.1 (ImportedIdent3.1 '#%js-ffi '#%kernel #t) (list (Quote7.1 'arguments))))) (let-values (((var-lam-stms_0 var-lam-val_0) (absyn-expr->il - ((letrec-values (((loop_59) + ((letrec-values (((loop_55) (lambda (lams*_0 names*_0) (begin 'loop - (let-values (((v_97) (list lams*_0 names*_0))) + (let-values (((v_94) (list lams*_0 names*_0))) (let-values () - (let-values (((alt_91) + (let-values (((alt_80) (lambda () (begin 'alt (let-values () - (let-values (((alt_92) + (let-values (((alt_81) (lambda () (begin 'alt (error 'match "failed ~e" - v_97))))) - (if (let-values (((p_143) v_97)) + v_94))))) + (if (let-values (((p_143) v_94)) (if (pair? p_143) - (if (let-values (((a_224) + (if (let-values (((a_222) (car p_143))) (let-values (((p_144) - a_224)) + a_222)) (if (pair? p_144) #t #f))) - (let-values (((a_225) + (let-values (((a_223) (cdr p_143))) (let-values (((p_145) - a_225)) + a_223)) (if (pair? p_145) - (if (let-values (((a_226) + (if (let-values (((a_224) (car p_145))) (let-values (((p_146) - a_226)) + a_224)) (if (pair? p_146) #t #f))) - (let-values (((a_227) + (let-values (((a_225) (cdr p_145))) - (eq? '() a_227)) + (eq? '() a_225)) #f) #f))) #f) #f)) (let-values (((lh_0 lt_0 nh_0 nt_0) (let-values (((p_147) - v_97)) + v_94)) (let-values (((lh_1 lt_1) - (let-values (((a_228) + (let-values (((a_226) (car p_147))) (let-values (((p_148) - a_228)) + a_226)) (let-values (((lh_2) - (let-values (((a_229) + (let-values (((a_227) (car p_148))) - a_229)) + a_227)) ((lt_2) (let-values (((d_66) (cdr @@ -11168,16 +10430,16 @@ (let-values (((d_67) (cdr p_147))) - (let-values (((a_230) + (let-values (((a_228) (car d_67))) (let-values (((p_149) - a_230)) + a_228)) (let-values (((nh_2) - (let-values (((a_231) + (let-values (((a_229) (car p_149))) - a_231)) + a_229)) ((nt_2) (let-values (((d_68) (cdr @@ -11220,19 +10482,19 @@ (list *null*_0 *arguments*_0)) - (loop_59 lt_0 nt_0))))) - (alt_92)))))))) - (if (let-values (((p_150) v_97)) + (loop_55 lt_0 nt_0))))) + (alt_81)))))))) + (if (let-values (((p_150) v_94)) (if (pair? p_150) - (if (let-values (((a_232) (car p_150))) - (eq? '() a_232)) - (let-values (((a_233) (cdr p_150))) - (let-values (((p_151) a_233)) + (if (let-values (((a_230) (car p_150))) + (eq? '() a_230)) + (let-values (((a_231) (cdr p_150))) + (let-values (((p_151) a_231)) (if (pair? p_151) - (if (let-values (((a_234) (car p_151))) - (eq? '() a_234)) - (let-values (((a_235) (cdr p_151))) - (eq? '() a_235)) + (if (let-values (((a_232) (car p_151))) + (eq? '() a_232)) + (let-values (((a_233) (cdr p_151))) + (eq? '() a_233)) #f) #f))) #f) @@ -11242,8 +10504,8 @@ (App9.1 (ImportedIdent3.1 'error '#%kernel #t) (list (Quote7.1 "case-lambda: invalid case"))))) - (alt_91))))))))) - loop_59) + (alt_80))))))))) + loop_55) rest-lams_1 rest-lam-names_0) #f))) @@ -11261,11 +10523,11 @@ (list (ILNull16.1) (ILArguments18.1))))) (append1 var-lam-stms_0 (ILReturn26.1 var-lam-val_0)))))) (let-values (((make-lam_0) - (lambda (id_10 lam_5) + (lambda (id_8 lam_4) (begin 'make-lam - (let-values (((stms_40 lam-expr_0) (absyn-expr->il lam_5 #f))) - (begin stms_40 (ILVarDec20.1 id_10 lam-expr_0))))))) + (let-values (((stms_40 lam-expr_0) (absyn-expr->il lam_4 #f))) + (begin stms_40 (ILVarDec20.1 id_8 lam-expr_0))))))) (values (append (map2 make-lam_0 fixed-lam-names_0 fixed-lams_1) @@ -11276,151 +10538,151 @@ (lambda (clam_0) (begin (let-values (((result_11 __10) - (let-values (((pos->vals_32 - pos-pre-inc_30 - pos-next_33 - init_33 - pos-cont?_33 - val-cont?_32 - all-cont?_32) + (let-values (((pos->vals_31 + pos-pre-inc_29 + pos-next_32 + init_32 + pos-cont?_32 + val-cont?_31 + all-cont?_31) (make-sequence '(lam) (CaseLambda-clauses clam_0)))) (begin (void) - ((letrec-values (((for-loop_33) - (lambda (res_9 least-var-arity_0 pos_101) + ((letrec-values (((for-loop_32) + (lambda (res_9 least-var-arity_0 pos_98) (begin 'for-loop - (if (if pos-cont?_33 (pos-cont?_33 pos_101) #t) - (let-values (((lam_6 all-cont?/pos_30) - (let-values (((lam_7) (pos->vals_32 pos_101))) + (if (if pos-cont?_32 (pos-cont?_32 pos_98) #t) + (let-values (((lam_5 all-cont?/pos_29) + (let-values (((lam_6) (pos->vals_31 pos_98))) (values - lam_7 - (if all-cont?_32 - (lambda (pos_102) (all-cont?_32 pos_102 lam_7)) + lam_6 + (if all-cont?_31 + (lambda (pos_99) (all-cont?_31 pos_99 lam_6)) #f)))) - ((pos_103) - (if pos-pre-inc_30 (pos-pre-inc_30 pos_101) pos_101))) - (if (if val-cont?_32 (val-cont?_32 lam_6) #t) + ((pos_100) + (if pos-pre-inc_29 (pos-pre-inc_29 pos_98) pos_98))) + (if (if val-cont?_31 (val-cont?_31 lam_5) #t) (let-values (((res_10 least-var-arity_1) (let-values (((res_11) res_9) ((least-var-arity_2) least-var-arity_0)) (let-values (((res_12 least-var-arity_3) (let-values () - (let-values (((arity_6) - (lambda-arity lam_6))) - (if (if (number? arity_6) + (let-values (((arity_5) + (lambda-arity lam_5))) + (if (if (number? arity_5) (< - arity_6 + arity_5 least-var-arity_2) #f) (let-values () (values res_11 least-var-arity_2)) - (if (number? arity_6) + (if (number? arity_5) (let-values () (values #t least-var-arity_2)) (if (if (arity-at-least? - arity_6) + arity_5) (< (arity-at-least-value - arity_6) + arity_5) least-var-arity_2) #f) (let-values () (values res_11 (arity-at-least-value - arity_6))) + arity_5))) (if (arity-at-least? - arity_6) + arity_5) (let-values () (values #t least-var-arity_2)) (void))))))))) (values res_12 least-var-arity_3))))) - (if (if (if all-cont?/pos_30 (all-cont?/pos_30 pos_103) #t) + (if (if (if all-cont?/pos_29 (all-cont?/pos_29 pos_100) #t) (not #f) #f) - (for-loop_33 res_10 least-var-arity_1 (pos-next_33 pos_103)) + (for-loop_32 res_10 least-var-arity_1 (pos-next_32 pos_100)) (values res_10 least-var-arity_1))) (values res_9 least-var-arity_0))) (values res_9 least-var-arity_0)))))) - for-loop_33) + for-loop_32) #f +inf.0 - init_33))))) + init_32))))) result_11)))) (define-values (get-formals-predicate) - (lambda (c_16) + (lambda (c_14) (begin - (let-values (((frmls_1) (Lambda-formals c_16))) + (let-values (((frmls_1) (Lambda-formals c_14))) (let-values () (if (symbol? frmls_1) (let-values () (lambda (__11) (Quote7.1 #t))) (if (list? frmls_1) (let-values () - (lambda (v_98) - (App9.1 (ImportedIdent3.1 'equal? '#%kernel #t) (list v_98 (Quote7.1 (length frmls_1)))))) + (lambda (v_95) + (App9.1 (ImportedIdent3.1 'equal? '#%kernel #t) (list v_95 (Quote7.1 (length frmls_1)))))) (if (cons? frmls_1) (let-values () - (lambda (v_99) + (lambda (v_96) (App9.1 (ImportedIdent3.1 '>= '#%kernel #t) - (list v_99 (Quote7.1 (sub1 (length (improper->proper frmls_1)))))))) + (list v_96 (Quote7.1 (sub1 (length (improper->proper frmls_1)))))))) (void))))))))) (define-values (resolve-procedure-arities) (lambda (arities_1) (begin (let-values (((arity<_0) - (lambda (a_236 b_30) + (lambda (a_234 b_29) (begin 'arity< (< - (if (arity-at-least? a_236) (arity-at-least-value a_236) a_236) - (if (arity-at-least? b_30) (arity-at-least-value b_30) b_30)))))) + (if (arity-at-least? a_234) (arity-at-least-value a_234) a_234) + (if (arity-at-least? b_29) (arity-at-least-value b_29) b_29)))))) (let-values (((arity-equal?_0) - (lambda (a_237 b_31) - (begin 'arity-equal? (if (not (arity<_0 a_237 b_31)) (not (arity<_0 b_31 a_237)) #f))))) - ((letrec-values (((loop_60) + (lambda (a_235 b_30) + (begin 'arity-equal? (if (not (arity<_0 a_235 b_30)) (not (arity<_0 b_30 a_235)) #f))))) + ((letrec-values (((loop_56) (lambda (arities*_0 result_12) (begin 'loop - (let-values (((v_100) arities*_0)) + (let-values (((v_97) arities*_0)) (let-values () - (let-values (((alt_93) + (let-values (((alt_82) (lambda () (begin 'alt (let-values () - (let-values (((alt_94) + (let-values (((alt_83) (lambda () (begin 'alt (let-values () - (let-values (((alt_95) + (let-values (((alt_84) (lambda () (begin 'alt (error 'match "failed ~e" - v_100))))) - (if (let-values (((p_152) v_100)) + v_97))))) + (if (let-values (((p_152) v_97)) (if (pair? p_152) #t #f)) (let-values (((hd_8 tl_3) (let-values (((p_153) - v_100)) + v_97)) (let-values (((hd_9) - (let-values (((a_238) + (let-values (((a_236) (car p_153))) - a_238)) + a_236)) ((tl_4) (let-values (((d_69) (cdr @@ -11428,7 +10690,7 @@ d_69))) (values hd_9 tl_4))))) (let-values () - (loop_60 + (loop_56 tl_3 (if (if (cons? result_12) (arity-equal?_0 @@ -11437,14 +10699,14 @@ #f) result_12 (cons hd_8 result_12))))) - (alt_95)))))))) - (if (let-values (((p_154) v_100)) (if (pair? p_154) #t #f)) + (alt_84)))))))) + (if (let-values (((p_154) v_97)) (if (pair? p_154) #t #f)) (let-values (((hd_10 tl_5) - (let-values (((p_155) v_100)) + (let-values (((p_155) v_97)) (let-values (((hd_11) - (let-values (((a_239) + (let-values (((a_237) (car p_155))) - a_239)) + a_237)) ((tl_6) (let-values (((d_70) (cdr p_155))) @@ -11458,12 +10720,12 @@ #f) (cons hd_10 (cdr result_12)) (cons hd_10 result_12)))) - (alt_94))) - (alt_94)))))))) - (if (eq? '() v_100) + (alt_83))) + (alt_83)))))))) + (if (eq? '() v_97) (let-values () (let-values () (reverse$1 result_12))) - (alt_93))))))))) - loop_60) + (alt_82))))))))) + loop_56) (let-values (((arities23_0) arities_1) ((arity<24_0) arity<_0)) (sort.1 #f #f arities23_0 arity<24_0)) '())))))) (define-values @@ -11526,22 +10788,22 @@ (begin 'make-curried (reduce-arity/rename_0 - (lambda new-args_1 - (let-values (((args_22) + (lambda new-args_0 + (let-values (((args_19) (incorporate-new-pos-args_0 args-so-far_0 - new-args_1))) + new-args_0))) (if (procedure-arity-includes? f_32 - (length args_22)) - (apply f_32 args_22) - (make-curried_0 args_22)))) + (length args_19)) + (apply f_32 args_19) + (make-curried_0 args_19)))) (length args-so-far_0)))))) (reduce-arity/rename_0 - (lambda args_23 - (if (= (length args_23) max-arity_0) - (apply f_32 args_23) - (make-curried_0 args_23))) + (lambda args_20 + (if (= (length args_20) max-arity_0) + (apply f_32 args_20) + (make-curried_0 args_20))) 0)))) (let-values () (let-values (((incorporate-new-kws+args_0) @@ -11554,15 +10816,15 @@ (#%variable-reference)) (void) (let-values () (check-in-hash ht_8))) - ((letrec-values (((for-loop_34) - (lambda (kws+args_0 i_57) + ((letrec-values (((for-loop_33) + (lambda (kws+args_0 i_56) (begin 'for-loop - (if i_57 + (if i_56 (let-values (((kw_1 arg_4) (hash-iterate-key+value ht_8 - i_57))) + i_56))) (let-values (((kws+args_1) (let-values (((kws+args_2) kws+args_0)) @@ -11589,14 +10851,14 @@ (values kws+args_3))))) (if (not #f) - (for-loop_34 + (for-loop_33 kws+args_1 (hash-iterate-next ht_8 - i_57)) + i_56)) kws+args_1))) kws+args_0))))) - for-loop_34) + for-loop_33) kws+args-so-far_0 (hash-iterate-first ht_8)))))))) (let-values (((reduce-arity/rename_1) @@ -11657,7 +10919,7 @@ (void) (let-values () (check-list lst_18))) - ((letrec-values (((for-loop_35) + ((letrec-values (((for-loop_34) (lambda (result_13 lst_19) (begin @@ -11688,12 +10950,12 @@ (not #f) #f) - (for-loop_35 + (for-loop_34 result_14 rest_5) result_14))) result_13))))) - for-loop_35) + for-loop_34) #t lst_18))) #f) @@ -11740,1593 +11002,19 @@ '#hasheq())))))))))))))))) (new:procedure-rename (make-keyword-procedure - (lambda (kws_25 kw-args_11 f_33 . args_24) + (lambda (kws_25 kw-args_11 f_33 . args_21) (let-values (((curried_0) (do-curry_0 f_33))) (if (null? kws_25) - (if (null? args_24) curried_0 (apply curried_0 args_24)) - (new-keyword-apply curried_0 kws_25 kw-args_11 args_24)))) - (case-lambda ((f_34) (do-curry_0 f_34)) ((f_35 . args_25) (apply (do-curry_0 f_35) args_25)))) + (if (null? args_21) curried_0 (apply curried_0 args_21)) + (new-keyword-apply curried_0 kws_25 kw-args_11 args_21)))) + (case-lambda ((f_34) (do-curry_0 f_34)) ((f_35 . args_22) (apply (do-curry_0 f_35) args_22)))) who_7))))))))) (define-values (curry) (make-curry #f)) (define-values (curryr) (make-curry #t)) - (define-values - (assemble-expr) - (lambda (expr_18 out_0) - (begin - (let-values (((emit_0) (curry fprintf out_0))) - (let-values (((emit-args_0) - (lambda (args_11 sep_1) - (begin - 'emit-args - ((letrec-values (((loop_61) - (lambda (a*_0) - (begin - 'loop - (let-values (((v_43) a*_0)) - (let-values () - (let-values (((alt_96) - (lambda () - (begin - 'alt - (let-values () - (let-values (((alt_0) - (lambda () - (begin - 'alt - (let-values () - (let-values (((alt_26) - (lambda () - (begin - 'alt - (error - 'match - "failed ~e" - v_43))))) - (if (let-values (((p_156) - v_43)) - (if (pair? p_156) - #t - #f)) - (let-values (((a_240 - tl_7) - (let-values (((p_157) - v_43)) - (let-values (((a_241) - (let-values (((a_242) - (car - p_157))) - a_242)) - ((tl_8) - (let-values (((d_71) - (cdr - p_157))) - d_71))) - (values - a_241 - tl_8))))) - (let-values () - (begin - (assemble-expr - a_240 - out_0) - (emit_0 sep_1) - (loop_61 tl_7)))) - (alt_26)))))))) - (if (let-values (((p_158) v_43)) - (if (pair? p_158) - (let-values (((a_243) (cdr p_158))) - (eq? '() a_243)) - #f)) - (let-values (((a_244) - (let-values (((a_245) - (car v_43))) - a_245))) - (let-values () - (assemble-expr a_244 out_0))) - (alt_0)))))))) - (if (eq? '() v_43) - (let-values () (let-values () (void))) - (alt_96))))))))) - loop_61) - args_11))))) - (let-values (((wrap-e?_0) - (lambda (e_26) - (begin - 'wrap-e? - (let-values (((or-part_50) (ILNew? e_26))) - (if or-part_50 - or-part_50 - (let-values (((or-part_51) (ILLambda? e_26))) - (if or-part_51 - or-part_51 - (let-values (((or-part_98) (ILBinaryOp? e_26))) - (if or-part_98 - or-part_98 - (let-values (((or-part_52) (ILObject? e_26))) - (if or-part_52 - or-part_52 - (if (ILValue? e_26) - (if (number? (ILValue-v e_26)) (byte? (ILValue-v e_26)) #f) - #f))))))))))))) - (let-values (((v_101) expr_18)) - (let-values (((vec-v_52) (struct->vector v_101))) - (let-values (((alt_97) - (lambda () - (begin - 'alt - (let-values (((vec-v_53) (struct->vector v_101))) - (let-values (((alt_98) - (lambda () - (begin - 'alt - (let-values (((vec-v_54) (struct->vector v_101))) - (let-values (((alt_99) - (lambda () - (begin - 'alt - (let-values (((vec-v_55) - (struct->vector v_101))) - (let-values (((alt_100) - (lambda () - (begin - 'alt - (let-values (((vec-v_56) - (struct->vector - v_101))) - (let-values (((alt_101) - (lambda () - (begin - 'alt - (let-values (((vec-v_57) - (struct->vector - v_101))) - (let-values (((alt_102) - (lambda () - (begin - 'alt - (let-values (((vec-v_58) - (struct->vector - v_101))) - (let-values (((alt_103) - (lambda () - (begin - 'alt - (let-values (((vec-v_59) - (struct->vector - v_101))) - (let-values (((alt_104) - (lambda () - (begin - 'alt - (let-values (((vec-v_60) - (struct->vector - v_101))) - (let-values (((alt_105) - (lambda () - (begin - 'alt - (let-values (((vec-v_61) - (struct->vector - v_101))) - (let-values (((alt_106) - (lambda () - (begin - 'alt - (let-values (((vec-v_62) - (struct->vector - v_101))) - (let-values (((alt_107) - (lambda () - (begin - 'alt - (let-values (((vec-v_63) - (struct->vector - v_101))) - (let-values (((alt_108) - (lambda () - (begin - 'alt - (let-values (((vec-v_64) - (struct->vector - v_101))) - (let-values (((alt_5) - (lambda () - (begin - 'alt - (let-values (((vec-v_65) - (struct->vector - v_101))) - (let-values (((alt_7) - (lambda () - (begin - 'alt - (let-values (((vec-v_66) - (struct->vector - v_101))) - (let-values (((alt_9) - (lambda () - (begin - 'alt - (if (symbol? - expr_18) - (let-values () - (emit_0 - (~a - (normalize-symbol - expr_18)))) - (let-values () - (error - "unsupported expr" - (void)))))))) - (if (ILThis? - v_101) - (let-values () - (let-values ((() - (vector->values - vec-v_66 - 1))) - (emit_0 - "this"))) - (let-values () - (alt_9))))))))) - (if (ILArguments? - v_101) - (let-values () - (let-values ((() - (vector->values - vec-v_65 - 1))) - (emit_0 - "arguments"))) - (let-values () - (alt_7))))))))) - (if (ILUndefined? - v_101) - (let-values () - (let-values ((() - (vector->values - vec-v_64 - 1))) - (emit_0 - "undefined"))) - (let-values () - (alt_5))))))))) - (if (ILNull? - v_101) - (let-values () - (let-values ((() - (vector->values - vec-v_63 - 1))) - (emit_0 - "null"))) - (let-values () - (alt_108))))))))) - (if (ILValue? - v_101) - (let-values () - (let-values (((v_102) - (vector->values - vec-v_62 - 1))) - (assemble-value - v_102 - out_0))) - (let-values () - (alt_107))))))))) - (if (ILTypeOf? - v_101) - (let-values () - (let-values (((expr_19) - (vector->values - vec-v_61 - 1))) - (begin - (emit_0 - "typeof(") - (assemble-expr - expr_19 - out_0) - (emit_0 - ")")))) - (let-values () - (alt_106))))))))) - (if (ILInstanceOf? - v_101) - (let-values () - (let-values (((expr_20 - type_2) - (vector->values - vec-v_60 - 1))) - (begin - (emit_0 - "(") - (assemble-expr - expr_20 - out_0) - (emit_0 - ") instanceof (") - (assemble-expr - type_2 - out_0) - (emit_0 - ")")))) - (let-values () - (alt_105))))))))) - (if (ILObject? - v_101) - (let-values () - (let-values (((items_8) - (vector->values - vec-v_59 - 1))) - (begin - (emit_0 - "{") - (let-values (((items1_0) - (sequence-length - items_8))) - (begin - (let-values (((pos->vals_33 - pos-pre-inc_31 - pos-next_34 - init_34 - pos-cont?_34 - val-cont?_33 - all-cont?_33) - (make-sequence - '(i) - items_8)) - ((start_14) - 0) - ((end_8) - items1_0) - ((inc_4) - 1)) - (begin - (void) - (if (variable-reference-from-unsafe? - (#%variable-reference)) - (void) - (let-values () - (check-range - start_14 - end_8 - inc_4))) - ((letrec-values (((for-loop_36) - (lambda (pos_104 - pos_105) - (begin - 'for-loop - (if (if (if pos-cont?_34 - (pos-cont?_34 - pos_104) - #t) - (< - pos_105 - end_8) - #f) - (let-values (((i_58 - all-cont?/pos_31) - (let-values (((i_59) - (pos->vals_33 - pos_104))) - (values - i_59 - (if all-cont?_33 - (lambda (pos_106) - (all-cont?_33 - pos_106 - i_59)) - #f)))) - ((pos_107) - (if pos-pre-inc_31 - (pos-pre-inc_31 - pos_104) - pos_104)) - ((items2_0) - pos_105)) - (if (if (if val-cont?_33 - (val-cont?_33 - i_58) - #t) - #t - #f) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (let-values (((last?_3) - (equal? - (sub1 - items1_0) - items2_0))) - (begin - (if (string? - (car - i_58)) - (begin - (emit_0 - "~s" - (car - i_58)) - (emit_0 - ":")) - (emit_0 - "'~a':" - (car - i_58))) - (assemble-expr - (cdr - i_58) - out_0) - (if last?_3 - (void) - (let-values () - (emit_0 - ",")))))) - (values))))) - (values))))) - (if (if (if all-cont?/pos_31 - (all-cont?/pos_31 - pos_107) - #t) - (not - #f) - #f) - (for-loop_36 - (pos-next_34 - pos_107) - (+ - pos_105 - inc_4)) - (values))) - (values))) - (values)))))) - for-loop_36) - init_34 - start_14))) - (void))) - (emit_0 - "}")))) - (let-values () - (alt_104))))))))) - (if (ILArray? - v_101) - (let-values () - (let-values (((items_9) - (vector->values - vec-v_58 - 1))) - (begin - (emit_0 - "[") - (emit-args_0 - items_9 - ",") - (emit_0 - "]")))) - (let-values () - (alt_103))))))))) - (if (ILNew? - v_101) - (let-values () - (let-values (((v_103) - (vector->values - vec-v_57 - 1))) - (begin - (emit_0 - "new ") - (assemble-expr - v_103 - out_0)))) - (let-values () - (alt_102))))))))) - (if (ILIndex? v_101) - (let-values () - (let-values (((e_27 - e0_8) - (vector->values - vec-v_56 - 1))) - (begin - (assemble-expr - e_27 - out_0) - (emit_0 "[") - (assemble-expr - e0_8 - out_0) - (emit_0 - "]")))) - (let-values () - (alt_101))))))))) - (if (ILRef? v_101) - (let-values () - (let-values (((e_28 s_20) - (vector->values - vec-v_55 - 1))) - (begin - (if (wrap-e?_0 e_28) - (let-values () - (begin - (emit_0 "(") - (assemble-expr e_28 out_0) - (emit_0 ")"))) - (let-values () - (assemble-expr e_28 out_0))) - (let-values (((s*_2) - (if (js-identifier? - s_20) - s_20 - (normalize-symbol - s_20)))) - (emit_0 (~a "." s*_2)))))) - (let-values () (alt_100))))))))) - (if (ILBinaryOp? v_101) - (let-values () - (let-values (((oper_3 args_26) - (vector->values vec-v_54 1))) - (let-values (((args4_0) (sequence-length args_26))) - (begin - (let-values (((pos->vals_34 - pos-pre-inc_32 - pos-next_35 - init_35 - pos-cont?_35 - val-cont?_34 - all-cont?_34) - (make-sequence '(arg) args_26)) - ((start_15) 0) - ((end_9) args4_0) - ((inc_5) 1)) - (begin - (void) - (if (variable-reference-from-unsafe? - (#%variable-reference)) - (void) - (let-values () - (check-range start_15 end_9 inc_5))) - ((letrec-values (((for-loop_37) - (lambda (pos_108 pos_109) - (begin - 'for-loop - (if (if (if pos-cont?_35 - (pos-cont?_35 - pos_108) - #t) - (< pos_109 end_9) - #f) - (let-values (((arg_5 - all-cont?/pos_32) - (let-values (((arg_6) - (pos->vals_34 - pos_108))) - (values - arg_6 - (if all-cont?_34 - (lambda (pos_110) - (all-cont?_34 - pos_110 - arg_6)) - #f)))) - ((pos_111) - (if pos-pre-inc_32 - (pos-pre-inc_32 - pos_108) - pos_108)) - ((args5_0) - pos_109)) - (if (if (if val-cont?_34 - (val-cont?_34 - arg_5) - #t) - #t - #f) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (let-values (((last?_4) - (equal? - (sub1 - args4_0) - args5_0))) - (begin - (if (ILBinaryOp? - arg_5) - (let-values () - (emit_0 - "(")) - (void)) - (assemble-expr - arg_5 - out_0) - (if (ILBinaryOp? - arg_5) - (let-values () - (emit_0 - ")")) - (void)) - (if last?_4 - (void) - (let-values () - (emit_0 - (~a - oper_3))))))) - (values))))) - (values))))) - (if (if (if all-cont?/pos_32 - (all-cont?/pos_32 - pos_111) - #t) - (not #f) - #f) - (for-loop_37 - (pos-next_35 - pos_111) - (+ - pos_109 - inc_5)) - (values))) - (values))) - (values)))))) - for-loop_37) - init_35 - start_15))) - (void))))) - (let-values () (alt_99))))))))) - (if (ILApp? v_101) - (let-values () - (let-values (((lam_8 args_27) (vector->values vec-v_53 1))) - (begin - (if (wrap-e?_0 lam_8) (let-values () (emit_0 "(")) (void)) - (assemble-expr lam_8 out_0) - (if (wrap-e?_0 lam_8) (let-values () (emit_0 ")")) (void)) - (emit_0 "(") - (emit-args_0 args_27 ",") - (emit_0 ")")))) - (let-values () (alt_98))))))))) - (if (ILLambda? v_101) - (let-values () - (let-values (((args_28 body_13) (vector->values vec-v_52 1))) - (let-values ((() (begin (emit_0 "function(") (values)))) - (let-values (((args-str_1) - (if (symbol? args_28) - (let-values () (list (~a "..." (normalize-symbol args_28)))) - (if (list? args_28) - (let-values () (map2 normalize-symbol args_28)) - (if (cons? args_28) - (let-values () - (append1 - (map2 normalize-symbol (car args_28)) - (~a "..." (normalize-symbol (cdr args_28))))) - (let-values () - (begin - (displayln args_28) - (error 'assemble-expr "λ must be unchecked by assembler phase")))))))) - (begin - (emit_0 - (let-values (((args-str7_0) args-str_1) ((temp8_0) ", ")) - (string-join.1 - unsafe-undefined - unsafe-undefined - unsafe-undefined - args-str7_0 - temp8_0))) - (emit_0 ") {") - (let-values (((pos->vals_35 - pos-pre-inc_33 - pos-next_36 - init_36 - pos-cont?_36 - val-cont?_35 - all-cont?_35) - (make-sequence '(s) body_13))) - (begin - (void) - ((letrec-values (((for-loop_38) - (lambda (pos_112) - (begin - 'for-loop - (if (if pos-cont?_36 (pos-cont?_36 pos_112) #t) - (let-values (((s_21 all-cont?/pos_33) - (let-values (((s_22) (pos->vals_35 pos_112))) - (values - s_22 - (if all-cont?_35 - (lambda (pos_113) - (all-cont?_35 pos_113 s_22)) - #f)))) - ((pos_114) - (if pos-pre-inc_33 - (pos-pre-inc_33 pos_112) - pos_112))) - (if (if val-cont?_35 (val-cont?_35 s_21) #t) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (assemble-statement - s_21 - out_0)) - (values))))) - (values))))) - (if (if (if all-cont?/pos_33 - (all-cont?/pos_33 pos_114) - #t) - (not #f) - #f) - (for-loop_38 (pos-next_36 pos_114)) - (values))) - (values))) - (values)))))) - for-loop_38) - init_36))) - (void) - (emit_0 "}")))))) - (let-values () (alt_97)))))))))))) - (define-values - (assemble-statement*) - (lambda (stmt*_0 out_1) - (begin - (begin - (let-values (((pos->vals_36 pos-pre-inc_34 pos-next_37 init_37 pos-cont?_37 val-cont?_36 all-cont?_36) - (make-sequence '(s) stmt*_0))) - (begin - (void) - ((letrec-values (((for-loop_39) - (lambda (pos_115) - (begin - 'for-loop - (if (if pos-cont?_37 (pos-cont?_37 pos_115) #t) - (let-values (((s_23 all-cont?/pos_34) - (let-values (((s_24) (pos->vals_36 pos_115))) - (values - s_24 - (if all-cont?_36 - (lambda (pos_116) (all-cont?_36 pos_116 s_24)) - #f)))) - ((pos_117) (if pos-pre-inc_34 (pos-pre-inc_34 pos_115) pos_115))) - (if (if val-cont?_36 (val-cont?_36 s_23) #t) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (assemble-statement s_23 out_1)) - (values))))) - (values))))) - (if (if (if all-cont?/pos_34 (all-cont?/pos_34 pos_117) #t) (not #f) #f) - (for-loop_39 (pos-next_37 pos_117)) - (values))) - (values))) - (values)))))) - for-loop_39) - init_37))) - (void))))) - (define-values - (assemble-statement) - (lambda (stmt_1 out_2) - (begin - (let-values (((emit_1) (curry fprintf out_2))) - (let-values (((v_104) stmt_1)) - (let-values (((vec-v_42) (struct->vector v_104))) - (let-values (((alt_62) - (lambda () - (begin - 'alt - (let-values (((vec-v_43) (struct->vector v_104))) - (let-values (((alt_63) - (lambda () - (begin - 'alt - (let-values (((vec-v_44) (struct->vector v_104))) - (let-values (((alt_64) - (lambda () - (begin - 'alt - (let-values (((vec-v_45) (struct->vector v_104))) - (let-values (((alt_65) - (lambda () - (begin - 'alt - (let-values (((vec-v_46) - (struct->vector - v_104))) - (let-values (((alt_66) - (lambda () - (begin - 'alt - (let-values (((vec-v_47) - (struct->vector - v_104))) - (let-values (((alt_67) - (lambda () - (begin - 'alt - (let-values (((vec-v_48) - (struct->vector - v_104))) - (let-values (((alt_68) - (lambda () - (begin - 'alt - (let-values (((vec-v_67) - (struct->vector - v_104))) - (let-values (((alt_109) - (lambda () - (begin - 'alt - (let-values (((vec-v_68) - (struct->vector - v_104))) - (let-values (((alt_110) - (lambda () - (begin - 'alt - (let-values (((vec-v_69) - (struct->vector - v_104))) - (let-values (((alt_111) - (lambda () - (begin - 'alt - (let-values (((vec-v_70) - (struct->vector - v_104))) - (let-values (((alt_112) - (lambda () - (begin - 'alt - (let-values (((vec-v_71) - (struct->vector - v_104))) - (let-values (((alt_113) - (lambda () - (begin - 'alt - (if (ILExpr? - stmt_1) - (let-values () - (begin - (if (ILLambda? - stmt_1) - (let-values () - (emit_1 - "(")) - (void)) - (assemble-expr - stmt_1 - out_2) - (if (ILLambda? - stmt_1) - (let-values () - (emit_1 - ")")) - (void)) - (emit_1 - ";"))) - (error - 'match - "failed ~e" - v_104)))))) - (if (ILValue? - v_104) - (let-values () - (let-values (((v_105) - (vector->values - vec-v_71 - 1))) - (if (void? - v_105) - (let-values () - (void)) - (alt_113)))) - (let-values () - (alt_113))))))))) - (if (ILLabel? - v_104) - (let-values () - (let-values (((name_9) - (vector->values - vec-v_70 - 1))) - (emit_1 - "~a:" - (normalize-symbol - name_9)))) - (let-values () - (alt_112))))))))) - (if (ILExnHandler? - v_104) - (let-values () - (let-values (((try_1 - error_1 - catch_1 - finally_1) - (vector->values - vec-v_69 - 1))) - (begin - (emit_1 - "try {") - (assemble-statement* - try_1 - out_2) - (emit_1 - "}") - (if (cons? - catch_1) - (let-values () - (begin - (emit_1 - (~a - " catch (" - (normalize-symbol - error_1) - ") {")) - (assemble-statement* - catch_1 - out_2) - (emit_1 - "}"))) - (void)) - (if (cons? - finally_1) - (let-values () - (begin - (emit_1 - (~a - " finally {")) - (assemble-statement* - finally_1 - out_2) - (emit_1 - "}"))) - (void))))) - (let-values () - (alt_111))))))))) - (if (ILThrow? - v_104) - (let-values () - (let-values (((expr_21) - (vector->values - vec-v_68 - 1))) - (begin - (emit_1 - "throw ") - (assemble-expr - expr_21 - out_2) - (emit_1 - ";")))) - (let-values () - (alt_110))))))))) - (if (ILContinue? - v_104) - (let-values () - (let-values (((lab_0) - (vector->values - vec-v_67 - 1))) - (begin - (emit_1 - "continue") - (if lab_0 - (let-values () - (emit_1 - " ~a" - (normalize-symbol - lab_0))) - (void)) - (emit_1 - ";")))) - (let-values () - (alt_109))))))))) - (if (ILAssign? - v_104) - (let-values () - (let-values (((lv_5 - rv_9) - (vector->values - vec-v_48 - 1))) - (begin - (assemble-expr - lv_5 - out_2) - (emit_1 - " = ") - (assemble-expr - rv_9 - out_2) - (emit_1 - ";")))) - (let-values () - (alt_68))))))))) - (if (ILWhile? - v_104) - (let-values () - (let-values (((condition_1 - body_14) - (vector->values - vec-v_47 - 1))) - (begin - (emit_1 - "while (") - (assemble-expr - condition_1 - out_2) - (emit_1 - "){") - (let-values (((pos->vals_37 - pos-pre-inc_35 - pos-next_38 - init_38 - pos-cont?_38 - val-cont?_37 - all-cont?_37) - (make-sequence - '(s) - body_14))) - (begin - (void) - ((letrec-values (((for-loop_40) - (lambda (pos_118) - (begin - 'for-loop - (if (if pos-cont?_38 - (pos-cont?_38 - pos_118) - #t) - (let-values (((s_25 - all-cont?/pos_35) - (let-values (((s_26) - (pos->vals_37 - pos_118))) - (values - s_26 - (if all-cont?_37 - (lambda (pos_119) - (all-cont?_37 - pos_119 - s_26)) - #f)))) - ((pos_120) - (if pos-pre-inc_35 - (pos-pre-inc_35 - pos_118) - pos_118))) - (if (if val-cont?_37 - (val-cont?_37 - s_25) - #t) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (assemble-statement - s_25 - out_2)) - (values))))) - (values))))) - (if (if (if all-cont?/pos_35 - (all-cont?/pos_35 - pos_120) - #t) - (not - #f) - #f) - (for-loop_40 - (pos-next_38 - pos_120)) - (values))) - (values))) - (values)))))) - for-loop_40) - init_38))) - (void) - (emit_1 - "}")))) - (let-values () - (alt_67))))))))) - (if (ILIf*? v_104) - (let-values () - (let-values (((clauses_3) - (vector->values - vec-v_46 - 1))) - ((letrec-values (((loop_10) - (lambda (clauses_4) - (begin - 'loop - (let-values (((hd_12 - ctl_0) - (let-values (((v_106) - clauses_4)) - (let-values (((v_107) - v_106)) - (let-values () - (let-values (((alt_114) - (lambda () - (begin - 'alt - (error - 'match - "failed ~e" - v_107))))) - (if (let-values (((p_159) - v_107)) - (if (pair? - p_159) - #t - #f)) - (let-values (((hd_13 - ctl_1) - (let-values (((p_160) - v_107)) - (let-values (((hd_14) - (let-values (((a_100) - (car - p_160))) - a_100)) - ((ctl_2) - (let-values (((d_72) - (cdr - p_160))) - d_72))) - (values - hd_14 - ctl_2))))) - (let-values () - (values - hd_13 - ctl_1))) - (alt_114)))))))) - (let-values (((v_78) - hd_12)) - (let-values (((vec-v_72) - (struct->vector - v_78))) - (let-values (((alt_115) - (lambda () - (begin - 'alt - (let-values (((vec-v_73) - (struct->vector - v_78))) - (let-values (((alt_116) - (lambda () - (begin - 'alt - (error - 'match - "failed ~e" - v_78))))) - (if (IfClause? - v_78) - (let-values () - (let-values (((pred_2 - body_15) - (vector->values - vec-v_73 - 1))) - (if (ILExpr? - pred_2) - (let-values () - (begin - (emit_1 - "if (") - (assemble-expr - pred_2 - out_2) - (emit_1 - ") {") - (assemble-statement* - body_15 - out_2) - (emit_1 - "}") - (if (cons? - ctl_0) - (let-values () - (begin - (emit_1 - " else ") - (loop_10 - ctl_0))) - (void)))) - (alt_116)))) - (let-values () - (alt_116))))))))) - (if (IfClause? - v_78) - (let-values () - (let-values (((cnd_0 - body_16) - (vector->values - vec-v_72 - 1))) - (if (not - cnd_0) - (let-values () - (begin - (emit_1 - "{") - (assemble-statement* - body_16 - out_2) - (emit_1 - "}"))) - (alt_115)))) - (let-values () - (alt_115))))))))))) - loop_10) - clauses_3))) - (let-values () - (alt_66))))))))) - (if (ILIf? v_104) - (let-values () - (let-values (((expr_22 - t-branch_2 - f-branch_2) - (vector->values - vec-v_45 - 1))) - (begin - (emit_1 "if (") - (assemble-expr expr_22 out_2) - (emit_1 ") {") - (assemble-statement* t-branch_2 out_2) - (emit_1 "} else {") - (assemble-statement* f-branch_2 out_2) - (emit_1 "}")))) - (let-values () (alt_65))))))))) - (if (ILReturn? v_104) - (let-values () - (let-values (((expr_23) (vector->values vec-v_44 1))) - (begin - (emit_1 "return ") - (assemble-expr expr_23 out_2) - (emit_1 ";")))) - (let-values () (alt_64))))))))) - (if (ILLetDec? v_104) - (let-values () - (let-values (((id_11 expr_24) (vector->values vec-v_43 1))) - (begin - (emit_1 (~a "let " (normalize-symbol id_11))) - (if expr_24 - (let-values () (begin (emit_1 " = ") (assemble-expr expr_24 out_2))) - (void)) - (emit_1 ";")))) - (let-values () (alt_63))))))))) - (if (ILVarDec? v_104) - (let-values () - (let-values (((id_12 expr_25) (vector->values vec-v_42 1))) - (begin - (emit_1 (~a "var " (normalize-symbol id_12))) - (if expr_25 (let-values () (begin (emit_1 " = ") (assemble-expr expr_25 out_2))) (void)) - (emit_1 ";")))) - (let-values () (alt_62)))))))))) - (define-values - (assemble-linklet) - (lambda (lnk_1 out_3) - (begin - (let-values (((imports_4 exports_7 body_0) - (let-values (((v_108) lnk_1)) - (let-values (((v_109) v_108)) - (let-values (((vec-v_74) (struct->vector v_109))) - (let-values (((alt_117) (lambda () (begin 'alt (error 'match "failed ~e" v_109))))) - (if (ILLinklet? v_109) - (let-values () - (let-values (((imports_5 exports_8 body_17) (vector->values vec-v_74 1))) - (values imports_5 exports_8 body_17))) - (let-values () (alt_117))))))))) - (begin - (log-rjs-info "[assemble linklet]") - (assemble-requires* imports_4 out_3) - (let-values (((pos->vals_38 pos-pre-inc_36 pos-next_39 init_39 pos-cont?_39 val-cont?_38 all-cont?_38) - (make-sequence '(b) body_0))) - (begin - (void) - ((letrec-values (((for-loop_41) - (lambda (pos_121) - (begin - 'for-loop - (if (if pos-cont?_39 (pos-cont?_39 pos_121) #t) - (let-values (((b_32 all-cont?/pos_36) - (let-values (((b_33) (pos->vals_38 pos_121))) - (values - b_33 - (if all-cont?_38 - (lambda (pos_122) (all-cont?_38 pos_122 b_33)) - #f)))) - ((pos_123) (if pos-pre-inc_36 (pos-pre-inc_36 pos_121) pos_121))) - (if (if val-cont?_38 (val-cont?_38 b_32) #t) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (assemble-statement b_32 out_3)) - (values))))) - (values))))) - (if (if (if all-cont?/pos_36 (all-cont?/pos_36 pos_123) #t) (not #f) #f) - (for-loop_41 (pos-next_39 pos_123)) - (values))) - (values))) - (values)))))) - for-loop_41) - init_39))) - (void) - (assemble-provides* exports_7 out_3)))))) - (define-values - (assemble-requires*) - (lambda (reqs*_0 out_4) - (begin - (let-values (((emit_2) (curry fprintf out_4))) - (begin - (emit_2 "import * as ~a from '~a';" (jsruntime-core-module) "../runtime/core.js") - (let-values (((pos->vals_39 pos-pre-inc_37 pos-next_40 init_40 pos-cont?_40 val-cont?_39 all-cont?_39) - (make-sequence '(req) reqs*_0))) - (begin - (void) - ((letrec-values (((for-loop_42) - (lambda (pos_124) - (begin - 'for-loop - (if (if pos-cont?_40 (pos-cont?_40 pos_124) #t) - (let-values (((req_11 all-cont?/pos_37) - (let-values (((req_12) (pos->vals_39 pos_124))) - (values - req_12 - (if all-cont?_39 - (lambda (pos_125) (all-cont?_39 pos_125 req_12)) - #f)))) - ((pos_126) (if pos-pre-inc_37 (pos-pre-inc_37 pos_124) pos_124))) - (if (if val-cont?_39 (val-cont?_39 req_11) #t) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (let-values (((mod_7 - obj-name_0 - import-sym_0) - (let-values (((v_110) - req_11)) - (let-values (((v_111) - v_110)) - (let-values (((vec-v_75) - (struct->vector - v_111))) - (let-values (((alt_80) - (lambda () - (begin - 'alt - (error - 'match - "failed ~e" - v_111))))) - (if (ILRequire? - v_111) - (let-values () - (let-values (((mod_8 - obj-name_1 - import-sym_1) - (vector->values - vec-v_75 - 1))) - (values - mod_8 - obj-name_1 - import-sym_1))) - (let-values () - (alt_80))))))))) - (let-values (((import-string_0) - (let-values (((tmp_5) - import-sym_0)) - (if (equal? - tmp_5 - 'default) - (let-values () - (format - "import ~a from \"~a\";" - (normalize-symbol - obj-name_0) - mod_7)) - (if (equal? tmp_5 '*) - (let-values () - (format - "import * as ~a from \"~a\";" - (normalize-symbol - obj-name_0) - mod_7)) - (let-values () - (error - 'assemble-requires* - "invalid require mode"))))))) - (emit_2 import-string_0)))) - (values))))) - (values))))) - (if (if (if all-cont?/pos_37 (all-cont?/pos_37 pos_126) #t) (not #f) #f) - (for-loop_42 (pos-next_40 pos_126)) - (values))) - (values))) - (values)))))) - for-loop_42) - init_40))) - (void)))))) - (define-values - (assemble-provides*) - (lambda (p*_0 out_5) - (begin - (let-values (((emit_3) (curry fprintf out_5))) - (if (empty? p*_0) - (void) - (let-values () - (begin - (emit_3 "export { ") - (let-values (((p*14_0) (sequence-length p*_0))) - (begin - (let-values (((pos->vals_40 pos-pre-inc_38 pos-next_41 init_41 pos-cont?_41 val-cont?_40 all-cont?_40) - (make-sequence '(p) p*_0)) - ((start_16) 0) - ((end_10) p*14_0) - ((inc_6) 1)) - (begin - (void) - (if (variable-reference-from-unsafe? (#%variable-reference)) - (void) - (let-values () (check-range start_16 end_10 inc_6))) - ((letrec-values (((for-loop_43) - (lambda (pos_127 pos_128) - (begin - 'for-loop - (if (if (if pos-cont?_41 (pos-cont?_41 pos_127) #t) (< pos_128 end_10) #f) - (let-values (((p_161 all-cont?/pos_38) - (let-values (((p_67) (pos->vals_40 pos_127))) - (values - p_67 - (if all-cont?_40 - (lambda (pos_129) (all-cont?_40 pos_129 p_67)) - #f)))) - ((pos_130) - (if pos-pre-inc_38 (pos-pre-inc_38 pos_127) pos_127)) - ((p*15_0) pos_128)) - (if (if (if val-cont?_40 (val-cont?_40 p_161) #t) #t #f) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (let-values (((last?_5) - (equal? - (sub1 p*14_0) - p*15_0))) - (begin - (let-values (((v_112) p_161)) - (let-values (((vec-v_76) - (struct->vector - v_112))) - (let-values (((alt_118) - (lambda () - (begin - 'alt - (let-values (((vec-v_77) - (struct->vector - v_112))) - (let-values (((alt_119) - (lambda () - (begin - 'alt - (error - 'match - "failed ~e" - v_112))))) - (if (RenamedProvide? - v_112) - (let-values () - (let-values (((local-id_0 - exported-id_0) - (vector->values - vec-v_77 - 1))) - (emit_3 - "~a as ~a" - (normalize-symbol - local-id_0) - (normalize-symbol - exported-id_0)))) - (let-values () - (alt_119))))))))) - (if (SimpleProvide? - v_112) - (let-values () - (let-values (((id_13) - (vector->values - vec-v_76 - 1))) - (emit_3 - (~a - (normalize-symbol - id_13))))) - (let-values () - (alt_118)))))) - (if last?_5 - (void) - (let-values () - (emit_3 ",")))))) - (values))))) - (values))))) - (if (if (if all-cont?/pos_38 (all-cont?/pos_38 pos_130) #t) - (not #f) - #f) - (for-loop_43 (pos-next_41 pos_130) (+ pos_128 inc_6)) - (values))) - (values))) - (values)))))) - for-loop_43) - init_41 - start_16))) - (void))) - (emit_3 " };")))))))) - (define-values - (assemble-value) - (lambda (v_113 out_6) - (begin - (let-values (((emit_4) (curry fprintf out_6))) - (if (string? v_113) - (let-values () (emit_4 "~s" v_113)) - (if (number? v_113) - (let-values () - (if (eq? +inf.0 v_113) - (let-values () (emit_4 "Infinity")) - (if (eq? -inf.0 v_113) - (let-values () (emit_4 "-Infinity")) - (if (eq? +nan.0 v_113) - (let-values () (emit_4 "NaN")) - (if (eq? +nan.0 v_113) - (let-values () (emit_4 "NaN")) - (if (single-flonum? v_113) - (let-values () (emit_4 (~a (exact->inexact (inexact->exact v_113))))) - (let-values () (emit_4 (~a v_113))))))))) - (if (boolean? v_113) - (let-values () (emit_4 (if v_113 "true" "false"))) - (if (void? v_113) - (let-values () (emit_4 "null")) - (let-values () (error "Unexpected value: " v_113)))))))))) (define-values (1/compile-linklet) (lambda (sexp_1) - (begin 'compile-linklet (absyn-linklet->il (parse-linklet sexp_1 "/home/gamburgm/racketscript/expander.rkt"))))) - (define-values (1/linklet-import-variables) (lambda (lnk_2) (begin 'linklet-import-variables (Linklet-imports lnk_2)))) + (begin 'compile-linklet (absyn-linklet->il (parse-linklet sexp_1 "/home/gamburgm/racketscript/racketscript.rkt"))))) (define-values - (everything) - (lambda (sexp_2) - (begin - (let-values (((output-str_0) (open-output-string))) - (begin - (assemble-linklet - (insert-arity-checks (absyn-linklet->il (parse-linklet sexp_2 "/home/gamburgm/racketscript/expander.rkt"))) - output-str_0) - (get-output-string output-str_0))))))) + (1/linklet-import-variables) + (lambda (lnk_1) (begin 'linklet-import-variables (Linklet-imports lnk_1))))) From 73c51a26a2f8be0d73805aca9b5acb57580773c3 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 14:45:41 -0400 Subject: [PATCH 163/170] include javascript linklet api --- .../racketscript/compiler/runtime/core/racketscript.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js b/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js new file mode 100644 index 00000000..1234e931 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js @@ -0,0 +1 @@ +import * as $rjs_core from '../runtime/core.js';import * as M0 from "../runtime/kernel.rkt.js";var bad_list$1 = function(who_0, orig_l_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("bad-list");return M0.raise_arguments_error(who_0,$rjs_core.UString.make("not a proper list"),$rjs_core.UString.make("in"),orig_l_0);};var member_0 = function(v_0, orig_l_1, eql_p_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("member");var loop_0 = function(ls_0, turtle_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_0)!==false) {var if_res7 = false;} else {if (M0.not(M0.pair_p(ls_0))!==false) {var if_res6 = bad_list$1($rjs_core.PrimitiveSymbol.make("member"),orig_l_1);} else {if (eql_p_0(v_0,M0.car(ls_0))!==false) {var if_res5 = ls_0;} else {var ls_1 = M0.cdr(ls_0);if (M0.null_p(ls_1)!==false) {var if_res4 = false;} else {var or_part_0 = M0.not(M0.pair_p(ls_1));if (or_part_0!==false) {var if_res1 = or_part_0;} else {var if_res1 = M0.eq_p(ls_1,turtle_0);}if (if_res1!==false) {var if_res3 = bad_list$1($rjs_core.PrimitiveSymbol.make("member"),orig_l_1);} else {if (eql_p_0(v_0,M0.car(ls_1))!==false) {var if_res2 = ls_1;} else {var if_res2 = loop_0(M0.cdr(ls_1),M0.cdr(turtle_0));}var if_res3 = if_res2;}var if_res4 = if_res3;}var if_res5 = if_res4;}var if_res6 = if_res5;}var if_res7 = if_res6;}return if_res7;};return loop_0(orig_l_1,orig_l_1);};var cl8 = function(v_1, ls_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return member_0(v_1,ls_2,M0.equal_p);};var cl9 = function(v_2, ls_3, eql_p_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(eql_p_1)!==false) {var if_res11 = M0.procedure_arity_includes_p(eql_p_1,2);} else {var if_res11 = false;}if (if_res11!==false) {var if_res12 = M0.rvoid();} else {var if_res12 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("member"),$rjs_core.UString.make("(procedure-arity-includes/c 2)"),M0.eq_p);}if_res12;return member_0(v_2,ls_3,eql_p_1);};var member = $rjs_core.attachProcedureArity(function() {var fixed_lam10 = {'2':cl8,'3':cl9}[arguments.length];if (fixed_lam10!==undefined) {return fixed_lam10.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var not_there = M0.gensym();var hash_has_key_p = function(ht_0, key_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(ht_0)!==false) {var if_res13 = M0.rvoid();} else {var if_res13 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash-has-key?"),$rjs_core.UString.make("hash?"),0,ht_0,key_0);}if_res13;return M0.not(M0.eq_p(not_there,M0.hash_ref(ht_0,key_0,not_there)));};var hash_ref_bang_ = function(ht_1, key_1, new_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(ht_1)!==false) {var if_res14 = M0.not(M0.immutable_p(ht_1));} else {var if_res14 = false;}if (if_res14!==false) {var if_res15 = M0.rvoid();} else {var if_res15 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash-ref!"),$rjs_core.UString.make("(and/c hash? (not/c immutable?))"),0,ht_1,key_1,new_0);}if_res15;var v_3 = M0.hash_ref(ht_1,key_1,not_there);if (M0.eq_p(not_there,v_3)!==false) {if (M0.procedure_p(new_0)!==false) {var if_res16 = new_0();} else {var if_res16 = new_0;}var n_0 = if_res16;M0.hash_set_bang_(ht_1,key_1,n_0);var if_res17 = n_0;} else {var if_res17 = v_3;}return if_res17;};var cl18 = function(v_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return displayln(v_4,M0.current_output_port());};var cl19 = function(v_5, p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.output_port_p(p_0)!==false) {var if_res21 = M0.rvoid();} else {var if_res21 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("displayln"),$rjs_core.UString.make("output-port?"),1,v_5,p_0);}if_res21;M0.display(v_5,p_0);return M0.newline(p_0);};var displayln = $rjs_core.attachProcedureArity(function() {var fixed_lam20 = {'1':cl18,'2':cl19}[arguments.length];if (fixed_lam20!==undefined) {return fixed_lam20.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var let_result22 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("keyword-impersonator"));var prop_keyword_impersonator = let_result22.getAt(0);var keyword_impersonator_p = let_result22.getAt(1);var keyword_impersonator_ref = let_result22.getAt(2);var keyword_procedure_impersonator_of = function(v_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_impersonator_p(v_6)!==false) {var if_res23 = keyword_impersonator_ref(v_6)(v_6);} else {var if_res23 = false;}return if_res23;};var let_result24 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("keyword-procedure"),false,4,0,false,M0.list(M0.cons(M0.prop_checked_procedure,true),M0.cons(M0.prop_impersonator_of,keyword_procedure_impersonator_of)),M0.current_inspector(),false,$rjs_core.Pair.makeList(0,1,2,3));var struct_keyword_procedure = let_result24.getAt(0);var mk_kw_proc = let_result24.getAt(1);var keyword_procedure_p = let_result24.getAt(2);var keyword_procedure_ref = let_result24.getAt(3);var keyword_procedure_set_bang_ = let_result24.getAt(4);var keyword_procedure_checker = M0.make_struct_field_accessor(keyword_procedure_ref,0);var keyword_procedure_proc = M0.make_struct_field_accessor(keyword_procedure_ref,1);var keyword_procedure_required = M0.make_struct_field_accessor(keyword_procedure_ref,2);var keyword_procedure_allowed = M0.make_struct_field_accessor(keyword_procedure_ref,3);var let_result25 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,0,0,false,M0.list(M0.cons(M0.prop_method_arity_error,true)));var struct_keyword_method = let_result25.getAt(0);var make_km = let_result25.getAt(1);var keyword_method_p = let_result25.getAt(2);var km_ref = let_result25.getAt(3);var km_set_bang_ = let_result25.getAt(4);var generate_arity_string = function(proc_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result26 = procedure_keywords(proc_0);var req_0 = let_result26.getAt(0);var allowed_0 = let_result26.getAt(1);var a_0 = M0.procedure_arity(proc_0);var keywords_desc_0 = function(opt_0, req_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("keywords-desc");var temp32 = $rjs_core.UString.make("~a with keyword~a~a");if (M0.null_p(M0.cdr(req_1))!==false) {var if_res31 = M0.format($rjs_core.UString.make("an ~aargument"),opt_0);} else {var if_res31 = M0.format($rjs_core.UString.make("~aarguments"),opt_0);}if (M0.null_p(M0.cdr(req_1))!==false) {var if_res30 = $rjs_core.UString.make("");} else {var if_res30 = $rjs_core.UString.make("s");}var tmp_0 = M0.length(req_1);if (M0.equal_p(tmp_0,1)!==false) {var if_res29 = M0.format($rjs_core.UString.make(" ~a"),M0.car(req_1));} else {if (M0.equal_p(tmp_0,2)!==false) {var if_res28 = M0.format($rjs_core.UString.make(" ~a and ~a"),M0.car(req_1),M0.cadr(req_1));} else {var loop_1 = function(req_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(req_2))!==false) {var if_res27 = M0.format($rjs_core.UString.make(" and ~a"),M0.car(req_2));} else {var if_res27 = M0.format($rjs_core.UString.make(" ~a,~a"),M0.car(req_2),loop_1(M0.cdr(req_2)));}return if_res27;};var if_res28 = loop_1(req_1);}var if_res29 = if_res28;}return M0.format(temp32,if_res31,if_res30,if_res29);};var method_adjust_0 = function(a_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("method-adjust");var or_part_1 = okm_p(proc_0);if (or_part_1!==false) {var if_res33 = or_part_1;} else {var if_res33 = keyword_method_p(proc_0);}if (if_res33!==false) {if (M0.zero_p(a_1)!==false) {var if_res34 = 0;} else {var if_res34 = M0.sub1(a_1);}var if_res35 = if_res34;} else {var if_res35 = a_1;}return if_res35;};if (M0.number_p(a_0)!==false) {var a_2 = method_adjust_0(a_0);var if_res42 = M0.format($rjs_core.UString.make("~a"),a_2);} else {if (M0.arity_at_least_p(a_0)!==false) {var a_3 = method_adjust_0(M0.arity_at_least_value(a_0));var if_res41 = M0.format($rjs_core.UString.make("at least ~a"),a_3);} else {var if_res41 = $rjs_core.UString.make("a different number");}var if_res42 = if_res41;}if (M0.null_p(req_0)!==false) {var if_res40 = $rjs_core.UString.make("");} else {var if_res40 = M0.format($rjs_core.UString.make(" plus ~a"),keywords_desc_0($rjs_core.UString.make(""),req_0));}if (allowed_0!==false) {var loop_2 = function(req_3, allowed_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(req_3)!==false) {var if_res37 = allowed_1;} else {if (M0.eq_p(M0.car(req_3),M0.car(allowed_1))!==false) {var if_res36 = loop_2(M0.cdr(req_3),M0.cdr(allowed_1));} else {var if_res36 = M0.cons(M0.car(allowed_1),loop_2(req_3,M0.cdr(allowed_1)));}var if_res37 = if_res36;}return if_res37;};var others_0 = loop_2(req_0,allowed_0);if (M0.null_p(others_0)!==false) {var if_res38 = $rjs_core.UString.make("");} else {var if_res38 = M0.format($rjs_core.UString.make(" plus ~a"),keywords_desc_0($rjs_core.UString.make("optional "),others_0));}var if_res39 = if_res38;} else {var if_res39 = $rjs_core.UString.make(" plus arbitrary keyword arguments");}return M0.string_append(if_res42,if_res40,if_res39);};var let_result43 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,1,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string)),M0.current_inspector(),0);var struct_okp = let_result43.getAt(0);var make_optional_keyword_procedure = let_result43.getAt(1);var okp_p = let_result43.getAt(2);var okp_ref = let_result43.getAt(3);var okp_set_bang_ = let_result43.getAt(4);var let_result44 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_okp,0,0,false,M0.list(M0.cons(M0.prop_method_arity_error,true)));var struct_okm = let_result44.getAt(0);var make_optional_keyword_method = let_result44.getAt(1);var okm_p = let_result44.getAt(2);var okm_ref = let_result44.getAt(3);var okm_set_bang_ = let_result44.getAt(4);var let_result45 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("named-keyword-procedure"));var prop_named_keyword_procedure = let_result45.getAt(0);var named_keyword_procedure_p = let_result45.getAt(1);var keyword_procedure_name_plus_fail = let_result45.getAt(2);var let_result47 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("procedure"),function(v_7, info_l_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_integer_p(v_7)!==false) {var if_res46 = M0.make_struct_field_accessor(M0.list_ref(info_l_0,3),v_7);} else {var if_res46 = false;}return if_res46;});var prop_procedure_accessor = let_result47.getAt(0);var procedure_accessor_p = let_result47.getAt(1);var procedure_accessor_ref = let_result47.getAt(2);var let_result48 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("procedure"),false,M0.list(M0.cons(M0.prop_procedure,M0.values),M0.cons(prop_procedure_accessor,M0.values)),true);var new_prop_procedure = let_result48.getAt(0);var new_procedure_p = let_result48.getAt(1);var new_procedure_ref = let_result48.getAt(2);var let_result49 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,1,0,false,M0.list(M0.cons(prop_keyword_impersonator,function(v_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return kpp_ref(v_8,0);})));var struct_keyword_procedure_impersonator = let_result49.getAt(0);var make_kpp = let_result49.getAt(1);var keyword_procedure_impersonator_p = let_result49.getAt(2);var kpp_ref = let_result49.getAt(3);var kpp_set_bang_ = let_result49.getAt(4);var let_result50 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method,1,0,false,M0.list(M0.cons(prop_keyword_impersonator,function(v_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return kmp_ref(v_9,0);})));var struct_keyword_method_impersonator = let_result50.getAt(0);var make_kmp = let_result50.getAt(1);var keyword_method_impersonator_p = let_result50.getAt(2);var kmp_ref = let_result50.getAt(3);var kmp_set_bang_ = let_result50.getAt(4);var let_result51 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_procedure_by_arity_error = let_result51.getAt(0);var make_kp_by_ae = let_result51.getAt(1);var kp_by_ae_p = let_result51.getAt(2);var kp_by_ae_ref = let_result51.getAt(3);var kp_by_ae_set_bang_ = let_result51.getAt(4);var let_result52 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_method_by_arity_error = let_result52.getAt(0);var make_km_by_ae = let_result52.getAt(1);var km_by_ae_p = let_result52.getAt(2);var km_by_ae_ref = let_result52.getAt(3);var km_by_ae_set_bang_ = let_result52.getAt(4);var let_result53 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure_impersonator,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_procedure_impersonator_by_arity_error = let_result53.getAt(0);var make_kpi_by_ae = let_result53.getAt(1);var kpi_by_ae_p = let_result53.getAt(2);var kpi_by_ae_ref = let_result53.getAt(3);var kpi_by_ae_set_bang_ = let_result53.getAt(4);var let_result54 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method_impersonator,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_method_impersonator_by_arity_error = let_result54.getAt(0);var make_kmi_by_ae = let_result54.getAt(1);var kmi_by_ae_p = let_result54.getAt(2);var kmi_by_ae_ref = let_result54.getAt(3);var kmi_by_ae_set_bang_ = let_result54.getAt(4);var make_required = function(name_0, realm_0, fail_proc_0, method_p_0, impersonator_p_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_2 = name_0;if (or_part_2!==false) {var if_res58 = or_part_2;} else {var if_res58 = $rjs_core.PrimitiveSymbol.make("unknown");}if (impersonator_p_0!==false) {if (method_p_0!==false) {var if_res55 = struct_keyword_method_impersonator_by_arity_error;} else {var if_res55 = struct_keyword_procedure_impersonator_by_arity_error;}var if_res57 = if_res55;} else {if (method_p_0!==false) {var if_res56 = struct_keyword_method_by_arity_error;} else {var if_res56 = struct_keyword_procedure_by_arity_error;}var if_res57 = if_res56;}var let_result59 = M0.make_struct_type(if_res58,if_res57,0,0,false,M0.list(M0.cons(prop_named_keyword_procedure,M0.vector(name_0,realm_0,fail_proc_0))),M0.current_inspector(),fail_proc_0);var s__0 = let_result59.getAt(0);var mk_0 = let_result59.getAt(1);var __p_0 = let_result59.getAt(2);var __ref_0 = let_result59.getAt(3);var __set_bang__0 = let_result59.getAt(4);return mk_0;};var cl60 = function(proc_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var proc_name_0 = M0.object_name(proc_1);if (M0.procedure_p(proc_1)!==false) {var if_res63 = M0.procedure_realm(proc_1);} else {var if_res63 = false;}var proc_realm_0 = if_res63;var plain_proc_0 = $rjs_core.attachProcedureArity(function(...args_064) {var args_0 = $rjs_core.Pair.listFromArray(args_064);return M0.apply(proc_1,M0.rnull,M0.rnull,args_0);});if (M0.procedure_p(proc_1)!==false) {var if_res65 = M0.arithmetic_shift(M0.procedure_arity_mask(proc_1),-2);} else {var if_res65 = false;}var mask_0 = if_res65;if (M0.procedure_p(plain_proc_0)!==false) {if (M0.exact_integer_p(mask_0)!==false) {if (M0.symbol_p(proc_name_0)!==false) {if (M0.symbol_p(proc_realm_0)!==false) {var if_res66 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,proc_name_0,proc_realm_0);} else {var if_res66 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,false,$rjs_core.PrimitiveSymbol.make("ignored"));}var if_res67 = if_res66;} else {var if_res67 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,false,$rjs_core.PrimitiveSymbol.make("ignored"));}var if_res68 = if_res67;} else {var if_res68 = plain_proc_0;}var if_res69 = if_res68;} else {var if_res69 = plain_proc_0;}return make_keyword_procedure(proc_1,if_res69);};var cl61 = function(proc_2, plain_proc_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(proc_2)!==false) {var if_res70 = M0.procedure_arity_mask(proc_2);} else {var if_res70 = false;}return make_optional_keyword_procedure(make_keyword_checker(M0.rnull,false,if_res70),proc_2,M0.rnull,false,plain_proc_1);};var make_keyword_procedure = $rjs_core.attachProcedureArity(function() {var fixed_lam62 = {'1':cl60,'2':cl61}[arguments.length];if (fixed_lam62!==undefined) {return fixed_lam62.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var keyword_apply = $rjs_core.attachProcedureArity(function(proc_3, kws_0, kw_vals_0, normal_args_0, ...normal_argss_071) {if (arguments.length<4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var normal_argss_0 = $rjs_core.Pair.listFromArray(normal_argss_071);var type_error_0 = function(what_0, which_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("type-error");return M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("keyword-apply"),what_0,which_0,proc_3,kws_0,kw_vals_0,normal_args_0,normal_argss_0);};if (M0.procedure_p(proc_3)!==false) {var if_res72 = M0.rvoid();} else {var if_res72 = type_error_0($rjs_core.UString.make("procedure?"),0);}if_res72;var loop_3 = function(ks_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ks_0)!==false) {var if_res79 = M0.rvoid();} else {var or_part_3 = M0.not(M0.pair_p(ks_0));if (or_part_3!==false) {var if_res73 = or_part_3;} else {var if_res73 = M0.not(M0.keyword_p(M0.car(ks_0)));}if (if_res73!==false) {var if_res78 = type_error_0($rjs_core.UString.make("(listof keyword?)"),1);} else {if (M0.null_p(M0.cdr(ks_0))!==false) {var if_res77 = M0.rvoid();} else {var or_part_4 = M0.not(M0.pair_p(M0.cdr(ks_0)));if (or_part_4!==false) {var if_res74 = or_part_4;} else {var if_res74 = M0.not(M0.keyword_p(M0.cadr(ks_0)));}if (if_res74!==false) {var if_res76 = loop_3(M0.cdr(ks_0));} else {if (M0.keyword_lt__p(M0.car(ks_0),M0.cadr(ks_0))!==false) {var if_res75 = loop_3(M0.cdr(ks_0));} else {var if_res75 = type_error_0($rjs_core.UString.make("(and/c (listof? keyword?) sorted? distinct?)"),1);}var if_res76 = if_res75;}var if_res77 = if_res76;}var if_res78 = if_res77;}var if_res79 = if_res78;}return if_res79;};loop_3(kws_0);if (M0.list_p(kw_vals_0)!==false) {var if_res80 = M0.rvoid();} else {var if_res80 = type_error_0($rjs_core.UString.make("list?"),2);}if_res80;if (M0.__eq_(M0.length(kws_0),M0.length(kw_vals_0))!==false) {var if_res81 = M0.rvoid();} else {var if_res81 = M0.raise_arguments_error_times_($rjs_core.PrimitiveSymbol.make("keyword-apply"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("keyword list length does not match value list length"),$rjs_core.UString.make("keyword list length"),M0.length(kws_0),$rjs_core.UString.make("value list length"),M0.length(kw_vals_0),$rjs_core.UString.make("keyword list"),kws_0,$rjs_core.UString.make("value list"),kw_vals_0);}if_res81;var loop_4 = function(normal_argss_1, pos_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(normal_argss_1))!==false) {var l_0 = M0.car(normal_argss_1);if (M0.list_p(l_0)!==false) {var if_res82 = l_0;} else {var if_res82 = type_error_0($rjs_core.UString.make("list?"),pos_0);}var if_res83 = if_res82;} else {var if_res83 = M0.cons(M0.car(normal_argss_1),loop_4(M0.cdr(normal_argss_1),M0.add1(pos_0)));}return if_res83;};var normal_args_1 = loop_4(M0.cons(normal_args_0,normal_argss_0),3);if (M0.null_p(kws_0)!==false) {var if_res84 = M0.apply(proc_3,normal_args_1);} else {var if_res84 = M0.apply(keyword_procedure_extract_by_method(kws_0,2+M0.length(normal_args_1),proc_3,0),kws_0,kw_vals_0,normal_args_1);}return if_res84;});var procedure_keywords = function(p_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_1)!==false) {var if_res89 = M0.values(keyword_procedure_required(p_1),keyword_procedure_allowed(p_1));} else {if (M0.procedure_p(p_1)!==false) {if (new_procedure_p(p_1)!==false) {var v_10 = new_procedure_ref(p_1);if (M0.procedure_p(v_10)!==false) {var if_res86 = procedure_keywords(v_10);} else {var a_4 = procedure_accessor_ref(p_1);if (a_4!==false) {var if_res85 = procedure_keywords(a_4(p_1));} else {var if_res85 = M0.values(M0.rnull,M0.rnull);}var if_res86 = if_res85;}var if_res87 = if_res86;} else {var if_res87 = M0.values(M0.rnull,M0.rnull);}var if_res88 = if_res87;} else {var if_res88 = M0.raise_argument_error_times_($rjs_core.PrimitiveSymbol.make("procedure-keywords"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("procedure?"),p_1);}var if_res89 = if_res88;}return if_res89;};var extract_keyword_root = function(p_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_2)!==false) {var if_res93 = p_2;} else {if (M0.procedure_p(p_2)!==false) {var v_11 = new_procedure_ref(p_2,false);if (M0.procedure_p(v_11)!==false) {var if_res91 = extract_keyword_root(v_11);} else {var a_5 = procedure_accessor_ref(p_2,false);if (a_5!==false) {var if_res90 = extract_keyword_root(a_5(p_2));} else {var if_res90 = false;}var if_res91 = if_res90;}var if_res92 = if_res91;} else {var if_res92 = false;}var if_res93 = if_res92;}return if_res93;};var missing_kw = $rjs_core.attachProcedureArity(function(proc_4, ...args_194) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_1 = $rjs_core.Pair.listFromArray(args_194);return M0.apply(keyword_procedure_extract_by_method(M0.rnull,0,proc_4,0),M0.rnull,M0.rnull,args_1);});var check_kw_args = function(p_3, kws_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_5 = function(kws_2, required_0, allowed_2) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_2)!==false) {if (M0.null_p(required_0)!==false) {var if_res95 = M0.values(false,false);} else {var if_res95 = M0.values(M0.car(required_0),false);}var if_res104 = if_res95;} else {if (M0.pair_p(required_0)!==false) {var if_res96 = M0.eq_p(M0.car(required_0),M0.car(kws_2));} else {var if_res96 = false;}if (if_res96!==false) {var temp99 = M0.cdr(kws_2);var temp98 = M0.cdr(required_0);if (allowed_2!==false) {var if_res97 = M0.cdr(allowed_2);} else {var if_res97 = false;}var if_res103 = loop_5(temp99,temp98,if_res97);} else {if (M0.not(allowed_2)!==false) {var if_res102 = loop_5(M0.cdr(kws_2),required_0,false);} else {if (M0.pair_p(allowed_2)!==false) {if (M0.eq_p(M0.car(allowed_2),M0.car(kws_2))!==false) {var if_res100 = loop_5(M0.cdr(kws_2),required_0,M0.cdr(allowed_2));} else {var if_res100 = loop_5(kws_2,required_0,M0.cdr(allowed_2));}var if_res101 = if_res100;} else {var if_res101 = M0.values(false,M0.car(kws_2));}var if_res102 = if_res101;}var if_res103 = if_res102;}var if_res104 = if_res103;}return if_res104;};return loop_5(kws_1,keyword_procedure_required(p_3),keyword_procedure_allowed(p_3));};var make_keyword_checker = function(req_kws_0, allowed_kws_0, arity_mask_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.not(allowed_kws_0)!==false) {if (M0.null_p(req_kws_0)!==false) {var if_res106 = function(kws_3, a_6) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.bitwise_bit_set_p(arity_mask_0,a_6);};} else {var if_res106 = function(kws_4, a_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subset_p(req_kws_0,kws_4)!==false) {var if_res105 = M0.bitwise_bit_set_p(arity_mask_0,a_7);} else {var if_res105 = false;}return if_res105;};}var if_res119 = if_res106;} else {if (M0.null_p(allowed_kws_0)!==false) {var if_res118 = function(kws_5, a_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(kws_5)!==false) {var if_res107 = M0.bitwise_bit_set_p(arity_mask_0,a_8);} else {var if_res107 = false;}return if_res107;};} else {if (M0.null_p(req_kws_0)!==false) {var if_res117 = function(kws_6, a_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subset_p(kws_6,allowed_kws_0)!==false) {var if_res108 = M0.bitwise_bit_set_p(arity_mask_0,a_9);} else {var if_res108 = false;}return if_res108;};} else {if (M0.list_p(req_kws_0)!==false) {if (M0.list_p(allowed_kws_0)!==false) {var if_res109 = M0.eq_p(M0.length(req_kws_0),M0.length(allowed_kws_0));} else {var if_res109 = false;}var if_res110 = if_res109;} else {var if_res110 = false;}if (if_res110!==false) {var if_res116 = function(kws_7, a_10) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_6 = function(kws_8, req_kws_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(req_kws_1)!==false) {var if_res113 = M0.null_p(kws_8);} else {if (M0.null_p(kws_8)!==false) {var if_res112 = false;} else {if (M0.eq_p(M0.car(kws_8),M0.car(req_kws_1))!==false) {var if_res111 = loop_6(M0.cdr(kws_8),M0.cdr(req_kws_1));} else {var if_res111 = false;}var if_res112 = if_res111;}var if_res113 = if_res112;}return if_res113;};if (loop_6(kws_7,req_kws_0)!==false) {var if_res114 = M0.bitwise_bit_set_p(arity_mask_0,a_10);} else {var if_res114 = false;}return if_res114;};} else {var if_res116 = function(kws_9, a_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subsets_p(req_kws_0,kws_9,allowed_kws_0)!==false) {var if_res115 = M0.bitwise_bit_set_p(arity_mask_0,a_11);} else {var if_res115 = false;}return if_res115;};}var if_res117 = if_res116;}var if_res118 = if_res117;}var if_res119 = if_res118;}return if_res119;};var subset_p = function(l1_0, l2_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(l1_0)!==false) {var if_res122 = true;} else {if (M0.null_p(l2_0)!==false) {var if_res121 = false;} else {if (M0.eq_p(M0.car(l1_0),M0.car(l2_0))!==false) {var if_res120 = subset_p(M0.cdr(l1_0),M0.cdr(l2_0));} else {var if_res120 = subset_p(l1_0,M0.cdr(l2_0));}var if_res121 = if_res120;}var if_res122 = if_res121;}return if_res122;};var subsets_p = function(l1_1, l2_1, l3_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(l1_1)!==false) {var if_res127 = subset_p(l2_1,l3_0);} else {if (M0.null_p(l2_1)!==false) {var if_res126 = false;} else {if (M0.null_p(l3_0)!==false) {var if_res125 = false;} else {var v2_0 = M0.car(l2_1);if (M0.eq_p(M0.car(l1_1),v2_0)!==false) {var if_res124 = subsets_p(M0.cdr(l1_1),M0.cdr(l2_1),M0.cdr(l3_0));} else {if (M0.eq_p(v2_0,M0.car(l3_0))!==false) {var if_res123 = subsets_p(l1_1,M0.cdr(l2_1),M0.cdr(l3_0));} else {var if_res123 = subsets_p(l1_1,l2_1,M0.cdr(l3_0));}var if_res124 = if_res123;}var if_res125 = if_res124;}var if_res126 = if_res125;}var if_res127 = if_res126;}return if_res127;};var keyword_procedure_extract_by_method = function(kws_10, n_1, p_4, method_n_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_4)!==false) {var if_res128 = keyword_procedure_checker(p_4)(kws_10,n_1);} else {var if_res128 = false;}if (if_res128!==false) {var if_res158 = keyword_procedure_proc(p_4);} else {if (M0.not(keyword_procedure_p(p_4))!==false) {if (M0.procedure_p(p_4)!==false) {if (new_procedure_p(p_4)!==false) {var a_12 = procedure_accessor_ref(p_4);if (a_12!==false) {var if_res129 = a_12(p_4);} else {var if_res129 = false;}var if_res130 = if_res129;} else {var if_res130 = false;}var or_part_5 = if_res130;if (or_part_5!==false) {var if_res133 = or_part_5;} else {var or_part_6 = M0.procedure_extract_target(p_4);if (or_part_6!==false) {var if_res132 = or_part_6;} else {if (new_procedure_p(p_4)!==false) {var if_res131 = $rjs_core.PrimitiveSymbol.make("method");} else {var if_res131 = false;}var if_res132 = if_res131;}var if_res133 = if_res132;}var if_res134 = if_res133;} else {var if_res134 = false;}var if_res135 = if_res134;} else {var if_res135 = false;}var p2_0 = if_res135;if (p2_0!==false) {if (M0.eq_p(p2_0,$rjs_core.PrimitiveSymbol.make("method"))!==false) {var p3_0 = keyword_procedure_extract_by_method(kws_10,M0.add1(n_1),new_procedure_ref(p_4),M0.add1(method_n_0));var if_res137 = $rjs_core.attachProcedureArity(function(kws_11, kw_args_0, ...args_2136) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_2 = $rjs_core.Pair.listFromArray(args_2136);return M0.apply(p3_0,kws_11,kw_args_0,M0.cons(p_4,args_2));});} else {var if_res137 = keyword_procedure_extract_by_method(kws_10,n_1,p2_0,method_n_0);}var if_res157 = if_res137;} else {var if_res157 = $rjs_core.attachProcedureArity(function(kws_12, kw_args_1, ...args_3138) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_3 = $rjs_core.Pair.listFromArray(args_3138);if (keyword_procedure_p(p_4)!==false) {var if_res139 = check_kw_args(p_4,kws_12);} else {var if_res139 = M0.values(false,M0.car(kws_12));}var let_result140 = if_res139;var missing_kw_0 = let_result140.getAt(0);var extra_kw_0 = let_result140.getAt(1);var or_part_7 = keyword_method_p(p_4);if (or_part_7!==false) {var if_res141 = or_part_7;} else {var if_res141 = okm_p(p_4);}if (if_res141!==false) {var if_res142 = 1;} else {var if_res142 = 0;}var method_n_1 = method_n_0+if_res142;if (M0.__gt__eq_(n_1,method_n_1)!==false) {var if_res143 = n_1-method_n_1;} else {var if_res143 = n_1;}var n_2 = if_res143;if (M0.null_p(args_3)!==false) {var if_res144 = M0.null_p(kws_12);} else {var if_res144 = false;}if (if_res144!==false) {var if_res145 = $rjs_core.UString.make("");} else {var if_res145 = M0.apply(M0.string_append,$rjs_core.UString.make("\n arguments...:"),M0.append(M0.map(function(v_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.format($rjs_core.UString.make("\n ~e"),v_12);},args_3),M0.map(function(kw_0, kw_arg_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.format($rjs_core.UString.make("\n ~a ~e"),kw_0,kw_arg_0);},kws_12,kw_args_1)));}var args_str_0 = if_res145;var proc_name_1 = function(p_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("proc-name");if (named_keyword_procedure_p(p_5)!==false) {var if_res146 = M0.vector_ref(keyword_procedure_name_plus_fail(p_5),0);} else {var if_res146 = false;}var or_part_8 = if_res146;if (or_part_8!==false) {var if_res148 = or_part_8;} else {var or_part_9 = M0.object_name(p_5);if (or_part_9!==false) {var if_res147 = or_part_9;} else {var if_res147 = p_5;}var if_res148 = if_res147;}return if_res148;};var application_message_0 = function(str_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("application-message");return M0.error_message__gt_adjusted_string($rjs_core.PrimitiveSymbol.make("application"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),str_0,$rjs_core.PrimitiveSymbol.make("racket/primitive"));};var or_part_10 = extra_kw_0;if (or_part_10!==false) {var if_res155 = or_part_10;} else {var if_res155 = missing_kw_0;}if (if_res155!==false) {var if_res156 = M0.exn_fail_contract;} else {var if_res156 = M0.exn_fail_contract_arity;}if (extra_kw_0!==false) {if (keyword_procedure_p(p_4)!==false) {var if_res150 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("procedure does not expect an argument with given keyword\n"),$rjs_core.UString.make(" procedure: ~a\n"),$rjs_core.UString.make(" given keyword: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),extra_kw_0,args_str_0));} else {if (M0.procedure_p(p_4)!==false) {var if_res149 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("procedure does not accept keyword arguments\n"),$rjs_core.UString.make(" procedure: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),args_str_0));} else {var if_res149 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("not a procedure;\n"),$rjs_core.UString.make(" expected a procedure that can be applied to arguments\n"),$rjs_core.UString.make(" given: ~e"),$rjs_core.UString.make("~a")),p_4,args_str_0));}var if_res150 = if_res149;}var if_res154 = if_res150;} else {if (missing_kw_0!==false) {var if_res153 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("required keyword argument not supplied\n"),$rjs_core.UString.make(" procedure: ~a\n"),$rjs_core.UString.make(" required keyword: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),missing_kw_0,args_str_0));} else {var temp152 = M0.string_append($rjs_core.UString.make("no case matching ~a non-keyword argument~a\n"),$rjs_core.UString.make(" procedure: ~a"),$rjs_core.UString.make("~a"));if (M0.__eq_(1,n_2-2)!==false) {var if_res151 = $rjs_core.UString.make("");} else {var if_res151 = $rjs_core.UString.make("s");}var if_res153 = application_message_0(M0.format(temp152,n_2-2,if_res151,proc_name_1(p_4),args_str_0));}var if_res154 = if_res153;}return M0.raise(if_res156(if_res154,M0.current_continuation_marks()));});}var if_res158 = if_res157;}return if_res158;};var cl159 = function(proc_5, mask_1, req_kw_0, allowed_kw_0, name_1, realm_1) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_5,false,mask_1,name_1,realm_1,req_kw_0,allowed_kw_0);};var cl160 = function(proc_6, mask_2, req_kw_1, allowed_kw_1, name_2) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_6,false,mask_2,name_2,$rjs_core.PrimitiveSymbol.make("racket"),req_kw_1,allowed_kw_1);};var cl161 = function(proc_7, mask_3, req_kw_2, allowed_kw_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_7,false,mask_3,false,$rjs_core.PrimitiveSymbol.make("racket"),req_kw_2,allowed_kw_2);};var procedure_reduce_keyword_arity_mask = $rjs_core.attachProcedureArity(function() {var fixed_lam162 = {'6':cl159,'5':cl160,'4':cl161}[arguments.length];if (fixed_lam162!==undefined) {return fixed_lam162.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,5,6]);var do_procedure_reduce_keyword_arity = function(who_1, proc_8, arity_0, mask_4, name_3, realm_2, req_kw_3, allowed_kw_3) {if (arguments.length!==8) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (okp_p(proc_8)!==false) {var if_res163 = okp_ref(proc_8,0);} else {var if_res163 = proc_8;}var p_6 = if_res163;if (arity_0!==false) {var if_res164 = M0.procedure_reduce_arity(p_6,arity_0,name_3,realm_2);} else {var if_res164 = M0.procedure_reduce_arity_mask(p_6,mask_4,name_3,realm_2);}var plain_proc_2 = if_res164;var sorted_p_0 = function(kws_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("sorted?");var loop_7 = function(kws_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_14)!==false) {var if_res167 = true;} else {if (M0.null_p(M0.cdr(kws_14))!==false) {var if_res166 = true;} else {if (M0.keyword_lt__p(M0.car(kws_14),M0.cadr(kws_14))!==false) {var if_res165 = loop_7(M0.cdr(kws_14));} else {var if_res165 = false;}var if_res166 = if_res165;}var if_res167 = if_res166;}return if_res167;};return loop_7(kws_13);};if (M0.list_p(req_kw_3)!==false) {if (M0.andmap(M0.keyword_p,req_kw_3)!==false) {var if_res168 = sorted_p_0(req_kw_3);} else {var if_res168 = false;}var if_res169 = if_res168;} else {var if_res169 = false;}if (if_res169!==false) {var if_res173 = M0.rvoid();} else {var temp172 = $rjs_core.PrimitiveSymbol.make("racket/primitive");var temp171 = $rjs_core.UString.make("(and/c (listof? keyword?) sorted? distinct?)");var or_part_11 = arity_0;if (or_part_11!==false) {var if_res170 = or_part_11;} else {var if_res170 = mask_4;}var if_res173 = M0.raise_argument_error_times_(who_1,temp172,temp171,2,proc_8,if_res170,req_kw_3,allowed_kw_3);}if_res173;if (allowed_kw_3!==false) {if (M0.list_p(allowed_kw_3)!==false) {if (M0.andmap(M0.keyword_p,allowed_kw_3)!==false) {var if_res174 = sorted_p_0(allowed_kw_3);} else {var if_res174 = false;}var if_res175 = if_res174;} else {var if_res175 = false;}if (if_res175!==false) {var if_res179 = M0.rvoid();} else {var temp178 = $rjs_core.PrimitiveSymbol.make("racket/primitive");var temp177 = $rjs_core.UString.make("(or/c (and/c (listof? keyword?) sorted? distinct?) #f)");var or_part_12 = arity_0;if (or_part_12!==false) {var if_res176 = or_part_12;} else {var if_res176 = mask_4;}var if_res179 = M0.raise_argument_error_times_(who_1,temp178,temp177,3,proc_8,if_res176,req_kw_3,allowed_kw_3);}if_res179;if (subset_p(req_kw_3,allowed_kw_3)!==false) {var if_res180 = M0.rvoid();} else {var if_res180 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("allowed-keyword list does not include all required keywords"),$rjs_core.UString.make("allowed-keyword list"),allowed_kw_3,$rjs_core.UString.make("required keywords"),req_kw_3);}var if_res181 = if_res180;} else {var if_res181 = M0.rvoid();}if_res181;var let_result182 = procedure_keywords(proc_8);var old_req_0 = let_result182.getAt(0);var old_allowed_0 = let_result182.getAt(1);if (subset_p(old_req_0,req_kw_3)!==false) {var if_res183 = M0.rvoid();} else {var if_res183 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot reduce required keyword set"),$rjs_core.UString.make("required keywords"),old_req_0,$rjs_core.UString.make("requested required keywords"),req_kw_3);}if_res183;if (old_allowed_0!==false) {if (subset_p(req_kw_3,old_allowed_0)!==false) {var if_res184 = M0.rvoid();} else {var if_res184 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot require keywords not in original allowed set"),$rjs_core.UString.make("original allowed keywords"),old_allowed_0,$rjs_core.UString.make("requested required keywords"),req_kw_3);}if_res184;var or_part_13 = M0.not(allowed_kw_3);if (or_part_13!==false) {var if_res185 = or_part_13;} else {var if_res185 = subset_p(allowed_kw_3,old_allowed_0);}if (if_res185!==false) {var if_res186 = M0.rvoid();} else {var if_res186 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot allow keywords not in original allowed set"),$rjs_core.UString.make("original allowed keywords"),old_allowed_0,$rjs_core.UString.make("requested allowed keywords"),allowed_kw_3);}var if_res187 = if_res186;} else {var if_res187 = M0.rvoid();}if_res187;if (M0.null_p(allowed_kw_3)!==false) {var if_res201 = plain_proc_2;} else {var or_part_14 = mask_4;if (or_part_14!==false) {var if_res188 = or_part_14;} else {var if_res188 = arity__gt_mask(arity_0);}var mask_5 = if_res188;var new_mask_0 = M0.arithmetic_shift(mask_5,2);var kw_checker_0 = make_keyword_checker(req_kw_3,allowed_kw_3,new_mask_0);var proc_9 = normalize_proc(proc_8);var new_kw_proc_0 = M0.procedure_reduce_arity_mask(keyword_procedure_proc(proc_9),new_mask_0);if (M0.null_p(req_kw_3)!==false) {if (okm_p(proc_9)!==false) {var if_res189 = make_optional_keyword_method;} else {var if_res189 = make_optional_keyword_procedure;}var if_res200 = if_res189(kw_checker_0,new_kw_proc_0,req_kw_3,allowed_kw_3,plain_proc_2);} else {var or_part_15 = name_3;if (or_part_15!==false) {var if_res199 = or_part_15;} else {if (named_keyword_procedure_p(proc_9)!==false) {var if_res197 = M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),0);} else {var if_res197 = false;}var or_part_16 = if_res197;if (or_part_16!==false) {var if_res198 = or_part_16;} else {var if_res198 = M0.object_name(proc_9);}var if_res199 = if_res198;}if (name_3!==false) {var if_res192 = realm_2;} else {var if_res192 = false;}var or_part_17 = if_res192;if (or_part_17!==false) {var if_res196 = or_part_17;} else {if (named_keyword_procedure_p(proc_9)!==false) {var or_part_19 = M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),1);if (or_part_19!==false) {var if_res193 = or_part_19;} else {var if_res193 = M0.procedure_realm(M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),2));}var if_res194 = if_res193;} else {var if_res194 = false;}var or_part_18 = if_res194;if (or_part_18!==false) {var if_res195 = or_part_18;} else {var if_res195 = M0.procedure_realm(proc_9);}var if_res196 = if_res195;}var temp191 = M0.procedure_reduce_arity_mask(missing_kw,M0.arithmetic_shift(mask_5,1));var or_part_20 = okm_p(proc_9);if (or_part_20!==false) {var if_res190 = or_part_20;} else {var if_res190 = keyword_method_p(proc_9);}var if_res200 = make_required(if_res199,if_res196,temp191,if_res190,false)(kw_checker_0,new_kw_proc_0,req_kw_3,allowed_kw_3);}var if_res201 = if_res200;}return if_res201;};var arity__gt_mask = function(a_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(a_13)!==false) {var if_res207 = M0.arithmetic_shift(1,a_13);} else {if (M0.arity_at_least_p(a_13)!==false) {var if_res206 = M0.bitwise_xor(-1,M0.sub1(M0.arithmetic_shift(1,M0.arity_at_least_value(a_13))));} else {if (M0.list_p(a_13)!==false) {var loop_8 = function(mask_6, l_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_1)!==false) {var if_res204 = mask_6;} else {var a_14 = M0.car(l_1);var or_part_21 = M0.exact_nonnegative_integer_p(a_14);if (or_part_21!==false) {var if_res202 = or_part_21;} else {var if_res202 = M0.arity_at_least_p(a_14);}if (if_res202!==false) {var if_res203 = loop_8(M0.bitwise_ior(mask_6,arity__gt_mask(a_14)),M0.cdr(l_1));} else {var if_res203 = false;}var if_res204 = if_res203;}return if_res204;};var if_res205 = loop_8(0,a_13);} else {var if_res205 = false;}var if_res206 = if_res205;}var if_res207 = if_res206;}return if_res207;};var cl208 = function(proc_10, mask_7, name_4, realm_3) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("procedure-reduce-arity");if (M0.procedure_p(proc_10)!==false) {var let_result212 = procedure_keywords(proc_10);var req_4 = let_result212.getAt(0);var allows_0 = let_result212.getAt(1);if (M0.pair_p(req_4)!==false) {var if_res213 = M0.not(M0.eqv_p(mask_7,0));} else {var if_res213 = false;}var if_res214 = if_res213;} else {var if_res214 = false;}if (if_res214!==false) {var if_res216 = M0.raise_arguments_error_times_($rjs_core.PrimitiveSymbol.make("procedure-reduce-arity"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("procedure has required keyword arguments"),$rjs_core.UString.make("procedure"),proc_10);} else {if (okm_p(proc_10)!==false) {var if_res215 = M0.procedure__gt_method(proc_10);} else {var if_res215 = proc_10;}var if_res216 = M0.procedure_reduce_arity_mask(if_res215,mask_7,name_4,realm_3);}return if_res216;};var cl209 = function(proc_11, mask_8, name_5) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_reduce_arity_mask(proc_11,mask_8,name_5,$rjs_core.PrimitiveSymbol.make("racket"));};var cl210 = function(proc_12, mask_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_reduce_arity_mask(proc_12,mask_9,false,$rjs_core.PrimitiveSymbol.make("racket"));};var procedure_reduce_arity_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam211 = {'4':cl208,'3':cl209,'2':cl210}[arguments.length];if (fixed_lam211!==undefined) {return fixed_lam211.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3,4]);var new_procedure_reduce_arity_mask = procedure_reduce_arity_0;var cl217 = function(proc_13, name_6, realm_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("procedure-rename");if (M0.symbol_p(name_6)!==false) {var if_res220 = M0.symbol_p(realm_4);} else {var if_res220 = false;}if (M0.not(if_res220)!==false) {var if_res222 = M0.procedure_rename(proc_13,name_6,realm_4);} else {var c1_0 = extract_keyword_root(proc_13);if (c1_0!==false) {var if_res221 = (function(kw_p_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-rename"),proc_13,false,M0.procedure_arity_mask(proc_13),name_6,realm_4,keyword_procedure_required(kw_p_0),keyword_procedure_allowed(kw_p_0));})(c1_0);} else {var if_res221 = M0.procedure_rename(proc_13,name_6,realm_4);}var if_res222 = if_res221;}return if_res222;};var cl218 = function(proc_14, name_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_rename(proc_14,name_7,$rjs_core.PrimitiveSymbol.make("racket"));};var procedure_rename_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam219 = {'3':cl217,'2':cl218}[arguments.length];if (fixed_lam219!==undefined) {return fixed_lam219.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var new_procedure_rename = procedure_rename_0;var normalize_proc = function(proc_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(proc_15)!==false) {var if_res230 = proc_15;} else {if (new_procedure_p(proc_15)!==false) {var let_result223 = procedure_keywords(proc_15);var req_kws_2 = let_result223.getAt(0);var allowed_kws_1 = let_result223.getAt(1);if (M0.null_p(allowed_kws_1)!==false) {var if_res228 = proc_15;} else {var if_res228 = make_optional_keyword_procedure(function(given_kws_0, given_argc_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_arity_includes_p(proc_15,given_argc_0-2,true)!==false) {var or_part_22 = M0.not(allowed_kws_1);if (or_part_22!==false) {var if_res225 = or_part_22;} else {var if_res225 = subset_p(given_kws_0,allowed_kws_1);}if (if_res225!==false) {var if_res226 = subset_p(req_kws_2,given_kws_0);} else {var if_res226 = false;}var if_res227 = if_res226;} else {var if_res227 = false;}return if_res227;},$rjs_core.attachProcedureArity(function(kws_15, kw_args_2, ...vals_0224) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var vals_0 = $rjs_core.Pair.listFromArray(vals_0224);return keyword_apply(proc_15,kws_15,kw_args_2,vals_0);}),req_kws_2,allowed_kws_1,proc_15);}var if_res229 = if_res228;} else {var if_res229 = proc_15;}var if_res230 = if_res229;}return if_res230;};var reverse$1 = function(l_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reverse");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res232 = M0.rvoid();} else {if (M0.list_p(l_2)!==false) {var if_res231 = M0.rvoid();} else {var if_res231 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("reverse"),$rjs_core.UString.make("list?"),l_2);}var if_res232 = if_res231;}if_res232;var loop_9 = function(a_15, l_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_3)!==false) {var if_res233 = a_15;} else {var if_res233 = loop_9(M0.cons(M0.car(l_3),a_15),M0.cdr(l_3));}return if_res233;};return loop_9(M0.rnull,l_2);};var generic_sort_0 = function(A_0, less_than_p_0, n_3) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("generic-sort");var n_by_2__0 = M0.unsafe_fxrshift(n_3,1);var n_by_2_plus__0 = M0.unsafe_fx_(n_3,n_by_2__0);var copying_mergesort_0 = function(Alo_0, Blo_0, n_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("copying-mergesort");if (M0.unsafe_fx_eq_(n_4,1)!==false) {var if_res244 = M0.unsafe_vector_set_bang_(A_0,Blo_0,M0.unsafe_vector_ref(A_0,Alo_0));} else {if (M0.unsafe_fx_eq_(n_4,2)!==false) {var x_0 = M0.unsafe_vector_ref(A_0,Alo_0);var y_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_plus_(Alo_0,1));if (less_than_p_0(y_0,x_0)!==false) {M0.unsafe_vector_set_bang_(A_0,Blo_0,y_0);var if_res234 = M0.unsafe_vector_set_bang_(A_0,M0.unsafe_fx_plus_(Blo_0,1),x_0);} else {M0.unsafe_vector_set_bang_(A_0,Blo_0,x_0);var if_res234 = M0.unsafe_vector_set_bang_(A_0,M0.unsafe_fx_plus_(Blo_0,1),y_0);}var if_res243 = if_res234;} else {if (M0.unsafe_fx_lt_(n_4,16)!==false) {M0.unsafe_vector_set_bang_(A_0,Blo_0,M0.unsafe_vector_ref(A_0,Alo_0));var iloop_0 = function(i_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("iloop");if (M0.unsafe_fx_lt_(i_0,n_4)!==false) {var ref_i_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_plus_(Alo_0,i_0));var jloop_0 = function(j_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("jloop");var ref_j_1_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_(j_0,1));if (M0.unsafe_fx_lt_(Blo_0,j_0)!==false) {var if_res235 = less_than_p_0(ref_i_0,ref_j_1_0);} else {var if_res235 = false;}if (if_res235!==false) {M0.unsafe_vector_set_bang_(A_0,j_0,ref_j_1_0);var if_res236 = jloop_0(M0.unsafe_fx_(j_0,1));} else {M0.unsafe_vector_set_bang_(A_0,j_0,ref_i_0);var if_res236 = iloop_0(M0.unsafe_fx_plus_(i_0,1));}return if_res236;};var if_res237 = jloop_0(M0.unsafe_fx_plus_(Blo_0,i_0));} else {var if_res237 = M0.rvoid();}return if_res237;};var if_res242 = iloop_0(1);} else {var n_by_2__1 = M0.unsafe_fxrshift(n_4,1);var n_by_2_plus__1 = M0.unsafe_fx_(n_4,n_by_2__1);var Amid1_0 = M0.unsafe_fx_plus_(Alo_0,n_by_2__1);var Amid2_0 = M0.unsafe_fx_plus_(Alo_0,n_by_2_plus__1);var Bmid1_0 = M0.unsafe_fx_plus_(Blo_0,n_by_2__1);copying_mergesort_0(Amid1_0,Bmid1_0,n_by_2_plus__1);copying_mergesort_0(Alo_0,Amid2_0,n_by_2__1);var b2_0 = M0.unsafe_fx_plus_(Blo_0,n_4);var loop_10 = function(a1_0, b1_0, c1_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_1 = M0.unsafe_vector_ref(A_0,a1_0);var y_1 = M0.unsafe_vector_ref(A_0,b1_0);if (M0.not(less_than_p_0(y_1,x_1))!==false) {M0.unsafe_vector_set_bang_(A_0,c1_1,x_1);var a1_1 = M0.unsafe_fx_plus_(a1_0,1);var c1_2 = M0.unsafe_fx_plus_(c1_1,1);if (M0.unsafe_fx_lt_(c1_2,b1_0)!==false) {var if_res238 = loop_10(a1_1,b1_0,c1_2);} else {var if_res238 = M0.rvoid();}var if_res241 = if_res238;} else {M0.unsafe_vector_set_bang_(A_0,c1_1,y_1);var b1_1 = M0.unsafe_fx_plus_(b1_0,1);var c1_3 = M0.unsafe_fx_plus_(c1_1,1);if (M0.unsafe_fx_lt__eq_(b2_0,b1_1)!==false) {var loop_11 = function(a1_2, c1_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_4,b1_1)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_4,M0.unsafe_vector_ref(A_0,a1_2));var if_res239 = loop_11(M0.unsafe_fx_plus_(a1_2,1),M0.unsafe_fx_plus_(c1_4,1));} else {var if_res239 = M0.rvoid();}return if_res239;};var if_res240 = loop_11(a1_0,c1_3);} else {var if_res240 = loop_10(a1_0,b1_1,c1_3);}var if_res241 = if_res240;}return if_res241;};var if_res242 = loop_10(Amid2_0,Bmid1_0,Blo_0);}var if_res243 = if_res242;}var if_res244 = if_res243;}return if_res244;};var Alo_1 = 0;var Amid1_1 = n_by_2__0;var Amid2_1 = n_by_2_plus__0;var Ahi_0 = n_3;var B1lo_0 = n_3;copying_mergesort_0(Amid1_1,B1lo_0,n_by_2_plus__0);if (M0.zero_p(n_by_2__0)!==false) {var if_res245 = M0.rvoid();} else {var if_res245 = copying_mergesort_0(Alo_1,Amid2_1,n_by_2__0);}if_res245;var b2_1 = Ahi_0;var loop_12 = function(a1_3, b1_2, c1_5) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_2 = M0.unsafe_vector_ref(A_0,a1_3);var y_2 = M0.unsafe_vector_ref(A_0,b1_2);if (less_than_p_0(x_2,y_2)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_5,x_2);var a1_4 = M0.unsafe_fx_plus_(a1_3,1);var c1_6 = M0.unsafe_fx_plus_(c1_5,1);if (M0.unsafe_fx_lt_(c1_6,b1_2)!==false) {var if_res246 = loop_12(a1_4,b1_2,c1_6);} else {var if_res246 = M0.rvoid();}var if_res249 = if_res246;} else {M0.unsafe_vector_set_bang_(A_0,c1_5,y_2);var b1_3 = M0.unsafe_fx_plus_(b1_2,1);var c1_7 = M0.unsafe_fx_plus_(c1_5,1);if (M0.unsafe_fx_lt__eq_(b2_1,b1_3)!==false) {var loop_13 = function(a1_5, c1_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_8,b1_3)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_8,M0.unsafe_vector_ref(A_0,a1_5));var if_res247 = loop_13(M0.unsafe_fx_plus_(a1_5,1),M0.unsafe_fx_plus_(c1_8,1));} else {var if_res247 = M0.rvoid();}return if_res247;};var if_res248 = loop_13(a1_3,c1_7);} else {var if_res248 = loop_12(a1_3,b1_3,c1_7);}var if_res249 = if_res248;}return if_res249;};return loop_12(B1lo_0,Amid2_1,Alo_1);};var generic_sort_by_key_0 = function(A_1, less_than_p_1, n_5, key_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("generic-sort/key");var n_by_2__2 = M0.unsafe_fxrshift(n_5,1);var n_by_2_plus__2 = M0.unsafe_fx_(n_5,n_by_2__2);var copying_mergesort_1 = function(Alo_2, Blo_1, n_6) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("copying-mergesort");if (M0.unsafe_fx_eq_(n_6,1)!==false) {var if_res263 = M0.unsafe_vector_set_bang_(A_1,Blo_1,M0.unsafe_vector_ref(A_1,Alo_2));} else {if (M0.unsafe_fx_eq_(n_6,2)!==false) {var x_3 = M0.unsafe_vector_ref(A_1,Alo_2);var y_3 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_plus_(Alo_2,1));if (key_2!==false) {var if_res250 = less_than_p_1(key_2(y_3),key_2(x_3));} else {var if_res250 = less_than_p_1(y_3,x_3);}if (if_res250!==false) {M0.unsafe_vector_set_bang_(A_1,Blo_1,y_3);var if_res251 = M0.unsafe_vector_set_bang_(A_1,M0.unsafe_fx_plus_(Blo_1,1),x_3);} else {M0.unsafe_vector_set_bang_(A_1,Blo_1,x_3);var if_res251 = M0.unsafe_vector_set_bang_(A_1,M0.unsafe_fx_plus_(Blo_1,1),y_3);}var if_res262 = if_res251;} else {if (M0.unsafe_fx_lt_(n_6,16)!==false) {M0.unsafe_vector_set_bang_(A_1,Blo_1,M0.unsafe_vector_ref(A_1,Alo_2));var iloop_1 = function(i_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("iloop");if (M0.unsafe_fx_lt_(i_1,n_6)!==false) {var ref_i_1 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_plus_(Alo_2,i_1));var jloop_1 = function(j_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("jloop");var ref_j_1_1 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_(j_1,1));if (M0.unsafe_fx_lt_(Blo_1,j_1)!==false) {if (key_2!==false) {var if_res252 = less_than_p_1(key_2(ref_i_1),key_2(ref_j_1_1));} else {var if_res252 = less_than_p_1(ref_i_1,ref_j_1_1);}var if_res253 = if_res252;} else {var if_res253 = false;}if (if_res253!==false) {M0.unsafe_vector_set_bang_(A_1,j_1,ref_j_1_1);var if_res254 = jloop_1(M0.unsafe_fx_(j_1,1));} else {M0.unsafe_vector_set_bang_(A_1,j_1,ref_i_1);var if_res254 = iloop_1(M0.unsafe_fx_plus_(i_1,1));}return if_res254;};var if_res255 = jloop_1(M0.unsafe_fx_plus_(Blo_1,i_1));} else {var if_res255 = M0.rvoid();}return if_res255;};var if_res261 = iloop_1(1);} else {var n_by_2__3 = M0.unsafe_fxrshift(n_6,1);var n_by_2_plus__3 = M0.unsafe_fx_(n_6,n_by_2__3);var Amid1_2 = M0.unsafe_fx_plus_(Alo_2,n_by_2__3);var Amid2_2 = M0.unsafe_fx_plus_(Alo_2,n_by_2_plus__3);var Bmid1_1 = M0.unsafe_fx_plus_(Blo_1,n_by_2__3);copying_mergesort_1(Amid1_2,Bmid1_1,n_by_2_plus__3);copying_mergesort_1(Alo_2,Amid2_2,n_by_2__3);var b2_2 = M0.unsafe_fx_plus_(Blo_1,n_6);var loop_14 = function(a1_6, b1_4, c1_9) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_4 = M0.unsafe_vector_ref(A_1,a1_6);var y_4 = M0.unsafe_vector_ref(A_1,b1_4);if (key_2!==false) {var if_res256 = less_than_p_1(key_2(y_4),key_2(x_4));} else {var if_res256 = less_than_p_1(y_4,x_4);}if (M0.not(if_res256)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_9,x_4);var a1_7 = M0.unsafe_fx_plus_(a1_6,1);var c1_10 = M0.unsafe_fx_plus_(c1_9,1);if (M0.unsafe_fx_lt_(c1_10,b1_4)!==false) {var if_res257 = loop_14(a1_7,b1_4,c1_10);} else {var if_res257 = M0.rvoid();}var if_res260 = if_res257;} else {M0.unsafe_vector_set_bang_(A_1,c1_9,y_4);var b1_5 = M0.unsafe_fx_plus_(b1_4,1);var c1_11 = M0.unsafe_fx_plus_(c1_9,1);if (M0.unsafe_fx_lt__eq_(b2_2,b1_5)!==false) {var loop_15 = function(a1_8, c1_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_12,b1_5)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_12,M0.unsafe_vector_ref(A_1,a1_8));var if_res258 = loop_15(M0.unsafe_fx_plus_(a1_8,1),M0.unsafe_fx_plus_(c1_12,1));} else {var if_res258 = M0.rvoid();}return if_res258;};var if_res259 = loop_15(a1_6,c1_11);} else {var if_res259 = loop_14(a1_6,b1_5,c1_11);}var if_res260 = if_res259;}return if_res260;};var if_res261 = loop_14(Amid2_2,Bmid1_1,Blo_1);}var if_res262 = if_res261;}var if_res263 = if_res262;}return if_res263;};var Alo_3 = 0;var Amid1_3 = n_by_2__2;var Amid2_3 = n_by_2_plus__2;var Ahi_1 = n_5;var B1lo_1 = n_5;copying_mergesort_1(Amid1_3,B1lo_1,n_by_2_plus__2);if (M0.zero_p(n_by_2__2)!==false) {var if_res264 = M0.rvoid();} else {var if_res264 = copying_mergesort_1(Alo_3,Amid2_3,n_by_2__2);}if_res264;var b2_3 = Ahi_1;var loop_16 = function(a1_9, b1_6, c1_13) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_5 = M0.unsafe_vector_ref(A_1,a1_9);var y_5 = M0.unsafe_vector_ref(A_1,b1_6);if (key_2!==false) {var if_res265 = less_than_p_1(key_2(x_5),key_2(y_5));} else {var if_res265 = less_than_p_1(x_5,y_5);}if (if_res265!==false) {M0.unsafe_vector_set_bang_(A_1,c1_13,x_5);var a1_10 = M0.unsafe_fx_plus_(a1_9,1);var c1_14 = M0.unsafe_fx_plus_(c1_13,1);if (M0.unsafe_fx_lt_(c1_14,b1_6)!==false) {var if_res266 = loop_16(a1_10,b1_6,c1_14);} else {var if_res266 = M0.rvoid();}var if_res269 = if_res266;} else {M0.unsafe_vector_set_bang_(A_1,c1_13,y_5);var b1_7 = M0.unsafe_fx_plus_(b1_6,1);var c1_15 = M0.unsafe_fx_plus_(c1_13,1);if (M0.unsafe_fx_lt__eq_(b2_3,b1_7)!==false) {var loop_17 = function(a1_11, c1_16) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_16,b1_7)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_16,M0.unsafe_vector_ref(A_1,a1_11));var if_res267 = loop_17(M0.unsafe_fx_plus_(a1_11,1),M0.unsafe_fx_plus_(c1_16,1));} else {var if_res267 = M0.rvoid();}return if_res267;};var if_res268 = loop_17(a1_9,c1_15);} else {var if_res268 = loop_16(a1_9,b1_7,c1_15);}var if_res269 = if_res268;}return if_res269;};return loop_16(B1lo_1,Amid2_3,Alo_3);};var cl341 = function(lst_0, less_than_p_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_7 = M0.length(lst_0);if (M0.unsafe_fx_eq_(n_7,0)!==false) {var if_res357 = lst_0;} else {var loop_18 = function(last_0, next_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_23 = M0.null_p(next_0);if (or_part_23!==false) {var if_res346 = or_part_23;} else {if (M0.not(less_than_p_2(M0.unsafe_car(next_0),last_0))!==false) {var if_res345 = loop_18(M0.unsafe_car(next_0),M0.unsafe_cdr(next_0));} else {var if_res345 = false;}var if_res346 = if_res345;}return if_res346;};if (loop_18(M0.car(lst_0),M0.cdr(lst_0))!==false) {var if_res356 = lst_0;} else {if (M0.unsafe_fx_lt__eq_(n_7,3)!==false) {if (M0.unsafe_fx_eq_(n_7,1)!==false) {var if_res352 = lst_0;} else {if (M0.unsafe_fx_eq_(n_7,2)!==false) {var if_res351 = M0.list(M0.cadr(lst_0),M0.car(lst_0));} else {var a_16 = M0.car(lst_0);var b_0 = M0.cadr(lst_0);var c_0 = M0.caddr(lst_0);if (less_than_p_2(b_0,a_16)!==false) {if (less_than_p_2(c_0,b_0)!==false) {var if_res348 = M0.list(c_0,b_0,a_16);} else {if (less_than_p_2(c_0,a_16)!==false) {var if_res347 = M0.list(b_0,c_0,a_16);} else {var if_res347 = M0.list(b_0,a_16,c_0);}var if_res348 = if_res347;}var if_res350 = if_res348;} else {if (less_than_p_2(c_0,a_16)!==false) {var if_res349 = M0.list(c_0,a_16,b_0);} else {var if_res349 = M0.list(a_16,c_0,b_0);}var if_res350 = if_res349;}var if_res351 = if_res350;}var if_res352 = if_res351;}var if_res355 = if_res352;} else {var vec_0 = M0.make_vector(n_7+M0.ceiling(n_7/2));var loop_19 = function(i_2, lst_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_1)!==false) {M0.vector_set_bang_(vec_0,i_2,M0.car(lst_1));var if_res353 = loop_19(M0.add1(i_2),M0.cdr(lst_1));} else {var if_res353 = M0.rvoid();}return if_res353;};loop_19(0,lst_0);generic_sort_0(vec_0,less_than_p_2,n_7);var loop_20 = function(i_3, r_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_4 = M0.sub1(i_3);if (M0.__lt_(i_4,0)!==false) {var if_res354 = r_0;} else {var if_res354 = loop_20(i_4,M0.cons(M0.vector_ref(vec_0,i_4),r_0));}return if_res354;};var if_res355 = loop_20(n_7,$rjs_core.Pair.makeList());}var if_res356 = if_res355;}var if_res357 = if_res356;}return if_res357;};var cl342 = function(lst_2, less_than_p_3, getkey_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_0!==false) {var if_res358 = M0.not(M0.eq_p(M0.values,getkey_0));} else {var if_res358 = false;}if (if_res358!==false) {var if_res359 = sort(lst_2,less_than_p_3,getkey_0,false);} else {var if_res359 = sort(lst_2,less_than_p_3);}return if_res359;};var cl343 = function(lst_3, less_than_p_4, getkey_1, cache_keys_p_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_1!==false) {var if_res360 = M0.not(M0.eq_p(M0.values,getkey_1));} else {var if_res360 = false;}if (if_res360!==false) {var n_8 = M0.length(lst_3);if (M0.unsafe_fx_eq_(n_8,0)!==false) {var if_res381 = lst_3;} else {if (cache_keys_p_0!==false) {var vec_1 = M0.make_vector(n_8+M0.ceiling(n_8/2));var loop_21 = function(i_5, lst_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_4)!==false) {var x_6 = M0.car(lst_4);M0.unsafe_vector_set_bang_(vec_1,i_5,M0.cons(getkey_1(x_6),x_6));var if_res361 = loop_21(M0.unsafe_fx_plus_(i_5,1),M0.cdr(lst_4));} else {var if_res361 = M0.rvoid();}return if_res361;};loop_21(0,lst_3);generic_sort_by_key_0(vec_1,less_than_p_4,n_8,M0.unsafe_car);var loop_22 = function(i_6, r_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_7 = M0.unsafe_fx_(i_6,1);if (M0.unsafe_fx_lt_(i_7,0)!==false) {var if_res362 = r_1;} else {var if_res362 = loop_22(i_7,M0.cons(M0.unsafe_cdr(M0.unsafe_vector_ref(vec_1,i_7)),r_1));}return if_res362;};var if_res380 = loop_22(n_8,$rjs_core.Pair.makeList());} else {var loop_23 = function(last_1, next_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_24 = M0.null_p(next_1);if (or_part_24!==false) {var if_res365 = or_part_24;} else {if (getkey_1!==false) {var if_res363 = less_than_p_4(getkey_1(M0.unsafe_car(next_1)),getkey_1(last_1));} else {var if_res363 = less_than_p_4(M0.unsafe_car(next_1),last_1);}if (M0.not(if_res363)!==false) {var if_res364 = loop_23(M0.unsafe_car(next_1),M0.unsafe_cdr(next_1));} else {var if_res364 = false;}var if_res365 = if_res364;}return if_res365;};if (loop_23(M0.car(lst_3),M0.cdr(lst_3))!==false) {var if_res379 = lst_3;} else {if (M0.unsafe_fx_lt__eq_(n_8,3)!==false) {if (M0.unsafe_fx_eq_(n_8,1)!==false) {var if_res375 = lst_3;} else {if (M0.unsafe_fx_eq_(n_8,2)!==false) {var if_res374 = M0.list(M0.cadr(lst_3),M0.car(lst_3));} else {var a_17 = M0.car(lst_3);var b_1 = M0.cadr(lst_3);var c_1 = M0.caddr(lst_3);if (getkey_1!==false) {var if_res366 = less_than_p_4(getkey_1(b_1),getkey_1(a_17));} else {var if_res366 = less_than_p_4(b_1,a_17);}if (if_res366!==false) {if (getkey_1!==false) {var if_res367 = less_than_p_4(getkey_1(c_1),getkey_1(b_1));} else {var if_res367 = less_than_p_4(c_1,b_1);}if (if_res367!==false) {var if_res370 = M0.list(c_1,b_1,a_17);} else {if (getkey_1!==false) {var if_res368 = less_than_p_4(getkey_1(c_1),getkey_1(a_17));} else {var if_res368 = less_than_p_4(c_1,a_17);}if (if_res368!==false) {var if_res369 = M0.list(b_1,c_1,a_17);} else {var if_res369 = M0.list(b_1,a_17,c_1);}var if_res370 = if_res369;}var if_res373 = if_res370;} else {if (getkey_1!==false) {var if_res371 = less_than_p_4(getkey_1(c_1),getkey_1(a_17));} else {var if_res371 = less_than_p_4(c_1,a_17);}if (if_res371!==false) {var if_res372 = M0.list(c_1,a_17,b_1);} else {var if_res372 = M0.list(a_17,c_1,b_1);}var if_res373 = if_res372;}var if_res374 = if_res373;}var if_res375 = if_res374;}var if_res378 = if_res375;} else {var vec_2 = M0.make_vector(n_8+M0.ceiling(n_8/2));var loop_24 = function(i_8, lst_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_5)!==false) {M0.vector_set_bang_(vec_2,i_8,M0.car(lst_5));var if_res376 = loop_24(M0.add1(i_8),M0.cdr(lst_5));} else {var if_res376 = M0.rvoid();}return if_res376;};loop_24(0,lst_3);generic_sort_by_key_0(vec_2,less_than_p_4,n_8,getkey_1);var loop_25 = function(i_9, r_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_10 = M0.sub1(i_9);if (M0.__lt_(i_10,0)!==false) {var if_res377 = r_2;} else {var if_res377 = loop_25(i_10,M0.cons(M0.vector_ref(vec_2,i_10),r_2));}return if_res377;};var if_res378 = loop_25(n_8,$rjs_core.Pair.makeList());}var if_res379 = if_res378;}var if_res380 = if_res379;}var if_res381 = if_res380;}var if_res382 = if_res381;} else {var if_res382 = sort(lst_3,less_than_p_4);}return if_res382;};var temp383 = $rjs_core.attachProcedureArity(function() {var fixed_lam344 = {'2':cl341,'3':cl342,'4':cl343}[arguments.length];if (fixed_lam344!==undefined) {return fixed_lam344.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3,4]);var cl305 = function(vec_3, less_than_p_5, start_0, end_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_9 = end_0-start_0;var dst_vec_0 = M0.make_vector(n_9);var dst_start_0 = 0;if (M0.unsafe_fx_eq_(n_9,0)!==false) {var if_res318 = M0.rvoid();} else {var loop_26 = function(prev_val_0, next_index_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_25 = M0.unsafe_fx_eq_(next_index_0,end_0);if (or_part_25!==false) {var if_res309 = or_part_25;} else {var next_val_0 = M0.unsafe_vector_ref(vec_3,next_index_0);if (M0.not(less_than_p_5(next_val_0,prev_val_0))!==false) {var if_res308 = loop_26(next_val_0,M0.unsafe_fx_plus_(next_index_0,1));} else {var if_res308 = false;}var if_res309 = if_res308;}return if_res309;};if (loop_26(M0.unsafe_vector_ref(vec_3,start_0),M0.unsafe_fx_plus_(start_0,1))!==false) {var if_res317 = M0.vector_copy_bang_(dst_vec_0,dst_start_0,vec_3,start_0,end_0);} else {if (M0.unsafe_fx_lt__eq_(n_9,3)!==false) {M0.vector_copy_bang_(dst_vec_0,dst_start_0,vec_3,start_0,end_0);if (M0.unsafe_fx_eq_(n_9,1)!==false) {var if_res315 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_9,2)!==false) {var tmp_1 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0));M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1)));var if_res314 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),tmp_1);} else {var a_18 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0));var b_2 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1));var c_2 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2));if (less_than_p_5(b_2,a_18)!==false) {if (less_than_p_5(c_2,b_2)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),c_2);var if_res311 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),a_18);} else {if (less_than_p_5(c_2,a_18)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),b_2);M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),c_2);var if_res310 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),a_18);} else {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),b_2);var if_res310 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),a_18);}var if_res311 = if_res310;}var if_res313 = if_res311;} else {if (less_than_p_5(c_2,a_18)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),c_2);M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),a_18);var if_res312 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),b_2);} else {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),c_2);var if_res312 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),b_2);}var if_res313 = if_res312;}var if_res314 = if_res313;}var if_res315 = if_res314;}var if_res316 = if_res315;} else {var work_vec_0 = M0.make_vector(n_9+M0.ceiling(n_9/2),false);M0.vector_copy_bang_(work_vec_0,0,vec_3,start_0,end_0);generic_sort_0(work_vec_0,less_than_p_5,n_9);var if_res316 = M0.vector_copy_bang_(dst_vec_0,dst_start_0,work_vec_0,0,n_9);}var if_res317 = if_res316;}var if_res318 = if_res317;}if_res318;return dst_vec_0;};var cl306 = function(vec_4, less_than_p_6, start_1, end_1, getkey_2, cache_keys_p_1) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_2!==false) {var if_res319 = M0.not(M0.eq_p(M0.values,getkey_2));} else {var if_res319 = false;}if (if_res319!==false) {var n_10 = end_1-start_1;var dst_vec_1 = M0.make_vector(n_10);var dst_start_1 = 0;if (M0.unsafe_fx_eq_(n_10,0)!==false) {var if_res338 = M0.rvoid();} else {if (cache_keys_p_1!==false) {var work_vec_1 = M0.make_vector(n_10+M0.ceiling(n_10/2),true);var loop_27 = function(i_11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_11,n_10)!==false) {var x_7 = M0.unsafe_vector_ref(vec_4,M0.unsafe_fx_plus_(i_11,start_1));M0.unsafe_vector_set_bang_(work_vec_1,i_11,M0.cons(getkey_2(x_7),x_7));var if_res320 = loop_27(M0.unsafe_fx_plus_(i_11,1));} else {var if_res320 = M0.rvoid();}return if_res320;};loop_27(0);generic_sort_by_key_0(work_vec_1,less_than_p_6,n_10,M0.unsafe_car);var loop_28 = function(i_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_12,n_10)!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(i_12,dst_start_1),M0.unsafe_cdr(M0.unsafe_vector_ref(work_vec_1,i_12)));var if_res321 = loop_28(M0.unsafe_fx_plus_(i_12,1));} else {var if_res321 = M0.rvoid();}return if_res321;};var if_res337 = loop_28(0);} else {var loop_29 = function(prev_val_1, next_index_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_26 = M0.unsafe_fx_eq_(next_index_1,end_1);if (or_part_26!==false) {var if_res324 = or_part_26;} else {var next_val_1 = M0.unsafe_vector_ref(vec_4,next_index_1);if (getkey_2!==false) {var if_res322 = less_than_p_6(getkey_2(next_val_1),getkey_2(prev_val_1));} else {var if_res322 = less_than_p_6(next_val_1,prev_val_1);}if (M0.not(if_res322)!==false) {var if_res323 = loop_29(next_val_1,M0.unsafe_fx_plus_(next_index_1,1));} else {var if_res323 = false;}var if_res324 = if_res323;}return if_res324;};if (loop_29(M0.unsafe_vector_ref(vec_4,start_1),M0.unsafe_fx_plus_(start_1,1))!==false) {var if_res336 = M0.vector_copy_bang_(dst_vec_1,dst_start_1,vec_4,start_1,end_1);} else {if (M0.unsafe_fx_lt__eq_(n_10,3)!==false) {M0.vector_copy_bang_(dst_vec_1,dst_start_1,vec_4,start_1,end_1);if (M0.unsafe_fx_eq_(n_10,1)!==false) {var if_res334 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_10,2)!==false) {var tmp_2 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0));M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1)));var if_res333 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),tmp_2);} else {var a_19 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0));var b_3 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1));var c_3 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2));if (getkey_2!==false) {var if_res325 = less_than_p_6(getkey_2(b_3),getkey_2(a_19));} else {var if_res325 = less_than_p_6(b_3,a_19);}if (if_res325!==false) {if (getkey_2!==false) {var if_res326 = less_than_p_6(getkey_2(c_3),getkey_2(b_3));} else {var if_res326 = less_than_p_6(c_3,b_3);}if (if_res326!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),c_3);var if_res329 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),a_19);} else {if (getkey_2!==false) {var if_res327 = less_than_p_6(getkey_2(c_3),getkey_2(a_19));} else {var if_res327 = less_than_p_6(c_3,a_19);}if (if_res327!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),b_3);M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),c_3);var if_res328 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),a_19);} else {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),b_3);var if_res328 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),a_19);}var if_res329 = if_res328;}var if_res332 = if_res329;} else {if (getkey_2!==false) {var if_res330 = less_than_p_6(getkey_2(c_3),getkey_2(a_19));} else {var if_res330 = less_than_p_6(c_3,a_19);}if (if_res330!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),c_3);M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),a_19);var if_res331 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),b_3);} else {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),c_3);var if_res331 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),b_3);}var if_res332 = if_res331;}var if_res333 = if_res332;}var if_res334 = if_res333;}var if_res335 = if_res334;} else {var work_vec_2 = M0.make_vector(n_10+M0.ceiling(n_10/2),false);M0.vector_copy_bang_(work_vec_2,0,vec_4,start_1,end_1);generic_sort_by_key_0(work_vec_2,less_than_p_6,n_10,getkey_2);var if_res335 = M0.vector_copy_bang_(dst_vec_1,dst_start_1,work_vec_2,0,n_10);}var if_res336 = if_res335;}var if_res337 = if_res336;}var if_res338 = if_res337;}if_res338;var if_res339 = dst_vec_1;} else {var if_res339 = vector_sort(vec_4,less_than_p_6,start_1,end_1);}return if_res339;};var temp340 = $rjs_core.attachProcedureArity(function() {var fixed_lam307 = {'4':cl305,'6':cl306}[arguments.length];if (fixed_lam307!==undefined) {return fixed_lam307.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,6]);var cl270 = function(vec_5, less_than_p_7, start_2, end_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_11 = end_2-start_2;var dst_vec_2 = vec_5;var dst_start_2 = start_2;if (M0.unsafe_fx_eq_(n_11,0)!==false) {var if_res283 = M0.rvoid();} else {var loop_30 = function(prev_val_2, next_index_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_27 = M0.unsafe_fx_eq_(next_index_2,end_2);if (or_part_27!==false) {var if_res274 = or_part_27;} else {var next_val_2 = M0.unsafe_vector_ref(vec_5,next_index_2);if (M0.not(less_than_p_7(next_val_2,prev_val_2))!==false) {var if_res273 = loop_30(next_val_2,M0.unsafe_fx_plus_(next_index_2,1));} else {var if_res273 = false;}var if_res274 = if_res273;}return if_res274;};if (loop_30(M0.unsafe_vector_ref(vec_5,start_2),M0.unsafe_fx_plus_(start_2,1))!==false) {var if_res282 = M0.rvoid();} else {if (M0.unsafe_fx_lt__eq_(n_11,3)!==false) {M0.rvoid();if (M0.unsafe_fx_eq_(n_11,1)!==false) {var if_res280 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_11,2)!==false) {var tmp_3 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0));M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1)));var if_res279 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),tmp_3);} else {var a_20 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0));var b_4 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1));var c_4 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2));if (less_than_p_7(b_4,a_20)!==false) {if (less_than_p_7(c_4,b_4)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),c_4);var if_res276 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),a_20);} else {if (less_than_p_7(c_4,a_20)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),b_4);M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),c_4);var if_res275 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),a_20);} else {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),b_4);var if_res275 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),a_20);}var if_res276 = if_res275;}var if_res278 = if_res276;} else {if (less_than_p_7(c_4,a_20)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),c_4);M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),a_20);var if_res277 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),b_4);} else {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),c_4);var if_res277 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),b_4);}var if_res278 = if_res277;}var if_res279 = if_res278;}var if_res280 = if_res279;}var if_res281 = if_res280;} else {var work_vec_3 = M0.make_vector(n_11+M0.ceiling(n_11/2),false);M0.vector_copy_bang_(work_vec_3,0,vec_5,start_2,end_2);generic_sort_0(work_vec_3,less_than_p_7,n_11);var if_res281 = M0.vector_copy_bang_(dst_vec_2,dst_start_2,work_vec_3,0,n_11);}var if_res282 = if_res281;}var if_res283 = if_res282;}if_res283;return M0.rvoid();};var cl271 = function(vec_6, less_than_p_8, start_3, end_3, getkey_3, cache_keys_p_2) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_3!==false) {var if_res284 = M0.not(M0.eq_p(M0.values,getkey_3));} else {var if_res284 = false;}if (if_res284!==false) {var n_12 = end_3-start_3;var dst_vec_3 = vec_6;var dst_start_3 = start_3;if (M0.unsafe_fx_eq_(n_12,0)!==false) {var if_res303 = M0.rvoid();} else {if (cache_keys_p_2!==false) {var work_vec_4 = M0.make_vector(n_12+M0.ceiling(n_12/2),true);var loop_31 = function(i_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_13,n_12)!==false) {var x_8 = M0.unsafe_vector_ref(vec_6,M0.unsafe_fx_plus_(i_13,start_3));M0.unsafe_vector_set_bang_(work_vec_4,i_13,M0.cons(getkey_3(x_8),x_8));var if_res285 = loop_31(M0.unsafe_fx_plus_(i_13,1));} else {var if_res285 = M0.rvoid();}return if_res285;};loop_31(0);generic_sort_by_key_0(work_vec_4,less_than_p_8,n_12,M0.unsafe_car);var loop_32 = function(i_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_14,n_12)!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(i_14,dst_start_3),M0.unsafe_cdr(M0.unsafe_vector_ref(work_vec_4,i_14)));var if_res286 = loop_32(M0.unsafe_fx_plus_(i_14,1));} else {var if_res286 = M0.rvoid();}return if_res286;};var if_res302 = loop_32(0);} else {var loop_33 = function(prev_val_3, next_index_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_28 = M0.unsafe_fx_eq_(next_index_3,end_3);if (or_part_28!==false) {var if_res289 = or_part_28;} else {var next_val_3 = M0.unsafe_vector_ref(vec_6,next_index_3);if (getkey_3!==false) {var if_res287 = less_than_p_8(getkey_3(next_val_3),getkey_3(prev_val_3));} else {var if_res287 = less_than_p_8(next_val_3,prev_val_3);}if (M0.not(if_res287)!==false) {var if_res288 = loop_33(next_val_3,M0.unsafe_fx_plus_(next_index_3,1));} else {var if_res288 = false;}var if_res289 = if_res288;}return if_res289;};if (loop_33(M0.unsafe_vector_ref(vec_6,start_3),M0.unsafe_fx_plus_(start_3,1))!==false) {var if_res301 = M0.rvoid();} else {if (M0.unsafe_fx_lt__eq_(n_12,3)!==false) {M0.rvoid();if (M0.unsafe_fx_eq_(n_12,1)!==false) {var if_res299 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_12,2)!==false) {var tmp_4 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0));M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1)));var if_res298 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),tmp_4);} else {var a_21 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0));var b_5 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1));var c_5 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2));if (getkey_3!==false) {var if_res290 = less_than_p_8(getkey_3(b_5),getkey_3(a_21));} else {var if_res290 = less_than_p_8(b_5,a_21);}if (if_res290!==false) {if (getkey_3!==false) {var if_res291 = less_than_p_8(getkey_3(c_5),getkey_3(b_5));} else {var if_res291 = less_than_p_8(c_5,b_5);}if (if_res291!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),c_5);var if_res294 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),a_21);} else {if (getkey_3!==false) {var if_res292 = less_than_p_8(getkey_3(c_5),getkey_3(a_21));} else {var if_res292 = less_than_p_8(c_5,a_21);}if (if_res292!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),b_5);M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),c_5);var if_res293 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),a_21);} else {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),b_5);var if_res293 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),a_21);}var if_res294 = if_res293;}var if_res297 = if_res294;} else {if (getkey_3!==false) {var if_res295 = less_than_p_8(getkey_3(c_5),getkey_3(a_21));} else {var if_res295 = less_than_p_8(c_5,a_21);}if (if_res295!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),c_5);M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),a_21);var if_res296 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),b_5);} else {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),c_5);var if_res296 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),b_5);}var if_res297 = if_res296;}var if_res298 = if_res297;}var if_res299 = if_res298;}var if_res300 = if_res299;} else {var work_vec_5 = M0.make_vector(n_12+M0.ceiling(n_12/2),false);M0.vector_copy_bang_(work_vec_5,0,vec_6,start_3,end_3);generic_sort_by_key_0(work_vec_5,less_than_p_8,n_12,getkey_3);var if_res300 = M0.vector_copy_bang_(dst_vec_3,dst_start_3,work_vec_5,0,n_12);}var if_res301 = if_res300;}var if_res302 = if_res301;}var if_res303 = if_res302;}if_res303;var if_res304 = M0.rvoid();} else {var if_res304 = vector_sort_bang_(vec_6,less_than_p_8,start_3,end_3);}return if_res304;};var let_result384 = M0.values(temp383,temp340,$rjs_core.attachProcedureArity(function() {var fixed_lam272 = {'4':cl270,'6':cl271}[arguments.length];if (fixed_lam272!==undefined) {return fixed_lam272.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,6]));var sort = let_result384.getAt(0);var vector_sort = let_result384.getAt(1);var vector_sort_bang_ = let_result384.getAt(2);var let_result385 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("sequence"),false,1,0,false);var struct_do_sequence = let_result385.getAt(0);var make_do_sequence = let_result385.getAt(1);var do_sequence_p = let_result385.getAt(2);var do_sequence_ref = let_result385.getAt(3);var do_sequence_set_bang_ = let_result385.getAt(4);var let_result394 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("stream"),function(v_13, si_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.vector_p(v_13)!==false) {if (M0.__eq_(3,M0.vector_length(v_13))!==false) {if (M0.procedure_p(M0.vector_ref(v_13,0))!==false) {if (M0.procedure_arity_includes_p(M0.vector_ref(v_13,0),1)!==false) {if (M0.procedure_p(M0.vector_ref(v_13,1))!==false) {if (M0.procedure_arity_includes_p(M0.vector_ref(v_13,1),1)!==false) {if (M0.procedure_p(M0.vector_ref(v_13,2))!==false) {var if_res386 = M0.procedure_arity_includes_p(M0.vector_ref(v_13,2),1);} else {var if_res386 = false;}var if_res387 = if_res386;} else {var if_res387 = false;}var if_res388 = if_res387;} else {var if_res388 = false;}var if_res389 = if_res388;} else {var if_res389 = false;}var if_res390 = if_res389;} else {var if_res390 = false;}var if_res391 = if_res390;} else {var if_res391 = false;}var if_res392 = if_res391;} else {var if_res392 = false;}if (if_res392!==false) {var if_res393 = M0.rvoid();} else {var if_res393 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("guard-for-prop:stream"),M0.string_append($rjs_core.UString.make("(vector/c (procedure-arity-includes/c 1)\n"),$rjs_core.UString.make(" (procedure-arity-includes/c 1)\n"),$rjs_core.UString.make(" (procedure-arity-includes/c 1))")),v_13);}if_res393;return M0.vector__gt_immutable_vector(v_13);},$rjs_core.Pair.makeList(),true);var prop_stream = let_result394.getAt(0);var stream_via_prop_p = let_result394.getAt(1);var stream_ref = let_result394.getAt(2);var let_result397 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("sequence"),function(v_14, si_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(v_14)!==false) {var if_res395 = M0.procedure_arity_includes_p(v_14,1);} else {var if_res395 = false;}if (if_res395!==false) {var if_res396 = M0.rvoid();} else {var if_res396 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("guard-for-prop:sequence"),$rjs_core.UString.make("(procedure-arity-includes/c 1)"),v_14);}if_res396;return v_14;});var prop_gen_sequence = let_result397.getAt(0);var sequence_via_prop_p = let_result397.getAt(1);var sequence_ref = let_result397.getAt(2);var let_result401 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("sequence"),function(v_15, sinfo_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(v_15)!==false) {var if_res398 = M0.procedure_arity_includes_p(v_15,1);} else {var if_res398 = false;}if (if_res398!==false) {var if_res399 = M0.rvoid();} else {var if_res399 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sequence-property-guard"),$rjs_core.UString.make("(procedure-arity-includes/c 1)"),v_15);}if_res399;return function(self_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var s_0 = v_15(self_0);if (sequence_p(s_0)!==false) {var if_res400 = M0.rvoid();} else {var if_res400 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("sequence-generate"),$rjs_core.UString.make("procedure (value of prop:sequence) produced a non-sequence: "),s_0);}if_res400;return s_0;};});var prop_sequence = let_result401.getAt(0);var __sequence_p = let_result401.getAt(1);var __sequence_ref = let_result401.getAt(2);var stream_p = function(v_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_29 = M0.list_p(v_16);if (or_part_29!==false) {var if_res402 = or_part_29;} else {var if_res402 = stream_via_prop_p(v_16);}return if_res402;};var unsafe_stream_not_empty_p = function(v_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(v_17)!==false) {var if_res404 = false;} else {var or_part_30 = M0.pair_p(v_17);if (or_part_30!==false) {var if_res403 = or_part_30;} else {var if_res403 = M0.not(M0.unsafe_vector_ref(stream_ref(v_17),0)(v_17));}var if_res404 = if_res403;}return if_res404;};var unsafe_stream_first = function(v_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.pair_p(v_18)!==false) {var if_res405 = M0.car(v_18);} else {var if_res405 = M0.unsafe_vector_ref(stream_ref(v_18),1)(v_18);}return if_res405;};var unsafe_stream_rest = function(v_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.pair_p(v_19)!==false) {var if_res407 = M0.cdr(v_19);} else {var r_3 = M0.unsafe_vector_ref(stream_ref(v_19),2)(v_19);if (stream_p(r_3)!==false) {var if_res406 = M0.rvoid();} else {var if_res406 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("stream-rest-guard"),$rjs_core.UString.make("result is not a stream: "),r_3);}if_res406;var if_res407 = r_3;}return if_res407;};var sequence_p = function(v_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_31 = M0.exact_nonnegative_integer_p(v_20);if (or_part_31!==false) {var if_res420 = or_part_31;} else {var or_part_32 = do_sequence_p(v_20);if (or_part_32!==false) {var if_res419 = or_part_32;} else {var or_part_33 = sequence_via_prop_p(v_20);if (or_part_33!==false) {var if_res418 = or_part_33;} else {var or_part_34 = stream_p(v_20);if (or_part_34!==false) {var if_res417 = or_part_34;} else {var or_part_35 = M0.mpair_p(v_20);if (or_part_35!==false) {var if_res416 = or_part_35;} else {var or_part_36 = M0.vector_p(v_20);if (or_part_36!==false) {var if_res415 = or_part_36;} else {var or_part_37 = M0.flvector_p(v_20);if (or_part_37!==false) {var if_res414 = or_part_37;} else {var or_part_38 = M0.fxvector_p(v_20);if (or_part_38!==false) {var if_res413 = or_part_38;} else {var or_part_39 = M0.string_p(v_20);if (or_part_39!==false) {var if_res412 = or_part_39;} else {var or_part_40 = M0.bytes_p(v_20);if (or_part_40!==false) {var if_res411 = or_part_40;} else {var or_part_41 = M0.input_port_p(v_20);if (or_part_41!==false) {var if_res410 = or_part_41;} else {var or_part_42 = M0.hash_p(v_20);if (or_part_42!==false) {var if_res409 = or_part_42;} else {if (__sequence_p(v_20)!==false) {var if_res408 = M0.not(M0.struct_type_p(v_20));} else {var if_res408 = false;}var if_res409 = if_res408;}var if_res410 = if_res409;}var if_res411 = if_res410;}var if_res412 = if_res411;}var if_res413 = if_res412;}var if_res414 = if_res413;}var if_res415 = if_res414;}var if_res416 = if_res415;}var if_res417 = if_res416;}var if_res418 = if_res417;}var if_res419 = if_res418;}var if_res420 = if_res419;}return if_res420;};var make_sequence = function(who_2, v_21) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(v_21)!==false) {var if_res439 = __integer_gen(v_21);} else {if (do_sequence_p(v_21)!==false) {var cl421 = function(pos__gt_vals_0, pos_next_0, init_0, pos_cont_p_0, val_cont_p_0, all_cont_p_0) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(pos__gt_vals_0,false,pos_next_0,init_0,pos_cont_p_0,val_cont_p_0,all_cont_p_0);};var cl422 = function(pos__gt_vals_1, pre_pos_next_0, pos_next_1, init_1, pos_cont_p_1, val_cont_p_1, all_cont_p_1) {if (arguments.length!==7) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(pos__gt_vals_1,pre_pos_next_0,pos_next_1,init_1,pos_cont_p_1,val_cont_p_1,all_cont_p_1);};var if_res438 = M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_sequence_ref(v_21,0)();},$rjs_core.attachProcedureArity(function() {var fixed_lam423 = {'6':cl421,'7':cl422}[arguments.length];if (fixed_lam423!==undefined) {return fixed_lam423.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[6,7]));} else {if (M0.mpair_p(v_21)!==false) {var if_res437 = __mlist_gen(v_21);} else {if (M0.list_p(v_21)!==false) {var if_res436 = __list_gen(v_21);} else {if (M0.vector_p(v_21)!==false) {var if_res435 = __vector_gen(v_21,0,M0.vector_length(v_21),1);} else {if (M0.flvector_p(v_21)!==false) {var if_res434 = __flvector_gen(v_21,0,M0.flvector_length(v_21),1);} else {if (M0.fxvector_p(v_21)!==false) {var if_res433 = __fxvector_gen(v_21,0,M0.fxvector_length(v_21),1);} else {if (M0.string_p(v_21)!==false) {var if_res432 = __string_gen(v_21,0,M0.string_length(v_21),1);} else {if (M0.bytes_p(v_21)!==false) {var if_res431 = __bytes_gen(v_21,0,M0.bytes_length(v_21),1);} else {if (M0.input_port_p(v_21)!==false) {var if_res430 = __input_port_gen(v_21);} else {if (M0.hash_p(v_21)!==false) {var if_res429 = __hash_gen(v_21,M0.hash_iterate_key_plus_value,M0.hash_iterate_first,M0.hash_iterate_next);} else {if (sequence_via_prop_p(v_21)!==false) {var if_res428 = sequence_ref(v_21)(v_21);} else {if (__sequence_p(v_21)!==false) {var if_res427 = make_sequence(who_2,__sequence_ref(v_21)(v_21));} else {if (stream_p(v_21)!==false) {var if_res426 = __stream_gen(v_21);} else {var temp425 = $rjs_core.UString.make("for: expected a sequence for ~a, got something else: ~v");if (M0.__eq_(1,M0.length(who_2))!==false) {var if_res424 = M0.car(who_2);} else {var if_res424 = who_2;}var if_res426 = M0.raise(M0.exn_fail_contract(M0.format(temp425,if_res424,v_21),M0.current_continuation_marks()));}var if_res427 = if_res426;}var if_res428 = if_res427;}var if_res429 = if_res428;}var if_res430 = if_res429;}var if_res431 = if_res430;}var if_res432 = if_res431;}var if_res433 = if_res432;}var if_res434 = if_res433;}var if_res435 = if_res434;}var if_res436 = if_res435;}var if_res437 = if_res436;}var if_res438 = if_res437;}var if_res439 = if_res438;}return if_res439;};var let_result441 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,3,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var cont_p_0 = range_ref(v_22,2);if (cont_p_0!==false) {var if_res440 = M0.not(cont_p_0(range_ref(v_22,0)));} else {var if_res440 = false;}return if_res440;},function(v_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return range_ref(v_23,0);},function(v_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return make_range(range_ref(v_24,1)(range_ref(v_24,0)),range_ref(v_24,1),range_ref(v_24,2));})),M0.cons(prop_gen_sequence,function(v_25) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.values,false,range_ref(v_25,1),range_ref(v_25,0),range_ref(v_25,2),false,false);})));var struct_range = let_result441.getAt(0);var make_range = let_result441.getAt(1);var range_p = let_result441.getAt(2);var range_ref = let_result441.getAt(3);var range_set_bang_ = let_result441.getAt(4);var check_range = function(a_22, b_6, step_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return check_range_generic($rjs_core.PrimitiveSymbol.make("in-range"),a_22,b_6,step_0);};var check_range_generic = function(who_3, a_23, b_7, step_1) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.real_p(a_23)!==false) {var if_res442 = M0.rvoid();} else {var if_res442 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),a_23);}if_res442;if (M0.real_p(b_7)!==false) {var if_res443 = M0.rvoid();} else {var if_res443 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),b_7);}if_res443;if (M0.real_p(step_1)!==false) {var if_res444 = M0.rvoid();} else {var if_res444 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),step_1);}return if_res444;};var __integer_gen = function(v_26) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.values,false,M0.add1,0,function(i_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_15,v_26);},false,false);};var check_naturals = function(n_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.integer_p(n_13)!==false) {if (M0.exact_p(n_13)!==false) {var if_res445 = M0.__gt__eq_(n_13,0);} else {var if_res445 = false;}var if_res446 = if_res445;} else {var if_res446 = false;}if (if_res446!==false) {var if_res447 = M0.rvoid();} else {var if_res447 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-naturals"),$rjs_core.UString.make("exact-nonnegative-integer?"),n_13);}return if_res447;};var let_result448 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,1,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.pair_p(list_stream_ref(v_27,0)));},function(v_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.car(list_stream_ref(v_28,0));},function(v_29) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return make_list_stream(M0.cdr(list_stream_ref(v_29,0)));})),M0.cons(prop_gen_sequence,function(v_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.car,M0.cdr,M0.values,list_stream_ref(v_30,0),M0.pair_p,false,false);})));var struct_list_stream = let_result448.getAt(0);var make_list_stream = let_result448.getAt(1);var list_stream_p = let_result448.getAt(2);var list_stream_ref = let_result448.getAt(3);var list_stream_set_bang_ = let_result448.getAt(4);var check_list = function(l_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(l_4)!==false) {var if_res449 = M0.rvoid();} else {var if_res449 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-list"),$rjs_core.UString.make("list?"),l_4);}return if_res449;};var __list_gen = function(l_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.car,M0.cdr,M0.values,l_5,M0.pair_p,false,false);};var __mlist_gen = function(l_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.mcar,false,M0.mcdr,l_6,M0.mpair_p,false,false);};var __input_port_gen = function(p_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.read_byte,false,M0.values,p_7,false,function(x_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.eof_object_p(x_9));},false);};var __stream_gen = function(l_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(unsafe_stream_first,unsafe_stream_rest,M0.values,l_7,unsafe_stream_not_empty_p,false,false);};var cl450 = function(ht_2, __get_0, __first_0, __next_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(function(pos_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __get_0(ht_2,pos_1);},false,function(pos_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __next_0(ht_2,pos_2);},__first_0(ht_2),function(pos_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos_3;},false,false);};var cl451 = function(ht_3, __get_1, __first_1, __next_1, bad_v_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(function(pos_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __get_1(ht_3,pos_4,bad_v_0);},false,function(pos_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __next_1(ht_3,pos_5);},__first_1(ht_3),function(pos_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos_6;},false,false);};var __hash_gen = $rjs_core.attachProcedureArity(function() {var fixed_lam452 = {'4':cl450,'5':cl451}[arguments.length];if (fixed_lam452!==undefined) {return fixed_lam452.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,5]);var check_in_hash = function(ht_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if ((function(ht_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.hash_p(ht_5);})(ht_4)!==false) {var if_res453 = M0.rvoid();} else {var if_res453 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-hash"),$rjs_core.UString.make("hash?"),ht_4);}return if_res453;};var __vector_gen = function(v_31, start_4, stop_0, step_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_2,1)!==false) {var if_res455 = M0.add1;} else {var if_res455 = function(i_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_17+step_2;};}if (M0.__gt_(step_2,0)!==false) {var if_res454 = function(i_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_18,stop_0);};} else {var if_res454 = function(i_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_19,stop_0);};}return M0.values(function(i_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_vector_ref(v_31,i_16);},false,if_res455,start_4,if_res454,false,false);};var __string_gen = function(v_32, start_5, stop_1, step_3) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_3,1)!==false) {var if_res457 = M0.add1;} else {var if_res457 = function(i_21) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_21+step_3;};}if (M0.__gt_(step_3,0)!==false) {var if_res456 = function(i_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_22,stop_1);};} else {var if_res456 = function(i_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_23,stop_1);};}return M0.values(function(i_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.string_ref(v_32,i_20);},false,if_res457,start_5,if_res456,false,false);};var check_string = function(v_33) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(v_33)!==false) {var if_res458 = M0.rvoid();} else {var if_res458 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-string"),$rjs_core.UString.make("string"),v_33);}return if_res458;};var __bytes_gen = function(v_34, start_6, stop_2, step_4) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_4,1)!==false) {var if_res460 = M0.add1;} else {var if_res460 = function(i_25) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_25+step_4;};}if (M0.__gt_(step_4,0)!==false) {var if_res459 = function(i_26) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_26,stop_2);};} else {var if_res459 = function(i_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_27,stop_2);};}return M0.values(function(i_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_bytes_ref(v_34,i_24);},false,if_res460,start_6,if_res459,false,false);};var __flvector_gen = function(v_35, start_7, stop_3, step_5) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_5,1)!==false) {var if_res462 = M0.add1;} else {var if_res462 = function(i_29) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_29+step_5;};}if (M0.__gt_(step_5,0)!==false) {var if_res461 = function(i_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_30,stop_3);};} else {var if_res461 = function(i_31) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_31,stop_3);};}return M0.values(function(i_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_flvector_ref(v_35,i_28);},false,if_res462,start_7,if_res461,false,false);};var __fxvector_gen = function(v_36, start_8, stop_4, step_6) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_6,1)!==false) {var if_res464 = M0.add1;} else {var if_res464 = function(i_33) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_33+step_6;};}if (M0.__gt_(step_6,0)!==false) {var if_res463 = function(i_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_34,stop_4);};} else {var if_res463 = function(i_35) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_35,stop_4);};}return M0.values(function(i_32) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_fxvector_ref(v_36,i_32);},false,if_res464,start_8,if_res463,false,false);};var in_values_times__sequence = function(g_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (sequence_p(g_0)!==false) {var if_res465 = M0.rvoid();} else {var if_res465 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-values-sequence"),$rjs_core.UString.make("sequence?"),g_0);}if_res465;return make_do_sequence(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result466 = make_sequence(false,g_0);var pos__gt_val_0 = let_result466.getAt(0);var pre_pos_next_1 = let_result466.getAt(1);var pos_next_2 = let_result466.getAt(2);var init_2 = let_result466.getAt(3);var pos_cont_p_2 = let_result466.getAt(4);var pre_cont_p_0 = let_result466.getAt(5);var post_cont_p_0 = let_result466.getAt(6);if (pre_cont_p_0!==false) {var if_res470 = function(vals_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(vals_1)!==false) {var if_res469 = M0.apply(pre_cont_p_0,vals_1);} else {var if_res469 = pre_cont_p_0(vals_1);}return if_res469;};} else {var if_res470 = false;}if (post_cont_p_0!==false) {var if_res468 = function(pos_8, vals_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(vals_2)!==false) {var if_res467 = M0.apply(post_cont_p_0,pos_8,vals_2);} else {var if_res467 = post_cont_p_0(pos_8,vals_2);}return if_res467;};} else {var if_res468 = false;}return M0.values(function(pos_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var cl471 = function(v_37) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(v_37)!==false) {var if_res475 = M0.list(v_37);} else {var if_res475 = v_37;}return if_res475;};var cl472 = $rjs_core.attachProcedureArity(function(...vs_0476) {var vs_0 = $rjs_core.Pair.listFromArray(vs_0476);return vs_0;});return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos__gt_val_0(pos_7);},$rjs_core.attachProcedureArity(function() {var fixed_lam473 = {'1':cl471}[arguments.length];if (fixed_lam473!==undefined) {return fixed_lam473.apply(null,arguments);} else {if (true!==false) {var if_res474 = cl472.apply(null,arguments);} else {var if_res474 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res474;}},[M0.make_arity_at_least(0)]));},pre_pos_next_1,pos_next_2,init_2,pos_cont_p_2,if_res470,if_res468);});};var let_result477 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,3,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_38) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_38,0)();},function(v_39) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_39,1)();},function(v_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_40,2)();}))));var struct_do_stream = let_result477.getAt(0);var make_do_stream = let_result477.getAt(1);var do_stream_p = let_result477.getAt(2);var do_stream_ref = let_result477.getAt(3);var do_stream_set_bang_ = let_result477.getAt(4);var empty_stream = make_do_stream(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return true;},M0.rvoid,M0.rvoid);var cl478 = function(f_0, l_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("map");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res485 = true;} else {if (M0.procedure_p(f_0)!==false) {if (M0.procedure_arity_includes_p(f_0,1)!==false) {var if_res483 = M0.list_p(l_8);} else {var if_res483 = false;}var if_res484 = if_res483;} else {var if_res484 = false;}var if_res485 = if_res484;}if (if_res485!==false) {var loop_0 = function(l_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_9)!==false) {var if_res486 = M0.rnull;} else {var r_4 = M0.cdr(l_9);var if_res486 = M0.cons(f_0(M0.car(l_9)),loop_0(r_4));}return if_res486;};var if_res487 = loop_0(l_8);} else {var if_res487 = gen_map(f_0,M0.list(l_8));}return if_res487;};var cl479 = function(f_1, l1_2, l2_2) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res492 = true;} else {if (M0.procedure_p(f_1)!==false) {if (M0.procedure_arity_includes_p(f_1,2)!==false) {if (M0.list_p(l1_2)!==false) {if (M0.list_p(l2_2)!==false) {var if_res488 = M0.__eq_(M0.length(l1_2),M0.length(l2_2));} else {var if_res488 = false;}var if_res489 = if_res488;} else {var if_res489 = false;}var if_res490 = if_res489;} else {var if_res490 = false;}var if_res491 = if_res490;} else {var if_res491 = false;}var if_res492 = if_res491;}if (if_res492!==false) {var loop_34 = function(l1_3, l2_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l1_3)!==false) {var if_res493 = M0.rnull;} else {var r1_0 = M0.cdr(l1_3);var r2_0 = M0.cdr(l2_3);var if_res493 = M0.cons(f_1(M0.car(l1_3),M0.car(l2_3)),loop_34(r1_0,r2_0));}return if_res493;};var if_res494 = loop_34(l1_2,l2_2);} else {var if_res494 = gen_map(f_1,M0.list(l1_2,l2_2));}return if_res494;};var cl480 = $rjs_core.attachProcedureArity(function(f_2, l_10, ...args_4495) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_4 = $rjs_core.Pair.listFromArray(args_4495);return gen_map(f_2,M0.cons(l_10,args_4));});var map_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam481 = {'2':cl478,'3':cl479}[arguments.length];if (fixed_lam481!==undefined) {return fixed_lam481.apply(null,arguments);} else {if (M0.__gt__eq_(cl480.length,1)!==false) {var if_res482 = cl480.apply(null,arguments);} else {var if_res482 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res482;}},[M0.make_arity_at_least(2)]);var map2 = map_0;var cl496 = function(f_3, l_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("andmap");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res503 = true;} else {if (M0.procedure_p(f_3)!==false) {if (M0.procedure_arity_includes_p(f_3,1)!==false) {var if_res501 = M0.list_p(l_11);} else {var if_res501 = false;}var if_res502 = if_res501;} else {var if_res502 = false;}var if_res503 = if_res502;}if (if_res503!==false) {if (M0.null_p(l_11)!==false) {var if_res506 = true;} else {var loop_35 = function(l_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l_12))!==false) {var if_res505 = f_3(M0.car(l_12));} else {var r_5 = M0.cdr(l_12);if (f_3(M0.car(l_12))!==false) {var if_res504 = loop_35(r_5);} else {var if_res504 = false;}var if_res505 = if_res504;}return if_res505;};var if_res506 = loop_35(l_11);}var if_res507 = if_res506;} else {var if_res507 = gen_andmap(f_3,M0.list(l_11));}return if_res507;};var cl497 = function(f_4, l1_4, l2_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res512 = true;} else {if (M0.procedure_p(f_4)!==false) {if (M0.procedure_arity_includes_p(f_4,2)!==false) {if (M0.list_p(l1_4)!==false) {if (M0.list_p(l2_4)!==false) {var if_res508 = M0.__eq_(M0.length(l1_4),M0.length(l2_4));} else {var if_res508 = false;}var if_res509 = if_res508;} else {var if_res509 = false;}var if_res510 = if_res509;} else {var if_res510 = false;}var if_res511 = if_res510;} else {var if_res511 = false;}var if_res512 = if_res511;}if (if_res512!==false) {if (M0.null_p(l1_4)!==false) {var if_res515 = true;} else {var loop_36 = function(l1_5, l2_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l1_5))!==false) {var if_res514 = f_4(M0.car(l1_5),M0.car(l2_5));} else {var r1_1 = M0.cdr(l1_5);var r2_1 = M0.cdr(l2_5);if (f_4(M0.car(l1_5),M0.car(l2_5))!==false) {var if_res513 = loop_36(r1_1,r2_1);} else {var if_res513 = false;}var if_res514 = if_res513;}return if_res514;};var if_res515 = loop_36(l1_4,l2_4);}var if_res516 = if_res515;} else {var if_res516 = gen_andmap(f_4,M0.list(l1_4,l2_4));}return if_res516;};var cl498 = $rjs_core.attachProcedureArity(function(f_5, l_13, ...args_5517) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_5 = $rjs_core.Pair.listFromArray(args_5517);return gen_andmap(f_5,M0.cons(l_13,args_5));});var andmap_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam499 = {'2':cl496,'3':cl497}[arguments.length];if (fixed_lam499!==undefined) {return fixed_lam499.apply(null,arguments);} else {if (M0.__gt__eq_(cl498.length,1)!==false) {var if_res500 = cl498.apply(null,arguments);} else {var if_res500 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res500;}},[M0.make_arity_at_least(2)]);var andmap2 = andmap_0;var cl518 = function(f_6, l_14) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("ormap");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res525 = true;} else {if (M0.procedure_p(f_6)!==false) {if (M0.procedure_arity_includes_p(f_6,1)!==false) {var if_res523 = M0.list_p(l_14);} else {var if_res523 = false;}var if_res524 = if_res523;} else {var if_res524 = false;}var if_res525 = if_res524;}if (if_res525!==false) {if (M0.null_p(l_14)!==false) {var if_res528 = false;} else {var loop_37 = function(l_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l_15))!==false) {var if_res527 = f_6(M0.car(l_15));} else {var r_6 = M0.cdr(l_15);var or_part_43 = f_6(M0.car(l_15));if (or_part_43!==false) {var if_res526 = or_part_43;} else {var if_res526 = loop_37(r_6);}var if_res527 = if_res526;}return if_res527;};var if_res528 = loop_37(l_14);}var if_res529 = if_res528;} else {var if_res529 = gen_ormap(f_6,M0.list(l_14));}return if_res529;};var cl519 = function(f_7, l1_6, l2_6) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res534 = true;} else {if (M0.procedure_p(f_7)!==false) {if (M0.procedure_arity_includes_p(f_7,2)!==false) {if (M0.list_p(l1_6)!==false) {if (M0.list_p(l2_6)!==false) {var if_res530 = M0.__eq_(M0.length(l1_6),M0.length(l2_6));} else {var if_res530 = false;}var if_res531 = if_res530;} else {var if_res531 = false;}var if_res532 = if_res531;} else {var if_res532 = false;}var if_res533 = if_res532;} else {var if_res533 = false;}var if_res534 = if_res533;}if (if_res534!==false) {if (M0.null_p(l1_6)!==false) {var if_res537 = false;} else {var loop_38 = function(l1_7, l2_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l1_7))!==false) {var if_res536 = f_7(M0.car(l1_7),M0.car(l2_7));} else {var r1_2 = M0.cdr(l1_7);var r2_2 = M0.cdr(l2_7);var or_part_44 = f_7(M0.car(l1_7),M0.car(l2_7));if (or_part_44!==false) {var if_res535 = or_part_44;} else {var if_res535 = loop_38(r1_2,r2_2);}var if_res536 = if_res535;}return if_res536;};var if_res537 = loop_38(l1_6,l2_6);}var if_res538 = if_res537;} else {var if_res538 = gen_ormap(f_7,M0.list(l1_6,l2_6));}return if_res538;};var cl520 = $rjs_core.attachProcedureArity(function(f_8, l_16, ...args_6539) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_6 = $rjs_core.Pair.listFromArray(args_6539);return gen_ormap(f_8,M0.cons(l_16,args_6));});var ormap_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam521 = {'2':cl518,'3':cl519}[arguments.length];if (fixed_lam521!==undefined) {return fixed_lam521.apply(null,arguments);} else {if (M0.__gt__eq_(cl520.length,1)!==false) {var if_res522 = cl520.apply(null,arguments);} else {var if_res522 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res522;}},[M0.make_arity_at_least(2)]);var ormap2 = ormap_0;var check_args = function(who_4, f_9, ls_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_9)!==false) {var if_res540 = M0.rvoid();} else {var if_res540 = M0.raise_argument_error(who_4,$rjs_core.UString.make("procedure?"),f_9);}if_res540;var loop_39 = function(prev_len_0, ls_5, i_36) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_5)!==false) {var if_res544 = M0.rvoid();} else {var l_17 = M0.car(ls_5);if (M0.list_p(l_17)!==false) {var if_res541 = M0.rvoid();} else {var if_res541 = M0.raise_argument_error(who_4,$rjs_core.UString.make("list?"),l_17);}if_res541;var len_0 = M0.length(l_17);if (prev_len_0!==false) {var if_res542 = M0.not(M0.__eq_(len_0,prev_len_0));} else {var if_res542 = false;}if (if_res542!==false) {var if_res543 = M0.raise_arguments_error(who_4,$rjs_core.UString.make("all lists must have same size"),$rjs_core.UString.make("first list length"),prev_len_0,$rjs_core.UString.make("other list length"),len_0,$rjs_core.UString.make("procedure"),f_9);} else {var if_res543 = M0.rvoid();}if_res543;var if_res544 = loop_39(len_0,M0.cdr(ls_5),M0.add1(i_36));}return if_res544;};loop_39(false,ls_4,1);if (M0.procedure_arity_includes_p(f_9,M0.length(ls_4))!==false) {var if_res561 = M0.rvoid();} else {var let_result545 = procedure_keywords(f_9);var required_keywords_0 = let_result545.getAt(0);var optional_keywords_0 = let_result545.getAt(1);if (M0.pair_p(required_keywords_0)!==false) {var if_res560 = M0.string_append($rjs_core.UString.make("argument mismatch;\n"),$rjs_core.UString.make(" the given procedure expects keyword arguments"));} else {var if_res560 = M0.string_append($rjs_core.UString.make("argument mismatch;\n"),$rjs_core.UString.make(" the given procedure's expected number of arguments does not match"),$rjs_core.UString.make(" the given number of lists"));}var temp559 = $rjs_core.UString.make("given procedure");var n_14 = M0.object_name(f_9);if (M0.symbol_p(n_14)!==false) {var if_res556 = M0.symbol__gt_string(n_14);} else {var if_res556 = false;}var or_part_45 = if_res556;if (or_part_45!==false) {var if_res557 = or_part_45;} else {var if_res557 = $rjs_core.UString.make("#");}var temp558 = M0.unquoted_printing_string(if_res557);var a_24 = M0.procedure_arity(f_9);if (M0.pair_p(required_keywords_0)!==false) {var if_res555 = M0.rnull;} else {if (M0.integer_p(a_24)!==false) {var if_res554 = M0.list($rjs_core.UString.make("expected"),a_24);} else {if (M0.arity_at_least_p(a_24)!==false) {var if_res553 = M0.list($rjs_core.UString.make("expected"),M0.unquoted_printing_string(M0.string_append($rjs_core.UString.make("at least "),M0.number__gt_string(M0.arity_at_least_value(a_24)))));} else {var if_res553 = M0.rnull;}var if_res554 = if_res553;}var if_res555 = if_res554;}if (M0.pair_p(required_keywords_0)!==false) {var if_res552 = M0.rnull;} else {var if_res552 = M0.list($rjs_core.UString.make("given"),M0.length(ls_4));}if (M0.pair_p(required_keywords_0)!==false) {var temp550 = $rjs_core.UString.make("required keywords");var loop_40 = function(kws_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_16)!==false) {var if_res549 = M0.rnull;} else {var if_res549 = M0.list_times_($rjs_core.UString.make(" "),M0.string_append($rjs_core.UString.make("#:"),M0.keyword__gt_string(M0.car(kws_16))),loop_40(M0.cdr(kws_16)));}return if_res549;};var if_res551 = M0.list(temp550,M0.unquoted_printing_string(M0.apply(M0.string_append,M0.cdr(loop_40(required_keywords_0)))));} else {var if_res551 = M0.rnull;}var w_0 = M0.quotient(M0.error_print_width(),M0.length(ls_4));if (M0.__gt_(w_0,10)!==false) {var temp547 = $rjs_core.UString.make("argument lists...");var loop_41 = function(ls_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_6)!==false) {var if_res546 = M0.rnull;} else {var if_res546 = M0.cons(M0.string_append($rjs_core.UString.make("\n "),M0.error_value__gt_string_handler()(M0.car(ls_6),w_0)),loop_41(M0.cdr(ls_6)));}return if_res546;};var if_res548 = M0.list(temp547,M0.unquoted_printing_string(M0.apply(M0.string_append,loop_41(ls_4))));} else {var if_res548 = M0.rnull;}var if_res561 = M0.apply(M0.raise_arguments_error,who_4,if_res560,temp559,temp558,M0.append(if_res555,if_res552,if_res551,if_res548));}return if_res561;};var gen_map = function(f_10, ls_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res562 = true;} else {var if_res562 = check_args($rjs_core.PrimitiveSymbol.make("map"),f_10,ls_7);}if_res562;var loop_42 = function(ls_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_8))!==false) {var if_res563 = M0.rnull;} else {var next_ls_0 = map2(M0.cdr,ls_8);var if_res563 = M0.cons(M0.apply(f_10,map2(M0.car,ls_8)),loop_42(next_ls_0));}return if_res563;};return loop_42(ls_7);};var gen_andmap = function(f_11, ls_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res564 = true;} else {var if_res564 = check_args($rjs_core.PrimitiveSymbol.make("andmap"),f_11,ls_9);}if_res564;var loop_43 = function(ls_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_10))!==false) {var if_res567 = true;} else {if (M0.null_p(M0.cdar(ls_10))!==false) {var if_res566 = M0.apply(f_11,map2(M0.car,ls_10));} else {var next_ls_1 = map2(M0.cdr,ls_10);if (M0.apply(f_11,map2(M0.car,ls_10))!==false) {var if_res565 = loop_43(next_ls_1);} else {var if_res565 = false;}var if_res566 = if_res565;}var if_res567 = if_res566;}return if_res567;};return loop_43(ls_9);};var gen_ormap = function(f_12, ls_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res568 = true;} else {var if_res568 = check_args($rjs_core.PrimitiveSymbol.make("ormap"),f_12,ls_11);}if_res568;var loop_44 = function(ls_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_12))!==false) {var if_res571 = false;} else {if (M0.null_p(M0.cdar(ls_12))!==false) {var if_res570 = M0.apply(f_12,map2(M0.car,ls_12));} else {var next_ls_2 = map2(M0.cdr,ls_12);var or_part_46 = M0.apply(f_12,map2(M0.car,ls_12));if (or_part_46!==false) {var if_res569 = or_part_46;} else {var if_res569 = loop_44(next_ls_2);}var if_res570 = if_res569;}var if_res571 = if_res570;}return if_res571;};return loop_44(ls_11);};var new_keyword_apply = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_17, kw_args_3, proc_16, orig_kws_0, orig_kw_args_0, args_7, ...rest_0572) {if (arguments.length<6) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rest_0 = $rjs_core.Pair.listFromArray(rest_0572);var loop_45 = function(kws_19, kw_args_5, kws2_0, kw_args2_0, swapped_p_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_19)!==false) {var if_res577 = M0.values(kws2_0,kw_args2_0);} else {if (M0.null_p(kws2_0)!==false) {var if_res576 = M0.values(kws_19,kw_args_5);} else {if (M0.keyword_lt__p(M0.car(kws_19),M0.car(kws2_0))!==false) {var let_result573 = loop_45(M0.cdr(kws_19),M0.cdr(kw_args_5),kws2_0,kw_args2_0,false);var res_kws_0 = let_result573.getAt(0);var res_kw_args_0 = let_result573.getAt(1);var if_res575 = M0.values(M0.cons(M0.car(kws_19),res_kws_0),M0.cons(M0.car(kw_args_5),res_kw_args_0));} else {if (swapped_p_0!==false) {var if_res574 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("keyword-apply"),$rjs_core.UString.make("keyword duplicated in list and direct keyword arguments: "),M0.car(kws_19));} else {var if_res574 = loop_45(kws2_0,kw_args2_0,kws_19,kw_args_5,true);}var if_res575 = if_res574;}var if_res576 = if_res575;}var if_res577 = if_res576;}return if_res577;};var let_result578 = loop_45(kws_17,kw_args_3,orig_kws_0,orig_kw_args_0,false);var kws_18 = let_result578.getAt(0);var kw_args_4 = let_result578.getAt(1);return keyword_apply(proc_16,kws_18,kw_args_4,M0.apply(M0.list_times_,args_7,rest_0));}),keyword_apply);var hash__gt_list_0 = function(h_0, try_order_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("hash->list");return M0.hash_map(h_0,M0.cons,try_order_p_0);};var cl579 = function(h_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("hash->list");if (M0.hash_p(h_1)!==false) {var if_res582 = M0.rvoid();} else {var if_res582 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash->list"),$rjs_core.UString.make("hash?"),0,h_1);}if_res582;return hash__gt_list_0(h_1,false);};var cl580 = function(h_2, try_order_p_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(h_2)!==false) {var if_res583 = M0.rvoid();} else {var if_res583 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash->list"),$rjs_core.UString.make("hash?"),0,h_2,try_order_p_1);}if_res583;return hash__gt_list_0(h_2,try_order_p_1);};var hash__gt_list_1 = $rjs_core.attachProcedureArity(function() {var fixed_lam581 = {'1':cl579,'2':cl580}[arguments.length];if (fixed_lam581!==undefined) {return fixed_lam581.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var hash__gt_list = hash__gt_list_1;var sort_dot_1 = function(cache_keys_p2_0, key1_0, lst5_0, less_p6_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("sort");var lst_6 = lst5_0;var less_p_0 = less_p6_0;var getkey_4 = key1_0;var cache_keys_p_3 = cache_keys_p2_0;if (M0.list_p(lst_6)!==false) {var if_res584 = M0.rvoid();} else {var if_res584 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("list?"),lst_6);}if_res584;if (M0.procedure_p(less_p_0)!==false) {var if_res585 = M0.procedure_arity_includes_p(less_p_0,2);} else {var if_res585 = false;}if (if_res585!==false) {var if_res586 = M0.rvoid();} else {var if_res586 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("(any/c any/c . -> . any/c)"),less_p_0);}if_res586;if (getkey_4!==false) {if (M0.procedure_p(getkey_4)!==false) {var if_res587 = M0.procedure_arity_includes_p(getkey_4,1);} else {var if_res587 = false;}var if_res588 = M0.not(if_res587);} else {var if_res588 = false;}if (if_res588!==false) {var if_res589 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("(any/c . -> . any/c)"),getkey_4);} else {var if_res589 = M0.rvoid();}if_res589;if (getkey_4!==false) {var if_res590 = sort(lst_6,less_p_0,getkey_4,cache_keys_p_3);} else {var if_res590 = sort(lst_6,less_p_0);}return if_res590;};var filter = function(f_13, list_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_13)!==false) {var if_res591 = M0.procedure_arity_includes_p(f_13,1);} else {var if_res591 = false;}if (if_res591!==false) {var if_res592 = M0.rvoid();} else {var if_res592 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("filter"),$rjs_core.UString.make("(any/c . -> . any/c)"),f_13);}if_res592;if (M0.list_p(list_0)!==false) {var if_res593 = M0.rvoid();} else {var if_res593 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("filter"),$rjs_core.UString.make("list?"),list_0);}if_res593;var loop_10 = function(l_18, result_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_18)!==false) {var if_res596 = reverse$1(result_0);} else {var temp595 = M0.cdr(l_18);if (f_13(M0.car(l_18))!==false) {var if_res594 = M0.cons(M0.car(l_18),result_0);} else {var if_res594 = result_0;}var if_res596 = loop_10(temp595,if_res594);}return if_res596;};return loop_10(list_0,M0.rnull);};var build_list = function(n_15, fcn_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(n_15)!==false) {var if_res597 = M0.rvoid();} else {var if_res597 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("build-list"),$rjs_core.UString.make("exact-nonnegative-integer?"),n_15);}if_res597;if (M0.procedure_p(fcn_0)!==false) {var if_res598 = M0.procedure_arity_includes_p(fcn_0,1);} else {var if_res598 = false;}if (if_res598!==false) {var if_res599 = M0.rvoid();} else {var if_res599 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("build-list"),$rjs_core.UString.make("(exact-nonnegative-integer? . -> . any/c)"),fcn_0);}if_res599;var recr_0 = function(j_2, i_37) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("recr");if (M0.zero_p(i_37)!==false) {var if_res600 = M0.rnull;} else {var if_res600 = M0.cons(fcn_0(j_2),recr_0(M0.add1(j_2),M0.sub1(i_37)));}return if_res600;};return recr_0(0,n_15);};var pipeline1_0 = function(f_14, rfuns_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("pipeline1");return function(x_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_14 = function(x_11, f_15, rfuns_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(rfuns_1)!==false) {var if_res601 = f_15(x_11);} else {var if_res601 = loop_14(f_15(x_11),M0.car(rfuns_1),M0.cdr(rfuns_1));}return if_res601;};return loop_14(x_10,f_14,rfuns_0);};};var pipeline_times__0 = function(f_16, rfuns_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("pipeline*");if (M0.eqv_p(1,M0.procedure_arity(f_16))!==false) {var loop_46 = function(f_17, rfuns_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(rfuns_3)!==false) {var if_res603 = f_17;} else {var fst_0 = M0.car(rfuns_3);if (M0.eqv_p(1,M0.procedure_arity(fst_0))!==false) {var if_res602 = function(x_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fst_0(f_17(x_12));};} else {var if_res602 = function(x_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_17(x_13);},fst_0);};}var if_res603 = loop_46(if_res602,M0.cdr(rfuns_3));}return if_res603;};var if_res610 = loop_46(f_16,rfuns_2);} else {var funs_0 = reverse$1(M0.cons(f_16,rfuns_2));var loop_47 = function(f_18, funs_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(funs_1)!==false) {var if_res609 = f_18;} else {var fst_1 = M0.car(funs_1);if (M0.eqv_p(1,M0.procedure_arity(f_18))!==false) {if (M0.eqv_p(1,M0.procedure_arity(fst_1))!==false) {var if_res605 = function(x_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_18(fst_1(x_14));};} else {var if_res605 = $rjs_core.attachProcedureArity(function(...xs_0604) {var xs_0 = $rjs_core.Pair.listFromArray(xs_0604);return f_18(M0.apply(fst_1,xs_0));});}var if_res608 = if_res605;} else {if (M0.eqv_p(1,M0.procedure_arity(fst_1))!==false) {var if_res607 = function(x_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fst_1(x_15);},f_18);};} else {var if_res607 = $rjs_core.attachProcedureArity(function(...xs_1606) {var xs_1 = $rjs_core.Pair.listFromArray(xs_1606);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(fst_1,xs_1);},f_18);});}var if_res608 = if_res607;}var if_res609 = loop_47(if_res608,M0.cdr(funs_1));}return if_res609;};var if_res610 = loop_47(M0.car(funs_0),M0.cdr(funs_0));}return if_res610;};var simple_compose_0 = function(f_19, g_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("simple-compose");var arity_1 = M0.procedure_arity(g_1);var let_result611 = procedure_keywords(g_1);var required_kwds_0 = let_result611.getAt(0);var allowed_kwds_0 = let_result611.getAt(1);if (M0.eq_p(1,arity_1)!==false) {var if_res618 = function(x_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_19(g_1(x_16));};} else {var cl612 = function(x_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_19(g_1(x_17));};var cl613 = function(x_18, y_6) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_19(g_1(x_18,y_6));};var cl614 = $rjs_core.attachProcedureArity(function(...args_8617) {var args_8 = $rjs_core.Pair.listFromArray(args_8617);return f_19(M0.apply(g_1,args_8));});var if_res618 = $rjs_core.attachProcedureArity(function() {var fixed_lam615 = {'1':cl612,'2':cl613}[arguments.length];if (fixed_lam615!==undefined) {return fixed_lam615.apply(null,arguments);} else {if (true!==false) {var if_res616 = cl614.apply(null,arguments);} else {var if_res616 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res616;}},[M0.make_arity_at_least(0)]);}var composed_0 = if_res618;if (M0.null_p(allowed_kwds_0)!==false) {var if_res620 = composed_0;} else {var if_res620 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_20, kw_args_6, ...xs_2619) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_2 = $rjs_core.Pair.listFromArray(xs_2619);return f_19(new_keyword_apply(g_1,kws_20,kw_args_6,xs_2));}),composed_0);}return if_res620;};var cl621 = function(f_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compose1");if (M0.procedure_p(f_20)!==false) {var if_res627 = f_20;} else {var if_res627 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),0,f_20);}return if_res627;};var cl622 = function(f_21, g_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_21)!==false) {var if_res628 = M0.rvoid();} else {var if_res628 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),0,f_21,g_2);}if_res628;if (M0.procedure_p(g_2)!==false) {var if_res629 = M0.rvoid();} else {var if_res629 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),1,f_21,g_2);}if_res629;if (M0.procedure_arity_includes_p(f_21,1)!==false) {var if_res630 = M0.rvoid();} else {var if_res630 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("(any/c . -> . any/c)"),0,f_21,$rjs_core.Pair.makeList());}if_res630;var let_result631 = procedure_keywords(f_21);var req_5 = let_result631.getAt(0);var __0 = let_result631.getAt(1);if (M0.null_p(req_5)!==false) {var if_res632 = M0.rvoid();} else {var if_res632 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),0,f_21,$rjs_core.Pair.makeList());}if_res632;return simple_compose_0(f_21,g_2);};var cl623 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values;};var cl624 = $rjs_core.attachProcedureArity(function(f0_0, ...fs0_0633) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fs0_0 = $rjs_core.Pair.listFromArray(fs0_0633);var loop_48 = function(f_22, fs_0, i_38, rfuns_4) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.procedure_p(f_22)!==false) {var if_res634 = M0.rvoid();} else {var if_res634 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),i_38,f0_0,fs0_0);}if_res634;if (M0.pair_p(fs_0)!==false) {if (M0.procedure_arity_includes_p(f_22,1)!==false) {var if_res635 = M0.rvoid();} else {var if_res635 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("(any/c . -> . any/c)"),i_38,f0_0,fs0_0);}if_res635;var let_result636 = procedure_keywords(f_22);var req_6 = let_result636.getAt(0);var __1 = let_result636.getAt(1);if (M0.null_p(req_6)!==false) {var if_res637 = M0.rvoid();} else {var if_res637 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),i_38,f0_0,fs0_0);}if_res637;var if_res638 = loop_48(M0.car(fs_0),M0.cdr(fs_0),M0.add1(i_38),M0.cons(f_22,rfuns_4));} else {var if_res638 = simple_compose_0(pipeline1_0(M0.car(rfuns_4),M0.cdr(rfuns_4)),f_22);}return if_res638;};return loop_48(f0_0,fs0_0,0,$rjs_core.Pair.makeList());});var compose1_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam625 = {'1':cl621,'2':cl622,'0':cl623}[arguments.length];if (fixed_lam625!==undefined) {return fixed_lam625.apply(null,arguments);} else {if (M0.__gt__eq_(cl624.length,1)!==false) {var if_res626 = cl624.apply(null,arguments);} else {var if_res626 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res626;}},[0,M0.make_arity_at_least(1)]);var simple_compose_1 = function(f_23, g_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("simple-compose");if (M0.eqv_p(1,M0.procedure_arity(f_23))!==false) {var arity_2 = M0.procedure_arity(g_3);var let_result639 = procedure_keywords(g_3);var required_kwds_1 = let_result639.getAt(0);var allowed_kwds_1 = let_result639.getAt(1);if (M0.eq_p(1,arity_2)!==false) {var if_res646 = function(x_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_23(g_3(x_19));};} else {var cl640 = function(x_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_23(g_3(x_20));};var cl641 = function(x_21, y_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_23(g_3(x_21,y_7));};var cl642 = $rjs_core.attachProcedureArity(function(...args_9645) {var args_9 = $rjs_core.Pair.listFromArray(args_9645);return f_23(M0.apply(g_3,args_9));});var if_res646 = $rjs_core.attachProcedureArity(function() {var fixed_lam643 = {'1':cl640,'2':cl641}[arguments.length];if (fixed_lam643!==undefined) {return fixed_lam643.apply(null,arguments);} else {if (true!==false) {var if_res644 = cl642.apply(null,arguments);} else {var if_res644 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res644;}},[M0.make_arity_at_least(0)]);}var composed_1 = if_res646;if (M0.null_p(allowed_kwds_1)!==false) {var if_res648 = composed_1;} else {var if_res648 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_21, kw_args_7, ...xs_3647) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_3 = $rjs_core.Pair.listFromArray(xs_3647);return f_23(new_keyword_apply(g_3,kws_21,kw_args_7,xs_3));}),composed_1);}var if_res659 = if_res648;} else {var arity_3 = M0.procedure_arity(g_3);var let_result649 = procedure_keywords(g_3);var required_kwds_2 = let_result649.getAt(0);var allowed_kwds_2 = let_result649.getAt(1);if (M0.eq_p(1,arity_3)!==false) {var if_res656 = function(x_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_22);},f_23);};} else {var cl650 = function(x_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_23);},f_23);};var cl651 = function(x_24, y_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_24,y_8);},f_23);};var cl652 = $rjs_core.attachProcedureArity(function(...args_10655) {var args_10 = $rjs_core.Pair.listFromArray(args_10655);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(g_3,args_10);},f_23);});var if_res656 = $rjs_core.attachProcedureArity(function() {var fixed_lam653 = {'1':cl650,'2':cl651}[arguments.length];if (fixed_lam653!==undefined) {return fixed_lam653.apply(null,arguments);} else {if (true!==false) {var if_res654 = cl652.apply(null,arguments);} else {var if_res654 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res654;}},[M0.make_arity_at_least(0)]);}var composed_2 = if_res656;if (M0.null_p(allowed_kwds_2)!==false) {var if_res658 = composed_2;} else {var if_res658 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_22, kw_args_8, ...xs_4657) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_4 = $rjs_core.Pair.listFromArray(xs_4657);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_keyword_apply(g_3,kws_22,kw_args_8,xs_4);},f_23);}),composed_2);}var if_res659 = if_res658;}return if_res659;};var cl660 = function(f_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compose");if (M0.procedure_p(f_24)!==false) {var if_res666 = f_24;} else {var if_res666 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),0,f_24);}return if_res666;};var cl661 = function(f_25, g_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_25)!==false) {var if_res667 = M0.rvoid();} else {var if_res667 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),0,f_25,g_4);}if_res667;if (M0.procedure_p(g_4)!==false) {var if_res668 = M0.rvoid();} else {var if_res668 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),1,f_25,g_4);}if_res668;var let_result669 = procedure_keywords(f_25);var req_7 = let_result669.getAt(0);var __2 = let_result669.getAt(1);if (M0.null_p(req_7)!==false) {var if_res670 = M0.rvoid();} else {var if_res670 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),0,f_25,$rjs_core.Pair.makeList());}if_res670;return simple_compose_1(f_25,g_4);};var cl662 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values;};var cl663 = $rjs_core.attachProcedureArity(function(f0_1, ...fs0_1671) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fs0_1 = $rjs_core.Pair.listFromArray(fs0_1671);var loop_49 = function(f_26, fs_1, i_39, rfuns_5) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.procedure_p(f_26)!==false) {var if_res672 = M0.rvoid();} else {var if_res672 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),i_39,f0_1,fs0_1);}if_res672;if (M0.pair_p(fs_1)!==false) {var let_result673 = procedure_keywords(f_26);var req_8 = let_result673.getAt(0);var __3 = let_result673.getAt(1);if (M0.null_p(req_8)!==false) {var if_res674 = M0.rvoid();} else {var if_res674 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),i_39,f0_1,fs0_1);}if_res674;var if_res675 = loop_49(M0.car(fs_1),M0.cdr(fs_1),M0.add1(i_39),M0.cons(f_26,rfuns_5));} else {var if_res675 = simple_compose_1(pipeline_times__0(M0.car(rfuns_5),M0.cdr(rfuns_5)),f_26);}return if_res675;};return loop_49(f0_1,fs0_1,0,$rjs_core.Pair.makeList());});var compose_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam664 = {'1':cl660,'2':cl661,'0':cl662}[arguments.length];if (fixed_lam664!==undefined) {return fixed_lam664.apply(null,arguments);} else {if (M0.__gt__eq_(cl663.length,1)!==false) {var if_res665 = cl663.apply(null,arguments);} else {var if_res665 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res665;}},[0,M0.make_arity_at_least(1)]);var let_result676 = M0.values(compose1_0,compose_0);var compose1 = let_result676.getAt(0);var compose = let_result676.getAt(1);var regexp_quote_chars_s = $rjs_core.Regexp.fromString("[][.*?+|(){}\\$^]");var regexp_quote_chars_b = $rjs_core.Regexp.fromString("[][.*?+|(){}\\$^]");var regexp_quote_0 = function(s4_0, case_sens_p3_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("regexp-quote");var s_1 = s4_0;var case_sens_p_0 = case_sens_p3_0;if (M0.bytes_p(s_1)!==false) {var if_res678 = true;} else {if (M0.string_p(s_1)!==false) {var if_res677 = false;} else {var if_res677 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("regexp-quote"),$rjs_core.UString.make("(or/c string? bytes?)"),s_1);}var if_res678 = if_res677;}var b_p_0 = if_res678;if (b_p_0!==false) {var if_res679 = M0.regexp_replace_times_(regexp_quote_chars_b,s_1,$rjs_core.Bytes.fromIntArray([92,92,38]));} else {var if_res679 = M0.regexp_replace_times_(regexp_quote_chars_s,s_1,$rjs_core.UString.make("\\\\&"));}var s_2 = if_res679;if (case_sens_p_0!==false) {var if_res681 = s_2;} else {if (b_p_0!==false) {var if_res680 = M0.bytes_append($rjs_core.Bytes.fromIntArray([40,63,105,58]),s_2,$rjs_core.Bytes.fromIntArray([41]));} else {var if_res680 = M0.string_append($rjs_core.UString.make("(?i:"),s_2,$rjs_core.UString.make(")"));}var if_res681 = if_res680;}return if_res681;};var cl682 = function(s_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return regexp_quote_0(s_3,true);};var cl683 = function(s_4, case_sens_p3_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return regexp_quote_0(s_4,case_sens_p3_1);};var regexp_quote = $rjs_core.attachProcedureArity(function() {var fixed_lam684 = {'1':cl682,'2':cl683}[arguments.length];if (fixed_lam684!==undefined) {return fixed_lam684.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var regexp_match_exact_p = function(p_8, s_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var m_0 = M0.regexp_match_positions(p_8,s_5);if (m_0!==false) {if (M0.zero_p(M0.caar(m_0))!==false) {var temp690 = M0.cdar(m_0);if (M0.bytes_p(s_5)!==false) {var if_res689 = M0.bytes_length(s_5);} else {var or_part_47 = M0.byte_regexp_p(p_8);if (or_part_47!==false) {var if_res685 = or_part_47;} else {var if_res685 = M0.bytes_p(p_8);}if (if_res685!==false) {if (M0.path_p(s_5)!==false) {var if_res686 = M0.bytes_length(M0.path__gt_bytes(s_5));} else {var if_res686 = M0.string_utf_8_length(s_5);}var if_res688 = if_res686;} else {if (M0.path_p(s_5)!==false) {var if_res687 = M0.string_length(M0.path__gt_string(s_5));} else {var if_res687 = M0.string_length(s_5);}var if_res688 = if_res687;}var if_res689 = if_res688;}var if_res691 = M0.__eq_(temp690,if_res689);} else {var if_res691 = false;}var if_res692 = if_res691;} else {var if_res692 = false;}return if_res692;};var print_value_columns = M0.make_parameter(Infinity,function(c_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_48 = M0.eqv_p(c_6,Infinity);if (or_part_48!==false) {var if_res694 = or_part_48;} else {if (M0.exact_integer_p(c_6)!==false) {var if_res693 = M0.__gt_(c_6,5);} else {var if_res693 = false;}var if_res694 = if_res693;}if (if_res694!==false) {var if_res695 = c_6;} else {var if_res695 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("print-value-columns"),$rjs_core.UString.make("(or/c +inf.0 (and/c exact-integer? (>/c 5)))"),c_6);}return if_res695;},$rjs_core.PrimitiveSymbol.make("print-value-columns"));var let_result696 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("set-impl"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("set-impl"));var struct__0 = let_result696.getAt(0);var make__0 = let_result696.getAt(1);var __p_1 = let_result696.getAt(2);var __ref_1 = let_result696.getAt(3);var __set_bang__1 = let_result696.getAt(4);var let_result697 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("contents")));var struct_set_impl = let_result697.getAt(0);var set_impl1_dot_1 = let_result697.getAt(1);var set_impl_p = let_result697.getAt(2);var set_impl_contents = let_result697.getAt(3);var set = $rjs_core.attachProcedureArity(function(...args_11698) {var args_11 = $rjs_core.Pair.listFromArray(args_11698);return set_impl1_dot_1(M0.make_immutable_hash(map2(function(e_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.cons(e_0,true);},args_11)));});var set_member_p = function(st_0, v_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return hash_has_key_p(set_impl_contents(st_0),v_41);};var set_add = function(st_1, v_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_impl1_dot_1(M0.hash_set(set_impl_contents(st_1),v_1,true));};var list__gt_set = function(lst_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result699 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("elem")),lst_7);var pos__gt_vals_2 = let_result699.getAt(0);var pos_pre_inc_0 = let_result699.getAt(1);var pos_next_3 = let_result699.getAt(2);var init_3 = let_result699.getAt(3);var pos_cont_p_3 = let_result699.getAt(4);var val_cont_p_2 = let_result699.getAt(5);var all_cont_p_2 = let_result699.getAt(6);M0.rvoid();var for_loop_0 = function(st_2, pos_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_3!==false) {var if_res700 = pos_cont_p_3(pos_9);} else {var if_res700 = true;}if (if_res700!==false) {var elem_1 = pos__gt_vals_2(pos_9);if (all_cont_p_2!==false) {var if_res701 = function(pos_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_2(pos_10,elem_1);};} else {var if_res701 = false;}var let_result702 = M0.values(elem_1,if_res701);var elem_0 = let_result702.getAt(0);var all_cont_p_by_pos_0 = let_result702.getAt(1);if (pos_pre_inc_0!==false) {var if_res703 = pos_pre_inc_0(pos_9);} else {var if_res703 = pos_9;}var pos_11 = if_res703;if (val_cont_p_2!==false) {var if_res704 = val_cont_p_2(elem_0);} else {var if_res704 = true;}if (if_res704!==false) {var st_4 = st_2;var st_5 = set_add(st_4,elem_0);var st_3 = M0.values(st_5);if (all_cont_p_by_pos_0!==false) {var if_res705 = all_cont_p_by_pos_0(pos_11);} else {var if_res705 = true;}if (if_res705!==false) {var if_res706 = M0.not(false);} else {var if_res706 = false;}if (if_res706!==false) {var if_res707 = for_loop_0(st_3,pos_next_3(pos_11));} else {var if_res707 = st_3;}var if_res708 = if_res707;} else {var if_res708 = st_2;}var if_res709 = if_res708;} else {var if_res709 = st_2;}return if_res709;};return for_loop_0(set(),init_3);};var output_directory = M0.make_parameter($rjs_core.UString.make("js-build"));var current_source_file = M0.make_parameter(false);var main_source_file = M0.make_parameter(false);var racketscript_main_module = M0.path__gt_complete_path($rjs_core.UString.make("main.rkt"));var let_result710 = M0.split_path(racketscript_main_module);var dir_path_0 = let_result710.getAt(0);var _p_0 = let_result710.getAt(1);var _b_0 = let_result710.getAt(2);var racketscript_compiler_dir = dir_path_0;var racketscript_runtime_dir = M0.build_path(racketscript_compiler_dir,$rjs_core.UString.make("runtime"));var racketscript_dir = M0.simplify_path(M0.build_path(racketscript_compiler_dir,$rjs_core.UString.make("..")));var jsruntime_core_module = M0.make_parameter($rjs_core.UString.make("$rjs_core"));var test_environment_p = M0.make_parameter(false);var logging_p = M0.make_parameter(true);var ignored_module_imports_in_boot = set(M0.build_path(racketscript_dir,$rjs_core.UString.make("private"),$rjs_core.UString.make("interop.rkt")));var primitive_modules = set($rjs_core.PrimitiveSymbol.make("#%runtime"),$rjs_core.PrimitiveSymbol.make("#%core"),$rjs_core.PrimitiveSymbol.make("#%main"),$rjs_core.PrimitiveSymbol.make("#%read"),$rjs_core.PrimitiveSymbol.make("#%kernel"),$rjs_core.PrimitiveSymbol.make("#%paramz"),$rjs_core.PrimitiveSymbol.make("#%unsafe"),$rjs_core.PrimitiveSymbol.make("#%utils"),$rjs_core.PrimitiveSymbol.make("#%flfxnum"),$rjs_core.PrimitiveSymbol.make("#%futures"),$rjs_core.PrimitiveSymbol.make("#%extfl"),$rjs_core.PrimitiveSymbol.make("#%place-struct"),$rjs_core.PrimitiveSymbol.make("#%network"),$rjs_core.PrimitiveSymbol.make("#%builtin"),$rjs_core.PrimitiveSymbol.make("#%boot"),$rjs_core.PrimitiveSymbol.make("#%foreign"),$rjs_core.PrimitiveSymbol.make("#%place"),$rjs_core.PrimitiveSymbol.make("#%linklet-primitive"),M0.build_path(racketscript_runtime_dir,$rjs_core.UString.make("lib.rkt")));var skip_arity_checks_p = M0.make_parameter(false);var false_p = function(v_42) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.eq_p(v_42,false);};var empty_p = function(l_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.null_p(l_2);};var cons_p = function(l_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.pair_p(l_19);};var too_large = function(who_5, list_1, n_16) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}var proper_p_0 = M0.list_p(list_1);var temp713 = $rjs_core.UString.make("a ~alist with at least ~a ~a");if (proper_p_0!==false) {var if_res712 = $rjs_core.UString.make("");} else {var if_res712 = $rjs_core.UString.make("(possibly improper) ");}if (proper_p_0!==false) {var if_res711 = $rjs_core.UString.make("elements");} else {var if_res711 = $rjs_core.UString.make("pairs");}return M0.raise_argument_error(who_5,M0.format(temp713,if_res712,n_16,if_res711),list_1);};var split_at = function(list0_0, n0_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(n0_0)!==false) {var if_res714 = M0.rvoid();} else {var if_res714 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("split-at"),$rjs_core.UString.make("exact-nonnegative-integer?"),1,list0_0,n0_0);}if_res714;var loop_50 = function(list_2, n_17, pfx_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.zero_p(n_17)!==false) {var if_res716 = M0.values(reverse$1(pfx_0),list_2);} else {if (M0.pair_p(list_2)!==false) {var if_res715 = loop_50(M0.cdr(list_2),M0.sub1(n_17),M0.cons(M0.car(list_2),pfx_0));} else {var if_res715 = too_large($rjs_core.PrimitiveSymbol.make("split-at"),list0_0,n0_0);}var if_res716 = if_res715;}return if_res716;};return loop_50(list0_0,n0_0,$rjs_core.Pair.makeList());};var flatten = function(orig_sexp_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_51 = function(sexp_0, acc_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(sexp_0)!==false) {var if_res718 = acc_0;} else {if (M0.pair_p(sexp_0)!==false) {var if_res717 = loop_51(M0.car(sexp_0),loop_51(M0.cdr(sexp_0),acc_0));} else {var if_res717 = M0.cons(sexp_0,acc_0);}var if_res718 = if_res717;}return if_res718;};return loop_51(orig_sexp_0,M0.rnull);};var cl719 = function(f_27, l_20) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(M0.append,map2(f_27,l_20));};var cl720 = function(f_28, l1_8, l2_8) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(M0.append,map2(f_28,l1_8,l2_8));};var cl721 = $rjs_core.attachProcedureArity(function(f_29, l_21, ...ls_13724) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var ls_13 = $rjs_core.Pair.listFromArray(ls_13724);return M0.apply(M0.append,M0.apply(map2,f_29,l_21,ls_13));});var append_map = $rjs_core.attachProcedureArity(function() {var fixed_lam722 = {'2':cl719,'3':cl720}[arguments.length];if (fixed_lam722!==undefined) {return fixed_lam722.apply(null,arguments);} else {if (M0.__gt__eq_(cl721.length,1)!==false) {var if_res723 = cl721.apply(null,arguments);} else {var if_res723 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res723;}},[M0.make_arity_at_least(2)]);var immutable_cache = M0.make_weak_hasheq();var string__gt_immutable_string_by_cache = function(str_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.immutable_p(str_1)!==false) {var if_res727 = str_1;} else {var old_0 = M0.hash_ref(immutable_cache,str_1,false);if (old_0!==false) {var if_res725 = M0.string_eq__p(str_1,old_0);} else {var if_res725 = false;}if (if_res725!==false) {var if_res726 = old_0;} else {var new_1 = M0.string__gt_immutable_string(str_1);M0.hash_set_bang_(immutable_cache,str_1,new_1);var if_res726 = new_1;}var if_res727 = if_res726;}return if_res727;};var t_0 = M0.make_weak_hasheq();var t_plus__0 = M0.make_weak_hasheq();var spaces_0 = $rjs_core.Pair.makeList($rjs_core.Regexp.fromString("\\s+"),$rjs_core.Regexp.fromString("^\\s+"),$rjs_core.Regexp.fromString("\\s+$"));M0.hash_set_bang_(t_0,M0.unsafe_undefined,spaces_0);M0.hash_set_bang_(t_plus__0,M0.unsafe_undefined,spaces_0);var get_rxs = function(who_6, rx_0, __plus__p_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("get-rxs");if (M0.string_p(rx_0)!==false) {var if_res728 = string__gt_immutable_string_by_cache(rx_0);} else {var if_res728 = rx_0;}var rx_times__0 = if_res728;if (__plus__p_0!==false) {var if_res733 = t_plus__0;} else {var if_res733 = t_0;}return hash_ref_bang_(if_res733,rx_times__0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(rx_0)!==false) {var if_res730 = regexp_quote(rx_times__0);} else {if (M0.regexp_p(rx_0)!==false) {var if_res729 = M0.string_append($rjs_core.UString.make("(?:"),M0.object_name(rx_0),$rjs_core.UString.make(")"));} else {var if_res729 = M0.raise_argument_error(who_6,$rjs_core.UString.make("(or/c string? regexp?)"),rx_0);}var if_res730 = if_res729;}var s_6 = if_res730;if (__plus__p_0!==false) {var if_res731 = M0.string_append($rjs_core.UString.make("(?:"),s_6,$rjs_core.UString.make(")+"));} else {var if_res731 = s_6;}var s_7 = if_res731;var __s_0 = M0.string_append($rjs_core.UString.make("^"),s_7);var s$_0 = M0.string_append(s_7,$rjs_core.UString.make("$"));if (M0.pregexp_p(rx_0)!==false) {var if_res732 = M0.list(M0.pregexp(s_7),M0.pregexp(__s_0),M0.pregexp(s$_0));} else {var if_res732 = M0.list(M0.regexp(s_7),M0.regexp(__s_0),M0.regexp(s$_0));}return if_res732;});};var replace_cache = M0.make_weak_hasheq();var string_prefix_p = function(str_2, prefix_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(str_2)!==false) {var if_res734 = M0.rvoid();} else {var if_res734 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("string-prefix?"),$rjs_core.UString.make("string?"),str_2);}if_res734;var let_result735 = M0.values();if (M0.string_p(prefix_0)!==false) {var if_res736 = M0.rvoid();} else {var if_res736 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("string-prefix?"),$rjs_core.UString.make("string?"),prefix_0);}if_res736;var let_result737 = M0.values();var l1_9 = M0.string_length(str_2);var l2_9 = M0.string_length(prefix_0);var loop_51 = function(i_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.__eq_(l2_9,i_40)!==false) {var if_res740 = true;} else {if (M0.__eq_(l1_9,i_40)!==false) {var if_res739 = false;} else {if (M0.char_eq__p(M0.string_ref(str_2,i_40),M0.string_ref(prefix_0,i_40))!==false) {var if_res738 = loop_51(M0.add1(i_40));} else {var if_res738 = false;}var if_res739 = if_res738;}var if_res740 = if_res739;}return if_res740;};return loop_51(0);};var normalize_symbol_0 = function(s2_0, ignores1_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("normalize-symbol");var s_8 = s2_0;var ignores_0 = ignores1_0;var should_rename_p_0 = function(s_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("should-rename?");return M0.not(string_prefix_p(s_9,jsruntime_core_module()));};var ss_0 = M0.symbol__gt_string(s_8);if (false_p(should_rename_p_0(ss_0))!==false) {var if_res758 = ss_0;} else {if (reserved_keyword_p(s_8)!==false) {var if_res757 = M0.string_append($rjs_core.UString.make("r"),ss_0);} else {var v_43 = M0.string__gt_list(ss_0);var v_1 = v_43;var alt_0 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_1);};var p_9 = v_1;if (M0.pair_p(p_9)!==false) {var if_res741 = true;} else {var if_res741 = false;}if (if_res741!==false) {var p_10 = v_1;var a_25 = M0.car(p_10);var ch_first_2 = a_25;var d_0 = M0.cdr(p_10);var ch_rest_2 = d_0;var let_result742 = M0.values(ch_first_2,ch_rest_2);var ch_first_1 = let_result742.getAt(0);var ch_rest_1 = let_result742.getAt(1);var if_res743 = M0.values(ch_first_1,ch_rest_1);} else {var if_res743 = alt_0();}var let_result744 = if_res743;var ch_first_0 = let_result744.getAt(0);var ch_rest_0 = let_result744.getAt(1);var temp756 = normalize_symbol_atom(ch_first_0,true,ignores_0);var loop_52 = function(ss_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_44 = ss_1;var alt_1 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_2 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_3 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_44);};var p_11 = v_44;if (M0.pair_p(p_11)!==false) {var if_res745 = true;} else {var if_res745 = false;}if (if_res745!==false) {var p_12 = v_44;var a_26 = M0.car(p_12);var fst_3 = a_26;var d_1 = M0.cdr(p_12);var rst_1 = d_1;var let_result746 = M0.values(fst_3,rst_1);var fst_2 = let_result746.getAt(0);var rst_0 = let_result746.getAt(1);var if_res747 = M0.cons(normalize_symbol_atom(fst_2,false,ignores_0),loop_52(rst_0));} else {var if_res747 = alt_3();}return if_res747;};var p_13 = v_44;if (M0.pair_p(p_13)!==false) {var a_27 = M0.cdr(p_13);var p_14 = a_27;if (M0.pair_p(p_14)!==false) {var if_res748 = true;} else {var if_res748 = false;}var if_res749 = if_res748;} else {var if_res749 = false;}if (if_res749!==false) {var p_15 = v_44;var a_28 = M0.car(p_15);var fst_5 = a_28;var d_2 = M0.cdr(p_15);var p_16 = d_2;var a_29 = M0.car(p_16);var snd_2 = a_29;var d_3 = M0.cdr(p_16);var rst_4 = d_3;var let_result750 = M0.values(snd_2,rst_4);var snd_1 = let_result750.getAt(0);var rst_3 = let_result750.getAt(1);var let_result751 = M0.values(fst_5,snd_1,rst_3);var fst_4 = let_result751.getAt(0);var snd_0 = let_result751.getAt(1);var rst_2 = let_result751.getAt(2);if (M0.eq_p(fst_4,$rjs_core.UString.make("-"))!==false) {var if_res752 = M0.eq_p(snd_0,$rjs_core.UString.make(">"));} else {var if_res752 = false;}if (if_res752!==false) {var if_res753 = M0.cons($rjs_core.UString.make("_to_"),loop_52(rst_2));} else {var if_res753 = alt_2();}var if_res754 = if_res753;} else {var if_res754 = alt_2();}return if_res754;};if (M0.eq_p($rjs_core.Pair.makeList(),v_44)!==false) {var if_res755 = M0.rnull;} else {var if_res755 = alt_1();}return if_res755;};var if_res757 = M0.apply(M0.string_append,M0.cons(temp756,loop_52(ch_rest_0)));}var if_res758 = if_res757;}return if_res758;};var cl759 = function(s_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_0(s_10,$rjs_core.Pair.makeList());};var cl760 = function(s_2, ignores1_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_0(s_2,ignores1_1);};var normalize_symbol = $rjs_core.attachProcedureArity(function() {var fixed_lam761 = {'1':cl759,'2':cl760}[arguments.length];if (fixed_lam761!==undefined) {return fixed_lam761.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var valid_literal_atom_p = function(ch_0, first_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (first_p_0!==false) {var if_res762 = $rjs_core.Regexp.fromString("\\$|_|\\p{L}|\\p{Nl}");} else {var if_res762 = $rjs_core.Regexp.fromString("\\$|_|\\p{L}|\\p{Nl}|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}");}var patt_0 = if_res762;return regexp_match_exact_p(patt_0,M0.string(ch_0));};var reserved_keyword_p = function(s_11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_member_p(es6_reserved_keywords,s_11);};var normalize_symbol_atom_0 = function(ch4_0, first_p5_0, ignores3_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("normalize-symbol-atom");var ch_1 = ch4_0;var first_p_1 = first_p5_0;var ignores_1 = ignores3_0;var char_map_0 = $rjs_core.Hash.makeEqual([[$rjs_core.UString.make("&"),$rjs_core.UString.make("_and_")],[$rjs_core.UString.make("'"),$rjs_core.UString.make("_prime_")],[$rjs_core.UString.make("!"),$rjs_core.UString.make("_bang_")],[$rjs_core.UString.make("<"),$rjs_core.UString.make("_lt_")],[$rjs_core.UString.make("*"),$rjs_core.UString.make("_times_")],[$rjs_core.UString.make("+"),$rjs_core.UString.make("_plus_")],[$rjs_core.UString.make(">"),$rjs_core.UString.make("_gt_")],[$rjs_core.UString.make("."),$rjs_core.UString.make("_dot_")],[$rjs_core.UString.make("?"),$rjs_core.UString.make("_p")],[$rjs_core.UString.make("/"),$rjs_core.UString.make("_by_")],[$rjs_core.UString.make("="),$rjs_core.UString.make("_eq_")],[$rjs_core.UString.make("-"),$rjs_core.UString.make("_")]],false);var sch_0 = M0.string(ch_1);var or_part_49 = member(sch_0,ignores_1);if (or_part_49!==false) {var if_res763 = or_part_49;} else {var if_res763 = valid_literal_atom_p(ch_1,first_p_1);}if (if_res763!==false) {var if_res766 = sch_0;} else {if (first_p_1!==false) {var if_res765 = M0.string_append($rjs_core.UString.make("_"),normalize_symbol_atom(ch_1,false));} else {if (hash_has_key_p(char_map_0,sch_0)!==false) {var if_res764 = M0.hash_ref(char_map_0,sch_0);} else {var if_res764 = $rjs_core.UString.make("_");}var if_res765 = if_res764;}var if_res766 = if_res765;}return if_res766;};var cl767 = function(ch_2, first_p_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_atom_0(ch_2,first_p_2,$rjs_core.Pair.makeList());};var cl768 = function(ch_3, first_p_3, ignores3_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_atom_0(ch_3,first_p_3,ignores3_1);};var normalize_symbol_atom = $rjs_core.attachProcedureArity(function() {var fixed_lam769 = {'2':cl767,'3':cl768}[arguments.length];if (fixed_lam769!==undefined) {return fixed_lam769.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var fresh_id_counter = M0.make_parameter(0);if (test_environment_p()!==false) {var if_res770 = M0.gensym;} else {var if_res770 = function(id_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}fresh_id_counter(M0.add1(fresh_id_counter()));return M0.string__gt_symbol(M0.format($rjs_core.UString.make("~a~a"),id_0,fresh_id_counter()));};}var fresh_id = if_res770;var es6_reserved_keywords = list__gt_set($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("abstract"),$rjs_core.PrimitiveSymbol.make("arguments"),$rjs_core.PrimitiveSymbol.make("await*"),$rjs_core.PrimitiveSymbol.make("boolean"),$rjs_core.PrimitiveSymbol.make("break"),$rjs_core.PrimitiveSymbol.make("byte"),$rjs_core.PrimitiveSymbol.make("case"),$rjs_core.PrimitiveSymbol.make("catch"),$rjs_core.PrimitiveSymbol.make("char"),$rjs_core.PrimitiveSymbol.make("class*"),$rjs_core.PrimitiveSymbol.make("const"),$rjs_core.PrimitiveSymbol.make("continue"),$rjs_core.PrimitiveSymbol.make("debugger"),$rjs_core.PrimitiveSymbol.make("default"),$rjs_core.PrimitiveSymbol.make("delete"),$rjs_core.PrimitiveSymbol.make("do"),$rjs_core.PrimitiveSymbol.make("double"),$rjs_core.PrimitiveSymbol.make("else"),$rjs_core.PrimitiveSymbol.make("enum*"),$rjs_core.PrimitiveSymbol.make("eval"),$rjs_core.PrimitiveSymbol.make("export*"),$rjs_core.PrimitiveSymbol.make("extends*"),$rjs_core.PrimitiveSymbol.make("false"),$rjs_core.PrimitiveSymbol.make("final"),$rjs_core.PrimitiveSymbol.make("finally"),$rjs_core.PrimitiveSymbol.make("float"),$rjs_core.PrimitiveSymbol.make("for"),$rjs_core.PrimitiveSymbol.make("function"),$rjs_core.PrimitiveSymbol.make("goto"),$rjs_core.PrimitiveSymbol.make("if"),$rjs_core.PrimitiveSymbol.make("implements"),$rjs_core.PrimitiveSymbol.make("import*"),$rjs_core.PrimitiveSymbol.make("in"),$rjs_core.PrimitiveSymbol.make("instanceof"),$rjs_core.PrimitiveSymbol.make("int"),$rjs_core.PrimitiveSymbol.make("interface"),$rjs_core.PrimitiveSymbol.make("let*"),$rjs_core.PrimitiveSymbol.make("long"),$rjs_core.PrimitiveSymbol.make("native"),$rjs_core.PrimitiveSymbol.make("new"),$rjs_core.PrimitiveSymbol.make("null"),$rjs_core.PrimitiveSymbol.make("package"),$rjs_core.PrimitiveSymbol.make("private"),$rjs_core.PrimitiveSymbol.make("protected"),$rjs_core.PrimitiveSymbol.make("public"),$rjs_core.PrimitiveSymbol.make("return"),$rjs_core.PrimitiveSymbol.make("short"),$rjs_core.PrimitiveSymbol.make("static"),$rjs_core.PrimitiveSymbol.make("super*"),$rjs_core.PrimitiveSymbol.make("switch"),$rjs_core.PrimitiveSymbol.make("synchronized"),$rjs_core.PrimitiveSymbol.make("this"),$rjs_core.PrimitiveSymbol.make("throw"),$rjs_core.PrimitiveSymbol.make("throws"),$rjs_core.PrimitiveSymbol.make("transient"),$rjs_core.PrimitiveSymbol.make("true"),$rjs_core.PrimitiveSymbol.make("try"),$rjs_core.PrimitiveSymbol.make("typeof"),$rjs_core.PrimitiveSymbol.make("var"),$rjs_core.PrimitiveSymbol.make("void"),$rjs_core.PrimitiveSymbol.make("volatile"),$rjs_core.PrimitiveSymbol.make("while"),$rjs_core.PrimitiveSymbol.make("with"),$rjs_core.PrimitiveSymbol.make("yield")));var let_result771 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Linklet"),false,4,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2,3),false,$rjs_core.PrimitiveSymbol.make("Linklet"));var struct__0 = let_result771.getAt(0);var make__0 = let_result771.getAt(1);var __p_1 = let_result771.getAt(2);var __ref_1 = let_result771.getAt(3);var __set_bang__1 = let_result771.getAt(4);var let_result772 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("path")),M0.make_struct_field_accessor(__ref_1,1,$rjs_core.PrimitiveSymbol.make("imports")),M0.make_struct_field_accessor(__ref_1,2,$rjs_core.PrimitiveSymbol.make("exports")),M0.make_struct_field_accessor(__ref_1,3,$rjs_core.PrimitiveSymbol.make("forms")));var struct_Linklet = let_result772.getAt(0);var Linklet1_dot_1 = let_result772.getAt(1);var Linklet_p = let_result772.getAt(2);var Linklet_path = let_result772.getAt(3);var Linklet_imports = let_result772.getAt(4);var Linklet_exports = let_result772.getAt(5);var Linklet_forms = let_result772.getAt(6);var let_result773 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("DefineValues"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("DefineValues"));var struct__1 = let_result773.getAt(0);var make__1 = let_result773.getAt(1);var __p_2 = let_result773.getAt(2);var __ref_2 = let_result773.getAt(3);var __set_bang__2 = let_result773.getAt(4);var let_result774 = M0.values(struct__1,make__1,__p_2,M0.make_struct_field_accessor(__ref_2,0,$rjs_core.PrimitiveSymbol.make("ids")),M0.make_struct_field_accessor(__ref_2,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_DefineValues = let_result774.getAt(0);var DefineValues2_dot_1 = let_result774.getAt(1);var DefineValues_p = let_result774.getAt(2);var DefineValues_ids = let_result774.getAt(3);var DefineValues_expr = let_result774.getAt(4);var let_result775 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ImportedIdent"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ImportedIdent"));var struct__2 = let_result775.getAt(0);var make__2 = let_result775.getAt(1);var __p_3 = let_result775.getAt(2);var __ref_3 = let_result775.getAt(3);var __set_bang__3 = let_result775.getAt(4);var let_result776 = M0.values(struct__2,make__2,__p_3,M0.make_struct_field_accessor(__ref_3,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_3,1,$rjs_core.PrimitiveSymbol.make("src-mod")),M0.make_struct_field_accessor(__ref_3,2,$rjs_core.PrimitiveSymbol.make("reachable?")));var struct_ImportedIdent = let_result776.getAt(0);var ImportedIdent3_dot_1 = let_result776.getAt(1);var ImportedIdent_p = let_result776.getAt(2);var ImportedIdent_id = let_result776.getAt(3);var ImportedIdent_src_mod = let_result776.getAt(4);var ImportedIdent_reachable_p = let_result776.getAt(5);var let_result777 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("TopLevelIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("TopLevelIdent"));var struct__3 = let_result777.getAt(0);var make__3 = let_result777.getAt(1);var __p_4 = let_result777.getAt(2);var __ref_4 = let_result777.getAt(3);var __set_bang__4 = let_result777.getAt(4);var let_result778 = M0.values(struct__3,make__3,__p_4,M0.make_struct_field_accessor(__ref_4,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_TopLevelIdent = let_result778.getAt(0);var TopLevelIdent4_dot_1 = let_result778.getAt(1);var TopLevelIdent_p = let_result778.getAt(2);var TopLevelIdent_id = let_result778.getAt(3);var let_result779 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LinkletImportIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("LinkletImportIdent"));var struct__4 = let_result779.getAt(0);var make__4 = let_result779.getAt(1);var __p_5 = let_result779.getAt(2);var __ref_5 = let_result779.getAt(3);var __set_bang__5 = let_result779.getAt(4);var let_result780 = M0.values(struct__4,make__4,__p_5,M0.make_struct_field_accessor(__ref_5,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_LinkletImportIdent = let_result780.getAt(0);var LinkletImportIdent5_dot_1 = let_result780.getAt(1);var LinkletImportIdent_p = let_result780.getAt(2);var LinkletImportIdent_id = let_result780.getAt(3);var let_result781 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LocalIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("LocalIdent"));var struct__5 = let_result781.getAt(0);var make__5 = let_result781.getAt(1);var __p_6 = let_result781.getAt(2);var __ref_6 = let_result781.getAt(3);var __set_bang__6 = let_result781.getAt(4);var let_result782 = M0.values(struct__5,make__5,__p_6,M0.make_struct_field_accessor(__ref_6,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_LocalIdent = let_result782.getAt(0);var LocalIdent6_dot_1 = let_result782.getAt(1);var LocalIdent_p = let_result782.getAt(2);var LocalIdent_id = let_result782.getAt(3);var let_result783 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Quote"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("Quote"));var struct__6 = let_result783.getAt(0);var make__6 = let_result783.getAt(1);var __p_7 = let_result783.getAt(2);var __ref_7 = let_result783.getAt(3);var __set_bang__7 = let_result783.getAt(4);var let_result784 = M0.values(struct__6,make__6,__p_7,M0.make_struct_field_accessor(__ref_7,0,$rjs_core.PrimitiveSymbol.make("datum")));var struct_Quote = let_result784.getAt(0);var Quote7_dot_1 = let_result784.getAt(1);var Quote_p = let_result784.getAt(2);var Quote_datum = let_result784.getAt(3);var let_result785 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Begin0"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("Begin0"));var struct__7 = let_result785.getAt(0);var make__7 = let_result785.getAt(1);var __p_8 = let_result785.getAt(2);var __ref_8 = let_result785.getAt(3);var __set_bang__8 = let_result785.getAt(4);var let_result786 = M0.values(struct__7,make__7,__p_8,M0.make_struct_field_accessor(__ref_8,0,$rjs_core.PrimitiveSymbol.make("expr0")),M0.make_struct_field_accessor(__ref_8,1,$rjs_core.PrimitiveSymbol.make("exprs")));var struct_Begin0 = let_result786.getAt(0);var Begin08_dot_1 = let_result786.getAt(1);var Begin0_p = let_result786.getAt(2);var Begin0_expr0 = let_result786.getAt(3);var Begin0_exprs = let_result786.getAt(4);var let_result787 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("App"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("App"));var struct__8 = let_result787.getAt(0);var make__8 = let_result787.getAt(1);var __p_9 = let_result787.getAt(2);var __ref_9 = let_result787.getAt(3);var __set_bang__9 = let_result787.getAt(4);var let_result788 = M0.values(struct__8,make__8,__p_9,M0.make_struct_field_accessor(__ref_9,0,$rjs_core.PrimitiveSymbol.make("lam")),M0.make_struct_field_accessor(__ref_9,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_App = let_result788.getAt(0);var App9_dot_1 = let_result788.getAt(1);var App_p = let_result788.getAt(2);var App_lam = let_result788.getAt(3);var App_args = let_result788.getAt(4);var let_result789 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Lambda"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("Lambda"));var struct__9 = let_result789.getAt(0);var make__9 = let_result789.getAt(1);var __p_10 = let_result789.getAt(2);var __ref_10 = let_result789.getAt(3);var __set_bang__10 = let_result789.getAt(4);var let_result790 = M0.values(struct__9,make__9,__p_10,M0.make_struct_field_accessor(__ref_10,0,$rjs_core.PrimitiveSymbol.make("formals")),M0.make_struct_field_accessor(__ref_10,1,$rjs_core.PrimitiveSymbol.make("exprs")),M0.make_struct_field_accessor(__ref_10,2,$rjs_core.PrimitiveSymbol.make("unchecked?")));var struct_Lambda = let_result790.getAt(0);var Lambda10_dot_1 = let_result790.getAt(1);var Lambda_p = let_result790.getAt(2);var Lambda_formals = let_result790.getAt(3);var Lambda_exprs = let_result790.getAt(4);var Lambda_unchecked_p = let_result790.getAt(5);var let_result791 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("CaseLambda"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("CaseLambda"));var struct__10 = let_result791.getAt(0);var make__10 = let_result791.getAt(1);var __p_11 = let_result791.getAt(2);var __ref_11 = let_result791.getAt(3);var __set_bang__11 = let_result791.getAt(4);var let_result792 = M0.values(struct__10,make__10,__p_11,M0.make_struct_field_accessor(__ref_11,0,$rjs_core.PrimitiveSymbol.make("clauses")));var struct_CaseLambda = let_result792.getAt(0);var CaseLambda11_dot_1 = let_result792.getAt(1);var CaseLambda_p = let_result792.getAt(2);var CaseLambda_clauses = let_result792.getAt(3);var let_result793 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("If"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("If"));var struct__11 = let_result793.getAt(0);var make__11 = let_result793.getAt(1);var __p_12 = let_result793.getAt(2);var __ref_12 = let_result793.getAt(3);var __set_bang__12 = let_result793.getAt(4);var let_result794 = M0.values(struct__11,make__11,__p_12,M0.make_struct_field_accessor(__ref_12,0,$rjs_core.PrimitiveSymbol.make("pred")),M0.make_struct_field_accessor(__ref_12,1,$rjs_core.PrimitiveSymbol.make("t-branch")),M0.make_struct_field_accessor(__ref_12,2,$rjs_core.PrimitiveSymbol.make("f-branch")));var struct_If = let_result794.getAt(0);var If12_dot_1 = let_result794.getAt(1);var If_p = let_result794.getAt(2);var If_pred = let_result794.getAt(3);var If_t_branch = let_result794.getAt(4);var If_f_branch = let_result794.getAt(5);var let_result795 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LetValues"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("LetValues"));var struct__12 = let_result795.getAt(0);var make__12 = let_result795.getAt(1);var __p_13 = let_result795.getAt(2);var __ref_13 = let_result795.getAt(3);var __set_bang__13 = let_result795.getAt(4);var let_result796 = M0.values(struct__12,make__12,__p_13,M0.make_struct_field_accessor(__ref_13,0,$rjs_core.PrimitiveSymbol.make("bindings")),M0.make_struct_field_accessor(__ref_13,1,$rjs_core.PrimitiveSymbol.make("body")));var struct_LetValues = let_result796.getAt(0);var LetValues13_dot_1 = let_result796.getAt(1);var LetValues_p = let_result796.getAt(2);var LetValues_bindings = let_result796.getAt(3);var LetValues_body = let_result796.getAt(4);var let_result797 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Set!"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("Set!"));var struct__13 = let_result797.getAt(0);var make__13 = let_result797.getAt(1);var __p_14 = let_result797.getAt(2);var __ref_14 = let_result797.getAt(3);var __set_bang__14 = let_result797.getAt(4);var let_result798 = M0.values(struct__13,make__13,__p_14,M0.make_struct_field_accessor(__ref_14,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_14,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_Set_bang_ = let_result798.getAt(0);var Set_bang_14_dot_1 = let_result798.getAt(1);var Set_bang__p = let_result798.getAt(2);var Set_bang__id = let_result798.getAt(3);var Set_bang__expr = let_result798.getAt(4);var let_result799 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("WithContinuationMark"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("WithContinuationMark"));var struct__14 = let_result799.getAt(0);var make__14 = let_result799.getAt(1);var __p_15 = let_result799.getAt(2);var __ref_15 = let_result799.getAt(3);var __set_bang__15 = let_result799.getAt(4);var let_result800 = M0.values(struct__14,make__14,__p_15,M0.make_struct_field_accessor(__ref_15,0,$rjs_core.PrimitiveSymbol.make("key")),M0.make_struct_field_accessor(__ref_15,1,$rjs_core.PrimitiveSymbol.make("value")),M0.make_struct_field_accessor(__ref_15,2,$rjs_core.PrimitiveSymbol.make("result")));var struct_WithContinuationMark = let_result800.getAt(0);var WithContinuationMark15_dot_1 = let_result800.getAt(1);var WithContinuationMark_p = let_result800.getAt(2);var WithContinuationMark_key = let_result800.getAt(3);var WithContinuationMark_value = let_result800.getAt(4);var WithContinuationMark_result = let_result800.getAt(5);var let_result801 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("VarRef"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("VarRef"));var struct__15 = let_result801.getAt(0);var make__15 = let_result801.getAt(1);var __p_16 = let_result801.getAt(2);var __ref_16 = let_result801.getAt(3);var __set_bang__16 = let_result801.getAt(4);var let_result802 = M0.values(struct__15,make__15,__p_16,M0.make_struct_field_accessor(__ref_16,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_VarRef = let_result802.getAt(0);var VarRef16_dot_1 = let_result802.getAt(1);var VarRef_p = let_result802.getAt(2);var VarRef_id = let_result802.getAt(3);var let_result803 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("JSRequire"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("JSRequire"));var struct__16 = let_result803.getAt(0);var make__16 = let_result803.getAt(1);var __p_17 = let_result803.getAt(2);var __ref_17 = let_result803.getAt(3);var __set_bang__17 = let_result803.getAt(4);var let_result804 = M0.values(struct__16,make__16,__p_17,M0.make_struct_field_accessor(__ref_17,0,$rjs_core.PrimitiveSymbol.make("alias")),M0.make_struct_field_accessor(__ref_17,1,$rjs_core.PrimitiveSymbol.make("path")),M0.make_struct_field_accessor(__ref_17,2,$rjs_core.PrimitiveSymbol.make("mode")));var struct_JSRequire = let_result804.getAt(0);var JSRequire17_dot_1 = let_result804.getAt(1);var JSRequire_p = let_result804.getAt(2);var JSRequire_alias = let_result804.getAt(3);var JSRequire_path = let_result804.getAt(4);var JSRequire_mode = let_result804.getAt(5);var let_result805 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("SimpleProvide"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("SimpleProvide"));var struct__17 = let_result805.getAt(0);var make__17 = let_result805.getAt(1);var __p_18 = let_result805.getAt(2);var __ref_18 = let_result805.getAt(3);var __set_bang__18 = let_result805.getAt(4);var let_result806 = M0.values(struct__17,make__17,__p_18,M0.make_struct_field_accessor(__ref_18,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_SimpleProvide = let_result806.getAt(0);var SimpleProvide18_dot_1 = let_result806.getAt(1);var SimpleProvide_p = let_result806.getAt(2);var SimpleProvide_id = let_result806.getAt(3);var let_result807 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("RenamedProvide"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("RenamedProvide"));var struct__18 = let_result807.getAt(0);var make__18 = let_result807.getAt(1);var __p_19 = let_result807.getAt(2);var __ref_19 = let_result807.getAt(3);var __set_bang__19 = let_result807.getAt(4);var let_result808 = M0.values(struct__18,make__18,__p_19,M0.make_struct_field_accessor(__ref_19,0,$rjs_core.PrimitiveSymbol.make("local-id")),M0.make_struct_field_accessor(__ref_19,1,$rjs_core.PrimitiveSymbol.make("exported-id")));var struct_RenamedProvide = let_result808.getAt(0);var RenamedProvide19_dot_1 = let_result808.getAt(1);var RenamedProvide_p = let_result808.getAt(2);var RenamedProvide_local_id = let_result808.getAt(3);var RenamedProvide_exported_id = let_result808.getAt(4);var Ident_p = function(e_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_50 = ImportedIdent_p(e_1);if (or_part_50!==false) {var if_res811 = or_part_50;} else {var or_part_51 = TopLevelIdent_p(e_1);if (or_part_51!==false) {var if_res810 = or_part_51;} else {var or_part_52 = LinkletImportIdent_p(e_1);if (or_part_52!==false) {var if_res809 = or_part_52;} else {var if_res809 = LocalIdent_p(e_1);}var if_res810 = if_res809;}var if_res811 = if_res810;}return if_res811;};var TopLevelForm_p = function(e_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_53 = Expr_p(e_2);if (or_part_53!==false) {var if_res813 = or_part_53;} else {var or_part_54 = DefineValues_p(e_2);if (or_part_54!==false) {var if_res812 = or_part_54;} else {var if_res812 = JSRequire_p(e_2);}var if_res813 = if_res812;}return if_res813;};var Begin_p = function(e_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(e_3)!==false) {var if_res814 = andmap2(TopLevelForm_p,e_3);} else {var if_res814 = false;}return if_res814;};var Expr_p = function(e_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_55 = Ident_p(e_4);if (or_part_55!==false) {var if_res825 = or_part_55;} else {var or_part_56 = VarRef_p(e_4);if (or_part_56!==false) {var if_res824 = or_part_56;} else {var or_part_57 = Quote_p(e_4);if (or_part_57!==false) {var if_res823 = or_part_57;} else {var or_part_58 = Begin_p(e_4);if (or_part_58!==false) {var if_res822 = or_part_58;} else {var or_part_59 = Begin0_p(e_4);if (or_part_59!==false) {var if_res821 = or_part_59;} else {var or_part_60 = App_p(e_4);if (or_part_60!==false) {var if_res820 = or_part_60;} else {var or_part_61 = Lambda_p(e_4);if (or_part_61!==false) {var if_res819 = or_part_61;} else {var or_part_62 = CaseLambda_p(e_4);if (or_part_62!==false) {var if_res818 = or_part_62;} else {var or_part_63 = If_p(e_4);if (or_part_63!==false) {var if_res817 = or_part_63;} else {var or_part_64 = LetValues_p(e_4);if (or_part_64!==false) {var if_res816 = or_part_64;} else {var or_part_65 = Set_bang__p(e_4);if (or_part_65!==false) {var if_res815 = or_part_65;} else {var if_res815 = WithContinuationMark_p(e_4);}var if_res816 = if_res815;}var if_res817 = if_res816;}var if_res818 = if_res817;}var if_res819 = if_res818;}var if_res820 = if_res819;}var if_res821 = if_res820;}var if_res822 = if_res821;}var if_res823 = if_res822;}var if_res824 = if_res823;}var if_res825 = if_res824;}return if_res825;};var lambda_arity = function(f_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var frmls_0 = Lambda_formals(f_30);if (M0.symbol_p(frmls_0)!==false) {var if_res828 = M0.arity_at_least(0);} else {if (M0.list_p(frmls_0)!==false) {var if_res827 = M0.length(frmls_0);} else {if (M0.pair_p(frmls_0)!==false) {var if_res826 = M0.arity_at_least(M0.length(M0.car(frmls_0)));} else {var if_res826 = M0.rvoid();}var if_res827 = if_res826;}var if_res828 = if_res827;}return if_res828;};var variadic_lambda_p = function(lam_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.list_p(Lambda_formals(lam_0)));};var hash_union = function(h1_0, h2_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var ht_6 = h2_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res829 = M0.rvoid();} else {var if_res829 = check_in_hash(ht_6);}if_res829;var for_loop_1 = function(res_0, i_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_41!==false) {var let_result830 = M0.hash_iterate_key_plus_value(ht_6,i_41);var k_0 = let_result830.getAt(0);var v_45 = let_result830.getAt(1);var res_2 = res_0;if (hash_has_key_p(res_2,k_0)!==false) {var if_res831 = M0.error($rjs_core.PrimitiveSymbol.make("hash-union"));} else {var if_res831 = M0.hash_set(res_2,k_0,v_45);}var res_3 = if_res831;var res_1 = M0.values(res_3);if (M0.not(false)!==false) {var if_res832 = for_loop_1(res_1,M0.hash_iterate_next(ht_6,i_41));} else {var if_res832 = res_1;}var if_res833 = if_res832;} else {var if_res833 = res_0;}return if_res833;};return for_loop_1(h1_0,M0.hash_iterate_first(ht_6));};var formals__gt_absyn = function(formals_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_66 = M0.symbol_p(formals_0);if (or_part_66!==false) {var if_res834 = or_part_66;} else {var if_res834 = M0.list_p(formals_0);}if (if_res834!==false) {var if_res837 = formals_0;} else {if (M0.pair_p(formals_0)!==false) {var loop_53 = function(rev_elms_0, rem_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(rem_0)!==false) {var if_res835 = loop_53(M0.cons(M0.car(rem_0),rev_elms_0),M0.cdr(rem_0));} else {var if_res835 = M0.cons(reverse$1(rev_elms_0),rem_0);}return if_res835;};var if_res836 = loop_53($rjs_core.Pair.makeList(),formals_0);} else {var if_res836 = M0.rvoid();}var if_res837 = if_res836;}return if_res837;};var formals__gt_bindings = function(formals_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var get_formals_0 = function(formals_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("get-formals");if (M0.symbol_p(formals_2)!==false) {var if_res841 = M0.list(formals_2);} else {if (M0.list_p(formals_2)!==false) {var if_res840 = formals_2;} else {if (M0.pair_p(formals_2)!==false) {var loop_54 = function(rev_elms_1, rem_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(rem_1)!==false) {var if_res838 = loop_54(M0.cons(M0.car(rem_1),rev_elms_1),M0.cdr(rem_1));} else {var if_res838 = M0.cons(rem_1,reverse$1(rev_elms_1));}return if_res838;};var if_res839 = loop_54($rjs_core.Pair.makeList(),formals_2);} else {var if_res839 = M0.rvoid();}var if_res840 = if_res839;}var if_res841 = if_res840;}return if_res841;};var let_result842 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),get_formals_0(formals_1));var pos__gt_vals_3 = let_result842.getAt(0);var pos_pre_inc_1 = let_result842.getAt(1);var pos_next_4 = let_result842.getAt(2);var init_4 = let_result842.getAt(3);var pos_cont_p_4 = let_result842.getAt(4);var val_cont_p_3 = let_result842.getAt(5);var all_cont_p_3 = let_result842.getAt(6);M0.rvoid();var for_loop_2 = function(table_0, pos_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_4!==false) {var if_res843 = pos_cont_p_4(pos_11);} else {var if_res843 = true;}if (if_res843!==false) {var i_43 = pos__gt_vals_3(pos_11);if (all_cont_p_3!==false) {var if_res844 = function(pos_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_3(pos_12,i_43);};} else {var if_res844 = false;}var let_result845 = M0.values(i_43,if_res844);var i_42 = let_result845.getAt(0);var all_cont_p_by_pos_1 = let_result845.getAt(1);if (pos_pre_inc_1!==false) {var if_res846 = pos_pre_inc_1(pos_11);} else {var if_res846 = pos_11;}var pos_13 = if_res846;if (val_cont_p_3!==false) {var if_res847 = val_cont_p_3(i_42);} else {var if_res847 = true;}if (if_res847!==false) {var table_2 = table_0;var let_result848 = M0.values(i_42,$rjs_core.PrimitiveSymbol.make("lexical"));var key_3 = let_result848.getAt(0);var val_0 = let_result848.getAt(1);var table_3 = M0.hash_set(table_2,key_3,val_0);var table_1 = M0.values(table_3);if (all_cont_p_by_pos_1!==false) {var if_res849 = all_cont_p_by_pos_1(pos_13);} else {var if_res849 = true;}if (if_res849!==false) {var if_res850 = M0.not(false);} else {var if_res850 = false;}if (if_res850!==false) {var if_res851 = for_loop_2(table_1,pos_next_4(pos_13));} else {var if_res851 = table_1;}var if_res852 = if_res851;} else {var if_res852 = table_0;}var if_res853 = if_res852;} else {var if_res853 = table_0;}return if_res853;};return for_loop_2($rjs_core.Hash.makeEqual([],false),init_4);};var to_absyn = function(v_46, bindings_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var t_2 = function(v3_0, b2_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("t");var v_47 = v3_0;if (M0.eq_p(b2_4,M0.unsafe_undefined)!==false) {var if_res854 = bindings_0;} else {var if_res854 = b2_4;}var b_8 = if_res854;return to_absyn(v_47,b_8);};var cl855 = function(v_48) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("t");return t_2(v_48,M0.unsafe_undefined);};var cl856 = function(v_49, b2_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return t_2(v_49,b2_5);};var t_1 = $rjs_core.attachProcedureArity(function() {var fixed_lam857 = {'1':cl855,'2':cl856}[arguments.length];if (fixed_lam857!==undefined) {return fixed_lam857.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var v_50 = v_46;var p_17 = v_50;if (M0.pair_p(p_17)!==false) {var if_res858 = M0.car(p_17);} else {var if_res858 = false;}var hd_0 = if_res858;var alt_4 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_5 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_6 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_7 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_8 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_9 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_10 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_11 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_12 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_13 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_14 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_15 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_16 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_17 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_18 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_19 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_20 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_21 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");displayln($rjs_core.UString.make("unsupported form =>"));displayln(v_46);return M0.error($rjs_core.PrimitiveSymbol.make("linklet-expand"));};var p_18 = v_50;if (M0.pair_p(p_18)!==false) {var if_res859 = true;} else {var if_res859 = false;}if (if_res859!==false) {var p_19 = v_50;var a_30 = M0.car(p_19);var rator_1 = a_30;var d_4 = M0.cdr(p_19);var rands_1 = d_4;var let_result860 = M0.values(rator_1,rands_1);var rator_0 = let_result860.getAt(0);var rands_0 = let_result860.getAt(1);var if_res861 = App9_dot_1(t_1(rator_0),map2(t_1,rands_0));} else {var if_res861 = alt_21();}return if_res861;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("with-continuation-mark"),hd_0)!==false) {var a_31 = M0.cdr(v_50);var p_20 = a_31;if (M0.pair_p(p_20)!==false) {var a_32 = M0.cdr(p_20);var p_21 = a_32;if (M0.pair_p(p_21)!==false) {var a_33 = M0.cdr(p_21);var p_22 = a_33;if (M0.pair_p(p_22)!==false) {var a_34 = M0.cdr(p_22);var if_res862 = M0.eq_p($rjs_core.Pair.makeList(),a_34);} else {var if_res862 = false;}var if_res863 = if_res862;} else {var if_res863 = false;}var if_res864 = if_res863;} else {var if_res864 = false;}var if_res865 = if_res864;} else {var if_res865 = false;}if (if_res865!==false) {var d_5 = M0.cdr(v_50);var p_23 = d_5;var a_35 = M0.car(p_23);var key_5 = a_35;var d_6 = M0.cdr(p_23);var p_0 = d_6;var a_36 = M0.car(p_0);var value_2 = a_36;var d_7 = M0.cdr(p_0);var a_37 = M0.car(d_7);var result_3 = a_37;var let_result866 = M0.values(value_2,result_3);var value_1 = let_result866.getAt(0);var result_2 = let_result866.getAt(1);var let_result867 = M0.values(key_5,value_1,result_2);var key_4 = let_result867.getAt(0);var value_0 = let_result867.getAt(1);var result_1 = let_result867.getAt(2);var if_res868 = WithContinuationMark15_dot_1(t_1(key_4),t_1(value_0),t_1(result_1));} else {var if_res868 = alt_20();}return if_res868;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("set!"),hd_0)!==false) {var a_38 = M0.cdr(v_50);var p_24 = a_38;if (M0.pair_p(p_24)!==false) {var a_39 = M0.cdr(p_24);var p_25 = a_39;if (M0.pair_p(p_25)!==false) {var a_40 = M0.cdr(p_25);var if_res869 = M0.eq_p($rjs_core.Pair.makeList(),a_40);} else {var if_res869 = false;}var if_res870 = if_res869;} else {var if_res870 = false;}var if_res871 = if_res870;} else {var if_res871 = false;}if (if_res871!==false) {var d_8 = M0.cdr(v_50);var p_26 = d_8;var a_41 = M0.car(p_26);var s_13 = a_41;var d_9 = M0.cdr(p_26);var a_42 = M0.car(d_9);var e_6 = a_42;var let_result872 = M0.values(s_13,e_6);var s_12 = let_result872.getAt(0);var e_5 = let_result872.getAt(1);var if_res873 = Set_bang_14_dot_1(s_12,t_1(e_5));} else {var if_res873 = alt_19();}return if_res873;};if (M0.symbol_p(v_46)!==false) {if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define"),M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res876 = TopLevelIdent4_dot_1(v_46);} else {if (M0.number_p(M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res875 = LinkletImportIdent5_dot_1(v_46,M0.hash_ref(bindings_0,v_46));} else {if (M0.eq_p($rjs_core.PrimitiveSymbol.make("lexical"),M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res874 = LocalIdent6_dot_1(v_46);} else {var if_res874 = ImportedIdent3_dot_1(v_46,$rjs_core.PrimitiveSymbol.make("#%kernel"),true);}var if_res875 = if_res874;}var if_res876 = if_res875;}var if_res877 = if_res876;} else {var if_res877 = alt_18();}return if_res877;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"),hd_0)!==false) {var a_43 = M0.cdr(v_50);var if_res878 = M0.eq_p($rjs_core.Pair.makeList(),a_43);} else {var if_res878 = false;}if (if_res878!==false) {var if_res879 = VarRef16_dot_1(false);} else {var if_res879 = alt_17();}return if_res879;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"),hd_0)!==false) {var a_44 = M0.cdr(v_50);var p_27 = a_44;if (M0.pair_p(p_27)!==false) {var a_45 = M0.cdr(p_27);var if_res880 = M0.eq_p($rjs_core.Pair.makeList(),a_45);} else {var if_res880 = false;}var if_res881 = if_res880;} else {var if_res881 = false;}if (if_res881!==false) {var d_10 = M0.cdr(v_50);var a_46 = M0.car(d_10);var x_25 = a_46;var if_res882 = VarRef16_dot_1(x_25);} else {var if_res882 = alt_16();}return if_res882;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_47 = M0.cdr(v_50);var p_28 = a_47;if (M0.pair_p(p_28)!==false) {var a_48 = M0.car(p_28);if (M0.list_p(a_48)!==false) {var a_49 = M0.cdr(p_28);var p_29 = a_49;if (M0.pair_p(p_29)!==false) {var a_50 = M0.cdr(p_29);var if_res883 = M0.eq_p($rjs_core.Pair.makeList(),a_50);} else {var if_res883 = false;}var if_res884 = if_res883;} else {var if_res884 = false;}var if_res885 = if_res884;} else {var if_res885 = false;}var if_res886 = if_res885;} else {var if_res886 = false;}if (if_res886!==false) {var d_11 = M0.cdr(v_50);var p_30 = d_11;var a_51 = M0.car(p_30);var id_2 = a_51;var d_12 = M0.cdr(p_30);var a_52 = M0.car(d_12);var b_10 = a_52;var let_result887 = M0.values(id_2,b_10);var id_1 = let_result887.getAt(0);var b_9 = let_result887.getAt(1);var if_res888 = DefineValues2_dot_1(id_1,t_1(b_9));} else {var if_res888 = alt_15();}return if_res888;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_53 = M0.cdr(v_50);var p_31 = a_53;if (M0.pair_p(p_31)!==false) {var a_54 = M0.car(p_31);var p_32 = a_54;if (M0.pair_p(p_32)!==false) {var a_55 = M0.cdr(p_32);var if_res889 = M0.eq_p($rjs_core.Pair.makeList(),a_55);} else {var if_res889 = false;}if (if_res889!==false) {var a_56 = M0.cdr(p_31);var p_33 = a_56;if (M0.pair_p(p_33)!==false) {var a_57 = M0.car(p_33);var p_34 = a_57;if (M0.pair_p(p_34)!==false) {var a_58 = M0.car(p_34);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),a_58)!==false) {var a_59 = M0.cdr(p_34);var p_35 = a_59;if (M0.pair_p(p_35)!==false) {var a_60 = M0.car(p_35);var p_36 = a_60;if (M0.pair_p(p_36)!==false) {var a_61 = M0.car(p_36);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_61)!==false) {var a_62 = M0.cdr(p_36);var p_37 = a_62;if (M0.pair_p(p_37)!==false) {var a_63 = M0.car(p_37);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("require"),a_63)!==false) {var a_64 = M0.cdr(p_37);var if_res890 = M0.eq_p($rjs_core.Pair.makeList(),a_64);} else {var if_res890 = false;}var if_res891 = if_res890;} else {var if_res891 = false;}var if_res892 = if_res891;} else {var if_res892 = false;}var if_res893 = if_res892;} else {var if_res893 = false;}if (if_res893!==false) {var a_65 = M0.cdr(p_35);var p_38 = a_65;if (M0.pair_p(p_38)!==false) {var a_66 = M0.car(p_38);var p_39 = a_66;if (M0.pair_p(p_39)!==false) {var a_67 = M0.car(p_39);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_67)!==false) {var a_68 = M0.cdr(p_39);var p_40 = a_68;if (M0.pair_p(p_40)!==false) {var a_69 = M0.car(p_40);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("*"),a_69)!==false) {var a_70 = M0.cdr(p_40);var if_res894 = M0.eq_p($rjs_core.Pair.makeList(),a_70);} else {var if_res894 = false;}var if_res895 = if_res894;} else {var if_res895 = false;}var if_res896 = if_res895;} else {var if_res896 = false;}var if_res897 = if_res896;} else {var if_res897 = false;}if (if_res897!==false) {var a_71 = M0.cdr(p_38);var p_41 = a_71;if (M0.pair_p(p_41)!==false) {var a_72 = M0.car(p_41);var p_42 = a_72;if (M0.pair_p(p_42)!==false) {var a_73 = M0.car(p_42);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_73)!==false) {var a_74 = M0.cdr(p_42);var p_43 = a_74;if (M0.pair_p(p_43)!==false) {var a_75 = M0.cdr(p_43);var if_res898 = M0.eq_p($rjs_core.Pair.makeList(),a_75);} else {var if_res898 = false;}var if_res899 = if_res898;} else {var if_res899 = false;}var if_res900 = if_res899;} else {var if_res900 = false;}if (if_res900!==false) {var a_76 = M0.cdr(p_41);var if_res901 = M0.eq_p($rjs_core.Pair.makeList(),a_76);} else {var if_res901 = false;}var if_res902 = if_res901;} else {var if_res902 = false;}var if_res903 = if_res902;} else {var if_res903 = false;}var if_res904 = if_res903;} else {var if_res904 = false;}var if_res905 = if_res904;} else {var if_res905 = false;}var if_res906 = if_res905;} else {var if_res906 = false;}var if_res907 = if_res906;} else {var if_res907 = false;}var if_res908 = if_res907;} else {var if_res908 = false;}if (if_res908!==false) {var a_77 = M0.cdr(p_33);var if_res909 = M0.eq_p($rjs_core.Pair.makeList(),a_77);} else {var if_res909 = false;}var if_res910 = if_res909;} else {var if_res910 = false;}var if_res911 = if_res910;} else {var if_res911 = false;}var if_res912 = if_res911;} else {var if_res912 = false;}var if_res913 = if_res912;} else {var if_res913 = false;}if (if_res913!==false) {var d_13 = M0.cdr(v_50);var p_44 = d_13;var a_78 = M0.car(p_44);var a_79 = M0.car(a_78);var name_9 = a_79;var d_14 = M0.cdr(p_44);var a_80 = M0.car(d_14);var d_15 = M0.cdr(a_80);var d_16 = M0.cdr(d_15);var d_17 = M0.cdr(d_16);var a_81 = M0.car(d_17);var d_18 = M0.cdr(a_81);var a_82 = M0.car(d_18);var mod_1 = a_82;var let_result914 = M0.values(name_9,mod_1);var name_8 = let_result914.getAt(0);var mod_0 = let_result914.getAt(1);var if_res915 = JSRequire17_dot_1(name_8,mod_0,$rjs_core.PrimitiveSymbol.make("*"));} else {var if_res915 = alt_14();}return if_res915;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_83 = M0.cdr(v_50);var p_45 = a_83;if (M0.pair_p(p_45)!==false) {var a_84 = M0.car(p_45);var p_46 = a_84;if (M0.pair_p(p_46)!==false) {var a_85 = M0.cdr(p_46);var if_res916 = M0.eq_p($rjs_core.Pair.makeList(),a_85);} else {var if_res916 = false;}if (if_res916!==false) {var a_86 = M0.cdr(p_45);var p_47 = a_86;if (M0.pair_p(p_47)!==false) {var a_87 = M0.car(p_47);var p_48 = a_87;if (M0.pair_p(p_48)!==false) {var a_88 = M0.car(p_48);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),a_88)!==false) {var a_89 = M0.cdr(p_48);var p_49 = a_89;if (M0.pair_p(p_49)!==false) {var a_90 = M0.car(p_49);var p_50 = a_90;if (M0.pair_p(p_50)!==false) {var a_91 = M0.car(p_50);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_91)!==false) {var a_92 = M0.cdr(p_50);var p_51 = a_92;if (M0.pair_p(p_51)!==false) {var a_93 = M0.car(p_51);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("require"),a_93)!==false) {var a_94 = M0.cdr(p_51);var if_res917 = M0.eq_p($rjs_core.Pair.makeList(),a_94);} else {var if_res917 = false;}var if_res918 = if_res917;} else {var if_res918 = false;}var if_res919 = if_res918;} else {var if_res919 = false;}var if_res920 = if_res919;} else {var if_res920 = false;}if (if_res920!==false) {var a_95 = M0.cdr(p_49);var p_52 = a_95;if (M0.pair_p(p_52)!==false) {var a_96 = M0.car(p_52);var p_53 = a_96;if (M0.pair_p(p_53)!==false) {var a_97 = M0.car(p_53);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_97)!==false) {var a_98 = M0.cdr(p_53);var p_54 = a_98;if (M0.pair_p(p_54)!==false) {var a_99 = M0.cdr(p_54);var if_res921 = M0.eq_p($rjs_core.Pair.makeList(),a_99);} else {var if_res921 = false;}var if_res922 = if_res921;} else {var if_res922 = false;}var if_res923 = if_res922;} else {var if_res923 = false;}if (if_res923!==false) {var a_100 = M0.cdr(p_52);var if_res924 = M0.eq_p($rjs_core.Pair.makeList(),a_100);} else {var if_res924 = false;}var if_res925 = if_res924;} else {var if_res925 = false;}var if_res926 = if_res925;} else {var if_res926 = false;}var if_res927 = if_res926;} else {var if_res927 = false;}var if_res928 = if_res927;} else {var if_res928 = false;}var if_res929 = if_res928;} else {var if_res929 = false;}if (if_res929!==false) {var a_101 = M0.cdr(p_47);var if_res930 = M0.eq_p($rjs_core.Pair.makeList(),a_101);} else {var if_res930 = false;}var if_res931 = if_res930;} else {var if_res931 = false;}var if_res932 = if_res931;} else {var if_res932 = false;}var if_res933 = if_res932;} else {var if_res933 = false;}var if_res934 = if_res933;} else {var if_res934 = false;}if (if_res934!==false) {var d_19 = M0.cdr(v_50);var p_55 = d_19;var a_102 = M0.car(p_55);var a_103 = M0.car(a_102);var name_11 = a_103;var d_20 = M0.cdr(p_55);var a_104 = M0.car(d_20);var d_21 = M0.cdr(a_104);var d_22 = M0.cdr(d_21);var a_105 = M0.car(d_22);var d_23 = M0.cdr(a_105);var a_106 = M0.car(d_23);var mod_3 = a_106;var let_result935 = M0.values(name_11,mod_3);var name_10 = let_result935.getAt(0);var mod_2 = let_result935.getAt(1);var if_res936 = JSRequire17_dot_1(name_10,mod_2,$rjs_core.PrimitiveSymbol.make("default"));} else {var if_res936 = alt_13();}return if_res936;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("lambda"),hd_0)!==false) {var a_107 = M0.cdr(v_50);var p_56 = a_107;if (M0.pair_p(p_56)!==false) {var a_108 = M0.cdr(p_56);var p_57 = a_108;if (M0.pair_p(p_57)!==false) {var a_109 = M0.cdr(p_57);var if_res937 = M0.eq_p($rjs_core.Pair.makeList(),a_109);} else {var if_res937 = false;}var if_res938 = if_res937;} else {var if_res938 = false;}var if_res939 = if_res938;} else {var if_res939 = false;}if (if_res939!==false) {var d_24 = M0.cdr(v_50);var p_58 = d_24;var a_110 = M0.car(p_58);var formals_4 = a_110;var d_25 = M0.cdr(p_58);var a_111 = M0.car(d_25);var body_1 = a_111;var let_result940 = M0.values(formals_4,body_1);var formals_3 = let_result940.getAt(0);var body_0 = let_result940.getAt(1);var fabsyn_0 = formals__gt_absyn(formals_3);var if_res941 = Lambda10_dot_1(fabsyn_0,M0.list(t_1(body_0,hash_union(bindings_0,formals__gt_bindings(formals_3)))),false);} else {var if_res941 = alt_12();}return if_res941;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("case-lambda"),hd_0)!==false) {var if_res942 = true;} else {var if_res942 = false;}if (if_res942!==false) {var d_26 = M0.cdr(v_50);var clauses_0 = d_26;var if_res947 = CaseLambda11_dot_1(map2(function(c_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_51 = c_7;var alt_22 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_51);};var p_59 = v_51;if (M0.pair_p(p_59)!==false) {var a_112 = M0.cdr(p_59);var p_60 = a_112;if (M0.pair_p(p_60)!==false) {var a_113 = M0.cdr(p_60);var if_res943 = M0.eq_p($rjs_core.Pair.makeList(),a_113);} else {var if_res943 = false;}var if_res944 = if_res943;} else {var if_res944 = false;}if (if_res944!==false) {var p_61 = v_51;var a_114 = M0.car(p_61);var formals_6 = a_114;var d_27 = M0.cdr(p_61);var a_115 = M0.car(d_27);var body_3 = a_115;var let_result945 = M0.values(formals_6,body_3);var formals_5 = let_result945.getAt(0);var body_2 = let_result945.getAt(1);var if_res946 = Lambda10_dot_1(formals__gt_absyn(formals_5),M0.list(t_1(body_2,hash_union(bindings_0,formals__gt_bindings(formals_5)))),false);} else {var if_res946 = alt_22();}return if_res946;},clauses_0));} else {var if_res947 = alt_11();}return if_res947;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("letrec-values"),hd_0)!==false) {var a_116 = M0.cdr(v_50);var p_62 = a_116;if (M0.pair_p(p_62)!==false) {var a_117 = M0.car(p_62);if (M0.list_p(a_117)!==false) {var lst_8 = a_117;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res948 = M0.rvoid();} else {var if_res948 = check_list(lst_8);}if_res948;var for_loop_3 = function(result_4, lst_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_9)!==false) {var v_52 = M0.unsafe_car(lst_9);var rest_1 = M0.unsafe_cdr(lst_9);var p_63 = v_52;if (M0.pair_p(p_63)!==false) {var a_118 = M0.cdr(p_63);var p_64 = a_118;if (M0.pair_p(p_64)!==false) {var a_119 = M0.cdr(p_64);var if_res949 = M0.eq_p($rjs_core.Pair.makeList(),a_119);} else {var if_res949 = false;}var if_res950 = if_res949;} else {var if_res950 = false;}var result_6 = if_res950;var result_5 = M0.values(result_6);if (M0.not($rjs_core.attachProcedureArity(function(...x_26951) {var x_26 = $rjs_core.Pair.listFromArray(x_26951);return M0.not(result_5);})(v_52))!==false) {var if_res952 = M0.not(false);} else {var if_res952 = false;}if (if_res952!==false) {var if_res953 = for_loop_3(result_5,rest_1);} else {var if_res953 = result_5;}var if_res954 = if_res953;} else {var if_res954 = result_4;}return if_res954;};var if_res955 = for_loop_3(true,lst_8);} else {var if_res955 = false;}if (if_res955!==false) {var a_120 = M0.cdr(p_62);var p_65 = a_120;if (M0.pair_p(p_65)!==false) {var a_121 = M0.cdr(p_65);var if_res956 = M0.eq_p($rjs_core.Pair.makeList(),a_121);} else {var if_res956 = false;}var if_res957 = if_res956;} else {var if_res957 = false;}var if_res958 = if_res957;} else {var if_res958 = false;}var if_res959 = if_res958;} else {var if_res959 = false;}if (if_res959!==false) {var d_28 = M0.cdr(v_50);var p_66 = d_28;var a_122 = M0.car(p_66);var lst_10 = a_122;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res960 = M0.rvoid();} else {var if_res960 = check_list(lst_10);}if_res960;var for_loop_4 = function(xs_8, es_3, lst_11) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_11)!==false) {var v_53 = M0.unsafe_car(lst_11);var rest_2 = M0.unsafe_cdr(lst_11);var xs_10 = xs_8;var es_5 = es_3;var p_67 = v_53;var a_123 = M0.car(p_67);var xs_12 = a_123;var d_29 = M0.cdr(p_67);var a_124 = M0.car(d_29);var es_7 = a_124;var let_result961 = M0.values(xs_12,es_7);var xs4_0 = let_result961.getAt(0);var es5_0 = let_result961.getAt(1);var let_result962 = M0.values(M0.cons(xs4_0,xs_10),M0.cons(es5_0,es_5));var xs_11 = let_result962.getAt(0);var es_6 = let_result962.getAt(1);var let_result963 = M0.values(xs_11,es_6);var xs_9 = let_result963.getAt(0);var es_4 = let_result963.getAt(1);if (M0.not(false)!==false) {var if_res964 = for_loop_4(xs_9,es_4,rest_2);} else {var if_res964 = M0.values(xs_9,es_4);}var if_res965 = if_res964;} else {var if_res965 = M0.values(xs_8,es_3);}return if_res965;};var let_result966 = for_loop_4(M0.rnull,M0.rnull,lst_10);var xs_7 = let_result966.getAt(0);var es_2 = let_result966.getAt(1);var let_result967 = M0.values(reverse$1(xs_7),reverse$1(es_2));var xs_6 = let_result967.getAt(0);var es_1 = let_result967.getAt(1);var d_30 = M0.cdr(p_66);var a_125 = M0.car(d_30);var b_12 = a_125;var let_result968 = M0.values(xs_6,es_1,b_12);var xs_5 = let_result968.getAt(0);var es_0 = let_result968.getAt(1);var b_11 = let_result968.getAt(2);var let_result969 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_5);var pos__gt_vals_4 = let_result969.getAt(0);var pos_pre_inc_2 = let_result969.getAt(1);var pos_next_5 = let_result969.getAt(2);var init_5 = let_result969.getAt(3);var pos_cont_p_5 = let_result969.getAt(4);var val_cont_p_4 = let_result969.getAt(5);var all_cont_p_4 = let_result969.getAt(6);M0.rvoid();var for_loop_5 = function(table_4, pos_14) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_5!==false) {var if_res970 = pos_cont_p_5(pos_14);} else {var if_res970 = true;}if (if_res970!==false) {var x_28 = pos__gt_vals_4(pos_14);if (all_cont_p_4!==false) {var if_res971 = function(pos_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_4(pos_15,x_28);};} else {var if_res971 = false;}var let_result972 = M0.values(x_28,if_res971);var x_27 = let_result972.getAt(0);var all_cont_p_by_pos_2 = let_result972.getAt(1);if (pos_pre_inc_2!==false) {var if_res973 = pos_pre_inc_2(pos_14);} else {var if_res973 = pos_14;}var pos_16 = if_res973;if (val_cont_p_4!==false) {var if_res974 = val_cont_p_4(x_27);} else {var if_res974 = true;}if (if_res974!==false) {var table_6 = table_4;var let_result975 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),x_27);var pos__gt_vals_5 = let_result975.getAt(0);var pos_pre_inc_3 = let_result975.getAt(1);var pos_next_6 = let_result975.getAt(2);var init_6 = let_result975.getAt(3);var pos_cont_p_6 = let_result975.getAt(4);var val_cont_p_5 = let_result975.getAt(5);var all_cont_p_5 = let_result975.getAt(6);M0.rvoid();var for_loop_6 = function(table_7, pos_17) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_6!==false) {var if_res976 = pos_cont_p_6(pos_17);} else {var if_res976 = true;}if (if_res976!==false) {var i_45 = pos__gt_vals_5(pos_17);if (all_cont_p_5!==false) {var if_res977 = function(pos_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_5(pos_18,i_45);};} else {var if_res977 = false;}var let_result978 = M0.values(i_45,if_res977);var i_44 = let_result978.getAt(0);var all_cont_p_by_pos_3 = let_result978.getAt(1);if (pos_pre_inc_3!==false) {var if_res979 = pos_pre_inc_3(pos_17);} else {var if_res979 = pos_17;}var pos_19 = if_res979;if (val_cont_p_5!==false) {var if_res980 = val_cont_p_5(i_44);} else {var if_res980 = true;}if (if_res980!==false) {var table_9 = table_7;var table_10 = table_9;var let_result981 = M0.values(i_44,$rjs_core.PrimitiveSymbol.make("lexical"));var key_6 = let_result981.getAt(0);var val_1 = let_result981.getAt(1);var table_11 = M0.hash_set(table_10,key_6,val_1);var table_8 = M0.values(table_11);if (all_cont_p_by_pos_3!==false) {var if_res982 = all_cont_p_by_pos_3(pos_19);} else {var if_res982 = true;}if (if_res982!==false) {var if_res983 = M0.not(false);} else {var if_res983 = false;}if (if_res983!==false) {var if_res984 = for_loop_6(table_8,pos_next_6(pos_19));} else {var if_res984 = table_8;}var if_res985 = if_res984;} else {var if_res985 = table_7;}var if_res986 = if_res985;} else {var if_res986 = table_7;}return if_res986;};var table_5 = for_loop_6(table_6,init_6);if (all_cont_p_by_pos_2!==false) {var if_res987 = all_cont_p_by_pos_2(pos_16);} else {var if_res987 = true;}if (if_res987!==false) {var if_res988 = M0.not(false);} else {var if_res988 = false;}if (if_res988!==false) {var if_res989 = for_loop_5(table_5,pos_next_5(pos_16));} else {var if_res989 = table_5;}var if_res990 = if_res989;} else {var if_res990 = table_4;}var if_res991 = if_res990;} else {var if_res991 = table_4;}return if_res991;};var bindings_times__0 = hash_union(bindings_0,for_loop_5($rjs_core.Hash.makeEqual([],false),init_5));var let_result992 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_5);var pos__gt_vals_6 = let_result992.getAt(0);var pos_pre_inc_4 = let_result992.getAt(1);var pos_next_7 = let_result992.getAt(2);var init_7 = let_result992.getAt(3);var pos_cont_p_7 = let_result992.getAt(4);var val_cont_p_6 = let_result992.getAt(5);var all_cont_p_6 = let_result992.getAt(6);var let_result993 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),es_0);var pos__gt_vals_7 = let_result993.getAt(0);var pos_pre_inc_5 = let_result993.getAt(1);var pos_next_8 = let_result993.getAt(2);var init_8 = let_result993.getAt(3);var pos_cont_p_8 = let_result993.getAt(4);var val_cont_p_7 = let_result993.getAt(5);var all_cont_p_7 = let_result993.getAt(6);M0.rvoid();M0.rvoid();var for_loop_7 = function(fold_var_0, pos_20, pos_21) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_7!==false) {var if_res994 = pos_cont_p_7(pos_20);} else {var if_res994 = true;}if (if_res994!==false) {if (pos_cont_p_8!==false) {var if_res995 = pos_cont_p_8(pos_21);} else {var if_res995 = true;}var if_res996 = if_res995;} else {var if_res996 = false;}if (if_res996!==false) {var x_30 = pos__gt_vals_6(pos_20);if (all_cont_p_6!==false) {var if_res997 = function(pos_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_6(pos_22,x_30);};} else {var if_res997 = false;}var let_result998 = M0.values(x_30,if_res997);var x_29 = let_result998.getAt(0);var all_cont_p_by_pos_4 = let_result998.getAt(1);if (pos_pre_inc_4!==false) {var if_res999 = pos_pre_inc_4(pos_20);} else {var if_res999 = pos_20;}var pos_23 = if_res999;var e_8 = pos__gt_vals_7(pos_21);if (all_cont_p_7!==false) {var if_res1000 = function(pos_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_7(pos_24,e_8);};} else {var if_res1000 = false;}var let_result1001 = M0.values(e_8,if_res1000);var e_7 = let_result1001.getAt(0);var all_cont_p_by_pos_5 = let_result1001.getAt(1);if (pos_pre_inc_5!==false) {var if_res1002 = pos_pre_inc_5(pos_21);} else {var if_res1002 = pos_21;}var pos_25 = if_res1002;if (val_cont_p_6!==false) {var if_res1003 = val_cont_p_6(x_29);} else {var if_res1003 = true;}if (if_res1003!==false) {if (val_cont_p_7!==false) {var if_res1004 = val_cont_p_7(e_7);} else {var if_res1004 = true;}var if_res1005 = if_res1004;} else {var if_res1005 = false;}if (if_res1005!==false) {var fold_var_2 = fold_var_0;var fold_var_3 = M0.cons(M0.cons(x_29,t_1(e_7,bindings_times__0)),fold_var_2);var fold_var_1 = M0.values(fold_var_3);if (all_cont_p_by_pos_4!==false) {var if_res1006 = all_cont_p_by_pos_4(pos_23);} else {var if_res1006 = true;}if (if_res1006!==false) {if (all_cont_p_by_pos_5!==false) {var if_res1007 = all_cont_p_by_pos_5(pos_25);} else {var if_res1007 = true;}if (if_res1007!==false) {var if_res1008 = M0.not(false);} else {var if_res1008 = false;}var if_res1009 = if_res1008;} else {var if_res1009 = false;}if (if_res1009!==false) {var if_res1010 = for_loop_7(fold_var_1,pos_next_7(pos_23),pos_next_8(pos_25));} else {var if_res1010 = fold_var_1;}var if_res1011 = if_res1010;} else {var if_res1011 = fold_var_0;}var if_res1012 = if_res1011;} else {var if_res1012 = fold_var_0;}return if_res1012;};var if_res1013 = LetValues13_dot_1(reverse$1(for_loop_7(M0.rnull,init_7,init_8)),M0.list(t_1(b_11,bindings_times__0)));} else {var if_res1013 = alt_10();}return if_res1013;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("let-values"),hd_0)!==false) {var a_126 = M0.cdr(v_50);var p_68 = a_126;if (M0.pair_p(p_68)!==false) {var a_127 = M0.car(p_68);if (M0.list_p(a_127)!==false) {var lst_12 = a_127;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1014 = M0.rvoid();} else {var if_res1014 = check_list(lst_12);}if_res1014;var for_loop_8 = function(result_7, lst_13) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_13)!==false) {var v_54 = M0.unsafe_car(lst_13);var rest_3 = M0.unsafe_cdr(lst_13);var p_69 = v_54;if (M0.pair_p(p_69)!==false) {var a_128 = M0.cdr(p_69);var p_70 = a_128;if (M0.pair_p(p_70)!==false) {var a_129 = M0.cdr(p_70);var if_res1015 = M0.eq_p($rjs_core.Pair.makeList(),a_129);} else {var if_res1015 = false;}var if_res1016 = if_res1015;} else {var if_res1016 = false;}var result_9 = if_res1016;var result_8 = M0.values(result_9);if (M0.not($rjs_core.attachProcedureArity(function(...x_311017) {var x_31 = $rjs_core.Pair.listFromArray(x_311017);return M0.not(result_8);})(v_54))!==false) {var if_res1018 = M0.not(false);} else {var if_res1018 = false;}if (if_res1018!==false) {var if_res1019 = for_loop_8(result_8,rest_3);} else {var if_res1019 = result_8;}var if_res1020 = if_res1019;} else {var if_res1020 = result_7;}return if_res1020;};var if_res1021 = for_loop_8(true,lst_12);} else {var if_res1021 = false;}if (if_res1021!==false) {var a_130 = M0.cdr(p_68);var p_71 = a_130;if (M0.pair_p(p_71)!==false) {var a_131 = M0.cdr(p_71);var if_res1022 = M0.eq_p($rjs_core.Pair.makeList(),a_131);} else {var if_res1022 = false;}var if_res1023 = if_res1022;} else {var if_res1023 = false;}var if_res1024 = if_res1023;} else {var if_res1024 = false;}var if_res1025 = if_res1024;} else {var if_res1025 = false;}if (if_res1025!==false) {var d_31 = M0.cdr(v_50);var p_72 = d_31;var a_132 = M0.car(p_72);var lst_14 = a_132;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1026 = M0.rvoid();} else {var if_res1026 = check_list(lst_14);}if_res1026;var for_loop_9 = function(xs_15, es_11, lst_15) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_15)!==false) {var v_55 = M0.unsafe_car(lst_15);var rest_4 = M0.unsafe_cdr(lst_15);var xs_17 = xs_15;var es_13 = es_11;var p_73 = v_55;var a_133 = M0.car(p_73);var xs_19 = a_133;var d_32 = M0.cdr(p_73);var a_134 = M0.car(d_32);var es_15 = a_134;var let_result1027 = M0.values(xs_19,es_15);var xs10_0 = let_result1027.getAt(0);var es11_0 = let_result1027.getAt(1);var let_result1028 = M0.values(M0.cons(xs10_0,xs_17),M0.cons(es11_0,es_13));var xs_18 = let_result1028.getAt(0);var es_14 = let_result1028.getAt(1);var let_result1029 = M0.values(xs_18,es_14);var xs_16 = let_result1029.getAt(0);var es_12 = let_result1029.getAt(1);if (M0.not(false)!==false) {var if_res1030 = for_loop_9(xs_16,es_12,rest_4);} else {var if_res1030 = M0.values(xs_16,es_12);}var if_res1031 = if_res1030;} else {var if_res1031 = M0.values(xs_15,es_11);}return if_res1031;};var let_result1032 = for_loop_9(M0.rnull,M0.rnull,lst_14);var xs_14 = let_result1032.getAt(0);var es_10 = let_result1032.getAt(1);var let_result1033 = M0.values(reverse$1(xs_14),reverse$1(es_10));var xs_13 = let_result1033.getAt(0);var es_9 = let_result1033.getAt(1);var d_33 = M0.cdr(p_72);var a_135 = M0.car(d_33);var b_14 = a_135;var let_result1034 = M0.values(xs_13,es_9,b_14);var xs_4 = let_result1034.getAt(0);var es_8 = let_result1034.getAt(1);var b_13 = let_result1034.getAt(2);var let_result1035 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_4);var pos__gt_vals_8 = let_result1035.getAt(0);var pos_pre_inc_6 = let_result1035.getAt(1);var pos_next_9 = let_result1035.getAt(2);var init_9 = let_result1035.getAt(3);var pos_cont_p_9 = let_result1035.getAt(4);var val_cont_p_8 = let_result1035.getAt(5);var all_cont_p_8 = let_result1035.getAt(6);M0.rvoid();var for_loop_10 = function(table_12, pos_26) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_9!==false) {var if_res1036 = pos_cont_p_9(pos_26);} else {var if_res1036 = true;}if (if_res1036!==false) {var x_33 = pos__gt_vals_8(pos_26);if (all_cont_p_8!==false) {var if_res1037 = function(pos_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_8(pos_27,x_33);};} else {var if_res1037 = false;}var let_result1038 = M0.values(x_33,if_res1037);var x_32 = let_result1038.getAt(0);var all_cont_p_by_pos_6 = let_result1038.getAt(1);if (pos_pre_inc_6!==false) {var if_res1039 = pos_pre_inc_6(pos_26);} else {var if_res1039 = pos_26;}var pos_28 = if_res1039;if (val_cont_p_8!==false) {var if_res1040 = val_cont_p_8(x_32);} else {var if_res1040 = true;}if (if_res1040!==false) {var table_14 = table_12;var let_result1041 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),x_32);var pos__gt_vals_9 = let_result1041.getAt(0);var pos_pre_inc_7 = let_result1041.getAt(1);var pos_next_10 = let_result1041.getAt(2);var init_10 = let_result1041.getAt(3);var pos_cont_p_10 = let_result1041.getAt(4);var val_cont_p_9 = let_result1041.getAt(5);var all_cont_p_9 = let_result1041.getAt(6);M0.rvoid();var for_loop_11 = function(table_15, pos_29) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_10!==false) {var if_res1042 = pos_cont_p_10(pos_29);} else {var if_res1042 = true;}if (if_res1042!==false) {var i_47 = pos__gt_vals_9(pos_29);if (all_cont_p_9!==false) {var if_res1043 = function(pos_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_9(pos_30,i_47);};} else {var if_res1043 = false;}var let_result1044 = M0.values(i_47,if_res1043);var i_46 = let_result1044.getAt(0);var all_cont_p_by_pos_7 = let_result1044.getAt(1);if (pos_pre_inc_7!==false) {var if_res1045 = pos_pre_inc_7(pos_29);} else {var if_res1045 = pos_29;}var pos_31 = if_res1045;if (val_cont_p_9!==false) {var if_res1046 = val_cont_p_9(i_46);} else {var if_res1046 = true;}if (if_res1046!==false) {var table_17 = table_15;var table_18 = table_17;var let_result1047 = M0.values(i_46,$rjs_core.PrimitiveSymbol.make("lexical"));var key_1 = let_result1047.getAt(0);var val_2 = let_result1047.getAt(1);var table_19 = M0.hash_set(table_18,key_1,val_2);var table_16 = M0.values(table_19);if (all_cont_p_by_pos_7!==false) {var if_res1048 = all_cont_p_by_pos_7(pos_31);} else {var if_res1048 = true;}if (if_res1048!==false) {var if_res1049 = M0.not(false);} else {var if_res1049 = false;}if (if_res1049!==false) {var if_res1050 = for_loop_11(table_16,pos_next_10(pos_31));} else {var if_res1050 = table_16;}var if_res1051 = if_res1050;} else {var if_res1051 = table_15;}var if_res1052 = if_res1051;} else {var if_res1052 = table_15;}return if_res1052;};var table_13 = for_loop_11(table_14,init_10);if (all_cont_p_by_pos_6!==false) {var if_res1053 = all_cont_p_by_pos_6(pos_28);} else {var if_res1053 = true;}if (if_res1053!==false) {var if_res1054 = M0.not(false);} else {var if_res1054 = false;}if (if_res1054!==false) {var if_res1055 = for_loop_10(table_13,pos_next_9(pos_28));} else {var if_res1055 = table_13;}var if_res1056 = if_res1055;} else {var if_res1056 = table_12;}var if_res1057 = if_res1056;} else {var if_res1057 = table_12;}return if_res1057;};var bindings_times__1 = hash_union(bindings_0,for_loop_10($rjs_core.Hash.makeEqual([],false),init_9));var let_result1058 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_4);var pos__gt_vals_10 = let_result1058.getAt(0);var pos_pre_inc_8 = let_result1058.getAt(1);var pos_next_11 = let_result1058.getAt(2);var init_11 = let_result1058.getAt(3);var pos_cont_p_11 = let_result1058.getAt(4);var val_cont_p_10 = let_result1058.getAt(5);var all_cont_p_10 = let_result1058.getAt(6);var let_result1059 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),es_8);var pos__gt_vals_11 = let_result1059.getAt(0);var pos_pre_inc_9 = let_result1059.getAt(1);var pos_next_12 = let_result1059.getAt(2);var init_12 = let_result1059.getAt(3);var pos_cont_p_12 = let_result1059.getAt(4);var val_cont_p_11 = let_result1059.getAt(5);var all_cont_p_11 = let_result1059.getAt(6);M0.rvoid();M0.rvoid();var for_loop_12 = function(fold_var_4, pos_32, pos_33) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_11!==false) {var if_res1060 = pos_cont_p_11(pos_32);} else {var if_res1060 = true;}if (if_res1060!==false) {if (pos_cont_p_12!==false) {var if_res1061 = pos_cont_p_12(pos_33);} else {var if_res1061 = true;}var if_res1062 = if_res1061;} else {var if_res1062 = false;}if (if_res1062!==false) {var x_35 = pos__gt_vals_10(pos_32);if (all_cont_p_10!==false) {var if_res1063 = function(pos_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_10(pos_34,x_35);};} else {var if_res1063 = false;}var let_result1064 = M0.values(x_35,if_res1063);var x_34 = let_result1064.getAt(0);var all_cont_p_by_pos_8 = let_result1064.getAt(1);if (pos_pre_inc_8!==false) {var if_res1065 = pos_pre_inc_8(pos_32);} else {var if_res1065 = pos_32;}var pos_35 = if_res1065;var e_10 = pos__gt_vals_11(pos_33);if (all_cont_p_11!==false) {var if_res1066 = function(pos_36) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_11(pos_36,e_10);};} else {var if_res1066 = false;}var let_result1067 = M0.values(e_10,if_res1066);var e_9 = let_result1067.getAt(0);var all_cont_p_by_pos_9 = let_result1067.getAt(1);if (pos_pre_inc_9!==false) {var if_res1068 = pos_pre_inc_9(pos_33);} else {var if_res1068 = pos_33;}var pos_37 = if_res1068;if (val_cont_p_10!==false) {var if_res1069 = val_cont_p_10(x_34);} else {var if_res1069 = true;}if (if_res1069!==false) {if (val_cont_p_11!==false) {var if_res1070 = val_cont_p_11(e_9);} else {var if_res1070 = true;}var if_res1071 = if_res1070;} else {var if_res1071 = false;}if (if_res1071!==false) {var fold_var_6 = fold_var_4;var fold_var_7 = M0.cons(M0.cons(x_34,t_1(e_9)),fold_var_6);var fold_var_5 = M0.values(fold_var_7);if (all_cont_p_by_pos_8!==false) {var if_res1072 = all_cont_p_by_pos_8(pos_35);} else {var if_res1072 = true;}if (if_res1072!==false) {if (all_cont_p_by_pos_9!==false) {var if_res1073 = all_cont_p_by_pos_9(pos_37);} else {var if_res1073 = true;}if (if_res1073!==false) {var if_res1074 = M0.not(false);} else {var if_res1074 = false;}var if_res1075 = if_res1074;} else {var if_res1075 = false;}if (if_res1075!==false) {var if_res1076 = for_loop_12(fold_var_5,pos_next_11(pos_35),pos_next_12(pos_37));} else {var if_res1076 = fold_var_5;}var if_res1077 = if_res1076;} else {var if_res1077 = fold_var_4;}var if_res1078 = if_res1077;} else {var if_res1078 = fold_var_4;}return if_res1078;};var if_res1079 = LetValues13_dot_1(reverse$1(for_loop_12(M0.rnull,init_11,init_12)),M0.list(t_1(b_13,bindings_times__1)));} else {var if_res1079 = alt_9();}return if_res1079;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("if"),hd_0)!==false) {var a_136 = M0.cdr(v_50);var p_74 = a_136;if (M0.pair_p(p_74)!==false) {var a_137 = M0.cdr(p_74);var p_75 = a_137;if (M0.pair_p(p_75)!==false) {var a_138 = M0.cdr(p_75);var p_76 = a_138;if (M0.pair_p(p_76)!==false) {var a_139 = M0.cdr(p_76);var if_res1080 = M0.eq_p($rjs_core.Pair.makeList(),a_139);} else {var if_res1080 = false;}var if_res1081 = if_res1080;} else {var if_res1081 = false;}var if_res1082 = if_res1081;} else {var if_res1082 = false;}var if_res1083 = if_res1082;} else {var if_res1083 = false;}if (if_res1083!==false) {var d_34 = M0.cdr(v_50);var p_77 = d_34;var a_140 = M0.car(p_77);var e0_1 = a_140;var d_35 = M0.cdr(p_77);var p_78 = d_35;var a_141 = M0.car(p_78);var e1_2 = a_141;var d_36 = M0.cdr(p_78);var a_142 = M0.car(d_36);var e2_2 = a_142;var let_result1084 = M0.values(e1_2,e2_2);var e1_1 = let_result1084.getAt(0);var e2_1 = let_result1084.getAt(1);var let_result1085 = M0.values(e0_1,e1_1,e2_1);var e0_0 = let_result1085.getAt(0);var e1_0 = let_result1085.getAt(1);var e2_0 = let_result1085.getAt(2);var if_res1086 = If12_dot_1(t_1(e0_0),t_1(e1_0),t_1(e2_0));} else {var if_res1086 = alt_8();}return if_res1086;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("begin"),hd_0)!==false) {var a_143 = M0.cdr(v_50);var if_res1087 = M0.list_p(a_143);} else {var if_res1087 = false;}if (if_res1087!==false) {var d_37 = M0.cdr(v_50);var e_11 = d_37;var if_res1088 = map2(t_1,e_11);} else {var if_res1088 = alt_7();}return if_res1088;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("begin0"),hd_0)!==false) {var a_144 = M0.cdr(v_50);var p_79 = a_144;if (M0.pair_p(p_79)!==false) {var a_145 = M0.cdr(p_79);var if_res1089 = M0.list_p(a_145);} else {var if_res1089 = false;}var if_res1090 = if_res1089;} else {var if_res1090 = false;}if (if_res1090!==false) {var d_38 = M0.cdr(v_50);var p_80 = d_38;var a_146 = M0.car(p_80);var e0_3 = a_146;var d_39 = M0.cdr(p_80);var e1_4 = d_39;var let_result1091 = M0.values(e0_3,e1_4);var e0_2 = let_result1091.getAt(0);var e1_3 = let_result1091.getAt(1);var if_res1092 = Begin08_dot_1(t_1(e0_2),map2(t_1,e1_3));} else {var if_res1092 = alt_6();}return if_res1092;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),hd_0)!==false) {var a_147 = M0.cdr(v_50);var p_81 = a_147;if (M0.pair_p(p_81)!==false) {var a_148 = M0.cdr(p_81);var if_res1093 = M0.eq_p($rjs_core.Pair.makeList(),a_148);} else {var if_res1093 = false;}var if_res1094 = if_res1093;} else {var if_res1094 = false;}if (if_res1094!==false) {var d_40 = M0.cdr(v_50);var a_149 = M0.car(d_40);var v_56 = a_149;var if_res1095 = Quote7_dot_1(v_56);} else {var if_res1095 = alt_5();}return if_res1095;};var or_part_67 = M0.string_p(v_46);if (or_part_67!==false) {var if_res1098 = or_part_67;} else {var or_part_68 = M0.number_p(v_46);if (or_part_68!==false) {var if_res1097 = or_part_68;} else {var or_part_69 = M0.boolean_p(v_46);if (or_part_69!==false) {var if_res1096 = or_part_69;} else {var if_res1096 = M0.bytes_p(v_46);}var if_res1097 = if_res1096;}var if_res1098 = if_res1097;}if (if_res1098!==false) {var if_res1099 = Quote7_dot_1(v_46);} else {var if_res1099 = alt_4();}return if_res1099;};var parse_linklet = function(v_57, path_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_58 = v_57;var p_82 = v_58;if (M0.pair_p(p_82)!==false) {var if_res1100 = M0.car(p_82);} else {var if_res1100 = false;}var hd_1 = if_res1100;var alt_23 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_58);};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("linklet"),hd_1)!==false) {var a_150 = M0.cdr(v_58);var p_83 = a_150;if (M0.pair_p(p_83)!==false) {var a_151 = M0.cdr(p_83);var p_84 = a_151;if (M0.pair_p(p_84)!==false) {var if_res1101 = true;} else {var if_res1101 = false;}var if_res1102 = if_res1101;} else {var if_res1102 = false;}var if_res1103 = if_res1102;} else {var if_res1103 = false;}if (if_res1103!==false) {var d_41 = M0.cdr(v_58);var p_85 = d_41;var a_152 = M0.car(p_85);var imports_1 = a_152;var d_42 = M0.cdr(p_85);var p_86 = d_42;var a_153 = M0.car(p_86);var exports_2 = a_153;var d_43 = M0.cdr(p_86);var body_6 = d_43;var let_result1104 = M0.values(exports_2,body_6);var exports_1 = let_result1104.getAt(0);var body_5 = let_result1104.getAt(1);var let_result1105 = M0.values(imports_1,exports_1,body_5);var imports_0 = let_result1105.getAt(0);var exports_0 = let_result1105.getAt(1);var body_4 = let_result1105.getAt(2);var let_result1106 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("j")),imports_0);var pos__gt_vals_12 = let_result1106.getAt(0);var pos_pre_inc_10 = let_result1106.getAt(1);var pos_next_13 = let_result1106.getAt(2);var init_13 = let_result1106.getAt(3);var pos_cont_p_13 = let_result1106.getAt(4);var val_cont_p_12 = let_result1106.getAt(5);var all_cont_p_12 = let_result1106.getAt(6);var start_9 = 0;if (M0.rvoid()!==false) {if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1107 = M0.rvoid();} else {var if_res1107 = check_naturals(start_9);}var if_res1108 = if_res1107;} else {var if_res1108 = false;}if_res1108;var for_loop_13 = function(table_20, pos_38, pos_39) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_13!==false) {var if_res1109 = pos_cont_p_13(pos_38);} else {var if_res1109 = true;}if (if_res1109!==false) {var if_res1110 = true;} else {var if_res1110 = false;}if (if_res1110!==false) {var j_4 = pos__gt_vals_12(pos_38);if (all_cont_p_12!==false) {var if_res1111 = function(pos_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_12(pos_40,j_4);};} else {var if_res1111 = false;}var let_result1112 = M0.values(j_4,if_res1111);var j_3 = let_result1112.getAt(0);var all_cont_p_by_pos_10 = let_result1112.getAt(1);if (pos_pre_inc_10!==false) {var if_res1113 = pos_pre_inc_10(pos_38);} else {var if_res1113 = pos_38;}var pos_41 = if_res1113;var import_0 = pos_39;if (val_cont_p_12!==false) {var if_res1114 = val_cont_p_12(j_3);} else {var if_res1114 = true;}if (if_res1114!==false) {var if_res1115 = true;} else {var if_res1115 = false;}if (if_res1115!==false) {var table_22 = table_20;var let_result1116 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),import_0);var pos__gt_vals_13 = let_result1116.getAt(0);var pos_pre_inc_11 = let_result1116.getAt(1);var pos_next_14 = let_result1116.getAt(2);var init_14 = let_result1116.getAt(3);var pos_cont_p_14 = let_result1116.getAt(4);var val_cont_p_13 = let_result1116.getAt(5);var all_cont_p_13 = let_result1116.getAt(6);M0.rvoid();var for_loop_14 = function(table_23, pos_42) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_14!==false) {var if_res1117 = pos_cont_p_14(pos_42);} else {var if_res1117 = true;}if (if_res1117!==false) {var i_49 = pos__gt_vals_13(pos_42);if (all_cont_p_13!==false) {var if_res1118 = function(pos_43) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_13(pos_43,i_49);};} else {var if_res1118 = false;}var let_result1119 = M0.values(i_49,if_res1118);var i_48 = let_result1119.getAt(0);var all_cont_p_by_pos_11 = let_result1119.getAt(1);if (pos_pre_inc_11!==false) {var if_res1120 = pos_pre_inc_11(pos_42);} else {var if_res1120 = pos_42;}var pos_44 = if_res1120;if (val_cont_p_13!==false) {var if_res1121 = val_cont_p_13(i_48);} else {var if_res1121 = true;}if (if_res1121!==false) {var table_25 = table_23;var table_26 = table_25;var let_result1122 = M0.values(i_48,j_3);var key_7 = let_result1122.getAt(0);var val_3 = let_result1122.getAt(1);var table_27 = M0.hash_set(table_26,key_7,val_3);var table_24 = M0.values(table_27);if (all_cont_p_by_pos_11!==false) {var if_res1123 = all_cont_p_by_pos_11(pos_44);} else {var if_res1123 = true;}if (if_res1123!==false) {var if_res1124 = M0.not(false);} else {var if_res1124 = false;}if (if_res1124!==false) {var if_res1125 = for_loop_14(table_24,pos_next_14(pos_44));} else {var if_res1125 = table_24;}var if_res1126 = if_res1125;} else {var if_res1126 = table_23;}var if_res1127 = if_res1126;} else {var if_res1127 = table_23;}return if_res1127;};var table_21 = for_loop_14(table_22,init_14);if (all_cont_p_by_pos_10!==false) {var if_res1128 = all_cont_p_by_pos_10(pos_41);} else {var if_res1128 = true;}if (if_res1128!==false) {var if_res1129 = true;} else {var if_res1129 = false;}if (if_res1129!==false) {var if_res1130 = M0.not(false);} else {var if_res1130 = false;}if (if_res1130!==false) {var if_res1131 = for_loop_13(table_21,pos_next_13(pos_41),pos_39+1);} else {var if_res1131 = table_21;}var if_res1132 = if_res1131;} else {var if_res1132 = table_20;}var if_res1133 = if_res1132;} else {var if_res1133 = table_20;}return if_res1133;};var imps_0 = for_loop_13($rjs_core.Hash.makeEqual([],false),init_13,start_9);var defs_0 = M0.make_hash();var let_result1134 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("b")),body_4);var pos__gt_vals_14 = let_result1134.getAt(0);var pos_pre_inc_12 = let_result1134.getAt(1);var pos_next_15 = let_result1134.getAt(2);var init_15 = let_result1134.getAt(3);var pos_cont_p_15 = let_result1134.getAt(4);var val_cont_p_14 = let_result1134.getAt(5);var all_cont_p_14 = let_result1134.getAt(6);M0.rvoid();var for_loop_15 = function(pos_45) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_15!==false) {var if_res1135 = pos_cont_p_15(pos_45);} else {var if_res1135 = true;}if (if_res1135!==false) {var b_16 = pos__gt_vals_14(pos_45);if (all_cont_p_14!==false) {var if_res1136 = function(pos_46) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_14(pos_46,b_16);};} else {var if_res1136 = false;}var let_result1137 = M0.values(b_16,if_res1136);var b_15 = let_result1137.getAt(0);var all_cont_p_by_pos_12 = let_result1137.getAt(1);if (pos_pre_inc_12!==false) {var if_res1138 = pos_pre_inc_12(pos_45);} else {var if_res1138 = pos_45;}var pos_47 = if_res1138;if (val_cont_p_14!==false) {var if_res1139 = val_cont_p_14(b_15);} else {var if_res1139 = true;}if (if_res1139!==false) {var v_59 = b_15;var p_87 = v_59;if (M0.pair_p(p_87)!==false) {var if_res1140 = M0.car(p_87);} else {var if_res1140 = false;}var hd_2 = if_res1140;var alt_24 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.rvoid();};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_2)!==false) {var a_154 = M0.cdr(v_59);var p_88 = a_154;if (M0.pair_p(p_88)!==false) {var a_155 = M0.cdr(p_88);var p_89 = a_155;if (M0.pair_p(p_89)!==false) {var a_156 = M0.cdr(p_89);var if_res1141 = M0.eq_p($rjs_core.Pair.makeList(),a_156);} else {var if_res1141 = false;}var if_res1142 = if_res1141;} else {var if_res1142 = false;}var if_res1143 = if_res1142;} else {var if_res1143 = false;}if (if_res1143!==false) {var d_44 = M0.cdr(v_59);var a_157 = M0.car(d_44);var is_0 = a_157;var let_result1144 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),is_0);var pos__gt_vals_15 = let_result1144.getAt(0);var pos_pre_inc_13 = let_result1144.getAt(1);var pos_next_16 = let_result1144.getAt(2);var init_16 = let_result1144.getAt(3);var pos_cont_p_16 = let_result1144.getAt(4);var val_cont_p_15 = let_result1144.getAt(5);var all_cont_p_15 = let_result1144.getAt(6);M0.rvoid();var for_loop_16 = function(pos_48) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_16!==false) {var if_res1145 = pos_cont_p_16(pos_48);} else {var if_res1145 = true;}if (if_res1145!==false) {var i_51 = pos__gt_vals_15(pos_48);if (all_cont_p_15!==false) {var if_res1146 = function(pos_49) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_15(pos_49,i_51);};} else {var if_res1146 = false;}var let_result1147 = M0.values(i_51,if_res1146);var i_50 = let_result1147.getAt(0);var all_cont_p_by_pos_13 = let_result1147.getAt(1);if (pos_pre_inc_13!==false) {var if_res1148 = pos_pre_inc_13(pos_48);} else {var if_res1148 = pos_48;}var pos_50 = if_res1148;if (val_cont_p_15!==false) {var if_res1149 = val_cont_p_15(i_50);} else {var if_res1149 = true;}if (if_res1149!==false) {M0.hash_set_bang_(defs_0,i_50,$rjs_core.PrimitiveSymbol.make("define"));var let_result1150 = M0.values();var let_result1151 = M0.values();if (all_cont_p_by_pos_13!==false) {var if_res1152 = all_cont_p_by_pos_13(pos_50);} else {var if_res1152 = true;}if (if_res1152!==false) {var if_res1153 = M0.not(false);} else {var if_res1153 = false;}if (if_res1153!==false) {var if_res1154 = for_loop_16(pos_next_16(pos_50));} else {var if_res1154 = M0.values();}var if_res1155 = if_res1154;} else {var if_res1155 = M0.values();}var if_res1156 = if_res1155;} else {var if_res1156 = M0.values();}return if_res1156;};for_loop_16(init_16);var if_res1157 = M0.rvoid();} else {var if_res1157 = alt_24();}if_res1157;var let_result1158 = M0.values();var let_result1159 = M0.values();if (all_cont_p_by_pos_12!==false) {var if_res1160 = all_cont_p_by_pos_12(pos_47);} else {var if_res1160 = true;}if (if_res1160!==false) {var if_res1161 = M0.not(false);} else {var if_res1161 = false;}if (if_res1161!==false) {var if_res1162 = for_loop_15(pos_next_15(pos_47));} else {var if_res1162 = M0.values();}var if_res1163 = if_res1162;} else {var if_res1163 = M0.values();}var if_res1164 = if_res1163;} else {var if_res1164 = M0.values();}return if_res1164;};for_loop_15(init_15);M0.rvoid();var if_res1165 = Linklet1_dot_1(path_0,imports_0,exports_0,map2(function(v_60) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return to_absyn(v_60,hash_union(imps_0,defs_0));},body_4));} else {var if_res1165 = alt_23();}return if_res1165;};var improper__gt_proper = function(l_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_61 = l_22;var alt_13 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_14 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.cons(l_22,$rjs_core.Pair.makeList());};if (M0.eq_p($rjs_core.Pair.makeList(),v_61)!==false) {var if_res1166 = $rjs_core.Pair.makeList();} else {var if_res1166 = alt_14();}return if_res1166;};var p_90 = v_61;if (M0.pair_p(p_90)!==false) {var if_res1167 = true;} else {var if_res1167 = false;}if (if_res1167!==false) {var p_91 = v_61;var a_160 = M0.car(p_91);var a_159 = a_160;var d_45 = M0.cdr(p_91);var b_18 = d_45;var let_result1168 = M0.values(a_159,b_18);var a_158 = let_result1168.getAt(0);var b_17 = let_result1168.getAt(1);var if_res1169 = M0.cons(a_158,improper__gt_proper(b_17));} else {var if_res1169 = alt_13();}return if_res1169;};var __times_jsident_start_letter_times_ = $rjs_core.UString.make("\\p{L}|\\p{Nl}|\\$|_");var __times_jsident_rest_letters_times_ = M0.string_append($rjs_core.UString.make("\\p{L}|\\p{Nl}|\\$|_|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}"),$rjs_core.UString.make("|\u200D|\u200C"));var __times_jsident_pattern_times_ = M0.format($rjs_core.UString.make("(~a)(~a)*"),__times_jsident_start_letter_times_,__times_jsident_rest_letters_times_);var simple_form_path = compose(M0.simplify_path,M0.path__gt_complete_path);var __a = $rjs_core.attachProcedureArity(function(...args_121170) {var args_12 = $rjs_core.Pair.listFromArray(args_121170);var fmt_lst_0 = build_list(M0.length(args_12),function(__4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return $rjs_core.UString.make("~a");});var fmt_string_0 = M0.apply(M0.string_append,fmt_lst_0);return M0.apply(M0.format,fmt_string_0,args_12);});var length_eq__p = function(lst_16, n_18) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.equal_p(M0.length(lst_16),n_18);};var append1 = function(lst_17, a_68) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.append(lst_17,M0.list(a_68));};var actual_module_path = function(in_path_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.path_p(in_path_0)!==false) {var if_res1173 = in_path_0;} else {if (M0.symbol_p(in_path_0)!==false) {var if_res1171 = primitive_module_p(in_path_0);} else {var if_res1171 = false;}if (if_res1171!==false) {var if_res1172 = M0.build_path(racketscript_runtime_dir,__a(M0.substring(M0.symbol__gt_string(in_path_0),2),$rjs_core.UString.make(".rkt")));} else {var if_res1172 = M0.error($rjs_core.PrimitiveSymbol.make("actual-module-path"),$rjs_core.UString.make("~a is not a primitive module"),in_path_0);}var if_res1173 = if_res1172;}return if_res1173;};var primitive_module_p = function(mod_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_member_p(primitive_modules,mod_4);};var get_major_version = function(str_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var vec_8 = str_3;check_string(vec_8);var let_result1174 = M0.values(vec_8,M0.unsafe_string_length(vec_8));var vec_7 = let_result1174.getAt(0);var len_1 = let_result1174.getAt(1);false;var for_loop_17 = function(res_4, pos_51) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.unsafe_fx_lt_(pos_51,len_1)!==false) {var chr_0 = M0.string_ref(vec_7,pos_51);var next_k_proc_0 = function(res_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("next-k-proc");return for_loop_17(res_5,M0.unsafe_fx_plus_(1,pos_51));};var res_6 = res_4;if (M0.eq_p(chr_0,$rjs_core.Char.charFromCodepoint(46))!==false) {var if_res1175 = res_6;} else {var res_7 = res_6;var res_8 = char__gt_number(chr_0)+(10*res_7);var if_res1175 = next_k_proc_0(res_8);}var if_res1176 = if_res1175;} else {var if_res1176 = res_4;}return if_res1176;};return for_loop_17(0,0);};var char__gt_number = function(chr_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(48))!==false) {var if_res1186 = 0;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(49))!==false) {var if_res1185 = 1;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(50))!==false) {var if_res1184 = 2;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(51))!==false) {var if_res1183 = 3;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(52))!==false) {var if_res1182 = 4;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(53))!==false) {var if_res1181 = 5;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(54))!==false) {var if_res1180 = 6;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(55))!==false) {var if_res1179 = 7;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(56))!==false) {var if_res1178 = 8;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(57))!==false) {var if_res1177 = 9;} else {var if_res1177 = M0.rvoid();}var if_res1178 = if_res1177;}var if_res1179 = if_res1178;}var if_res1180 = if_res1179;}var if_res1181 = if_res1180;}var if_res1182 = if_res1181;}var if_res1183 = if_res1182;}var if_res1184 = if_res1183;}var if_res1185 = if_res1184;}var if_res1186 = if_res1185;}return if_res1186;};var sequence_length = function(s_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (sequence_p(s_14)!==false) {var if_res1187 = M0.rvoid();} else {var if_res1187 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sequence-length"),$rjs_core.UString.make("sequence?"),s_14);}if_res1187;if (M0.exact_nonnegative_integer_p(s_14)!==false) {var if_res1206 = s_14;} else {if (M0.list_p(s_14)!==false) {var if_res1205 = M0.length(s_14);} else {if (M0.vector_p(s_14)!==false) {var if_res1204 = M0.vector_length(s_14);} else {if (M0.flvector_p(s_14)!==false) {var if_res1203 = M0.flvector_length(s_14);} else {if (M0.fxvector_p(s_14)!==false) {var if_res1202 = M0.fxvector_length(s_14);} else {if (M0.string_p(s_14)!==false) {var if_res1201 = M0.string_length(s_14);} else {if (M0.bytes_p(s_14)!==false) {var if_res1200 = M0.bytes_length(s_14);} else {if (M0.hash_p(s_14)!==false) {var if_res1199 = M0.hash_count(s_14);} else {var let_result1188 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),in_values_times__sequence(s_14));var pos__gt_vals_16 = let_result1188.getAt(0);var pos_pre_inc_14 = let_result1188.getAt(1);var pos_next_17 = let_result1188.getAt(2);var init_17 = let_result1188.getAt(3);var pos_cont_p_17 = let_result1188.getAt(4);var val_cont_p_16 = let_result1188.getAt(5);var all_cont_p_16 = let_result1188.getAt(6);M0.rvoid();var for_loop_18 = function(c_8, pos_52) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_17!==false) {var if_res1189 = pos_cont_p_17(pos_52);} else {var if_res1189 = true;}if (if_res1189!==false) {var i_53 = pos__gt_vals_16(pos_52);if (all_cont_p_16!==false) {var if_res1190 = function(pos_53) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_16(pos_53,i_53);};} else {var if_res1190 = false;}var let_result1191 = M0.values(i_53,if_res1190);var i_52 = let_result1191.getAt(0);var all_cont_p_by_pos_14 = let_result1191.getAt(1);if (pos_pre_inc_14!==false) {var if_res1192 = pos_pre_inc_14(pos_52);} else {var if_res1192 = pos_52;}var pos_54 = if_res1192;if (val_cont_p_16!==false) {var if_res1193 = val_cont_p_16(i_52);} else {var if_res1193 = true;}if (if_res1193!==false) {var c_10 = c_8;var c_11 = M0.add1(c_10);var c_9 = M0.values(c_11);if (all_cont_p_by_pos_14!==false) {var if_res1194 = all_cont_p_by_pos_14(pos_54);} else {var if_res1194 = true;}if (if_res1194!==false) {var if_res1195 = M0.not(false);} else {var if_res1195 = false;}if (if_res1195!==false) {var if_res1196 = for_loop_18(c_9,pos_next_17(pos_54));} else {var if_res1196 = c_9;}var if_res1197 = if_res1196;} else {var if_res1197 = c_8;}var if_res1198 = if_res1197;} else {var if_res1198 = c_8;}return if_res1198;};var if_res1199 = for_loop_18(0,init_17);}var if_res1200 = if_res1199;}var if_res1201 = if_res1200;}var if_res1202 = if_res1201;}var if_res1203 = if_res1202;}var if_res1204 = if_res1203;}var if_res1205 = if_res1204;}var if_res1206 = if_res1205;}return if_res1206;};var __times_quoted_binding_ident_name_times_ = $rjs_core.PrimitiveSymbol.make("__rjs_quoted__");var name_in_module = function(mod_5, name_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_62 = mod_5;var alt_25 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.UString.make("Invalid module name"));};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("core"),v_62)!==false) {var if_res1207 = M0.string__gt_symbol(__a(jsruntime_core_module(),$rjs_core.UString.make("."),name_12));} else {var if_res1207 = alt_25();}return if_res1207;};var let_result1208 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILLinklet"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILLinklet"));var struct__0 = let_result1208.getAt(0);var make__0 = let_result1208.getAt(1);var __p_1 = let_result1208.getAt(2);var __ref_1 = let_result1208.getAt(3);var __set_bang__1 = let_result1208.getAt(4);var let_result1209 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("imports")),M0.make_struct_field_accessor(__ref_1,1,$rjs_core.PrimitiveSymbol.make("exports")),M0.make_struct_field_accessor(__ref_1,2,$rjs_core.PrimitiveSymbol.make("body")));var struct_ILLinklet = let_result1209.getAt(0);var ILLinklet1_dot_1 = let_result1209.getAt(1);var ILLinklet_p = let_result1209.getAt(2);var ILLinklet_imports = let_result1209.getAt(3);var ILLinklet_exports = let_result1209.getAt(4);var ILLinklet_body = let_result1209.getAt(5);var let_result1210 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILRequire"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILRequire"));var struct__1 = let_result1210.getAt(0);var make__1 = let_result1210.getAt(1);var __p_2 = let_result1210.getAt(2);var __ref_2 = let_result1210.getAt(3);var __set_bang__2 = let_result1210.getAt(4);var let_result1211 = M0.values(struct__1,make__1,__p_2,M0.make_struct_field_accessor(__ref_2,0,$rjs_core.PrimitiveSymbol.make("mod")),M0.make_struct_field_accessor(__ref_2,1,$rjs_core.PrimitiveSymbol.make("name")),M0.make_struct_field_accessor(__ref_2,2,$rjs_core.PrimitiveSymbol.make("import-mode")));var struct_ILRequire = let_result1211.getAt(0);var ILRequire2_dot_1 = let_result1211.getAt(1);var ILRequire_p = let_result1211.getAt(2);var ILRequire_mod = let_result1211.getAt(3);var ILRequire_name = let_result1211.getAt(4);var ILRequire_import_mode = let_result1211.getAt(5);var let_result1212 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILCheckedFormals"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILCheckedFormals"));var struct__3 = let_result1212.getAt(0);var make__3 = let_result1212.getAt(1);var __p_4 = let_result1212.getAt(2);var __ref_4 = let_result1212.getAt(3);var __set_bang__4 = let_result1212.getAt(4);var let_result1213 = M0.values(struct__3,make__3,__p_4,M0.make_struct_field_accessor(__ref_4,0,$rjs_core.PrimitiveSymbol.make("formals")));var struct_ILCheckedFormals = let_result1213.getAt(0);var ILCheckedFormals4_dot_1 = let_result1213.getAt(1);var ILCheckedFormals_p = let_result1213.getAt(2);var ILCheckedFormals_formals = let_result1213.getAt(3);var let_result1214 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILLambda"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILLambda"));var struct__4 = let_result1214.getAt(0);var make__4 = let_result1214.getAt(1);var __p_5 = let_result1214.getAt(2);var __ref_5 = let_result1214.getAt(3);var __set_bang__5 = let_result1214.getAt(4);var let_result1215 = M0.values(struct__4,make__4,__p_5,M0.make_struct_field_accessor(__ref_5,0,$rjs_core.PrimitiveSymbol.make("args")),M0.make_struct_field_accessor(__ref_5,1,$rjs_core.PrimitiveSymbol.make("body")));var struct_ILLambda = let_result1215.getAt(0);var ILLambda5_dot_1 = let_result1215.getAt(1);var ILLambda_p = let_result1215.getAt(2);var ILLambda_args = let_result1215.getAt(3);var ILLambda_body = let_result1215.getAt(4);var let_result1216 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILBinaryOp"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILBinaryOp"));var struct__5 = let_result1216.getAt(0);var make__5 = let_result1216.getAt(1);var __p_6 = let_result1216.getAt(2);var __ref_6 = let_result1216.getAt(3);var __set_bang__6 = let_result1216.getAt(4);var let_result1217 = M0.values(struct__5,make__5,__p_6,M0.make_struct_field_accessor(__ref_6,0,$rjs_core.PrimitiveSymbol.make("operator")),M0.make_struct_field_accessor(__ref_6,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_ILBinaryOp = let_result1217.getAt(0);var ILBinaryOp6_dot_1 = let_result1217.getAt(1);var ILBinaryOp_p = let_result1217.getAt(2);var ILBinaryOp_operator = let_result1217.getAt(3);var ILBinaryOp_args = let_result1217.getAt(4);var let_result1218 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILApp"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILApp"));var struct__6 = let_result1218.getAt(0);var make__6 = let_result1218.getAt(1);var __p_7 = let_result1218.getAt(2);var __ref_7 = let_result1218.getAt(3);var __set_bang__7 = let_result1218.getAt(4);var let_result1219 = M0.values(struct__6,make__6,__p_7,M0.make_struct_field_accessor(__ref_7,0,$rjs_core.PrimitiveSymbol.make("lam")),M0.make_struct_field_accessor(__ref_7,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_ILApp = let_result1219.getAt(0);var ILApp7_dot_1 = let_result1219.getAt(1);var ILApp_p = let_result1219.getAt(2);var ILApp_lam = let_result1219.getAt(3);var ILApp_args = let_result1219.getAt(4);var let_result1220 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILArray"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILArray"));var struct__7 = let_result1220.getAt(0);var make__7 = let_result1220.getAt(1);var __p_8 = let_result1220.getAt(2);var __ref_8 = let_result1220.getAt(3);var __set_bang__8 = let_result1220.getAt(4);var let_result1221 = M0.values(struct__7,make__7,__p_8,M0.make_struct_field_accessor(__ref_8,0,$rjs_core.PrimitiveSymbol.make("items")));var struct_ILArray = let_result1221.getAt(0);var ILArray8_dot_1 = let_result1221.getAt(1);var ILArray_p = let_result1221.getAt(2);var ILArray_items = let_result1221.getAt(3);var let_result1222 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILObject"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILObject"));var struct__8 = let_result1222.getAt(0);var make__8 = let_result1222.getAt(1);var __p_9 = let_result1222.getAt(2);var __ref_9 = let_result1222.getAt(3);var __set_bang__9 = let_result1222.getAt(4);var let_result1223 = M0.values(struct__8,make__8,__p_9,M0.make_struct_field_accessor(__ref_9,0,$rjs_core.PrimitiveSymbol.make("items")));var struct_ILObject = let_result1223.getAt(0);var ILObject9_dot_1 = let_result1223.getAt(1);var ILObject_p = let_result1223.getAt(2);var ILObject_items = let_result1223.getAt(3);var let_result1224 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILRef"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILRef"));var struct__9 = let_result1224.getAt(0);var make__9 = let_result1224.getAt(1);var __p_10 = let_result1224.getAt(2);var __ref_10 = let_result1224.getAt(3);var __set_bang__10 = let_result1224.getAt(4);var let_result1225 = M0.values(struct__9,make__9,__p_10,M0.make_struct_field_accessor(__ref_10,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_10,1,$rjs_core.PrimitiveSymbol.make("fieldname")));var struct_ILRef = let_result1225.getAt(0);var ILRef10_dot_1 = let_result1225.getAt(1);var ILRef_p = let_result1225.getAt(2);var ILRef_expr = let_result1225.getAt(3);var ILRef_fieldname = let_result1225.getAt(4);var let_result1226 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILIndex"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILIndex"));var struct__10 = let_result1226.getAt(0);var make__10 = let_result1226.getAt(1);var __p_11 = let_result1226.getAt(2);var __ref_11 = let_result1226.getAt(3);var __set_bang__11 = let_result1226.getAt(4);var let_result1227 = M0.values(struct__10,make__10,__p_11,M0.make_struct_field_accessor(__ref_11,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_11,1,$rjs_core.PrimitiveSymbol.make("fieldexpr")));var struct_ILIndex = let_result1227.getAt(0);var ILIndex11_dot_1 = let_result1227.getAt(1);var ILIndex_p = let_result1227.getAt(2);var ILIndex_expr = let_result1227.getAt(3);var ILIndex_fieldexpr = let_result1227.getAt(4);var let_result1228 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILValue"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILValue"));var struct__11 = let_result1228.getAt(0);var make__11 = let_result1228.getAt(1);var __p_12 = let_result1228.getAt(2);var __ref_12 = let_result1228.getAt(3);var __set_bang__12 = let_result1228.getAt(4);var let_result1229 = M0.values(struct__11,make__11,__p_12,M0.make_struct_field_accessor(__ref_12,0,$rjs_core.PrimitiveSymbol.make("v")));var struct_ILValue = let_result1229.getAt(0);var ILValue12_dot_1 = let_result1229.getAt(1);var ILValue_p = let_result1229.getAt(2);var ILValue_v = let_result1229.getAt(3);var let_result1230 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILNew"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILNew"));var struct__12 = let_result1230.getAt(0);var make__12 = let_result1230.getAt(1);var __p_13 = let_result1230.getAt(2);var __ref_13 = let_result1230.getAt(3);var __set_bang__13 = let_result1230.getAt(4);var let_result1231 = M0.values(struct__12,make__12,__p_13,M0.make_struct_field_accessor(__ref_13,0,$rjs_core.PrimitiveSymbol.make("v")));var struct_ILNew = let_result1231.getAt(0);var ILNew13_dot_1 = let_result1231.getAt(1);var ILNew_p = let_result1231.getAt(2);var ILNew_v = let_result1231.getAt(3);var let_result1232 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILInstanceOf"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILInstanceOf"));var struct__13 = let_result1232.getAt(0);var make__13 = let_result1232.getAt(1);var __p_14 = let_result1232.getAt(2);var __ref_14 = let_result1232.getAt(3);var __set_bang__14 = let_result1232.getAt(4);var let_result1233 = M0.values(struct__13,make__13,__p_14,M0.make_struct_field_accessor(__ref_14,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_14,1,$rjs_core.PrimitiveSymbol.make("type")));var struct_ILInstanceOf = let_result1233.getAt(0);var ILInstanceOf14_dot_1 = let_result1233.getAt(1);var ILInstanceOf_p = let_result1233.getAt(2);var ILInstanceOf_expr = let_result1233.getAt(3);var ILInstanceOf_type = let_result1233.getAt(4);var let_result1234 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILTypeOf"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILTypeOf"));var struct__14 = let_result1234.getAt(0);var make__14 = let_result1234.getAt(1);var __p_15 = let_result1234.getAt(2);var __ref_15 = let_result1234.getAt(3);var __set_bang__15 = let_result1234.getAt(4);var let_result1235 = M0.values(struct__14,make__14,__p_15,M0.make_struct_field_accessor(__ref_15,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILTypeOf = let_result1235.getAt(0);var ILTypeOf15_dot_1 = let_result1235.getAt(1);var ILTypeOf_p = let_result1235.getAt(2);var ILTypeOf_expr = let_result1235.getAt(3);var let_result1236 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILNull"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILNull"));var struct__15 = let_result1236.getAt(0);var make__15 = let_result1236.getAt(1);var __p_16 = let_result1236.getAt(2);var __ref_16 = let_result1236.getAt(3);var __set_bang__16 = let_result1236.getAt(4);var let_result1237 = M0.values(struct__15,make__15,__p_16);var struct_ILNull = let_result1237.getAt(0);var ILNull16_dot_1 = let_result1237.getAt(1);var ILNull_p = let_result1237.getAt(2);var let_result1238 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILUndefined"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILUndefined"));var struct__16 = let_result1238.getAt(0);var make__16 = let_result1238.getAt(1);var __p_17 = let_result1238.getAt(2);var __ref_17 = let_result1238.getAt(3);var __set_bang__17 = let_result1238.getAt(4);var let_result1239 = M0.values(struct__16,make__16,__p_17);var struct_ILUndefined = let_result1239.getAt(0);var ILUndefined17_dot_1 = let_result1239.getAt(1);var ILUndefined_p = let_result1239.getAt(2);var let_result1240 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILArguments"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILArguments"));var struct__17 = let_result1240.getAt(0);var make__17 = let_result1240.getAt(1);var __p_18 = let_result1240.getAt(2);var __ref_18 = let_result1240.getAt(3);var __set_bang__18 = let_result1240.getAt(4);var let_result1241 = M0.values(struct__17,make__17,__p_18);var struct_ILArguments = let_result1241.getAt(0);var ILArguments18_dot_1 = let_result1241.getAt(1);var ILArguments_p = let_result1241.getAt(2);var let_result1242 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILThis"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILThis"));var struct__18 = let_result1242.getAt(0);var make__18 = let_result1242.getAt(1);var __p_19 = let_result1242.getAt(2);var __ref_19 = let_result1242.getAt(3);var __set_bang__19 = let_result1242.getAt(4);var let_result1243 = M0.values(struct__18,make__18,__p_19);var struct_ILThis = let_result1243.getAt(0);var ILThis19_dot_1 = let_result1243.getAt(1);var ILThis_p = let_result1243.getAt(2);var let_result1244 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILVarDec"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILVarDec"));var struct__19 = let_result1244.getAt(0);var make__19 = let_result1244.getAt(1);var __p_20 = let_result1244.getAt(2);var __ref_20 = let_result1244.getAt(3);var __set_bang__20 = let_result1244.getAt(4);var let_result1245 = M0.values(struct__19,make__19,__p_20,M0.make_struct_field_accessor(__ref_20,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_20,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILVarDec = let_result1245.getAt(0);var ILVarDec20_dot_1 = let_result1245.getAt(1);var ILVarDec_p = let_result1245.getAt(2);var ILVarDec_id = let_result1245.getAt(3);var ILVarDec_expr = let_result1245.getAt(4);var let_result1246 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILIf"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILIf"));var struct__20 = let_result1246.getAt(0);var make__20 = let_result1246.getAt(1);var __p_21 = let_result1246.getAt(2);var __ref_21 = let_result1246.getAt(3);var __set_bang__21 = let_result1246.getAt(4);var let_result1247 = M0.values(struct__20,make__20,__p_21,M0.make_struct_field_accessor(__ref_21,0,$rjs_core.PrimitiveSymbol.make("pred")),M0.make_struct_field_accessor(__ref_21,1,$rjs_core.PrimitiveSymbol.make("t-branch")),M0.make_struct_field_accessor(__ref_21,2,$rjs_core.PrimitiveSymbol.make("f-branch")));var struct_ILIf = let_result1247.getAt(0);var ILIf22_dot_1 = let_result1247.getAt(1);var ILIf_p = let_result1247.getAt(2);var ILIf_pred = let_result1247.getAt(3);var ILIf_t_branch = let_result1247.getAt(4);var ILIf_f_branch = let_result1247.getAt(5);var let_result1248 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILAssign"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILAssign"));var struct__21 = let_result1248.getAt(0);var make__21 = let_result1248.getAt(1);var __p_22 = let_result1248.getAt(2);var __ref_22 = let_result1248.getAt(3);var __set_bang__22 = let_result1248.getAt(4);var let_result1249 = M0.values(struct__21,make__21,__p_22,M0.make_struct_field_accessor(__ref_22,0,$rjs_core.PrimitiveSymbol.make("lvalue")),M0.make_struct_field_accessor(__ref_22,1,$rjs_core.PrimitiveSymbol.make("rvalue")));var struct_ILAssign = let_result1249.getAt(0);var ILAssign24_dot_1 = let_result1249.getAt(1);var ILAssign_p = let_result1249.getAt(2);var ILAssign_lvalue = let_result1249.getAt(3);var ILAssign_rvalue = let_result1249.getAt(4);var let_result1250 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILReturn"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILReturn"));var struct__22 = let_result1250.getAt(0);var make__22 = let_result1250.getAt(1);var __p_23 = let_result1250.getAt(2);var __ref_23 = let_result1250.getAt(3);var __set_bang__23 = let_result1250.getAt(4);var let_result1251 = M0.values(struct__22,make__22,__p_23,M0.make_struct_field_accessor(__ref_23,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILReturn = let_result1251.getAt(0);var ILReturn26_dot_1 = let_result1251.getAt(1);var ILReturn_p = let_result1251.getAt(2);var ILReturn_expr = let_result1251.getAt(3);var let_result1252 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILExnHandler"),false,4,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2,3),false,$rjs_core.PrimitiveSymbol.make("ILExnHandler"));var struct__23 = let_result1252.getAt(0);var make__23 = let_result1252.getAt(1);var __p_24 = let_result1252.getAt(2);var __ref_24 = let_result1252.getAt(3);var __set_bang__24 = let_result1252.getAt(4);var let_result1253 = M0.values(struct__23,make__23,__p_24,M0.make_struct_field_accessor(__ref_24,0,$rjs_core.PrimitiveSymbol.make("try")),M0.make_struct_field_accessor(__ref_24,1,$rjs_core.PrimitiveSymbol.make("error")),M0.make_struct_field_accessor(__ref_24,2,$rjs_core.PrimitiveSymbol.make("catch")),M0.make_struct_field_accessor(__ref_24,3,$rjs_core.PrimitiveSymbol.make("finally")));var struct_ILExnHandler = let_result1253.getAt(0);var ILExnHandler29_dot_1 = let_result1253.getAt(1);var ILExnHandler_p = let_result1253.getAt(2);var ILExnHandler_try = let_result1253.getAt(3);var ILExnHandler_error = let_result1253.getAt(4);var ILExnHandler_catch = let_result1253.getAt(5);var ILExnHandler_finally = let_result1253.getAt(6);var let_result1254 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILThrow"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILThrow"));var struct__24 = let_result1254.getAt(0);var make__24 = let_result1254.getAt(1);var __p_25 = let_result1254.getAt(2);var __ref_25 = let_result1254.getAt(3);var __set_bang__25 = let_result1254.getAt(4);var let_result1255 = M0.values(struct__24,make__24,__p_25,M0.make_struct_field_accessor(__ref_25,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILThrow = let_result1255.getAt(0);var ILThrow30_dot_1 = let_result1255.getAt(1);var ILThrow_p = let_result1255.getAt(2);var ILThrow_expr = let_result1255.getAt(3);var flatten_statements = function(stms_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return flatten(stms_0);};var has_application_p = function(a_161) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_63 = a_161;var vec_v_0 = M0.struct__gt_vector(v_63);var alt_26 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_1 = M0.struct__gt_vector(v_63);var alt_27 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_2 = M0.struct__gt_vector(v_63);var alt_28 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_3 = M0.struct__gt_vector(v_63);var alt_29 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_4 = M0.struct__gt_vector(v_63);var alt_30 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_5 = M0.struct__gt_vector(v_63);var alt_31 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_6 = M0.struct__gt_vector(v_63);var alt_32 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_7 = M0.struct__gt_vector(v_63);var alt_33 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_8 = M0.struct__gt_vector(v_63);var alt_34 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_9 = M0.struct__gt_vector(v_63);var alt_35 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_10 = M0.struct__gt_vector(v_63);var alt_36 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_11 = M0.struct__gt_vector(v_63);var alt_37 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_12 = M0.struct__gt_vector(v_63);var alt_38 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");if (M0.symbol_p(v_63)!==false) {var if_res1256 = false;} else {var if_res1256 = M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_63);}return if_res1256;};if (ILTypeOf_p(v_63)!==false) {var expr_0 = M0.vector__gt_values(vec_v_12,1);var if_res1257 = has_application_p(expr_0);} else {var if_res1257 = alt_38();}return if_res1257;};if (ILInstanceOf_p(v_63)!==false) {var let_result1258 = M0.vector__gt_values(vec_v_11,1);var expr_1 = let_result1258.getAt(0);var type_0 = let_result1258.getAt(1);var or_part_70 = has_application_p(expr_1);if (or_part_70!==false) {var if_res1259 = or_part_70;} else {var if_res1259 = has_application_p(type_0);}var if_res1260 = if_res1259;} else {var if_res1260 = alt_37();}return if_res1260;};if (ILNew_p(v_63)!==false) {var _fst_0 = M0.vector__gt_values(vec_v_10,1);var if_res1261 = true;} else {var if_res1261 = alt_36();}return if_res1261;};if (ILNull_p(v_63)!==false) {var let_result1262 = M0.vector__gt_values(vec_v_9,1);var if_res1263 = false;} else {var if_res1263 = alt_35();}return if_res1263;};if (ILUndefined_p(v_63)!==false) {var let_result1264 = M0.vector__gt_values(vec_v_8,1);var if_res1265 = false;} else {var if_res1265 = alt_34();}return if_res1265;};if (ILValue_p(v_63)!==false) {var _fst_1 = M0.vector__gt_values(vec_v_7,1);var if_res1266 = false;} else {var if_res1266 = alt_33();}return if_res1266;};if (ILIndex_p(v_63)!==false) {var let_result1267 = M0.vector__gt_values(vec_v_6,1);var expr_2 = let_result1267.getAt(0);var fieldexpr_0 = let_result1267.getAt(1);var or_part_71 = has_application_p(expr_2);if (or_part_71!==false) {var if_res1268 = or_part_71;} else {var if_res1268 = has_application_p(fieldexpr_0);}var if_res1269 = if_res1268;} else {var if_res1269 = alt_32();}return if_res1269;};if (ILRef_p(v_63)!==false) {var let_result1270 = M0.vector__gt_values(vec_v_5,1);var expr_3 = let_result1270.getAt(0);var _fst_2 = let_result1270.getAt(1);var if_res1271 = has_application_p(expr_3);} else {var if_res1271 = alt_31();}return if_res1271;};if (ILObject_p(v_63)!==false) {var items_0 = M0.vector__gt_values(vec_v_4,1);var if_res1272 = ormap2(function(pair_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return has_application_p(M0.cdr(pair_0));},items_0);} else {var if_res1272 = alt_30();}return if_res1272;};if (ILArray_p(v_63)!==false) {var items_1 = M0.vector__gt_values(vec_v_3,1);var if_res1273 = ormap2(has_application_p,items_1);} else {var if_res1273 = alt_29();}return if_res1273;};if (ILApp_p(v_63)!==false) {var let_result1274 = M0.vector__gt_values(vec_v_2,1);var _fst_3 = let_result1274.getAt(0);var _snd_0 = let_result1274.getAt(1);var if_res1275 = true;} else {var if_res1275 = alt_28();}return if_res1275;};if (ILBinaryOp_p(v_63)!==false) {var let_result1276 = M0.vector__gt_values(vec_v_1,1);var _fst_4 = let_result1276.getAt(0);var args_13 = let_result1276.getAt(1);var if_res1277 = ormap2(has_application_p,args_13);} else {var if_res1277 = alt_27();}return if_res1277;};if (ILLambda_p(v_63)!==false) {var let_result1278 = M0.vector__gt_values(vec_v_0,1);var _fst_5 = let_result1278.getAt(0);var _snd_1 = let_result1278.getAt(1);var if_res1279 = false;} else {var if_res1279 = alt_26();}return if_res1279;};var log_rjs_info = $rjs_core.attachProcedureArity(function(fst1_0, ...rst2_01280) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rst2_0 = $rjs_core.Pair.listFromArray(rst2_01280);if (logging_p()!==false) {M0.printf($rjs_core.UString.make("[~a]"),$rjs_core.UString.make("info"));if (M0.equal_p(M0.string_ref(fst1_0,0),$rjs_core.Char.charFromCodepoint(91))!==false) {var if_res1281 = M0.rvoid();} else {var if_res1281 = M0.printf($rjs_core.UString.make(" "));}if_res1281;M0.apply(M0.printf,fst1_0,rst2_0);var if_res1282 = M0.printf($rjs_core.UString.make("\n"));} else {var if_res1282 = M0.rvoid();}return if_res1282;});var log_rjs_warning = $rjs_core.attachProcedureArity(function(fst5_0, ...rst6_01283) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rst6_0 = $rjs_core.Pair.listFromArray(rst6_01283);if (logging_p()!==false) {M0.printf($rjs_core.UString.make("[~a]"),$rjs_core.UString.make("warning"));if (M0.equal_p(M0.string_ref(fst5_0,0),$rjs_core.Char.charFromCodepoint(91))!==false) {var if_res1284 = M0.rvoid();} else {var if_res1284 = M0.printf($rjs_core.UString.make(" "));}if_res1284;M0.apply(M0.printf,fst5_0,rst6_0);var if_res1285 = M0.printf($rjs_core.UString.make("\n"));} else {var if_res1285 = M0.rvoid();}return if_res1285;});var module_object_name_map = M0.make_parameter(M0.hash());var absyn_top_level__gt_il = function(form_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Linklet_p(form_0)!==false) {var if_res1289 = M0.error($rjs_core.PrimitiveSymbol.make("absyn-top-level->il"),$rjs_core.UString.make("Not supported. Todo."));} else {if (Expr_p(form_0)!==false) {var let_result1286 = absyn_expr__gt_il(form_0,false);var stmt_0 = let_result1286.getAt(0);var v_62 = let_result1286.getAt(1);var if_res1288 = append1(stmt_0,v_62);} else {if (Begin_p(form_0)!==false) {var if_res1287 = absyn_expr__gt_il(form_0,false);} else {var if_res1287 = M0.error($rjs_core.UString.make("only some forms supported at top level"));}var if_res1288 = if_res1287;}var if_res1289 = if_res1288;}return if_res1289;};var absyn_linklet__gt_il = function(lnk_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_43 = lnk_0;var v_1 = v_43;var vec_v_13 = M0.struct__gt_vector(v_1);var alt_39 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_1);};if (Linklet_p(v_1)!==false) {var let_result1290 = M0.vector__gt_values(vec_v_13,1);var path_2 = let_result1290.getAt(0);var imports_3 = let_result1290.getAt(1);var exports_4 = let_result1290.getAt(2);var forms_1 = let_result1290.getAt(3);var if_res1291 = M0.values(path_2,imports_3,exports_4,forms_1);} else {var if_res1291 = alt_39();}var let_result1292 = if_res1291;var path_1 = let_result1292.getAt(0);var imports_2 = let_result1292.getAt(1);var exports_3 = let_result1292.getAt(2);var forms_0 = let_result1292.getAt(3);log_rjs_info($rjs_core.UString.make("[linklet il]"));var let_result1293 = M0.values();var imported_mod_path_list_0 = flatten(imports_2);var requires_times__0 = absyn_requires__gt_il(imported_mod_path_list_0,path_1);var __context1294 = $rjs_core.Marks.getFrames();var __context1295;try {__context1295 = $rjs_core.Marks.enterFrame();$rjs_core.Marks.setMark(M0.parameterization_key,M0.extend_parameterization(M0.continuation_mark_set_first(false,M0.parameterization_key),module_object_name_map,make_module_map(requires_times__0,$rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("#%kernel")))));var __wcm_result1296 = ILLinklet1_dot_1(filter(ILRequire_p,requires_times__0),absyn_exports__gt_il(exports_3),append_map(absyn_gtl_form__gt_il,forms_0));} finally {$rjs_core.Marks.updateFrame(__context1294,__context1295);}return __wcm_result1296;};var make_module_map = function(reqs_0, imported_paths_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1298 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("req")),reqs_0);var pos__gt_vals_17 = let_result1298.getAt(0);var pos_pre_inc_15 = let_result1298.getAt(1);var pos_next_18 = let_result1298.getAt(2);var init_18 = let_result1298.getAt(3);var pos_cont_p_18 = let_result1298.getAt(4);var val_cont_p_17 = let_result1298.getAt(5);var all_cont_p_17 = let_result1298.getAt(6);var let_result1299 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("mod-path")),imported_paths_0);var pos__gt_vals_18 = let_result1299.getAt(0);var pos_pre_inc_16 = let_result1299.getAt(1);var pos_next_19 = let_result1299.getAt(2);var init_19 = let_result1299.getAt(3);var pos_cont_p_19 = let_result1299.getAt(4);var val_cont_p_18 = let_result1299.getAt(5);var all_cont_p_18 = let_result1299.getAt(6);M0.rvoid();M0.rvoid();var for_loop_19 = function(acc_1, pos_12, pos_55) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_18!==false) {var if_res1300 = pos_cont_p_18(pos_12);} else {var if_res1300 = true;}if (if_res1300!==false) {if (pos_cont_p_19!==false) {var if_res1301 = pos_cont_p_19(pos_55);} else {var if_res1301 = true;}var if_res1302 = if_res1301;} else {var if_res1302 = false;}if (if_res1302!==false) {var req_10 = pos__gt_vals_17(pos_12);if (all_cont_p_17!==false) {var if_res1303 = function(pos_56) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_17(pos_56,req_10);};} else {var if_res1303 = false;}var let_result1304 = M0.values(req_10,if_res1303);var req_9 = let_result1304.getAt(0);var all_cont_p_by_pos_15 = let_result1304.getAt(1);if (pos_pre_inc_15!==false) {var if_res1305 = pos_pre_inc_15(pos_12);} else {var if_res1305 = pos_12;}var pos_57 = if_res1305;var mod_path_1 = pos__gt_vals_18(pos_55);if (all_cont_p_18!==false) {var if_res1306 = function(pos_58) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_18(pos_58,mod_path_1);};} else {var if_res1306 = false;}var let_result1307 = M0.values(mod_path_1,if_res1306);var mod_path_0 = let_result1307.getAt(0);var all_cont_p_by_pos_16 = let_result1307.getAt(1);if (pos_pre_inc_16!==false) {var if_res1308 = pos_pre_inc_16(pos_55);} else {var if_res1308 = pos_55;}var pos_59 = if_res1308;if (val_cont_p_17!==false) {var if_res1309 = val_cont_p_17(req_9);} else {var if_res1309 = true;}if (if_res1309!==false) {if (val_cont_p_18!==false) {var if_res1310 = val_cont_p_18(mod_path_0);} else {var if_res1310 = true;}var if_res1311 = if_res1310;} else {var if_res1311 = false;}if (if_res1311!==false) {var acc_3 = acc_1;if (ILRequire_p(req_9)!==false) {var if_res1312 = M0.hash_set(acc_3,mod_path_0,ILRequire_name(req_9));} else {var if_res1312 = acc_3;}var acc_4 = if_res1312;var acc_2 = M0.values(acc_4);if (all_cont_p_by_pos_15!==false) {var if_res1313 = all_cont_p_by_pos_15(pos_57);} else {var if_res1313 = true;}if (if_res1313!==false) {if (all_cont_p_by_pos_16!==false) {var if_res1314 = all_cont_p_by_pos_16(pos_59);} else {var if_res1314 = true;}if (if_res1314!==false) {var if_res1315 = M0.not(false);} else {var if_res1315 = false;}var if_res1316 = if_res1315;} else {var if_res1316 = false;}if (if_res1316!==false) {var if_res1317 = for_loop_19(acc_2,pos_next_18(pos_57),pos_next_19(pos_59));} else {var if_res1317 = acc_2;}var if_res1318 = if_res1317;} else {var if_res1318 = acc_1;}var if_res1319 = if_res1318;} else {var if_res1319 = acc_1;}return if_res1319;};return for_loop_19(module_object_name_map(),init_18,init_19);};var absyn_exports__gt_il = function(exports_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1320 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("ex")),exports_5);var pos__gt_vals_19 = let_result1320.getAt(0);var pos_pre_inc_17 = let_result1320.getAt(1);var pos_next_20 = let_result1320.getAt(2);var init_20 = let_result1320.getAt(3);var pos_cont_p_20 = let_result1320.getAt(4);var val_cont_p_19 = let_result1320.getAt(5);var all_cont_p_19 = let_result1320.getAt(6);M0.rvoid();var for_loop_20 = function(fold_var_8, pos_60) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_20!==false) {var if_res1321 = pos_cont_p_20(pos_60);} else {var if_res1321 = true;}if (if_res1321!==false) {var ex_1 = pos__gt_vals_19(pos_60);if (all_cont_p_19!==false) {var if_res1322 = function(pos_61) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_19(pos_61,ex_1);};} else {var if_res1322 = false;}var let_result1323 = M0.values(ex_1,if_res1322);var ex_0 = let_result1323.getAt(0);var all_cont_p_by_pos_17 = let_result1323.getAt(1);if (pos_pre_inc_17!==false) {var if_res1324 = pos_pre_inc_17(pos_60);} else {var if_res1324 = pos_60;}var pos_62 = if_res1324;if (val_cont_p_19!==false) {var if_res1325 = val_cont_p_19(ex_0);} else {var if_res1325 = true;}if (if_res1325!==false) {var fold_var_10 = fold_var_8;if (M0.symbol_p(ex_0)!==false) {var if_res1327 = SimpleProvide18_dot_1(ex_0);} else {if (M0.list_p(ex_0)!==false) {var if_res1326 = RenamedProvide19_dot_1(M0.car(ex_0),M0.cadr(ex_0));} else {var if_res1326 = M0.error($rjs_core.PrimitiveSymbol.make("exports->il"),$rjs_core.UString.make("unknown export form in linklet"),ex_0);}var if_res1327 = if_res1326;}var fold_var_11 = M0.cons(if_res1327,fold_var_10);var fold_var_9 = M0.values(fold_var_11);if (all_cont_p_by_pos_17!==false) {var if_res1328 = all_cont_p_by_pos_17(pos_62);} else {var if_res1328 = true;}if (if_res1328!==false) {var if_res1329 = M0.not(false);} else {var if_res1329 = false;}if (if_res1329!==false) {var if_res1330 = for_loop_20(fold_var_9,pos_next_20(pos_62));} else {var if_res1330 = fold_var_9;}var if_res1331 = if_res1330;} else {var if_res1331 = fold_var_8;}var if_res1332 = if_res1331;} else {var if_res1332 = fold_var_8;}return if_res1332;};return reverse$1(for_loop_20(M0.rnull,init_20));};var absyn_requires__gt_il = function(import_list_0, path_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.list(ILRequire2_dot_1($rjs_core.UString.make("../runtime/kernel.rkt.js"),$rjs_core.PrimitiveSymbol.make("M0"),$rjs_core.PrimitiveSymbol.make("*")));};var absyn_gtl_form__gt_il = function(form_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Expr_p(form_1)!==false) {var let_result1333 = absyn_expr__gt_il(form_1,false);var stms_1 = let_result1333.getAt(0);var v_64 = let_result1333.getAt(1);var if_res1339 = append1(stms_1,v_64);} else {if (DefineValues_p(form_1)!==false) {var v_65 = form_1;var v_66 = v_65;var vec_v_14 = M0.struct__gt_vector(v_66);var alt_40 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_66);};if (DefineValues_p(v_66)!==false) {var let_result1334 = M0.vector__gt_values(vec_v_14,1);var ids_1 = let_result1334.getAt(0);var expr_5 = let_result1334.getAt(1);var if_res1335 = M0.values(ids_1,expr_5);} else {var if_res1335 = alt_40();}var let_result1336 = if_res1335;var ids_0 = let_result1336.getAt(0);var expr_4 = let_result1336.getAt(1);var if_res1338 = absyn_binding__gt_il(M0.cons(ids_0,expr_4));} else {if (JSRequire_p(form_1)!==false) {var if_res1337 = M0.error($rjs_core.PrimitiveSymbol.make("absyn-gtl-form->il"),$rjs_core.UString.make("Required should be hoisted"));} else {var if_res1337 = M0.rvoid();}var if_res1338 = if_res1337;}var if_res1339 = if_res1338;}return if_res1339;};var absyn_expr__gt_il = function(expr_6, overwrite_mark_frame_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_67 = expr_6;var vec_v_15 = M0.struct__gt_vector(v_67);var alt_41 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_16 = M0.struct__gt_vector(v_67);var alt_42 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_17 = M0.struct__gt_vector(v_67);var alt_43 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_18 = M0.struct__gt_vector(v_67);var alt_44 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_19 = M0.struct__gt_vector(v_67);var alt_45 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_20 = M0.struct__gt_vector(v_67);var alt_46 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_21 = M0.struct__gt_vector(v_67);var alt_47 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_22 = M0.struct__gt_vector(v_67);var alt_48 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");if (M0.pair_p(expr_6)!==false) {var if_res1340 = M0.null_p(M0.cdr(expr_6));} else {var if_res1340 = false;}if (if_res1340!==false) {var v_68 = expr_6;var v_69 = v_68;var alt_49 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_69);};var p_92 = v_69;if (M0.pair_p(p_92)!==false) {var a_162 = M0.cdr(p_92);var if_res1341 = M0.eq_p($rjs_core.Pair.makeList(),a_162);} else {var if_res1341 = false;}if (if_res1341!==false) {var a_53 = M0.car(v_69);var hd_4 = a_53;var if_res1342 = M0.values(hd_4);} else {var if_res1342 = alt_49();}var hd_3 = if_res1342;if (Expr_p(hd_3)!==false) {var if_res1343 = absyn_expr__gt_il(hd_3,overwrite_mark_frame_p_0);} else {var if_res1343 = M0.error($rjs_core.UString.make("last datum in body must be expression"));}var if_res1379 = if_res1343;} else {if (M0.pair_p(expr_6)!==false) {var v_70 = expr_6;var v_71 = v_70;var alt_50 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_71);};var p_93 = v_71;if (M0.pair_p(p_93)!==false) {var if_res1344 = true;} else {var if_res1344 = false;}if (if_res1344!==false) {var p_94 = v_71;var a_62 = M0.car(p_94);var hd_7 = a_62;var d_46 = M0.cdr(p_94);var tl_2 = d_46;var let_result1345 = M0.values(hd_7,tl_2);var hd_6 = let_result1345.getAt(0);var tl_1 = let_result1345.getAt(1);var if_res1346 = M0.values(hd_6,tl_1);} else {var if_res1346 = alt_50();}var let_result1347 = if_res1346;var hd_5 = let_result1347.getAt(0);var tl_0 = let_result1347.getAt(1);var hd_stms_0 = absyn_top_level__gt_il(hd_5);var let_result1348 = absyn_expr__gt_il(tl_0,overwrite_mark_frame_p_0);var tl_stms_0 = let_result1348.getAt(0);var v_72 = let_result1348.getAt(1);var if_res1378 = M0.values(M0.append(hd_stms_0,tl_stms_0),v_72);} else {if (M0.null_p(expr_6)!==false) {var if_res1377 = M0.values($rjs_core.Pair.makeList(),ILValue12_dot_1(M0.rvoid()));} else {var vec_v_23 = M0.struct__gt_vector(v_67);var alt_51 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_24 = M0.struct__gt_vector(v_67);var alt_52 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_25 = M0.struct__gt_vector(v_67);var alt_53 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_26 = M0.struct__gt_vector(v_67);var alt_54 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_27 = M0.struct__gt_vector(v_67);var alt_55 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_28 = M0.struct__gt_vector(v_67);var alt_56 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_29 = M0.struct__gt_vector(v_67);var alt_57 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error(__a($rjs_core.UString.make("unsupported expr "),expr_6));};if (VarRef_p(v_67)!==false) {var __5 = M0.vector__gt_values(vec_v_29,1);var if_res1349 = M0.values($rjs_core.Pair.makeList(),absyn_value__gt_il($rjs_core.PrimitiveSymbol.make("#%variable-reference")));} else {var if_res1349 = alt_57();}return if_res1349;};if (WithContinuationMark_p(v_67)!==false) {var let_result1350 = M0.vector__gt_values(vec_v_28,1);var key_8 = let_result1350.getAt(0);var value_3 = let_result1350.getAt(1);var result_10 = let_result1350.getAt(2);var let_result1351 = absyn_expr__gt_il(key_8,false);var key_stms_0 = let_result1351.getAt(0);var key_expr_0 = let_result1351.getAt(1);var let_result1352 = absyn_expr__gt_il(value_3,false);var value_stms_0 = let_result1352.getAt(0);var value_expr_0 = let_result1352.getAt(1);var let_result1353 = absyn_expr__gt_il(result_10,true);var result_stms_0 = let_result1353.getAt(0);var result_expr_0 = let_result1353.getAt(1);var old_context_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__context"));var new_context_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__context"));var result_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__wcm_result"));var exn_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("exn"));var temp1356 = ILVarDec20_dot_1(old_context_id_0,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.getFrames")),$rjs_core.Pair.makeList()));var temp1355 = ILVarDec20_dot_1(new_context_id_0,false);if (overwrite_mark_frame_p_0!==false) {var if_res1354 = ILAssign24_dot_1(new_context_id_0,old_context_id_0);} else {var if_res1354 = ILAssign24_dot_1(new_context_id_0,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.enterFrame")),$rjs_core.Pair.makeList()));}var stms_2 = M0.list(temp1356,temp1355,ILExnHandler29_dot_1(flatten_statements(M0.list(key_stms_0,value_stms_0,if_res1354,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.setMark")),M0.list(key_expr_0,value_expr_0)),result_stms_0,ILVarDec20_dot_1(result_id_0,result_expr_0))),$rjs_core.PrimitiveSymbol.make("exn"),$rjs_core.Pair.makeList(),M0.list(ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.updateFrame")),M0.list(old_context_id_0,new_context_id_0)))));var if_res1357 = M0.values(stms_2,result_id_0);} else {var if_res1357 = alt_56();}return if_res1357;};if (WithContinuationMark_p(v_67)!==false) {var let_result1358 = M0.vector__gt_values(vec_v_27,1);var key_9 = let_result1358.getAt(0);var _fst_6 = let_result1358.getAt(1);var wcm_0 = let_result1358.getAt(2);if (WithContinuationMark_p(wcm_0)!==false) {var v_73 = wcm_0;var v_74 = v_73;var vec_v_30 = M0.struct__gt_vector(v_74);var alt_58 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_74);};if (WithContinuationMark_p(v_74)!==false) {var let_result1359 = M0.vector__gt_values(vec_v_30,1);var key_11 = let_result1359.getAt(0);var _snd_3 = let_result1359.getAt(1);var _thd_1 = let_result1359.getAt(2);var if_res1360 = M0.values(key_11,_snd_3,_thd_1);} else {var if_res1360 = alt_58();}var let_result1361 = if_res1360;var key_10 = let_result1361.getAt(0);var _snd_2 = let_result1361.getAt(1);var _thd_0 = let_result1361.getAt(2);var if_res1362 = absyn_expr__gt_il(wcm_0,overwrite_mark_frame_p_0);} else {var if_res1362 = alt_55();}var if_res1363 = if_res1362;} else {var if_res1363 = alt_55();}return if_res1363;};if (ImportedIdent_p(v_67)!==false) {var let_result1364 = M0.vector__gt_values(vec_v_26,1);var id_3 = let_result1364.getAt(0);var src__0 = let_result1364.getAt(1);var reachable_p_0 = let_result1364.getAt(2);if (M0.__lt_(get_major_version(M0.substring(M0.version(),0,1)),7)!==false) {var if_res1365 = M0.equal_p(src__0,$rjs_core.PrimitiveSymbol.make("#%runtime"));} else {var if_res1365 = false;}if (if_res1365!==false) {var if_res1366 = $rjs_core.PrimitiveSymbol.make("#%kernel");} else {var if_res1366 = src__0;}var src_0 = if_res1366;if (reserved_keyword_p(id_3)!==false) {var if_res1367 = M0.string__gt_symbol(normalize_symbol(id_3));} else {var if_res1367 = id_3;}var id_times__0 = if_res1367;var or_part_72 = M0.symbol_p(current_source_file());if (or_part_72!==false) {var if_res1368 = or_part_72;} else {var if_res1368 = M0.path_p(current_source_file());}if (if_res1368!==false) {var if_res1369 = M0.equal_p(actual_module_path(current_source_file()),actual_module_path(src_0));} else {var if_res1369 = false;}if (if_res1369!==false) {var if_res1371 = absyn_expr__gt_il(LocalIdent6_dot_1(id_3),overwrite_mark_frame_p_0);} else {if (false_p(reachable_p_0)!==false) {var mod_obj_name_0 = M0.hash_ref(module_object_name_map(),src_0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}log_rjs_warning($rjs_core.UString.make("missing unreachable binding ~s ~s"),id_times__0,src_0);return src_0;});var if_res1370 = M0.values($rjs_core.Pair.makeList(),ILRef10_dot_1(ILRef10_dot_1(mod_obj_name_0,__times_quoted_binding_ident_name_times_),id_times__0));} else {var mod_obj_name_1 = M0.hash_ref(module_object_name_map(),src_0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}log_rjs_warning($rjs_core.UString.make("missing reachable binding ~s ~s"),id_times__0,src_0);return src_0;});var if_res1370 = M0.values($rjs_core.Pair.makeList(),ILRef10_dot_1(mod_obj_name_1,id_times__0));}var if_res1371 = if_res1370;}var if_res1372 = if_res1371;} else {var if_res1372 = alt_54();}return if_res1372;};if (Begin0_p(v_67)!==false) {var let_result1373 = M0.vector__gt_values(vec_v_25,1);var expr0_0 = let_result1373.getAt(0);var expr_times__0 = let_result1373.getAt(1);var expr0_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("begin-res"));var if_res1374 = absyn_expr__gt_il(LetValues13_dot_1(M0.list(M0.cons(M0.list(expr0_id_0),expr0_0)),append1(expr_times__0,LocalIdent6_dot_1(expr0_id_0))),overwrite_mark_frame_p_0);} else {var if_res1374 = alt_53();}return if_res1374;};if (TopLevelIdent_p(v_67)!==false) {var id_4 = M0.vector__gt_values(vec_v_24,1);var if_res1375 = M0.values($rjs_core.Pair.makeList(),id_4);} else {var if_res1375 = alt_52();}return if_res1375;};if (LocalIdent_p(v_67)!==false) {var id_5 = M0.vector__gt_values(vec_v_23,1);var if_res1376 = M0.values($rjs_core.Pair.makeList(),id_5);} else {var if_res1376 = alt_51();}var if_res1377 = if_res1376;}var if_res1378 = if_res1377;}var if_res1379 = if_res1378;}return if_res1379;};if (Quote_p(v_67)!==false) {var datum_0 = M0.vector__gt_values(vec_v_22,1);var if_res1380 = M0.values($rjs_core.Pair.makeList(),absyn_value__gt_il(datum_0));} else {var if_res1380 = alt_48();}return if_res1380;};if (App_p(v_67)!==false) {var let_result1381 = M0.vector__gt_values(vec_v_21,1);var lam_1 = let_result1381.getAt(0);var args_14 = let_result1381.getAt(1);var binops_0 = map2(function(b_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return ImportedIdent3_dot_1(b_19,$rjs_core.PrimitiveSymbol.make("#%kernel"),true);},$rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("+"),$rjs_core.PrimitiveSymbol.make("-"),$rjs_core.PrimitiveSymbol.make("*"),$rjs_core.PrimitiveSymbol.make("/")));var il_app_by_binop_0 = function(v_75, arg_times__0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("il-app/binop");var let_result1382 = absyn_expr__gt_il(v_75,false);var __6 = let_result1382.getAt(0);var v_76 = let_result1382.getAt(1);var v_il_0 = v_76;if (M0.equal_p(v_75,ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("-"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true))!==false) {var if_res1383 = length_eq__p(arg_times__0,1);} else {var if_res1383 = false;}if (if_res1383!==false) {var if_res1389 = ILApp7_dot_1(v_il_0,arg_times__0);} else {if (M0.equal_p(v_75,ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("/"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true))!==false) {var if_res1384 = length_eq__p(arg_times__0,1);} else {var if_res1384 = false;}if (if_res1384!==false) {var if_res1388 = ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("/"),M0.cons(ILValue12_dot_1(1),arg_times__0));} else {if (ImportedIdent_p(v_75)!==false) {if (member(v_75,binops_0)!==false) {var if_res1385 = M0.__gt__eq_(M0.length(arg_times__0),2);} else {var if_res1385 = false;}var if_res1386 = if_res1385;} else {var if_res1386 = false;}if (if_res1386!==false) {var if_res1387 = ILBinaryOp6_dot_1(ImportedIdent_id(v_75),arg_times__0);} else {var if_res1387 = ILApp7_dot_1(v_il_0,arg_times__0);}var if_res1388 = if_res1387;}var if_res1389 = if_res1388;}return if_res1389;};var temp5_0 = sequence_length(reverse$1(M0.cons(lam_1,args_14)));var let_result1390 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("arg")),reverse$1(M0.cons(lam_1,args_14)));var pos__gt_vals_20 = let_result1390.getAt(0);var pos_pre_inc_18 = let_result1390.getAt(1);var pos_next_21 = let_result1390.getAt(2);var init_21 = let_result1390.getAt(3);var pos_cont_p_21 = let_result1390.getAt(4);var val_cont_p_20 = let_result1390.getAt(5);var all_cont_p_20 = let_result1390.getAt(6);var start_10 = 0;var end_4 = temp5_0;var inc_0 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1391 = M0.rvoid();} else {var if_res1391 = check_range(start_10,end_4,inc_0);}if_res1391;var for_loop_21 = function(stms_3, vals_3, next_has_stms_p_0, pos_63, pos_64) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_21!==false) {var if_res1392 = pos_cont_p_21(pos_63);} else {var if_res1392 = true;}if (if_res1392!==false) {var if_res1393 = M0.__lt_(pos_64,end_4);} else {var if_res1393 = false;}if (if_res1393!==false) {var arg_1 = pos__gt_vals_20(pos_63);if (all_cont_p_20!==false) {var if_res1394 = function(pos_65) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_20(pos_65,arg_1);};} else {var if_res1394 = false;}var let_result1395 = M0.values(arg_1,if_res1394);var arg_0 = let_result1395.getAt(0);var all_cont_p_by_pos_18 = let_result1395.getAt(1);if (pos_pre_inc_18!==false) {var if_res1396 = pos_pre_inc_18(pos_63);} else {var if_res1396 = pos_63;}var pos_66 = if_res1396;var temp6_0 = pos_64;if (val_cont_p_20!==false) {var if_res1397 = val_cont_p_20(arg_0);} else {var if_res1397 = true;}if (if_res1397!==false) {var if_res1398 = true;} else {var if_res1398 = false;}if (if_res1398!==false) {var stms_5 = stms_3;var vals_5 = vals_3;var next_has_stms_p_2 = next_has_stms_p_0;var last_p_0 = M0.equal_p(M0.sub1(temp5_0),temp6_0);var let_result1399 = absyn_expr__gt_il(arg_0,false);var s_15 = let_result1399.getAt(0);var v_77 = let_result1399.getAt(1);if (next_has_stms_p_2!==false) {var if_res1400 = has_application_p(v_77);} else {var if_res1400 = false;}if (if_res1400!==false) {if (last_p_0!==false) {var if_res1401 = $rjs_core.PrimitiveSymbol.make("lam");} else {var if_res1401 = $rjs_core.PrimitiveSymbol.make("temp");}var temp_id_0 = fresh_id(if_res1401);var arg_stms_0 = append1(s_15,ILVarDec20_dot_1(temp_id_0,v_77));var if_res1406 = M0.values(M0.append(arg_stms_0,stms_5),M0.cons(temp_id_0,vals_5),next_has_stms_p_2);} else {if (next_has_stms_p_2!==false) {var if_res1405 = M0.values(M0.append(s_15,stms_5),M0.cons(v_77,vals_5),next_has_stms_p_2);} else {var temp1404 = M0.append(s_15,stms_5);var temp1403 = M0.cons(v_77,vals_5);var or_part_73 = next_has_stms_p_2;if (or_part_73!==false) {var if_res1402 = or_part_73;} else {var if_res1402 = cons_p(s_15);}var if_res1405 = M0.values(temp1404,temp1403,if_res1402);}var if_res1406 = if_res1405;}var let_result1407 = if_res1406;var stms_6 = let_result1407.getAt(0);var vals_6 = let_result1407.getAt(1);var next_has_stms_p_3 = let_result1407.getAt(2);var let_result1408 = M0.values(stms_6,vals_6,next_has_stms_p_3);var stms_4 = let_result1408.getAt(0);var vals_4 = let_result1408.getAt(1);var next_has_stms_p_1 = let_result1408.getAt(2);if (all_cont_p_by_pos_18!==false) {var if_res1409 = all_cont_p_by_pos_18(pos_66);} else {var if_res1409 = true;}if (if_res1409!==false) {var if_res1410 = M0.not(false);} else {var if_res1410 = false;}if (if_res1410!==false) {var if_res1411 = for_loop_21(stms_4,vals_4,next_has_stms_p_1,pos_next_21(pos_66),pos_64+inc_0);} else {var if_res1411 = M0.values(stms_4,vals_4,next_has_stms_p_1);}var if_res1412 = if_res1411;} else {var if_res1412 = M0.values(stms_3,vals_3,next_has_stms_p_0);}var if_res1413 = if_res1412;} else {var if_res1413 = M0.values(stms_3,vals_3,next_has_stms_p_0);}return if_res1413;};var let_result1414 = for_loop_21($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),false,init_21,start_10);var lam_plus_arg_stms_0 = let_result1414.getAt(0);var lam_part_vals_0 = let_result1414.getAt(1);var _rst_0 = let_result1414.getAt(2);var v_78 = lam_part_vals_0;var v_79 = v_78;var alt_59 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_79);};var p_95 = v_79;if (M0.pair_p(p_95)!==false) {var a_116 = M0.cdr(p_95);var if_res1415 = M0.list_p(a_116);} else {var if_res1415 = false;}if (if_res1415!==false) {var p_96 = v_79;var a_163 = M0.car(p_96);var lam_val_2 = a_163;var d_47 = M0.cdr(p_96);var arg_vals_2 = d_47;var let_result1416 = M0.values(lam_val_2,arg_vals_2);var lam_val_1 = let_result1416.getAt(0);var arg_vals_1 = let_result1416.getAt(1);var if_res1417 = M0.values(lam_val_1,arg_vals_1);} else {var if_res1417 = alt_59();}var let_result1418 = if_res1417;var lam_val_0 = let_result1418.getAt(0);var arg_vals_0 = let_result1418.getAt(1);if (Ident_p(lam_1)!==false) {var if_res1419 = M0.values(lam_plus_arg_stms_0,il_app_by_binop_0(lam_1,arg_vals_0));} else {var if_res1419 = M0.values(lam_plus_arg_stms_0,ILApp7_dot_1(lam_val_0,arg_vals_0));}var if_res1420 = if_res1419;} else {var if_res1420 = alt_47();}return if_res1420;};if (App_p(v_67)!==false) {var let_result1421 = M0.vector__gt_values(vec_v_20,1);var lam_2 = let_result1421.getAt(0);var args_15 = let_result1421.getAt(1);if (ImportedIdent_p(lam_2)!==false) {var if_res1422 = M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),ImportedIdent_id(lam_2));} else {var if_res1422 = false;}if (if_res1422!==false) {var v_80 = args_15;var alt_60 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_61 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_62 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_63 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_64 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_65 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_66 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_67 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_68 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_69 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_70 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_71 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_72 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_73 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_74 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_75 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("absyn-expr->il"),$rjs_core.UString.make("unknown ffi form"),args_15);};var p_97 = v_80;if (M0.pair_p(p_97)!==false) {var a_164 = M0.cdr(p_97);var if_res1423 = M0.eq_p($rjs_core.Pair.makeList(),a_164);} else {var if_res1423 = false;}if (if_res1423!==false) {var a_165 = M0.car(v_80);var fst_6 = a_165;if (Quote_p(fst_6)!==false) {var if_res1424 = M0.eq_p(Quote_datum(fst_6),$rjs_core.PrimitiveSymbol.make("this"));} else {var if_res1424 = false;}if (if_res1424!==false) {var if_res1425 = M0.values($rjs_core.Pair.makeList(),ILThis19_dot_1());} else {var if_res1425 = alt_75();}var if_res1426 = if_res1425;} else {var if_res1426 = alt_75();}return if_res1426;};var p_98 = v_80;if (M0.pair_p(p_98)!==false) {var a_166 = M0.cdr(p_98);var if_res1427 = M0.eq_p($rjs_core.Pair.makeList(),a_166);} else {var if_res1427 = false;}if (if_res1427!==false) {var a_167 = M0.car(v_80);var fst_7 = a_167;if (Quote_p(fst_7)!==false) {var if_res1428 = M0.eq_p(Quote_datum(fst_7),$rjs_core.PrimitiveSymbol.make("arguments"));} else {var if_res1428 = false;}if (if_res1428!==false) {var if_res1429 = M0.values($rjs_core.Pair.makeList(),ILArguments18_dot_1());} else {var if_res1429 = alt_74();}var if_res1430 = if_res1429;} else {var if_res1430 = alt_74();}return if_res1430;};var p_99 = v_80;if (M0.pair_p(p_99)!==false) {var a_168 = M0.cdr(p_99);var if_res1431 = M0.eq_p($rjs_core.Pair.makeList(),a_168);} else {var if_res1431 = false;}if (if_res1431!==false) {var a_169 = M0.car(v_80);var fst_8 = a_169;if (Quote_p(fst_8)!==false) {var if_res1432 = M0.eq_p(Quote_datum(fst_8),$rjs_core.PrimitiveSymbol.make("undefined"));} else {var if_res1432 = false;}if (if_res1432!==false) {var if_res1433 = M0.values($rjs_core.Pair.makeList(),ILUndefined17_dot_1());} else {var if_res1433 = alt_73();}var if_res1434 = if_res1433;} else {var if_res1434 = alt_73();}return if_res1434;};var p_100 = v_80;if (M0.pair_p(p_100)!==false) {var a_170 = M0.cdr(p_100);var if_res1435 = M0.eq_p($rjs_core.Pair.makeList(),a_170);} else {var if_res1435 = false;}if (if_res1435!==false) {var a_171 = M0.car(v_80);var fst_9 = a_171;if (Quote_p(fst_9)!==false) {var if_res1436 = M0.eq_p(Quote_datum(fst_9),$rjs_core.PrimitiveSymbol.make("null"));} else {var if_res1436 = false;}if (if_res1436!==false) {var if_res1437 = M0.values($rjs_core.Pair.makeList(),ILNull16_dot_1());} else {var if_res1437 = alt_72();}var if_res1438 = if_res1437;} else {var if_res1438 = alt_72();}return if_res1438;};var p_101 = v_80;if (M0.pair_p(p_101)!==false) {var a_172 = M0.cdr(p_101);var p_67 = a_172;if (M0.pair_p(p_67)!==false) {var a_173 = M0.cdr(p_67);var p_102 = a_173;if (M0.pair_p(p_102)!==false) {var a_123 = M0.cdr(p_102);var p_103 = a_123;if (M0.pair_p(p_103)!==false) {var a_124 = M0.cdr(p_103);var if_res1439 = M0.eq_p($rjs_core.Pair.makeList(),a_124);} else {var if_res1439 = false;}var if_res1440 = if_res1439;} else {var if_res1440 = false;}var if_res1441 = if_res1440;} else {var if_res1441 = false;}var if_res1442 = if_res1441;} else {var if_res1442 = false;}if (if_res1442!==false) {var p_104 = v_80;var a_174 = M0.car(p_104);var fst_11 = a_174;var d_48 = M0.cdr(p_104);var p_105 = d_48;var a_175 = M0.car(p_105);var snd_5 = a_175;var d_49 = M0.cdr(p_105);var p_106 = d_49;var a_176 = M0.car(p_106);var e0_7 = a_176;var d_50 = M0.cdr(p_106);var a_177 = M0.car(d_50);var e1_8 = a_177;var let_result1443 = M0.values(e0_7,e1_8);var e0_6 = let_result1443.getAt(0);var e1_7 = let_result1443.getAt(1);var let_result1444 = M0.values(snd_5,e0_6,e1_7);var snd_4 = let_result1444.getAt(0);var e0_5 = let_result1444.getAt(1);var e1_6 = let_result1444.getAt(2);var let_result1445 = M0.values(fst_11,snd_4,e0_5,e1_6);var fst_10 = let_result1445.getAt(0);var snd_3 = let_result1445.getAt(1);var e0_4 = let_result1445.getAt(2);var e1_5 = let_result1445.getAt(3);if (Quote_p(fst_10)!==false) {if (Quote_p(snd_3)!==false) {var if_res1446 = M0.eq_p(Quote_datum(fst_10),$rjs_core.PrimitiveSymbol.make("operator"));} else {var if_res1446 = false;}var if_res1447 = if_res1446;} else {var if_res1447 = false;}if (if_res1447!==false) {var v_81 = snd_3;var v_82 = v_81;var vec_v_31 = M0.struct__gt_vector(v_82);var alt_76 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_82);};if (Quote_p(v_82)!==false) {var oper_1 = M0.vector__gt_values(vec_v_31,1);var if_res1448 = M0.values(oper_1);} else {var if_res1448 = alt_76();}var oper_0 = if_res1448;var let_result1449 = absyn_expr__gt_il(e0_4,false);var stms0_0 = let_result1449.getAt(0);var val0_0 = let_result1449.getAt(1);var let_result1450 = absyn_expr__gt_il(e1_5,false);var stms1_0 = let_result1450.getAt(0);var val1_0 = let_result1450.getAt(1);var if_res1451 = M0.values(M0.append(stms0_0,stms1_0),ILBinaryOp6_dot_1(oper_0,M0.list(val0_0,val1_0)));} else {var if_res1451 = alt_71();}var if_res1452 = if_res1451;} else {var if_res1452 = alt_71();}return if_res1452;};var p_107 = v_80;if (M0.pair_p(p_107)!==false) {var a_178 = M0.cdr(p_107);var p_108 = a_178;if (M0.pair_p(p_108)!==false) {var a_179 = M0.cdr(p_108);var p_109 = a_179;if (M0.pair_p(p_109)!==false) {var a_180 = M0.cdr(p_109);var if_res1453 = M0.eq_p($rjs_core.Pair.makeList(),a_180);} else {var if_res1453 = false;}var if_res1454 = if_res1453;} else {var if_res1454 = false;}var if_res1455 = if_res1454;} else {var if_res1455 = false;}if (if_res1455!==false) {var p_110 = v_80;var a_181 = M0.car(p_110);var fst_13 = a_181;var d_51 = M0.cdr(p_110);var p_111 = d_51;var a_182 = M0.car(p_111);var e_14 = a_182;var d_52 = M0.cdr(p_111);var a_183 = M0.car(d_52);var t_5 = a_183;var let_result1456 = M0.values(e_14,t_5);var e_13 = let_result1456.getAt(0);var t_4 = let_result1456.getAt(1);var let_result1457 = M0.values(fst_13,e_13,t_4);var fst_12 = let_result1457.getAt(0);var e_12 = let_result1457.getAt(1);var t_3 = let_result1457.getAt(2);if (Quote_p(fst_12)!==false) {var if_res1458 = M0.eq_p(Quote_datum(fst_12),$rjs_core.PrimitiveSymbol.make("instanceof"));} else {var if_res1458 = false;}if (if_res1458!==false) {var let_result1459 = absyn_expr__gt_il(e_12,false);var stms_7 = let_result1459.getAt(0);var val_4 = let_result1459.getAt(1);var let_result1460 = absyn_expr__gt_il(t_3,false);var tstms_0 = let_result1460.getAt(0);var tval_0 = let_result1460.getAt(1);var if_res1461 = M0.values(M0.append(stms_7,tstms_0),ILInstanceOf14_dot_1(val_4,tval_0));} else {var if_res1461 = alt_70();}var if_res1462 = if_res1461;} else {var if_res1462 = alt_70();}return if_res1462;};var p_112 = v_80;if (M0.pair_p(p_112)!==false) {var a_184 = M0.cdr(p_112);var p_113 = a_184;if (M0.pair_p(p_113)!==false) {var a_185 = M0.cdr(p_113);var if_res1463 = M0.eq_p($rjs_core.Pair.makeList(),a_185);} else {var if_res1463 = false;}var if_res1464 = if_res1463;} else {var if_res1464 = false;}if (if_res1464!==false) {var p_114 = v_80;var a_186 = M0.car(p_114);var fst_15 = a_186;var d_53 = M0.cdr(p_114);var a_187 = M0.car(d_53);var e_16 = a_187;var let_result1465 = M0.values(fst_15,e_16);var fst_14 = let_result1465.getAt(0);var e_15 = let_result1465.getAt(1);if (Quote_p(fst_14)!==false) {var if_res1466 = M0.eq_p(Quote_datum(fst_14),$rjs_core.PrimitiveSymbol.make("typeof"));} else {var if_res1466 = false;}if (if_res1466!==false) {var let_result1467 = absyn_expr__gt_il(e_15,false);var stms_8 = let_result1467.getAt(0);var val_5 = let_result1467.getAt(1);var if_res1468 = M0.values(stms_8,ILTypeOf15_dot_1(val_5));} else {var if_res1468 = alt_69();}var if_res1469 = if_res1468;} else {var if_res1469 = alt_69();}return if_res1469;};var p_115 = v_80;if (M0.pair_p(p_115)!==false) {var a_188 = M0.cdr(p_115);var p_116 = a_188;if (M0.pair_p(p_116)!==false) {var a_189 = M0.cdr(p_116);var if_res1470 = M0.eq_p($rjs_core.Pair.makeList(),a_189);} else {var if_res1470 = false;}var if_res1471 = if_res1470;} else {var if_res1471 = false;}if (if_res1471!==false) {var p_117 = v_80;var a_190 = M0.car(p_117);var fst_17 = a_190;var d_54 = M0.cdr(p_117);var a_191 = M0.car(d_54);var e_18 = a_191;var let_result1472 = M0.values(fst_17,e_18);var fst_16 = let_result1472.getAt(0);var e_17 = let_result1472.getAt(1);if (Quote_p(fst_16)!==false) {var if_res1473 = M0.eq_p(Quote_datum(fst_16),$rjs_core.PrimitiveSymbol.make("throw"));} else {var if_res1473 = false;}if (if_res1473!==false) {var let_result1474 = absyn_expr__gt_il(e_17,false);var stms_9 = let_result1474.getAt(0);var val_6 = let_result1474.getAt(1);var if_res1475 = M0.values(append1(stms_9,ILThrow30_dot_1(val_6)),ILValue12_dot_1(M0.rvoid()));} else {var if_res1475 = alt_68();}var if_res1476 = if_res1475;} else {var if_res1476 = alt_68();}return if_res1476;};var p_70 = v_80;if (M0.pair_p(p_70)!==false) {var a_129 = M0.cdr(p_70);var if_res1477 = M0.list_p(a_129);} else {var if_res1477 = false;}if (if_res1477!==false) {var p_71 = v_80;var a_192 = M0.car(p_71);var fst_19 = a_192;var d_55 = M0.cdr(p_71);var items_3 = d_55;var let_result1478 = M0.values(fst_19,items_3);var fst_18 = let_result1478.getAt(0);var items_2 = let_result1478.getAt(1);if (Quote_p(fst_18)!==false) {var if_res1479 = M0.eq_p(Quote_datum(fst_18),$rjs_core.PrimitiveSymbol.make("object"));} else {var if_res1479 = false;}if (if_res1479!==false) {var let_result1480 = split_at(items_2,M0.length(items_2)/2);var keys_0 = let_result1480.getAt(0);var vals_7 = let_result1480.getAt(1);var let_result1481 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("k")),keys_0);var pos__gt_vals_21 = let_result1481.getAt(0);var pos_pre_inc_19 = let_result1481.getAt(1);var pos_next_22 = let_result1481.getAt(2);var init_22 = let_result1481.getAt(3);var pos_cont_p_22 = let_result1481.getAt(4);var val_cont_p_21 = let_result1481.getAt(5);var all_cont_p_21 = let_result1481.getAt(6);var let_result1482 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("v")),vals_7);var pos__gt_vals_22 = let_result1482.getAt(0);var pos_pre_inc_20 = let_result1482.getAt(1);var pos_next_23 = let_result1482.getAt(2);var init_23 = let_result1482.getAt(3);var pos_cont_p_23 = let_result1482.getAt(4);var val_cont_p_22 = let_result1482.getAt(5);var all_cont_p_22 = let_result1482.getAt(6);M0.rvoid();M0.rvoid();var for_loop_22 = function(stms_10, kvs_0, pos_67, pos_68) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_22!==false) {var if_res1483 = pos_cont_p_22(pos_67);} else {var if_res1483 = true;}if (if_res1483!==false) {if (pos_cont_p_23!==false) {var if_res1484 = pos_cont_p_23(pos_68);} else {var if_res1484 = true;}var if_res1485 = if_res1484;} else {var if_res1485 = false;}if (if_res1485!==false) {var k_2 = pos__gt_vals_21(pos_67);if (all_cont_p_21!==false) {var if_res1486 = function(pos_69) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_21(pos_69,k_2);};} else {var if_res1486 = false;}var let_result1487 = M0.values(k_2,if_res1486);var k_1 = let_result1487.getAt(0);var all_cont_p_by_pos_19 = let_result1487.getAt(1);if (pos_pre_inc_19!==false) {var if_res1488 = pos_pre_inc_19(pos_67);} else {var if_res1488 = pos_67;}var pos_70 = if_res1488;var v_84 = pos__gt_vals_22(pos_68);if (all_cont_p_22!==false) {var if_res1489 = function(pos_71) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_22(pos_71,v_84);};} else {var if_res1489 = false;}var let_result1490 = M0.values(v_84,if_res1489);var v_83 = let_result1490.getAt(0);var all_cont_p_by_pos_20 = let_result1490.getAt(1);if (pos_pre_inc_20!==false) {var if_res1491 = pos_pre_inc_20(pos_68);} else {var if_res1491 = pos_68;}var pos_72 = if_res1491;if (val_cont_p_21!==false) {var if_res1492 = val_cont_p_21(k_1);} else {var if_res1492 = true;}if (if_res1492!==false) {if (val_cont_p_22!==false) {var if_res1493 = val_cont_p_22(v_83);} else {var if_res1493 = true;}var if_res1494 = if_res1493;} else {var if_res1494 = false;}if (if_res1494!==false) {var stms_12 = stms_10;var kvs_2 = kvs_0;var let_result1495 = absyn_expr__gt_il(v_83,false);var s_times__0 = let_result1495.getAt(0);var v_times__0 = let_result1495.getAt(1);var let_result1496 = M0.values(M0.append(stms_12,s_times__0),M0.append(kvs_2,M0.list(M0.cons(Quote_datum(k_1),v_times__0))));var stms_13 = let_result1496.getAt(0);var kvs_3 = let_result1496.getAt(1);var let_result1497 = M0.values(stms_13,kvs_3);var stms_11 = let_result1497.getAt(0);var kvs_1 = let_result1497.getAt(1);if (all_cont_p_by_pos_19!==false) {var if_res1498 = all_cont_p_by_pos_19(pos_70);} else {var if_res1498 = true;}if (if_res1498!==false) {if (all_cont_p_by_pos_20!==false) {var if_res1499 = all_cont_p_by_pos_20(pos_72);} else {var if_res1499 = true;}if (if_res1499!==false) {var if_res1500 = M0.not(false);} else {var if_res1500 = false;}var if_res1501 = if_res1500;} else {var if_res1501 = false;}if (if_res1501!==false) {var if_res1502 = for_loop_22(stms_11,kvs_1,pos_next_22(pos_70),pos_next_23(pos_72));} else {var if_res1502 = M0.values(stms_11,kvs_1);}var if_res1503 = if_res1502;} else {var if_res1503 = M0.values(stms_10,kvs_0);}var if_res1504 = if_res1503;} else {var if_res1504 = M0.values(stms_10,kvs_0);}return if_res1504;};var let_result1505 = for_loop_22($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),init_22,init_23);var stms_times__0 = let_result1505.getAt(0);var items_times__0 = let_result1505.getAt(1);var if_res1506 = M0.values(stms_times__0,ILObject9_dot_1(items_times__0));} else {var if_res1506 = alt_67();}var if_res1507 = if_res1506;} else {var if_res1507 = alt_67();}return if_res1507;};var p_118 = v_80;if (M0.pair_p(p_118)!==false) {var a_193 = M0.cdr(p_118);var if_res1508 = M0.list_p(a_193);} else {var if_res1508 = false;}if (if_res1508!==false) {var p_119 = v_80;var a_194 = M0.car(p_119);var fst_21 = a_194;var d_56 = M0.cdr(p_119);var items_5 = d_56;var let_result1509 = M0.values(fst_21,items_5);var fst_20 = let_result1509.getAt(0);var items_4 = let_result1509.getAt(1);if (Quote_p(fst_20)!==false) {var if_res1510 = M0.eq_p(Quote_datum(fst_20),$rjs_core.PrimitiveSymbol.make("array"));} else {var if_res1510 = false;}if (if_res1510!==false) {var let_result1511 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("item")),items_4);var pos__gt_vals_23 = let_result1511.getAt(0);var pos_pre_inc_21 = let_result1511.getAt(1);var pos_next_24 = let_result1511.getAt(2);var init_24 = let_result1511.getAt(3);var pos_cont_p_24 = let_result1511.getAt(4);var val_cont_p_23 = let_result1511.getAt(5);var all_cont_p_23 = let_result1511.getAt(6);M0.rvoid();var for_loop_23 = function(stms_14, vals_8, pos_73) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_24!==false) {var if_res1512 = pos_cont_p_24(pos_73);} else {var if_res1512 = true;}if (if_res1512!==false) {var item_1 = pos__gt_vals_23(pos_73);if (all_cont_p_23!==false) {var if_res1513 = function(pos_74) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_23(pos_74,item_1);};} else {var if_res1513 = false;}var let_result1514 = M0.values(item_1,if_res1513);var item_0 = let_result1514.getAt(0);var all_cont_p_by_pos_21 = let_result1514.getAt(1);if (pos_pre_inc_21!==false) {var if_res1515 = pos_pre_inc_21(pos_73);} else {var if_res1515 = pos_73;}var pos_75 = if_res1515;if (val_cont_p_23!==false) {var if_res1516 = val_cont_p_23(item_0);} else {var if_res1516 = true;}if (if_res1516!==false) {var stms_16 = stms_14;var vals_10 = vals_8;var let_result1517 = absyn_expr__gt_il(item_0,false);var s_times__1 = let_result1517.getAt(0);var v_times__1 = let_result1517.getAt(1);var let_result1518 = M0.values(M0.append(stms_16,s_times__1),M0.append(vals_10,M0.list(v_times__1)));var stms_17 = let_result1518.getAt(0);var vals_11 = let_result1518.getAt(1);var let_result1519 = M0.values(stms_17,vals_11);var stms_15 = let_result1519.getAt(0);var vals_9 = let_result1519.getAt(1);if (all_cont_p_by_pos_21!==false) {var if_res1520 = all_cont_p_by_pos_21(pos_75);} else {var if_res1520 = true;}if (if_res1520!==false) {var if_res1521 = M0.not(false);} else {var if_res1521 = false;}if (if_res1521!==false) {var if_res1522 = for_loop_23(stms_15,vals_9,pos_next_24(pos_75));} else {var if_res1522 = M0.values(stms_15,vals_9);}var if_res1523 = if_res1522;} else {var if_res1523 = M0.values(stms_14,vals_8);}var if_res1524 = if_res1523;} else {var if_res1524 = M0.values(stms_14,vals_8);}return if_res1524;};var let_result1525 = for_loop_23($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),init_24);var stms_times__1 = let_result1525.getAt(0);var items_times__1 = let_result1525.getAt(1);var if_res1526 = M0.values(stms_times__1,ILArray8_dot_1(items_times__1));} else {var if_res1526 = alt_66();}var if_res1527 = if_res1526;} else {var if_res1527 = alt_66();}return if_res1527;};var p_120 = v_80;if (M0.pair_p(p_120)!==false) {var a_195 = M0.cdr(p_120);var p_121 = a_195;if (M0.pair_p(p_121)!==false) {var a_196 = M0.cdr(p_121);var if_res1528 = M0.eq_p($rjs_core.Pair.makeList(),a_196);} else {var if_res1528 = false;}var if_res1529 = if_res1528;} else {var if_res1529 = false;}if (if_res1529!==false) {var p_122 = v_80;var a_197 = M0.car(p_122);var fst_23 = a_197;var d_57 = M0.cdr(p_122);var a_198 = M0.car(d_57);var lv_1 = a_198;var let_result1530 = M0.values(fst_23,lv_1);var fst_22 = let_result1530.getAt(0);var lv_0 = let_result1530.getAt(1);if (Quote_p(fst_22)!==false) {var if_res1531 = M0.eq_p(Quote_datum(fst_22),$rjs_core.PrimitiveSymbol.make("new"));} else {var if_res1531 = false;}if (if_res1531!==false) {var let_result1532 = absyn_expr__gt_il(lv_0,false);var stms_18 = let_result1532.getAt(0);var il_0 = let_result1532.getAt(1);var if_res1533 = M0.values(stms_18,ILNew13_dot_1(il_0));} else {var if_res1533 = alt_65();}var if_res1534 = if_res1533;} else {var if_res1534 = alt_65();}return if_res1534;};var p_123 = v_80;if (M0.pair_p(p_123)!==false) {var a_199 = M0.cdr(p_123);var p_124 = a_199;if (M0.pair_p(p_124)!==false) {var a_200 = M0.cdr(p_124);var p_125 = a_200;if (M0.pair_p(p_125)!==false) {var a_201 = M0.cdr(p_125);var if_res1535 = M0.eq_p($rjs_core.Pair.makeList(),a_201);} else {var if_res1535 = false;}var if_res1536 = if_res1535;} else {var if_res1536 = false;}var if_res1537 = if_res1536;} else {var if_res1537 = false;}if (if_res1537!==false) {var p_126 = v_80;var a_137 = M0.car(p_126);var fst_25 = a_137;var d_58 = M0.cdr(p_126);var p_127 = d_58;var a_202 = M0.car(p_127);var lv_4 = a_202;var d_59 = M0.cdr(p_127);var a_203 = M0.car(d_59);var rv_2 = a_203;var let_result1538 = M0.values(lv_4,rv_2);var lv_3 = let_result1538.getAt(0);var rv_1 = let_result1538.getAt(1);var let_result1539 = M0.values(fst_25,lv_3,rv_1);var fst_24 = let_result1539.getAt(0);var lv_2 = let_result1539.getAt(1);var rv_0 = let_result1539.getAt(2);if (Quote_p(fst_24)!==false) {var if_res1540 = M0.eq_p(Quote_datum(fst_24),$rjs_core.PrimitiveSymbol.make("assign"));} else {var if_res1540 = false;}if (if_res1540!==false) {var let_result1541 = absyn_expr__gt_il(lv_2,false);var lv_stms_0 = let_result1541.getAt(0);var lv_il_0 = let_result1541.getAt(1);var let_result1542 = absyn_expr__gt_il(rv_0,false);var rv_stms_0 = let_result1542.getAt(0);var rv_il_0 = let_result1542.getAt(1);var if_res1543 = M0.values(M0.append(lv_stms_0,rv_stms_0,M0.list(ILAssign24_dot_1(lv_il_0,rv_il_0))),ILValue12_dot_1(M0.rvoid()));} else {var if_res1543 = alt_64();}var if_res1544 = if_res1543;} else {var if_res1544 = alt_64();}return if_res1544;};var p_128 = v_80;if (M0.pair_p(p_128)!==false) {var a_140 = M0.cdr(p_128);var p_129 = a_140;if (M0.pair_p(p_129)!==false) {var a_204 = M0.cdr(p_129);var if_res1545 = M0.list_p(a_204);} else {var if_res1545 = false;}var if_res1546 = if_res1545;} else {var if_res1546 = false;}if (if_res1546!==false) {var p_130 = v_80;var a_205 = M0.car(p_130);var fst_27 = a_205;var d_60 = M0.cdr(p_130);var p_79 = d_60;var a_206 = M0.car(p_79);var b_22 = a_206;var d_38 = M0.cdr(p_79);var xs_22 = d_38;var let_result1547 = M0.values(b_22,xs_22);var b_21 = let_result1547.getAt(0);var xs_21 = let_result1547.getAt(1);var let_result1548 = M0.values(fst_27,b_21,xs_21);var fst_26 = let_result1548.getAt(0);var b_20 = let_result1548.getAt(1);var xs_20 = let_result1548.getAt(2);if (Quote_p(fst_26)!==false) {var if_res1549 = M0.eq_p(Quote_datum(fst_26),$rjs_core.PrimitiveSymbol.make("index"));} else {var if_res1549 = false;}if (if_res1549!==false) {var let_result1550 = absyn_expr__gt_il(b_20,false);var stms_19 = let_result1550.getAt(0);var il_1 = let_result1550.getAt(1);var let_result1551 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_20);var pos__gt_vals_24 = let_result1551.getAt(0);var pos_pre_inc_22 = let_result1551.getAt(1);var pos_next_25 = let_result1551.getAt(2);var init_25 = let_result1551.getAt(3);var pos_cont_p_25 = let_result1551.getAt(4);var val_cont_p_24 = let_result1551.getAt(5);var all_cont_p_24 = let_result1551.getAt(6);M0.rvoid();var for_loop_24 = function(stms_20, il_2, pos_76) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_25!==false) {var if_res1552 = pos_cont_p_25(pos_76);} else {var if_res1552 = true;}if (if_res1552!==false) {var x_37 = pos__gt_vals_24(pos_76);if (all_cont_p_24!==false) {var if_res1553 = function(pos_77) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_24(pos_77,x_37);};} else {var if_res1553 = false;}var let_result1554 = M0.values(x_37,if_res1553);var x_36 = let_result1554.getAt(0);var all_cont_p_by_pos_22 = let_result1554.getAt(1);if (pos_pre_inc_22!==false) {var if_res1555 = pos_pre_inc_22(pos_76);} else {var if_res1555 = pos_76;}var pos_78 = if_res1555;if (val_cont_p_24!==false) {var if_res1556 = val_cont_p_24(x_36);} else {var if_res1556 = true;}if (if_res1556!==false) {var stms_22 = stms_20;var il_4 = il_2;var let_result1557 = absyn_expr__gt_il(x_36,false);var x_stms_0 = let_result1557.getAt(0);var s_il_0 = let_result1557.getAt(1);var temp1559 = M0.append(stms_22,x_stms_0);if (ILValue_p(il_4)!==false) {var if_res1558 = ILIndex11_dot_1(ILValue_v(il_4),s_il_0);} else {var if_res1558 = ILIndex11_dot_1(il_4,s_il_0);}var let_result1560 = M0.values(temp1559,if_res1558);var stms_23 = let_result1560.getAt(0);var il_5 = let_result1560.getAt(1);var let_result1561 = M0.values(stms_23,il_5);var stms_21 = let_result1561.getAt(0);var il_3 = let_result1561.getAt(1);if (all_cont_p_by_pos_22!==false) {var if_res1562 = all_cont_p_by_pos_22(pos_78);} else {var if_res1562 = true;}if (if_res1562!==false) {var if_res1563 = M0.not(false);} else {var if_res1563 = false;}if (if_res1563!==false) {var if_res1564 = for_loop_24(stms_21,il_3,pos_next_25(pos_78));} else {var if_res1564 = M0.values(stms_21,il_3);}var if_res1565 = if_res1564;} else {var if_res1565 = M0.values(stms_20,il_2);}var if_res1566 = if_res1565;} else {var if_res1566 = M0.values(stms_20,il_2);}return if_res1566;};var if_res1567 = for_loop_24(stms_19,il_1,init_25);} else {var if_res1567 = alt_63();}var if_res1568 = if_res1567;} else {var if_res1568 = alt_63();}return if_res1568;};var p_131 = v_80;if (M0.pair_p(p_131)!==false) {var a_207 = M0.cdr(p_131);var p_85 = a_207;if (M0.pair_p(p_85)!==false) {var a_208 = M0.cdr(p_85);var if_res1569 = M0.list_p(a_208);} else {var if_res1569 = false;}var if_res1570 = if_res1569;} else {var if_res1570 = false;}if (if_res1570!==false) {var p_132 = v_80;var a_153 = M0.car(p_132);var fst_29 = a_153;var d_43 = M0.cdr(p_132);var p_133 = d_43;var a_209 = M0.car(p_133);var b_25 = a_209;var d_61 = M0.cdr(p_133);var xs_25 = d_61;var let_result1571 = M0.values(b_25,xs_25);var b_24 = let_result1571.getAt(0);var xs_24 = let_result1571.getAt(1);var let_result1572 = M0.values(fst_29,b_24,xs_24);var fst_28 = let_result1572.getAt(0);var b_23 = let_result1572.getAt(1);var xs_23 = let_result1572.getAt(2);if (Quote_p(fst_28)!==false) {var if_res1573 = M0.eq_p(Quote_datum(fst_28),$rjs_core.PrimitiveSymbol.make("ref"));} else {var if_res1573 = false;}if (if_res1573!==false) {var let_result1574 = absyn_expr__gt_il(b_23,false);var stms_24 = let_result1574.getAt(0);var il_6 = let_result1574.getAt(1);var let_result1575 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_23);var pos__gt_vals_25 = let_result1575.getAt(0);var pos_pre_inc_23 = let_result1575.getAt(1);var pos_next_26 = let_result1575.getAt(2);var init_26 = let_result1575.getAt(3);var pos_cont_p_26 = let_result1575.getAt(4);var val_cont_p_25 = let_result1575.getAt(5);var all_cont_p_25 = let_result1575.getAt(6);M0.rvoid();var for_loop_25 = function(il_7, pos_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_26!==false) {var if_res1576 = pos_cont_p_26(pos_41);} else {var if_res1576 = true;}if (if_res1576!==false) {var x_39 = pos__gt_vals_25(pos_41);if (all_cont_p_25!==false) {var if_res1577 = function(pos_79) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_25(pos_79,x_39);};} else {var if_res1577 = false;}var let_result1578 = M0.values(x_39,if_res1577);var x_38 = let_result1578.getAt(0);var all_cont_p_by_pos_23 = let_result1578.getAt(1);if (pos_pre_inc_23!==false) {var if_res1579 = pos_pre_inc_23(pos_41);} else {var if_res1579 = pos_41;}var pos_40 = if_res1579;if (val_cont_p_25!==false) {var if_res1580 = val_cont_p_25(x_38);} else {var if_res1580 = true;}if (if_res1580!==false) {var il_9 = il_7;var v_85 = x_38;var v_86 = v_85;var vec_v_32 = M0.struct__gt_vector(v_86);var alt_77 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_86);};if (Quote_p(v_86)!==false) {var s_17 = M0.vector__gt_values(vec_v_32,1);var if_res1581 = M0.values(s_17);} else {var if_res1581 = alt_77();}var s_16 = if_res1581;if (ILValue_p(il_9)!==false) {var if_res1582 = ILRef10_dot_1(ILValue_v(il_9),s_16);} else {var if_res1582 = ILRef10_dot_1(il_9,s_16);}var il_10 = if_res1582;var il_8 = M0.values(il_10);if (all_cont_p_by_pos_23!==false) {var if_res1583 = all_cont_p_by_pos_23(pos_40);} else {var if_res1583 = true;}if (if_res1583!==false) {var if_res1584 = M0.not(false);} else {var if_res1584 = false;}if (if_res1584!==false) {var if_res1585 = for_loop_25(il_8,pos_next_26(pos_40));} else {var if_res1585 = il_8;}var if_res1586 = if_res1585;} else {var if_res1586 = il_7;}var if_res1587 = if_res1586;} else {var if_res1587 = il_7;}return if_res1587;};var if_res1588 = M0.values(stms_24,for_loop_25(il_6,init_26));} else {var if_res1588 = alt_62();}var if_res1589 = if_res1588;} else {var if_res1589 = alt_62();}return if_res1589;};var p_134 = v_80;if (M0.pair_p(p_134)!==false) {var a_210 = M0.cdr(p_134);var p_135 = a_210;if (M0.pair_p(p_135)!==false) {var a_211 = M0.cdr(p_135);var if_res1590 = M0.eq_p($rjs_core.Pair.makeList(),a_211);} else {var if_res1590 = false;}var if_res1591 = if_res1590;} else {var if_res1591 = false;}if (if_res1591!==false) {var p_136 = v_80;var a_212 = M0.car(p_136);var fst_31 = a_212;var d_62 = M0.cdr(p_136);var a_213 = M0.car(d_62);var snd_7 = a_213;var let_result1592 = M0.values(fst_31,snd_7);var fst_30 = let_result1592.getAt(0);var snd_6 = let_result1592.getAt(1);if (Quote_p(fst_30)!==false) {if (Quote_p(snd_6)!==false) {var if_res1593 = M0.eq_p(Quote_datum(fst_30),$rjs_core.PrimitiveSymbol.make("string"));} else {var if_res1593 = false;}var if_res1594 = if_res1593;} else {var if_res1594 = false;}if (if_res1594!==false) {var if_res1595 = M0.values($rjs_core.Pair.makeList(),ILValue12_dot_1(Quote_datum(snd_6)));} else {var if_res1595 = alt_61();}var if_res1596 = if_res1595;} else {var if_res1596 = alt_61();}return if_res1596;};var p_137 = v_80;if (M0.pair_p(p_137)!==false) {var a_214 = M0.cdr(p_137);var p_138 = a_214;if (M0.pair_p(p_138)!==false) {var a_215 = M0.cdr(p_138);var if_res1597 = M0.eq_p($rjs_core.Pair.makeList(),a_215);} else {var if_res1597 = false;}var if_res1598 = if_res1597;} else {var if_res1598 = false;}if (if_res1598!==false) {var p_139 = v_80;var a_216 = M0.car(p_139);var fst_33 = a_216;var d_63 = M0.cdr(p_139);var a_217 = M0.car(d_63);var snd_9 = a_217;var let_result1599 = M0.values(fst_33,snd_9);var fst_32 = let_result1599.getAt(0);var snd_8 = let_result1599.getAt(1);if (Quote_p(fst_32)!==false) {if (Quote_p(snd_8)!==false) {var if_res1600 = M0.eq_p(Quote_datum(fst_32),$rjs_core.PrimitiveSymbol.make("var"));} else {var if_res1600 = false;}var if_res1601 = if_res1600;} else {var if_res1601 = false;}if (if_res1601!==false) {var if_res1602 = M0.values($rjs_core.Pair.makeList(),Quote_datum(snd_8));} else {var if_res1602 = alt_60();}var if_res1603 = if_res1602;} else {var if_res1603 = alt_60();}var if_res1604 = if_res1603;} else {var if_res1604 = alt_46();}var if_res1605 = if_res1604;} else {var if_res1605 = alt_46();}return if_res1605;};if (Set_bang__p(v_67)!==false) {var let_result1606 = M0.vector__gt_values(vec_v_19,1);var id_6 = let_result1606.getAt(0);var e_19 = let_result1606.getAt(1);var let_result1607 = absyn_expr__gt_il(e_19,false);var stms_25 = let_result1607.getAt(0);var v_87 = let_result1607.getAt(1);var if_res1608 = M0.values(append1(stms_25,ILAssign24_dot_1(id_6,v_87)),ILValue12_dot_1(M0.rvoid()));} else {var if_res1608 = alt_45();}return if_res1608;};if (LetValues_p(v_67)!==false) {var let_result1609 = M0.vector__gt_values(vec_v_18,1);var bindings_1 = let_result1609.getAt(0);var body_7 = let_result1609.getAt(1);var let_result1610 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("b")),bindings_1);var pos__gt_vals_26 = let_result1610.getAt(0);var pos_pre_inc_24 = let_result1610.getAt(1);var pos_next_27 = let_result1610.getAt(2);var init_27 = let_result1610.getAt(3);var pos_cont_p_27 = let_result1610.getAt(4);var val_cont_p_26 = let_result1610.getAt(5);var all_cont_p_26 = let_result1610.getAt(6);M0.rvoid();var for_loop_26 = function(stms_26, pos_80) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_27!==false) {var if_res1611 = pos_cont_p_27(pos_80);} else {var if_res1611 = true;}if (if_res1611!==false) {var b_27 = pos__gt_vals_26(pos_80);if (all_cont_p_26!==false) {var if_res1612 = function(pos_81) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_26(pos_81,b_27);};} else {var if_res1612 = false;}var let_result1613 = M0.values(b_27,if_res1612);var b_26 = let_result1613.getAt(0);var all_cont_p_by_pos_24 = let_result1613.getAt(1);if (pos_pre_inc_24!==false) {var if_res1614 = pos_pre_inc_24(pos_80);} else {var if_res1614 = pos_80;}var pos_82 = if_res1614;if (val_cont_p_26!==false) {var if_res1615 = val_cont_p_26(b_26);} else {var if_res1615 = true;}if (if_res1615!==false) {var stms_28 = stms_26;var stms_29 = M0.append(stms_28,absyn_binding__gt_il(b_26));var stms_27 = M0.values(stms_29);if (all_cont_p_by_pos_24!==false) {var if_res1616 = all_cont_p_by_pos_24(pos_82);} else {var if_res1616 = true;}if (if_res1616!==false) {var if_res1617 = M0.not(false);} else {var if_res1617 = false;}if (if_res1617!==false) {var if_res1618 = for_loop_26(stms_27,pos_next_27(pos_82));} else {var if_res1618 = stms_27;}var if_res1619 = if_res1618;} else {var if_res1619 = stms_26;}var if_res1620 = if_res1619;} else {var if_res1620 = stms_26;}return if_res1620;};var binding_stms_0 = for_loop_26($rjs_core.Pair.makeList(),init_27);var body13_0 = sequence_length(body_7);var let_result1621 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),body_7);var pos__gt_vals_27 = let_result1621.getAt(0);var pos_pre_inc_25 = let_result1621.getAt(1);var pos_next_28 = let_result1621.getAt(2);var init_28 = let_result1621.getAt(3);var pos_cont_p_28 = let_result1621.getAt(4);var val_cont_p_27 = let_result1621.getAt(5);var all_cont_p_27 = let_result1621.getAt(6);var start_11 = 0;var end_5 = body13_0;var inc_1 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1622 = M0.rvoid();} else {var if_res1622 = check_range(start_11,end_5,inc_1);}if_res1622;var for_loop_27 = function(stms_30, rv_3, pos_83, pos_84) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_28!==false) {var if_res1623 = pos_cont_p_28(pos_83);} else {var if_res1623 = true;}if (if_res1623!==false) {var if_res1624 = M0.__lt_(pos_84,end_5);} else {var if_res1624 = false;}if (if_res1624!==false) {var e_21 = pos__gt_vals_27(pos_83);if (all_cont_p_27!==false) {var if_res1625 = function(pos_85) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_27(pos_85,e_21);};} else {var if_res1625 = false;}var let_result1626 = M0.values(e_21,if_res1625);var e_20 = let_result1626.getAt(0);var all_cont_p_by_pos_25 = let_result1626.getAt(1);if (pos_pre_inc_25!==false) {var if_res1627 = pos_pre_inc_25(pos_83);} else {var if_res1627 = pos_83;}var pos_86 = if_res1627;var body14_0 = pos_84;if (val_cont_p_27!==false) {var if_res1628 = val_cont_p_27(e_20);} else {var if_res1628 = true;}if (if_res1628!==false) {var if_res1629 = true;} else {var if_res1629 = false;}if (if_res1629!==false) {var stms_32 = stms_30;var last_p_1 = M0.equal_p(M0.sub1(body13_0),body14_0);if (last_p_1!==false) {var if_res1630 = overwrite_mark_frame_p_0;} else {var if_res1630 = false;}var let_result1631 = absyn_expr__gt_il(e_20,if_res1630);var s_18 = let_result1631.getAt(0);var nv_0 = let_result1631.getAt(1);if (last_p_1!==false) {var if_res1632 = M0.values(M0.append(stms_32,s_18),nv_0);} else {var if_res1632 = M0.values(M0.append(stms_32,s_18,M0.list(nv_0)),nv_0);}var let_result1633 = if_res1632;var stms_33 = let_result1633.getAt(0);var rv_5 = let_result1633.getAt(1);var let_result1634 = M0.values(stms_33,rv_5);var stms_31 = let_result1634.getAt(0);var rv_4 = let_result1634.getAt(1);if (all_cont_p_by_pos_25!==false) {var if_res1635 = all_cont_p_by_pos_25(pos_86);} else {var if_res1635 = true;}if (if_res1635!==false) {var if_res1636 = M0.not(false);} else {var if_res1636 = false;}if (if_res1636!==false) {var if_res1637 = for_loop_27(stms_31,rv_4,pos_next_28(pos_86),pos_84+inc_1);} else {var if_res1637 = M0.values(stms_31,rv_4);}var if_res1638 = if_res1637;} else {var if_res1638 = M0.values(stms_30,rv_3);}var if_res1639 = if_res1638;} else {var if_res1639 = M0.values(stms_30,rv_3);}return if_res1639;};var if_res1640 = for_loop_27(binding_stms_0,ILValue12_dot_1(M0.rvoid()),init_28,start_11);} else {var if_res1640 = alt_44();}return if_res1640;};if (If_p(v_67)!==false) {var let_result1641 = M0.vector__gt_values(vec_v_17,1);var pred_e_0 = let_result1641.getAt(0);var t_branch_0 = let_result1641.getAt(1);var f_branch_0 = let_result1641.getAt(2);var let_result1642 = absyn_expr__gt_il(pred_e_0,false);var ps_0 = let_result1642.getAt(0);var pe_0 = let_result1642.getAt(1);var let_result1643 = absyn_expr__gt_il(t_branch_0,overwrite_mark_frame_p_0);var ts_0 = let_result1643.getAt(0);var te_0 = let_result1643.getAt(1);var let_result1644 = absyn_expr__gt_il(f_branch_0,overwrite_mark_frame_p_0);var fs_2 = let_result1644.getAt(0);var fe_0 = let_result1644.getAt(1);var result_id_1 = fresh_id($rjs_core.PrimitiveSymbol.make("if_res"));var if_res1645 = M0.values(M0.append(ps_0,M0.list(ILIf22_dot_1(ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("!=="),M0.list(pe_0,ILValue12_dot_1(false))),append1(ts_0,ILVarDec20_dot_1(result_id_1,te_0)),append1(fs_2,ILVarDec20_dot_1(result_id_1,fe_0))))),result_id_1);} else {var if_res1645 = alt_43();}return if_res1645;};if (CaseLambda_p(v_67)!==false) {var clauses_1 = M0.vector__gt_values(vec_v_16,1);if (case_lambda_has_dead_clause_p(expr_6)!==false) {log_rjs_warning($rjs_core.UString.make("found a case-lambda with dead-clause"));var if_res1646 = M0.values($rjs_core.Pair.makeList(),clauses_1);} else {var if_res1646 = M0.values(filter(function(l_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.number_p(lambda_arity(l_23));},clauses_1),filter(function(l_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.number_p(lambda_arity(l_24)));},clauses_1));}var let_result1647 = if_res1646;var fixed_lams_0 = let_result1647.getAt(0);var rest_lams_0 = let_result1647.getAt(1);var let_result1648 = expand_normal_case_lambda(fixed_lams_0,rest_lams_0);var stms_34 = let_result1648.getAt(0);var val_7 = let_result1648.getAt(1);var let_result1649 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("c")),resolve_procedure_arities(map2(lambda_arity,clauses_1)));var pos__gt_vals_28 = let_result1649.getAt(0);var pos_pre_inc_26 = let_result1649.getAt(1);var pos_next_29 = let_result1649.getAt(2);var init_29 = let_result1649.getAt(3);var pos_cont_p_29 = let_result1649.getAt(4);var val_cont_p_28 = let_result1649.getAt(5);var all_cont_p_28 = let_result1649.getAt(6);M0.rvoid();var for_loop_28 = function(fold_var_12, pos_87) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_29!==false) {var if_res1650 = pos_cont_p_29(pos_87);} else {var if_res1650 = true;}if (if_res1650!==false) {var c_13 = pos__gt_vals_28(pos_87);if (all_cont_p_28!==false) {var if_res1651 = function(pos_88) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_28(pos_88,c_13);};} else {var if_res1651 = false;}var let_result1652 = M0.values(c_13,if_res1651);var c_12 = let_result1652.getAt(0);var all_cont_p_by_pos_26 = let_result1652.getAt(1);if (pos_pre_inc_26!==false) {var if_res1653 = pos_pre_inc_26(pos_87);} else {var if_res1653 = pos_87;}var pos_89 = if_res1653;if (val_cont_p_28!==false) {var if_res1654 = val_cont_p_28(c_12);} else {var if_res1654 = true;}if (if_res1654!==false) {var fold_var_14 = fold_var_12;if (M0.arity_at_least_p(c_12)!==false) {var let_result1655 = absyn_expr__gt_il(App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("make-arity-at-least"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1(M0.arity_at_least_value(c_12)))),false);var __7 = let_result1655.getAt(0);var val_8 = let_result1655.getAt(1);var if_res1657 = val_8;} else {if (M0.number_p(c_12)!==false) {var if_res1656 = ILValue12_dot_1(c_12);} else {var if_res1656 = M0.rvoid();}var if_res1657 = if_res1656;}var fold_var_15 = M0.cons(if_res1657,fold_var_14);var fold_var_13 = M0.values(fold_var_15);if (all_cont_p_by_pos_26!==false) {var if_res1658 = all_cont_p_by_pos_26(pos_89);} else {var if_res1658 = true;}if (if_res1658!==false) {var if_res1659 = M0.not(false);} else {var if_res1659 = false;}if (if_res1659!==false) {var if_res1660 = for_loop_28(fold_var_13,pos_next_29(pos_89));} else {var if_res1660 = fold_var_13;}var if_res1661 = if_res1660;} else {var if_res1661 = fold_var_12;}var if_res1662 = if_res1661;} else {var if_res1662 = fold_var_12;}return if_res1662;};var arities_0 = ILArray8_dot_1(reverse$1(for_loop_28(M0.rnull,init_29)));var if_res1663 = M0.values(stms_34,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("attachProcedureArity")),M0.list(val_7,arities_0)));} else {var if_res1663 = alt_42();}return if_res1663;};if (Lambda_p(v_67)!==false) {var let_result1664 = M0.vector__gt_values(vec_v_15,1);var formals_7 = let_result1664.getAt(0);var body_8 = let_result1664.getAt(1);var unchecked_p_0 = let_result1664.getAt(2);var ___gt_jslist_0 = function(f_31) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("->jslist");return ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.listFromArray")),M0.list(f_31));};var maybe_make_checked_formals_0 = function(formals_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("maybe-make-checked-formals");var or_part_74 = unchecked_p_0;if (or_part_74!==false) {var if_res1665 = or_part_74;} else {var if_res1665 = skip_arity_checks_p();}if (if_res1665!==false) {var if_res1666 = formals_8;} else {var if_res1666 = ILCheckedFormals4_dot_1(formals_8);}return if_res1666;};if (M0.symbol_p(formals_7)!==false) {var in_formals_1 = fresh_id(formals_7);var if_res1669 = M0.values(in_formals_1,M0.list(ILVarDec20_dot_1(formals_7,___gt_jslist_0(in_formals_1))));} else {if (M0.list_p(formals_7)!==false) {var if_res1668 = M0.values(formals_7,$rjs_core.Pair.makeList());} else {if (cons_p(formals_7)!==false) {var fi_0 = M0.car(formals_7);var fp_0 = M0.cdr(formals_7);var in_fp_0 = fresh_id(fp_0);var if_res1667 = M0.values(M0.cons(fi_0,in_fp_0),M0.list(ILVarDec20_dot_1(fp_0,___gt_jslist_0(in_fp_0))));} else {var if_res1667 = M0.rvoid();}var if_res1668 = if_res1667;}var if_res1669 = if_res1668;}var let_result1670 = if_res1669;var in_formals_0 = let_result1670.getAt(0);var stms_formals_init_0 = let_result1670.getAt(1);var body18_0 = sequence_length(body_8);var let_result1671 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),body_8);var pos__gt_vals_29 = let_result1671.getAt(0);var pos_pre_inc_27 = let_result1671.getAt(1);var pos_next_30 = let_result1671.getAt(2);var init_30 = let_result1671.getAt(3);var pos_cont_p_30 = let_result1671.getAt(4);var val_cont_p_29 = let_result1671.getAt(5);var all_cont_p_29 = let_result1671.getAt(6);var start_12 = 0;var end_6 = body18_0;var inc_2 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1672 = M0.rvoid();} else {var if_res1672 = check_range(start_12,end_6,inc_2);}if_res1672;var for_loop_29 = function(stms_35, rv_6, pos_90, pos_91) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_30!==false) {var if_res1673 = pos_cont_p_30(pos_90);} else {var if_res1673 = true;}if (if_res1673!==false) {var if_res1674 = M0.__lt_(pos_91,end_6);} else {var if_res1674 = false;}if (if_res1674!==false) {var e_23 = pos__gt_vals_29(pos_90);if (all_cont_p_29!==false) {var if_res1675 = function(pos_92) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_29(pos_92,e_23);};} else {var if_res1675 = false;}var let_result1676 = M0.values(e_23,if_res1675);var e_22 = let_result1676.getAt(0);var all_cont_p_by_pos_27 = let_result1676.getAt(1);if (pos_pre_inc_27!==false) {var if_res1677 = pos_pre_inc_27(pos_90);} else {var if_res1677 = pos_90;}var pos_93 = if_res1677;var body19_0 = pos_91;if (val_cont_p_29!==false) {var if_res1678 = val_cont_p_29(e_22);} else {var if_res1678 = true;}if (if_res1678!==false) {var if_res1679 = true;} else {var if_res1679 = false;}if (if_res1679!==false) {var stms_37 = stms_35;var last_p_2 = M0.equal_p(M0.sub1(body18_0),body19_0);if (last_p_2!==false) {var if_res1680 = overwrite_mark_frame_p_0;} else {var if_res1680 = false;}var let_result1681 = absyn_expr__gt_il(e_22,if_res1680);var s_19 = let_result1681.getAt(0);var v_88 = let_result1681.getAt(1);if (last_p_2!==false) {var if_res1682 = M0.values(M0.append(stms_37,s_19),v_88);} else {var if_res1682 = M0.values(M0.append(stms_37,s_19,M0.list(v_88)),v_88);}var let_result1683 = if_res1682;var stms_38 = let_result1683.getAt(0);var rv_8 = let_result1683.getAt(1);var let_result1684 = M0.values(stms_38,rv_8);var stms_36 = let_result1684.getAt(0);var rv_7 = let_result1684.getAt(1);if (all_cont_p_by_pos_27!==false) {var if_res1685 = all_cont_p_by_pos_27(pos_93);} else {var if_res1685 = true;}if (if_res1685!==false) {var if_res1686 = M0.not(false);} else {var if_res1686 = false;}if (if_res1686!==false) {var if_res1687 = for_loop_29(stms_36,rv_7,pos_next_30(pos_93),pos_91+inc_2);} else {var if_res1687 = M0.values(stms_36,rv_7);}var if_res1688 = if_res1687;} else {var if_res1688 = M0.values(stms_35,rv_6);}var if_res1689 = if_res1688;} else {var if_res1689 = M0.values(stms_35,rv_6);}return if_res1689;};var let_result1690 = for_loop_29($rjs_core.Pair.makeList(),ILValue12_dot_1(M0.rvoid()),init_30,start_12);var body_stms_0 = let_result1690.getAt(0);var body_value_0 = let_result1690.getAt(1);var lambda_expr_0 = ILLambda5_dot_1(maybe_make_checked_formals_0(in_formals_0),M0.append(stms_formals_init_0,body_stms_0,M0.list(ILReturn26_dot_1(body_value_0))));var temp1692 = $rjs_core.Pair.makeList();if (variadic_lambda_p(expr_6)!==false) {var if_res1691 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("attachProcedureArity")),M0.list(lambda_expr_0));} else {var if_res1691 = lambda_expr_0;}var if_res1693 = M0.values(temp1692,if_res1691);} else {var if_res1693 = alt_41();}return if_res1693;};var absyn_binding__gt_il = function(b_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_89 = b_28;var v_90 = v_89;var alt_78 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_90);};var p_140 = v_90;if (M0.pair_p(p_140)!==false) {var if_res1694 = true;} else {var if_res1694 = false;}if (if_res1694!==false) {var p_141 = v_90;var a_218 = M0.car(p_141);var args_18 = a_218;var d_64 = M0.cdr(p_141);var expr_9 = d_64;var let_result1695 = M0.values(args_18,expr_9);var args_17 = let_result1695.getAt(0);var expr_8 = let_result1695.getAt(1);var if_res1696 = M0.values(args_17,expr_8);} else {var if_res1696 = alt_78();}var let_result1697 = if_res1696;var args_16 = let_result1697.getAt(0);var expr_7 = let_result1697.getAt(1);var let_result1698 = absyn_expr__gt_il(expr_7,false);var stms_39 = let_result1698.getAt(0);var v_91 = let_result1698.getAt(1);var v_92 = args_16;var alt_79 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var result_id_2 = fresh_id($rjs_core.PrimitiveSymbol.make("let_result"));var start_13 = 0;var end_7 = M0.length(args_16);var inc_3 = 1;var let_result1699 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("arg")),args_16);var pos__gt_vals_30 = let_result1699.getAt(0);var pos_pre_inc_28 = let_result1699.getAt(1);var pos_next_31 = let_result1699.getAt(2);var init_31 = let_result1699.getAt(3);var pos_cont_p_31 = let_result1699.getAt(4);var val_cont_p_30 = let_result1699.getAt(5);var all_cont_p_30 = let_result1699.getAt(6);if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1700 = M0.rvoid();} else {var if_res1700 = check_range(start_13,end_7,inc_3);}if_res1700;M0.rvoid();var for_loop_30 = function(fold_var_16, pos_94, pos_95) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.__lt_(pos_94,end_7)!==false) {if (pos_cont_p_31!==false) {var if_res1701 = pos_cont_p_31(pos_95);} else {var if_res1701 = true;}var if_res1702 = if_res1701;} else {var if_res1702 = false;}if (if_res1702!==false) {var i_54 = pos_94;var arg_3 = pos__gt_vals_30(pos_95);if (all_cont_p_30!==false) {var if_res1703 = function(pos_96) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_30(pos_96,arg_3);};} else {var if_res1703 = false;}var let_result1704 = M0.values(arg_3,if_res1703);var arg_2 = let_result1704.getAt(0);var all_cont_p_by_pos_28 = let_result1704.getAt(1);if (pos_pre_inc_28!==false) {var if_res1705 = pos_pre_inc_28(pos_95);} else {var if_res1705 = pos_95;}var pos_97 = if_res1705;if (val_cont_p_30!==false) {var if_res1706 = val_cont_p_30(arg_2);} else {var if_res1706 = true;}if (if_res1706!==false) {var fold_var_18 = fold_var_16;var fold_var_19 = M0.cons(ILVarDec20_dot_1(arg_2,ILApp7_dot_1(ILRef10_dot_1(result_id_2,$rjs_core.PrimitiveSymbol.make("getAt")),M0.list(ILValue12_dot_1(i_54)))),fold_var_18);var fold_var_17 = M0.values(fold_var_19);if (all_cont_p_by_pos_28!==false) {var if_res1707 = all_cont_p_by_pos_28(pos_97);} else {var if_res1707 = true;}if (if_res1707!==false) {var if_res1708 = M0.not(false);} else {var if_res1708 = false;}if (if_res1708!==false) {var if_res1709 = for_loop_30(fold_var_17,pos_94+inc_3,pos_next_31(pos_97));} else {var if_res1709 = fold_var_17;}var if_res1710 = if_res1709;} else {var if_res1710 = fold_var_16;}var if_res1711 = if_res1710;} else {var if_res1711 = fold_var_16;}return if_res1711;};var binding_stms_1 = reverse$1(for_loop_30(M0.rnull,start_13,init_31));return M0.append(stms_39,M0.cons(ILVarDec20_dot_1(result_id_2,v_91),binding_stms_1));};var p_142 = v_92;if (M0.pair_p(p_142)!==false) {var a_219 = M0.cdr(p_142);var if_res1712 = M0.eq_p($rjs_core.Pair.makeList(),a_219);} else {var if_res1712 = false;}if (if_res1712!==false) {var a_221 = M0.car(v_92);var a_220 = a_221;var if_res1713 = append1(stms_39,ILVarDec20_dot_1(a_220,v_91));} else {var if_res1713 = alt_79();}return if_res1713;};var absyn_value__gt_il = function(d_65) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Quote_p(d_65)!==false) {var if_res1741 = absyn_value__gt_il(Quote_datum(d_65));} else {if (M0.string_p(d_65)!==false) {var if_res1740 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("UString.make")),M0.list(ILValue12_dot_1(d_65)));} else {if (M0.symbol_p(d_65)!==false) {var if_res1739 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("PrimitiveSymbol.make")),M0.list(ILValue12_dot_1(M0.symbol__gt_string(d_65))));} else {if (M0.keyword_p(d_65)!==false) {var if_res1738 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Keyword.make")),M0.list(ILValue12_dot_1(M0.keyword__gt_string(d_65))));} else {if (M0.list_p(d_65)!==false) {var if_res1737 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.makeList")),map2(absyn_value__gt_il,d_65));} else {if (empty_p(d_65)!==false) {var if_res1736 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.EMPTY"));} else {if (cons_p(d_65)!==false) {var if_res1735 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.make")),M0.list(absyn_value__gt_il(M0.car(d_65)),absyn_value__gt_il(M0.cdr(d_65))));} else {if (M0.vector_p(d_65)!==false) {var if_res1734 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Vector.make")),M0.list(ILArray8_dot_1(map2(absyn_value__gt_il,M0.vector__gt_list(d_65)))));} else {if (M0.hash_p(d_65)!==false) {if (M0.hash_eq_p(d_65)!==false) {var if_res1716 = $rjs_core.PrimitiveSymbol.make("Hash.makeEq");} else {if (M0.hash_eqv_p(d_65)!==false) {var if_res1715 = $rjs_core.PrimitiveSymbol.make("Hash.makeEqv");} else {if (M0.hash_equal_p(d_65)!==false) {var if_res1714 = $rjs_core.PrimitiveSymbol.make("Hash.makeEqual");} else {var if_res1714 = M0.error($rjs_core.PrimitiveSymbol.make("assemble-value"),$rjs_core.UString.make("unknown hash type"));}var if_res1715 = if_res1714;}var if_res1716 = if_res1715;}var maker_0 = if_res1716;var mutable_0 = M0.not(M0.immutable_p(d_65));var temp1721 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),maker_0);var ht_7 = d_65;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1717 = M0.rvoid();} else {var if_res1717 = check_in_hash(ht_7);}if_res1717;var for_loop_31 = function(fold_var_20, i_55) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_55!==false) {var let_result1718 = M0.hash_iterate_key_plus_value(ht_7,i_55);var key_12 = let_result1718.getAt(0);var value_4 = let_result1718.getAt(1);var fold_var_22 = fold_var_20;var fold_var_23 = M0.cons(ILArray8_dot_1(M0.list(absyn_value__gt_il(key_12),absyn_value__gt_il(value_4))),fold_var_22);var fold_var_21 = M0.values(fold_var_23);if (M0.not(false)!==false) {var if_res1719 = for_loop_31(fold_var_21,M0.hash_iterate_next(ht_7,i_55));} else {var if_res1719 = fold_var_21;}var if_res1720 = if_res1719;} else {var if_res1720 = fold_var_20;}return if_res1720;};var if_res1733 = ILApp7_dot_1(temp1721,M0.list(ILArray8_dot_1(reverse$1(for_loop_31(M0.rnull,M0.hash_iterate_first(ht_7)))),ILValue12_dot_1(mutable_0)));} else {if (M0.bytes_p(d_65)!==false) {var if_res1732 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Bytes.fromIntArray")),M0.list(ILArray8_dot_1(map2(ILValue12_dot_1,M0.bytes__gt_list(d_65)))));} else {if (M0.box_p(d_65)!==false) {var if_res1731 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Box.make")),M0.list(absyn_value__gt_il(M0.unbox(d_65))));} else {if (M0.char_p(d_65)!==false) {var if_res1730 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Char.charFromCodepoint")),M0.list(absyn_value__gt_il(M0.char__gt_integer(d_65))));} else {var or_part_75 = M0.regexp_p(d_65);if (or_part_75!==false) {var if_res1722 = or_part_75;} else {var if_res1722 = M0.byte_regexp_p(d_65);}if (if_res1722!==false) {var v_93 = M0.object_name(d_65);var temp1724 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Regexp.fromString"));if (M0.bytes_p(v_93)!==false) {var if_res1723 = M0.bytes__gt_string_by_utf_8(v_93);} else {var if_res1723 = v_93;}var if_res1729 = ILApp7_dot_1(temp1724,M0.list(ILValue12_dot_1(if_res1723)));} else {var or_part_76 = M0.integer_p(d_65);if (or_part_76!==false) {var if_res1727 = or_part_76;} else {var or_part_77 = M0.boolean_p(d_65);if (or_part_77!==false) {var if_res1726 = or_part_77;} else {var or_part_78 = M0.void_p(d_65);if (or_part_78!==false) {var if_res1725 = or_part_78;} else {var if_res1725 = M0.real_p(d_65);}var if_res1726 = if_res1725;}var if_res1727 = if_res1726;}if (if_res1727!==false) {var if_res1728 = ILValue12_dot_1(d_65);} else {var if_res1728 = M0.error(__a($rjs_core.UString.make("unsupported value"),d_65));}var if_res1729 = if_res1728;}var if_res1730 = if_res1729;}var if_res1731 = if_res1730;}var if_res1732 = if_res1731;}var if_res1733 = if_res1732;}var if_res1734 = if_res1733;}var if_res1735 = if_res1734;}var if_res1736 = if_res1735;}var if_res1737 = if_res1736;}var if_res1738 = if_res1737;}var if_res1739 = if_res1738;}var if_res1740 = if_res1739;}var if_res1741 = if_res1740;}return if_res1741;};var expand_normal_case_lambda = function(fixed_lams_1, rest_lams_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fixed_lam_names_0 = build_list(M0.length(fixed_lams_1),function(__8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fresh_id($rjs_core.PrimitiveSymbol.make("cl"));});var rest_lam_names_0 = build_list(M0.length(rest_lams_1),function(__9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fresh_id($rjs_core.PrimitiveSymbol.make("cl"));});var fixed_lam_name_0 = fresh_id($rjs_core.PrimitiveSymbol.make("fixed-lam"));var fixed_lam_map_0 = ILObject9_dot_1(map2(function(id_7, lam_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_4 = lambda_arity(lam_3);if (M0.number_p(arity_4)!==false) {var if_res1742 = M0.cons(M0.string__gt_symbol(__a(arity_4)),id_7);} else {var if_res1742 = M0.error($rjs_core.PrimitiveSymbol.make("expand-normal-case-lambda"),$rjs_core.UString.make("assertion failed"));}return if_res1742;},fixed_lam_names_0,fixed_lams_1));var __times_null_times__0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("null"))));var __times_arguments_times__0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("arguments"))));var loop_55 = function(lams_times__0, names_times__0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_94 = M0.list(lams_times__0,names_times__0);var alt_80 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_81 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_94);};var p_143 = v_94;if (M0.pair_p(p_143)!==false) {var a_222 = M0.car(p_143);var p_144 = a_222;if (M0.pair_p(p_144)!==false) {var if_res1743 = true;} else {var if_res1743 = false;}if (if_res1743!==false) {var a_223 = M0.cdr(p_143);var p_145 = a_223;if (M0.pair_p(p_145)!==false) {var a_224 = M0.car(p_145);var p_146 = a_224;if (M0.pair_p(p_146)!==false) {var if_res1744 = true;} else {var if_res1744 = false;}if (if_res1744!==false) {var a_225 = M0.cdr(p_145);var if_res1745 = M0.eq_p($rjs_core.Pair.makeList(),a_225);} else {var if_res1745 = false;}var if_res1746 = if_res1745;} else {var if_res1746 = false;}var if_res1747 = if_res1746;} else {var if_res1747 = false;}var if_res1748 = if_res1747;} else {var if_res1748 = false;}if (if_res1748!==false) {var p_147 = v_94;var a_226 = M0.car(p_147);var p_148 = a_226;var a_227 = M0.car(p_148);var lh_2 = a_227;var d_66 = M0.cdr(p_148);var lt_2 = d_66;var let_result1749 = M0.values(lh_2,lt_2);var lh_1 = let_result1749.getAt(0);var lt_1 = let_result1749.getAt(1);var d_67 = M0.cdr(p_147);var a_228 = M0.car(d_67);var p_149 = a_228;var a_229 = M0.car(p_149);var nh_2 = a_229;var d_68 = M0.cdr(p_149);var nt_2 = d_68;var let_result1750 = M0.values(nh_2,nt_2);var nh_1 = let_result1750.getAt(0);var nt_1 = let_result1750.getAt(1);var let_result1751 = M0.values(lh_1,lt_1,nh_1,nt_1);var lh_0 = let_result1751.getAt(0);var lt_0 = let_result1751.getAt(1);var nh_0 = let_result1751.getAt(2);var nt_0 = let_result1751.getAt(3);var arguments_length_0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("ref")),LocalIdent6_dot_1(nh_0),Quote7_dot_1($rjs_core.PrimitiveSymbol.make("length"))));var if_res1752 = If12_dot_1(get_formals_predicate(lh_0)(arguments_length_0),App9_dot_1(App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("ref")),LocalIdent6_dot_1(nh_0),Quote7_dot_1($rjs_core.PrimitiveSymbol.make("apply")))),M0.list(__times_null_times__0,__times_arguments_times__0)),loop_55(lt_0,nt_0));} else {var if_res1752 = alt_81();}return if_res1752;};var p_150 = v_94;if (M0.pair_p(p_150)!==false) {var a_230 = M0.car(p_150);if (M0.eq_p($rjs_core.Pair.makeList(),a_230)!==false) {var a_231 = M0.cdr(p_150);var p_151 = a_231;if (M0.pair_p(p_151)!==false) {var a_232 = M0.car(p_151);if (M0.eq_p($rjs_core.Pair.makeList(),a_232)!==false) {var a_233 = M0.cdr(p_151);var if_res1753 = M0.eq_p($rjs_core.Pair.makeList(),a_233);} else {var if_res1753 = false;}var if_res1754 = if_res1753;} else {var if_res1754 = false;}var if_res1755 = if_res1754;} else {var if_res1755 = false;}var if_res1756 = if_res1755;} else {var if_res1756 = false;}if (if_res1756!==false) {var if_res1757 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("error"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.UString.make("case-lambda: invalid case"))));} else {var if_res1757 = alt_80();}return if_res1757;};var let_result1758 = absyn_expr__gt_il(loop_55(rest_lams_1,rest_lam_names_0),false);var var_lam_stms_0 = let_result1758.getAt(0);var var_lam_val_0 = let_result1758.getAt(1);var dispatch_stms_0 = M0.list(ILVarDec20_dot_1(fixed_lam_name_0,ILIndex11_dot_1(fixed_lam_map_0,ILRef10_dot_1(ILArguments18_dot_1(),$rjs_core.PrimitiveSymbol.make("length")))),ILIf22_dot_1(ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("!=="),M0.list(fixed_lam_name_0,ILUndefined17_dot_1())),M0.list(ILReturn26_dot_1(ILApp7_dot_1(ILRef10_dot_1(fixed_lam_name_0,$rjs_core.PrimitiveSymbol.make("apply")),M0.list(ILNull16_dot_1(),ILArguments18_dot_1())))),append1(var_lam_stms_0,ILReturn26_dot_1(var_lam_val_0))));var make_lam_0 = function(id_8, lam_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-lam");var let_result1759 = absyn_expr__gt_il(lam_4,false);var stms_40 = let_result1759.getAt(0);var lam_expr_0 = let_result1759.getAt(1);stms_40;return ILVarDec20_dot_1(id_8,lam_expr_0);};return M0.values(M0.append(map2(make_lam_0,fixed_lam_names_0,fixed_lams_1),map2(make_lam_0,rest_lam_names_0,rest_lams_1)),ILLambda5_dot_1($rjs_core.Pair.makeList(),dispatch_stms_0));};var case_lambda_has_dead_clause_p = function(clam_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1760 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("lam")),CaseLambda_clauses(clam_0));var pos__gt_vals_31 = let_result1760.getAt(0);var pos_pre_inc_29 = let_result1760.getAt(1);var pos_next_32 = let_result1760.getAt(2);var init_32 = let_result1760.getAt(3);var pos_cont_p_32 = let_result1760.getAt(4);var val_cont_p_31 = let_result1760.getAt(5);var all_cont_p_31 = let_result1760.getAt(6);M0.rvoid();var for_loop_32 = function(res_9, least_var_arity_0, pos_98) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_32!==false) {var if_res1761 = pos_cont_p_32(pos_98);} else {var if_res1761 = true;}if (if_res1761!==false) {var lam_6 = pos__gt_vals_31(pos_98);if (all_cont_p_31!==false) {var if_res1762 = function(pos_99) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_31(pos_99,lam_6);};} else {var if_res1762 = false;}var let_result1763 = M0.values(lam_6,if_res1762);var lam_5 = let_result1763.getAt(0);var all_cont_p_by_pos_29 = let_result1763.getAt(1);if (pos_pre_inc_29!==false) {var if_res1764 = pos_pre_inc_29(pos_98);} else {var if_res1764 = pos_98;}var pos_100 = if_res1764;if (val_cont_p_31!==false) {var if_res1765 = val_cont_p_31(lam_5);} else {var if_res1765 = true;}if (if_res1765!==false) {var res_11 = res_9;var least_var_arity_2 = least_var_arity_0;var arity_5 = lambda_arity(lam_5);if (M0.number_p(arity_5)!==false) {var if_res1766 = M0.__lt_(arity_5,least_var_arity_2);} else {var if_res1766 = false;}if (if_res1766!==false) {var if_res1771 = M0.values(res_11,least_var_arity_2);} else {if (M0.number_p(arity_5)!==false) {var if_res1770 = M0.values(true,least_var_arity_2);} else {if (M0.arity_at_least_p(arity_5)!==false) {var if_res1767 = M0.__lt_(M0.arity_at_least_value(arity_5),least_var_arity_2);} else {var if_res1767 = false;}if (if_res1767!==false) {var if_res1769 = M0.values(res_11,M0.arity_at_least_value(arity_5));} else {if (M0.arity_at_least_p(arity_5)!==false) {var if_res1768 = M0.values(true,least_var_arity_2);} else {var if_res1768 = M0.rvoid();}var if_res1769 = if_res1768;}var if_res1770 = if_res1769;}var if_res1771 = if_res1770;}var let_result1772 = if_res1771;var res_12 = let_result1772.getAt(0);var least_var_arity_3 = let_result1772.getAt(1);var let_result1773 = M0.values(res_12,least_var_arity_3);var res_10 = let_result1773.getAt(0);var least_var_arity_1 = let_result1773.getAt(1);if (all_cont_p_by_pos_29!==false) {var if_res1774 = all_cont_p_by_pos_29(pos_100);} else {var if_res1774 = true;}if (if_res1774!==false) {var if_res1775 = M0.not(false);} else {var if_res1775 = false;}if (if_res1775!==false) {var if_res1776 = for_loop_32(res_10,least_var_arity_1,pos_next_32(pos_100));} else {var if_res1776 = M0.values(res_10,least_var_arity_1);}var if_res1777 = if_res1776;} else {var if_res1777 = M0.values(res_9,least_var_arity_0);}var if_res1778 = if_res1777;} else {var if_res1778 = M0.values(res_9,least_var_arity_0);}return if_res1778;};var let_result1779 = for_loop_32(false,Infinity,init_32);var result_11 = let_result1779.getAt(0);var __10 = let_result1779.getAt(1);return result_11;};var get_formals_predicate = function(c_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var frmls_1 = Lambda_formals(c_14);if (M0.symbol_p(frmls_1)!==false) {var if_res1782 = function(__11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return Quote7_dot_1(true);};} else {if (M0.list_p(frmls_1)!==false) {var if_res1781 = function(v_95) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("equal?"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(v_95,Quote7_dot_1(M0.length(frmls_1))));};} else {if (cons_p(frmls_1)!==false) {var if_res1780 = function(v_96) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make(">="),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(v_96,Quote7_dot_1(M0.sub1(M0.length(improper__gt_proper(frmls_1))))));};} else {var if_res1780 = M0.rvoid();}var if_res1781 = if_res1780;}var if_res1782 = if_res1781;}return if_res1782;};var resolve_procedure_arities = function(arities_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_lt__0 = function(a_234, b_29) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity<");if (M0.arity_at_least_p(a_234)!==false) {var if_res1784 = M0.arity_at_least_value(a_234);} else {var if_res1784 = a_234;}if (M0.arity_at_least_p(b_29)!==false) {var if_res1783 = M0.arity_at_least_value(b_29);} else {var if_res1783 = b_29;}return M0.__lt_(if_res1784,if_res1783);};var arity_equal_p_0 = function(a_235, b_30) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity-equal?");if (M0.not(arity_lt__0(a_235,b_30))!==false) {var if_res1785 = M0.not(arity_lt__0(b_30,a_235));} else {var if_res1785 = false;}return if_res1785;};var loop_56 = function(arities_times__0, result_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_97 = arities_times__0;var alt_82 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_83 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_84 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_97);};var p_152 = v_97;if (M0.pair_p(p_152)!==false) {var if_res1786 = true;} else {var if_res1786 = false;}if (if_res1786!==false) {var p_153 = v_97;var a_236 = M0.car(p_153);var hd_9 = a_236;var d_69 = M0.cdr(p_153);var tl_4 = d_69;var let_result1787 = M0.values(hd_9,tl_4);var hd_8 = let_result1787.getAt(0);var tl_3 = let_result1787.getAt(1);if (cons_p(result_12)!==false) {var if_res1788 = arity_equal_p_0(M0.car(result_12),hd_8);} else {var if_res1788 = false;}if (if_res1788!==false) {var if_res1789 = result_12;} else {var if_res1789 = M0.cons(hd_8,result_12);}var if_res1790 = loop_56(tl_3,if_res1789);} else {var if_res1790 = alt_84();}return if_res1790;};var p_154 = v_97;if (M0.pair_p(p_154)!==false) {var if_res1791 = true;} else {var if_res1791 = false;}if (if_res1791!==false) {var p_155 = v_97;var a_237 = M0.car(p_155);var hd_11 = a_237;var d_70 = M0.cdr(p_155);var tl_6 = d_70;var let_result1792 = M0.values(hd_11,tl_6);var hd_10 = let_result1792.getAt(0);var tl_5 = let_result1792.getAt(1);if (M0.arity_at_least_p(hd_10)!==false) {if (cons_p(result_12)!==false) {var if_res1793 = arity_equal_p_0(M0.car(result_12),hd_10);} else {var if_res1793 = false;}if (if_res1793!==false) {var if_res1794 = M0.cons(hd_10,M0.cdr(result_12));} else {var if_res1794 = M0.cons(hd_10,result_12);}var if_res1795 = reverse$1(if_res1794);} else {var if_res1795 = alt_83();}var if_res1796 = if_res1795;} else {var if_res1796 = alt_83();}return if_res1796;};if (M0.eq_p($rjs_core.Pair.makeList(),v_97)!==false) {var if_res1797 = reverse$1(result_12);} else {var if_res1797 = alt_82();}return if_res1797;};var arities23_0 = arities_1;var arity_lt_24_0 = arity_lt__0;return loop_56(sort_dot_1(false,false,arities23_0,arity_lt_24_0),$rjs_core.Pair.makeList());};var make_curry = function(right_p_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_upper_bound_0 = function(mask_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity-upper-bound");if (M0.eqv_p(mask_10,0)!==false) {var if_res1799 = false;} else {if (M0.negative_p(mask_10)!==false) {var if_res1798 = Infinity;} else {var if_res1798 = M0.sub1(M0.integer_length(mask_10));}var if_res1799 = if_res1798;}return if_res1799;};var partially_applied_procedure_arity_mask_0 = function(mask_11, num_args_so_far_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("partially-applied-procedure-arity-mask");if (M0.negative_p(mask_11)!==false) {var if_res1800 = -1;} else {var if_res1800 = M0.sub1(M0.arithmetic_shift(1,M0.integer_length(mask_11)-num_args_so_far_0));}return if_res1800;};if (right_p_0!==false) {var if_res1801 = $rjs_core.PrimitiveSymbol.make("curryr");} else {var if_res1801 = $rjs_core.PrimitiveSymbol.make("curry");}var who_7 = if_res1801;if (right_p_0!==false) {var if_res1802 = function(pos_args_so_far_0, new_pos_args_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-pos-args");return M0.append(new_pos_args_0,pos_args_so_far_0);};} else {var if_res1802 = function(pos_args_so_far_1, new_pos_args_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-pos-args");return M0.append(pos_args_so_far_1,new_pos_args_1);};}var incorporate_new_pos_args_0 = if_res1802;var do_curry_0 = function(f_32) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("do-curry");if (M0.procedure_p(f_32)!==false) {var if_res1803 = M0.rvoid();} else {var if_res1803 = M0.raise_argument_error(who_7,$rjs_core.UString.make("procedure?"),f_32);}if_res1803;var name_13 = M0.object_name(f_32);if (M0.symbol_p(name_13)!==false) {var if_res1804 = M0.string__gt_symbol(M0.string_append($rjs_core.UString.make("curried:"),M0.symbol__gt_string(name_13)));} else {var if_res1804 = $rjs_core.PrimitiveSymbol.make("curried");}var curried_name_0 = if_res1804;var arity_mask_1 = M0.procedure_arity_mask(f_32);var max_arity_0 = arity_upper_bound_0(arity_mask_1);var let_result1805 = procedure_keywords(f_32);var required_kws_0 = let_result1805.getAt(0);var allowed_kws_2 = let_result1805.getAt(1);if (M0.null_p(allowed_kws_2)!==false) {var reduce_arity_by_rename_0 = function(proc_17, num_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reduce-arity/rename");return new_procedure_reduce_arity_mask(proc_17,partially_applied_procedure_arity_mask_0(arity_mask_1,num_args_so_far_1),curried_name_0);};var make_curried_0 = function(args_so_far_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-curried");return reduce_arity_by_rename_0($rjs_core.attachProcedureArity(function(...new_args_01806) {var new_args_0 = $rjs_core.Pair.listFromArray(new_args_01806);var args_19 = incorporate_new_pos_args_0(args_so_far_0,new_args_0);if (M0.procedure_arity_includes_p(f_32,M0.length(args_19))!==false) {var if_res1807 = M0.apply(f_32,args_19);} else {var if_res1807 = make_curried_0(args_19);}return if_res1807;}),M0.length(args_so_far_0));};var if_res1832 = reduce_arity_by_rename_0($rjs_core.attachProcedureArity(function(...args_201808) {var args_20 = $rjs_core.Pair.listFromArray(args_201808);if (M0.__eq_(M0.length(args_20),max_arity_0)!==false) {var if_res1809 = M0.apply(f_32,args_20);} else {var if_res1809 = make_curried_0(args_20);}return if_res1809;}),0);} else {var incorporate_new_kws_plus_args_0 = function(kws_plus_args_so_far_0, new_kws_plus_args_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-kws+args");var ht_8 = new_kws_plus_args_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1810 = M0.rvoid();} else {var if_res1810 = check_in_hash(ht_8);}if_res1810;var for_loop_33 = function(kws_plus_args_0, i_56) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_56!==false) {var let_result1811 = M0.hash_iterate_key_plus_value(ht_8,i_56);var kw_1 = let_result1811.getAt(0);var arg_4 = let_result1811.getAt(1);var kws_plus_args_2 = kws_plus_args_0;if (hash_has_key_p(kws_plus_args_2,kw_1)!==false) {var if_res1812 = M0.raise_arguments_error(curried_name_0,$rjs_core.UString.make("duplicate keyword for procedure"),$rjs_core.UString.make("keyword"),kw_1,$rjs_core.UString.make("first value"),M0.hash_ref(kws_plus_args_2,kw_1),$rjs_core.UString.make("second value"),arg_4);} else {var if_res1812 = M0.hash_set(kws_plus_args_2,kw_1,arg_4);}var kws_plus_args_3 = if_res1812;var kws_plus_args_1 = M0.values(kws_plus_args_3);if (M0.not(false)!==false) {var if_res1813 = for_loop_33(kws_plus_args_1,M0.hash_iterate_next(ht_8,i_56));} else {var if_res1813 = kws_plus_args_1;}var if_res1814 = if_res1813;} else {var if_res1814 = kws_plus_args_0;}return if_res1814;};return for_loop_33(kws_plus_args_so_far_0,M0.hash_iterate_first(ht_8));};var reduce_arity_by_rename_1 = function(proc_18, num_args_so_far_2, kw_plus_args_so_far_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reduce-arity/rename");var temp1817 = partially_applied_procedure_arity_mask_0(arity_mask_1,num_args_so_far_2);var temp1816 = $rjs_core.Pair.makeList();if (allowed_kws_2!==false) {var if_res1815 = filter(function(kw_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(hash_has_key_p(kw_plus_args_so_far_0,kw_2));},allowed_kws_2);} else {var if_res1815 = false;}return procedure_reduce_keyword_arity_mask(proc_18,temp1817,temp1816,if_res1815,curried_name_0);};var make_curried_1 = function(pos_args_so_far_2, kws_plus_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-curried");return reduce_arity_by_rename_1(make_keyword_procedure($rjs_core.attachProcedureArity(function(new_kws_0, new_kw_args_0, ...new_pos_args_21819) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var new_pos_args_2 = $rjs_core.Pair.listFromArray(new_pos_args_21819);return step_7(incorporate_new_pos_args_0(pos_args_so_far_2,new_pos_args_2),incorporate_new_kws_plus_args_0(kws_plus_args_so_far_1,M0.make_immutable_hasheq(map2(M0.cons,new_kws_0,new_kw_args_0))));}),$rjs_core.attachProcedureArity(function(...new_pos_args_31818) {var new_pos_args_3 = $rjs_core.Pair.listFromArray(new_pos_args_31818);return step_7(incorporate_new_pos_args_0(pos_args_so_far_2,new_pos_args_3),kws_plus_args_so_far_1);})),M0.length(pos_args_so_far_2),kws_plus_args_so_far_1);};var step_7 = function(pos_args_so_far_3, kw_plus_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("step");if (M0.procedure_arity_includes_p(f_32,M0.length(pos_args_so_far_3),true)!==false) {var lst_18 = required_kws_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1820 = M0.rvoid();} else {var if_res1820 = check_list(lst_18);}if_res1820;var for_loop_34 = function(result_13, lst_19) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_19)!==false) {var required_kw_0 = M0.unsafe_car(lst_19);var rest_5 = M0.unsafe_cdr(lst_19);var result_15 = hash_has_key_p(kw_plus_args_so_far_1,required_kw_0);var result_14 = M0.values(result_15);if (M0.not($rjs_core.attachProcedureArity(function(...x_21821) {var x_2 = $rjs_core.Pair.listFromArray(x_21821);return M0.not(result_14);})(required_kw_0))!==false) {var if_res1822 = M0.not(false);} else {var if_res1822 = false;}if (if_res1822!==false) {var if_res1823 = for_loop_34(result_14,rest_5);} else {var if_res1823 = result_14;}var if_res1824 = if_res1823;} else {var if_res1824 = result_13;}return if_res1824;};var if_res1825 = for_loop_34(true,lst_18);} else {var if_res1825 = false;}if (if_res1825!==false) {var temp1_0 = hash__gt_list(kw_plus_args_so_far_1);var keyword_lt__p2_0 = M0.keyword_lt__p;var car3_0 = M0.car;var sorted_kw_plus_args_0 = sort_dot_1(false,car3_0,temp1_0,keyword_lt__p2_0);var kws_23 = map2(M0.car,sorted_kw_plus_args_0);var kw_args_9 = map2(M0.cdr,sorted_kw_plus_args_0);var if_res1826 = new_keyword_apply(f_32,kws_23,kw_args_9,pos_args_so_far_3);} else {var if_res1826 = make_curried_1(pos_args_so_far_3,kw_plus_args_so_far_1);}return if_res1826;};var if_res1832 = reduce_arity_by_rename_1(make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_24, kw_args_10, ...pos_args_01828) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var pos_args_0 = $rjs_core.Pair.listFromArray(pos_args_01828);if (M0.__eq_(M0.length(pos_args_0),max_arity_0)!==false) {if (allowed_kws_2!==false) {var if_res1829 = M0.__eq_(M0.length(kws_24),M0.length(allowed_kws_2));} else {var if_res1829 = false;}var if_res1830 = if_res1829;} else {var if_res1830 = false;}if (if_res1830!==false) {var if_res1831 = new_keyword_apply(f_32,kws_24,kw_args_10,pos_args_0);} else {var if_res1831 = make_curried_1(pos_args_0,M0.make_immutable_hasheq(map2(M0.cons,kws_24,kw_args_10)));}return if_res1831;}),$rjs_core.attachProcedureArity(function(...pos_args_11827) {var pos_args_1 = $rjs_core.Pair.listFromArray(pos_args_11827);return make_curried_1(pos_args_1,$rjs_core.Hash.makeEq([],false));})),0,$rjs_core.Hash.makeEq([],false));}return if_res1832;};var temp1841 = $rjs_core.attachProcedureArity(function(kws_25, kw_args_11, f_33, ...args_211838) {if (arguments.length<3) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_21 = $rjs_core.Pair.listFromArray(args_211838);var curried_0 = do_curry_0(f_33);if (M0.null_p(kws_25)!==false) {if (M0.null_p(args_21)!==false) {var if_res1839 = curried_0;} else {var if_res1839 = M0.apply(curried_0,args_21);}var if_res1840 = if_res1839;} else {var if_res1840 = new_keyword_apply(curried_0,kws_25,kw_args_11,args_21);}return if_res1840;});var cl1833 = function(f_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_curry_0(f_34);};var cl1834 = $rjs_core.attachProcedureArity(function(f_35, ...args_221837) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_22 = $rjs_core.Pair.listFromArray(args_221837);return M0.apply(do_curry_0(f_35),args_22);});return new_procedure_rename(make_keyword_procedure(temp1841,$rjs_core.attachProcedureArity(function() {var fixed_lam1835 = {'1':cl1833}[arguments.length];if (fixed_lam1835!==undefined) {return fixed_lam1835.apply(null,arguments);} else {if (M0.__gt__eq_(cl1834.length,1)!==false) {var if_res1836 = cl1834.apply(null,arguments);} else {var if_res1836 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res1836;}},[M0.make_arity_at_least(1)])),who_7);};var curry = make_curry(false);var curryr = make_curry(true);var _1_by_compile_linklet = function(sexp_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compile-linklet");return absyn_linklet__gt_il(parse_linklet(sexp_1,$rjs_core.UString.make("/home/gamburgm/racketscript/racketscript.rkt")));};var _1_by_linklet_import_variables = function(lnk_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("linklet-import-variables");return Linklet_imports(lnk_1);};export { _1_by_compile_linklet as compile_linklet,_1_by_linklet_import_variables as linklet_import_variables }; \ No newline at end of file From b71af49e84bf8423480160ac2e574437891fa9da Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 14:46:10 -0400 Subject: [PATCH 164/170] update runtime --- racketscript-compiler/racketscript/compiler/linklet-api.rkt | 6 +++--- racketscript-compiler/racketscript/compiler/runtime/core.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 96f36eb9..f4b7e286 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -16,13 +16,13 @@ ;; TODO temporary, for debugging/checking purposes (define (everything) - (define sexp (read (open-input-file "../../../racketscript.rktl"))) + (define sexp (read (open-input-file "../../../expander.rktl"))) (call-with-output-file - "../../../js-build/modules/racketscript.js" + "../../../js-build/modules/expander.js" (λ (out) (assemble-linklet (insert-arity-checks - (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) out)) #:exists 'replace)) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core.js b/racketscript-compiler/racketscript/compiler/runtime/core.js index 146ce78d..9344e6d5 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core.js @@ -19,12 +19,13 @@ import * as Vector from './core/vector.js'; import * as Marks from './core/marks.js'; import * as MPair from './core/mpair.js'; import * as Correlated from './core/correlated.js'; -import * as Linklet from './core/linklet.js'; +// import * as Linklet from './core/linklet.js'; import * as Path from './core/path.js'; import * as KernelTable from './core/kernel_table.js'; import * as Thread from './core/thread.js'; import * as Semaphore from './core/semaphore.js'; import * as FS from './core/FS.js'; +import * as Linklet from './core/racketscript.js'; export { Bytes, From 1710f847d80f819738acc325b540a09b03d42578 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 14:46:29 -0400 Subject: [PATCH 165/170] rename random.js --- random.js => main.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename random.js => main.js (100%) diff --git a/random.js b/main.js similarity index 100% rename from random.js rename to main.js From c51d3f409088511f5c3bc51c94f5f0f2da385ebe Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 16:04:02 -0400 Subject: [PATCH 166/170] equality + undoing circular dependency --- racketscript-compiler/racketscript/compiler/runtime/core.js | 4 +--- .../racketscript/compiler/runtime/core/path.js | 5 +++++ .../racketscript/compiler/runtime/core/racketscript.js | 1 - 3 files changed, 6 insertions(+), 4 deletions(-) delete mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js diff --git a/racketscript-compiler/racketscript/compiler/runtime/core.js b/racketscript-compiler/racketscript/compiler/runtime/core.js index 9344e6d5..6ac54a80 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core.js @@ -19,13 +19,12 @@ import * as Vector from './core/vector.js'; import * as Marks from './core/marks.js'; import * as MPair from './core/mpair.js'; import * as Correlated from './core/correlated.js'; -// import * as Linklet from './core/linklet.js'; +import * as Linklet from './core/linklet.js'; import * as Path from './core/path.js'; import * as KernelTable from './core/kernel_table.js'; import * as Thread from './core/thread.js'; import * as Semaphore from './core/semaphore.js'; import * as FS from './core/FS.js'; -import * as Linklet from './core/racketscript.js'; export { Bytes, @@ -124,5 +123,4 @@ class UnsafeUndefined extends PrintablePrimitive { } } -// eslint-disable-next-line no-unused-vars export const theUnsafeUndefined = new UnsafeUndefined(); diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/path.js b/racketscript-compiler/racketscript/compiler/runtime/core/path.js index d0dafc4c..fcccc532 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/core/path.js +++ b/racketscript-compiler/racketscript/compiler/runtime/core/path.js @@ -3,6 +3,7 @@ import { make as values } from './values.js'; import { make as sym } from './primitive_symbol.js'; import { displayNativeString, writeNativeString } from './print_native_string.js'; import { displayUString, writeUString } from './print_ustring.js'; +import { isEqual } from './equality.js'; const UNIX_PATH_SEP = '/'; @@ -124,6 +125,10 @@ class Path extends PrintablePrimitive { writeUString(out, this.s); out.consume('>'); } + + equals(v) { + return isEqual(this.s, v.s); + } } export function fromString(s) { return new Path(s); } diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js b/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js deleted file mode 100644 index 1234e931..00000000 --- a/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js +++ /dev/null @@ -1 +0,0 @@ -import * as $rjs_core from '../runtime/core.js';import * as M0 from "../runtime/kernel.rkt.js";var bad_list$1 = function(who_0, orig_l_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("bad-list");return M0.raise_arguments_error(who_0,$rjs_core.UString.make("not a proper list"),$rjs_core.UString.make("in"),orig_l_0);};var member_0 = function(v_0, orig_l_1, eql_p_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("member");var loop_0 = function(ls_0, turtle_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_0)!==false) {var if_res7 = false;} else {if (M0.not(M0.pair_p(ls_0))!==false) {var if_res6 = bad_list$1($rjs_core.PrimitiveSymbol.make("member"),orig_l_1);} else {if (eql_p_0(v_0,M0.car(ls_0))!==false) {var if_res5 = ls_0;} else {var ls_1 = M0.cdr(ls_0);if (M0.null_p(ls_1)!==false) {var if_res4 = false;} else {var or_part_0 = M0.not(M0.pair_p(ls_1));if (or_part_0!==false) {var if_res1 = or_part_0;} else {var if_res1 = M0.eq_p(ls_1,turtle_0);}if (if_res1!==false) {var if_res3 = bad_list$1($rjs_core.PrimitiveSymbol.make("member"),orig_l_1);} else {if (eql_p_0(v_0,M0.car(ls_1))!==false) {var if_res2 = ls_1;} else {var if_res2 = loop_0(M0.cdr(ls_1),M0.cdr(turtle_0));}var if_res3 = if_res2;}var if_res4 = if_res3;}var if_res5 = if_res4;}var if_res6 = if_res5;}var if_res7 = if_res6;}return if_res7;};return loop_0(orig_l_1,orig_l_1);};var cl8 = function(v_1, ls_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return member_0(v_1,ls_2,M0.equal_p);};var cl9 = function(v_2, ls_3, eql_p_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(eql_p_1)!==false) {var if_res11 = M0.procedure_arity_includes_p(eql_p_1,2);} else {var if_res11 = false;}if (if_res11!==false) {var if_res12 = M0.rvoid();} else {var if_res12 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("member"),$rjs_core.UString.make("(procedure-arity-includes/c 2)"),M0.eq_p);}if_res12;return member_0(v_2,ls_3,eql_p_1);};var member = $rjs_core.attachProcedureArity(function() {var fixed_lam10 = {'2':cl8,'3':cl9}[arguments.length];if (fixed_lam10!==undefined) {return fixed_lam10.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var not_there = M0.gensym();var hash_has_key_p = function(ht_0, key_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(ht_0)!==false) {var if_res13 = M0.rvoid();} else {var if_res13 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash-has-key?"),$rjs_core.UString.make("hash?"),0,ht_0,key_0);}if_res13;return M0.not(M0.eq_p(not_there,M0.hash_ref(ht_0,key_0,not_there)));};var hash_ref_bang_ = function(ht_1, key_1, new_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(ht_1)!==false) {var if_res14 = M0.not(M0.immutable_p(ht_1));} else {var if_res14 = false;}if (if_res14!==false) {var if_res15 = M0.rvoid();} else {var if_res15 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash-ref!"),$rjs_core.UString.make("(and/c hash? (not/c immutable?))"),0,ht_1,key_1,new_0);}if_res15;var v_3 = M0.hash_ref(ht_1,key_1,not_there);if (M0.eq_p(not_there,v_3)!==false) {if (M0.procedure_p(new_0)!==false) {var if_res16 = new_0();} else {var if_res16 = new_0;}var n_0 = if_res16;M0.hash_set_bang_(ht_1,key_1,n_0);var if_res17 = n_0;} else {var if_res17 = v_3;}return if_res17;};var cl18 = function(v_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return displayln(v_4,M0.current_output_port());};var cl19 = function(v_5, p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.output_port_p(p_0)!==false) {var if_res21 = M0.rvoid();} else {var if_res21 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("displayln"),$rjs_core.UString.make("output-port?"),1,v_5,p_0);}if_res21;M0.display(v_5,p_0);return M0.newline(p_0);};var displayln = $rjs_core.attachProcedureArity(function() {var fixed_lam20 = {'1':cl18,'2':cl19}[arguments.length];if (fixed_lam20!==undefined) {return fixed_lam20.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var let_result22 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("keyword-impersonator"));var prop_keyword_impersonator = let_result22.getAt(0);var keyword_impersonator_p = let_result22.getAt(1);var keyword_impersonator_ref = let_result22.getAt(2);var keyword_procedure_impersonator_of = function(v_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_impersonator_p(v_6)!==false) {var if_res23 = keyword_impersonator_ref(v_6)(v_6);} else {var if_res23 = false;}return if_res23;};var let_result24 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("keyword-procedure"),false,4,0,false,M0.list(M0.cons(M0.prop_checked_procedure,true),M0.cons(M0.prop_impersonator_of,keyword_procedure_impersonator_of)),M0.current_inspector(),false,$rjs_core.Pair.makeList(0,1,2,3));var struct_keyword_procedure = let_result24.getAt(0);var mk_kw_proc = let_result24.getAt(1);var keyword_procedure_p = let_result24.getAt(2);var keyword_procedure_ref = let_result24.getAt(3);var keyword_procedure_set_bang_ = let_result24.getAt(4);var keyword_procedure_checker = M0.make_struct_field_accessor(keyword_procedure_ref,0);var keyword_procedure_proc = M0.make_struct_field_accessor(keyword_procedure_ref,1);var keyword_procedure_required = M0.make_struct_field_accessor(keyword_procedure_ref,2);var keyword_procedure_allowed = M0.make_struct_field_accessor(keyword_procedure_ref,3);var let_result25 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,0,0,false,M0.list(M0.cons(M0.prop_method_arity_error,true)));var struct_keyword_method = let_result25.getAt(0);var make_km = let_result25.getAt(1);var keyword_method_p = let_result25.getAt(2);var km_ref = let_result25.getAt(3);var km_set_bang_ = let_result25.getAt(4);var generate_arity_string = function(proc_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result26 = procedure_keywords(proc_0);var req_0 = let_result26.getAt(0);var allowed_0 = let_result26.getAt(1);var a_0 = M0.procedure_arity(proc_0);var keywords_desc_0 = function(opt_0, req_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("keywords-desc");var temp32 = $rjs_core.UString.make("~a with keyword~a~a");if (M0.null_p(M0.cdr(req_1))!==false) {var if_res31 = M0.format($rjs_core.UString.make("an ~aargument"),opt_0);} else {var if_res31 = M0.format($rjs_core.UString.make("~aarguments"),opt_0);}if (M0.null_p(M0.cdr(req_1))!==false) {var if_res30 = $rjs_core.UString.make("");} else {var if_res30 = $rjs_core.UString.make("s");}var tmp_0 = M0.length(req_1);if (M0.equal_p(tmp_0,1)!==false) {var if_res29 = M0.format($rjs_core.UString.make(" ~a"),M0.car(req_1));} else {if (M0.equal_p(tmp_0,2)!==false) {var if_res28 = M0.format($rjs_core.UString.make(" ~a and ~a"),M0.car(req_1),M0.cadr(req_1));} else {var loop_1 = function(req_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(req_2))!==false) {var if_res27 = M0.format($rjs_core.UString.make(" and ~a"),M0.car(req_2));} else {var if_res27 = M0.format($rjs_core.UString.make(" ~a,~a"),M0.car(req_2),loop_1(M0.cdr(req_2)));}return if_res27;};var if_res28 = loop_1(req_1);}var if_res29 = if_res28;}return M0.format(temp32,if_res31,if_res30,if_res29);};var method_adjust_0 = function(a_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("method-adjust");var or_part_1 = okm_p(proc_0);if (or_part_1!==false) {var if_res33 = or_part_1;} else {var if_res33 = keyword_method_p(proc_0);}if (if_res33!==false) {if (M0.zero_p(a_1)!==false) {var if_res34 = 0;} else {var if_res34 = M0.sub1(a_1);}var if_res35 = if_res34;} else {var if_res35 = a_1;}return if_res35;};if (M0.number_p(a_0)!==false) {var a_2 = method_adjust_0(a_0);var if_res42 = M0.format($rjs_core.UString.make("~a"),a_2);} else {if (M0.arity_at_least_p(a_0)!==false) {var a_3 = method_adjust_0(M0.arity_at_least_value(a_0));var if_res41 = M0.format($rjs_core.UString.make("at least ~a"),a_3);} else {var if_res41 = $rjs_core.UString.make("a different number");}var if_res42 = if_res41;}if (M0.null_p(req_0)!==false) {var if_res40 = $rjs_core.UString.make("");} else {var if_res40 = M0.format($rjs_core.UString.make(" plus ~a"),keywords_desc_0($rjs_core.UString.make(""),req_0));}if (allowed_0!==false) {var loop_2 = function(req_3, allowed_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(req_3)!==false) {var if_res37 = allowed_1;} else {if (M0.eq_p(M0.car(req_3),M0.car(allowed_1))!==false) {var if_res36 = loop_2(M0.cdr(req_3),M0.cdr(allowed_1));} else {var if_res36 = M0.cons(M0.car(allowed_1),loop_2(req_3,M0.cdr(allowed_1)));}var if_res37 = if_res36;}return if_res37;};var others_0 = loop_2(req_0,allowed_0);if (M0.null_p(others_0)!==false) {var if_res38 = $rjs_core.UString.make("");} else {var if_res38 = M0.format($rjs_core.UString.make(" plus ~a"),keywords_desc_0($rjs_core.UString.make("optional "),others_0));}var if_res39 = if_res38;} else {var if_res39 = $rjs_core.UString.make(" plus arbitrary keyword arguments");}return M0.string_append(if_res42,if_res40,if_res39);};var let_result43 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,1,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string)),M0.current_inspector(),0);var struct_okp = let_result43.getAt(0);var make_optional_keyword_procedure = let_result43.getAt(1);var okp_p = let_result43.getAt(2);var okp_ref = let_result43.getAt(3);var okp_set_bang_ = let_result43.getAt(4);var let_result44 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_okp,0,0,false,M0.list(M0.cons(M0.prop_method_arity_error,true)));var struct_okm = let_result44.getAt(0);var make_optional_keyword_method = let_result44.getAt(1);var okm_p = let_result44.getAt(2);var okm_ref = let_result44.getAt(3);var okm_set_bang_ = let_result44.getAt(4);var let_result45 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("named-keyword-procedure"));var prop_named_keyword_procedure = let_result45.getAt(0);var named_keyword_procedure_p = let_result45.getAt(1);var keyword_procedure_name_plus_fail = let_result45.getAt(2);var let_result47 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("procedure"),function(v_7, info_l_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_integer_p(v_7)!==false) {var if_res46 = M0.make_struct_field_accessor(M0.list_ref(info_l_0,3),v_7);} else {var if_res46 = false;}return if_res46;});var prop_procedure_accessor = let_result47.getAt(0);var procedure_accessor_p = let_result47.getAt(1);var procedure_accessor_ref = let_result47.getAt(2);var let_result48 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("procedure"),false,M0.list(M0.cons(M0.prop_procedure,M0.values),M0.cons(prop_procedure_accessor,M0.values)),true);var new_prop_procedure = let_result48.getAt(0);var new_procedure_p = let_result48.getAt(1);var new_procedure_ref = let_result48.getAt(2);var let_result49 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,1,0,false,M0.list(M0.cons(prop_keyword_impersonator,function(v_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return kpp_ref(v_8,0);})));var struct_keyword_procedure_impersonator = let_result49.getAt(0);var make_kpp = let_result49.getAt(1);var keyword_procedure_impersonator_p = let_result49.getAt(2);var kpp_ref = let_result49.getAt(3);var kpp_set_bang_ = let_result49.getAt(4);var let_result50 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method,1,0,false,M0.list(M0.cons(prop_keyword_impersonator,function(v_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return kmp_ref(v_9,0);})));var struct_keyword_method_impersonator = let_result50.getAt(0);var make_kmp = let_result50.getAt(1);var keyword_method_impersonator_p = let_result50.getAt(2);var kmp_ref = let_result50.getAt(3);var kmp_set_bang_ = let_result50.getAt(4);var let_result51 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_procedure_by_arity_error = let_result51.getAt(0);var make_kp_by_ae = let_result51.getAt(1);var kp_by_ae_p = let_result51.getAt(2);var kp_by_ae_ref = let_result51.getAt(3);var kp_by_ae_set_bang_ = let_result51.getAt(4);var let_result52 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_method_by_arity_error = let_result52.getAt(0);var make_km_by_ae = let_result52.getAt(1);var km_by_ae_p = let_result52.getAt(2);var km_by_ae_ref = let_result52.getAt(3);var km_by_ae_set_bang_ = let_result52.getAt(4);var let_result53 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure_impersonator,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_procedure_impersonator_by_arity_error = let_result53.getAt(0);var make_kpi_by_ae = let_result53.getAt(1);var kpi_by_ae_p = let_result53.getAt(2);var kpi_by_ae_ref = let_result53.getAt(3);var kpi_by_ae_set_bang_ = let_result53.getAt(4);var let_result54 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method_impersonator,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_method_impersonator_by_arity_error = let_result54.getAt(0);var make_kmi_by_ae = let_result54.getAt(1);var kmi_by_ae_p = let_result54.getAt(2);var kmi_by_ae_ref = let_result54.getAt(3);var kmi_by_ae_set_bang_ = let_result54.getAt(4);var make_required = function(name_0, realm_0, fail_proc_0, method_p_0, impersonator_p_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_2 = name_0;if (or_part_2!==false) {var if_res58 = or_part_2;} else {var if_res58 = $rjs_core.PrimitiveSymbol.make("unknown");}if (impersonator_p_0!==false) {if (method_p_0!==false) {var if_res55 = struct_keyword_method_impersonator_by_arity_error;} else {var if_res55 = struct_keyword_procedure_impersonator_by_arity_error;}var if_res57 = if_res55;} else {if (method_p_0!==false) {var if_res56 = struct_keyword_method_by_arity_error;} else {var if_res56 = struct_keyword_procedure_by_arity_error;}var if_res57 = if_res56;}var let_result59 = M0.make_struct_type(if_res58,if_res57,0,0,false,M0.list(M0.cons(prop_named_keyword_procedure,M0.vector(name_0,realm_0,fail_proc_0))),M0.current_inspector(),fail_proc_0);var s__0 = let_result59.getAt(0);var mk_0 = let_result59.getAt(1);var __p_0 = let_result59.getAt(2);var __ref_0 = let_result59.getAt(3);var __set_bang__0 = let_result59.getAt(4);return mk_0;};var cl60 = function(proc_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var proc_name_0 = M0.object_name(proc_1);if (M0.procedure_p(proc_1)!==false) {var if_res63 = M0.procedure_realm(proc_1);} else {var if_res63 = false;}var proc_realm_0 = if_res63;var plain_proc_0 = $rjs_core.attachProcedureArity(function(...args_064) {var args_0 = $rjs_core.Pair.listFromArray(args_064);return M0.apply(proc_1,M0.rnull,M0.rnull,args_0);});if (M0.procedure_p(proc_1)!==false) {var if_res65 = M0.arithmetic_shift(M0.procedure_arity_mask(proc_1),-2);} else {var if_res65 = false;}var mask_0 = if_res65;if (M0.procedure_p(plain_proc_0)!==false) {if (M0.exact_integer_p(mask_0)!==false) {if (M0.symbol_p(proc_name_0)!==false) {if (M0.symbol_p(proc_realm_0)!==false) {var if_res66 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,proc_name_0,proc_realm_0);} else {var if_res66 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,false,$rjs_core.PrimitiveSymbol.make("ignored"));}var if_res67 = if_res66;} else {var if_res67 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,false,$rjs_core.PrimitiveSymbol.make("ignored"));}var if_res68 = if_res67;} else {var if_res68 = plain_proc_0;}var if_res69 = if_res68;} else {var if_res69 = plain_proc_0;}return make_keyword_procedure(proc_1,if_res69);};var cl61 = function(proc_2, plain_proc_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(proc_2)!==false) {var if_res70 = M0.procedure_arity_mask(proc_2);} else {var if_res70 = false;}return make_optional_keyword_procedure(make_keyword_checker(M0.rnull,false,if_res70),proc_2,M0.rnull,false,plain_proc_1);};var make_keyword_procedure = $rjs_core.attachProcedureArity(function() {var fixed_lam62 = {'1':cl60,'2':cl61}[arguments.length];if (fixed_lam62!==undefined) {return fixed_lam62.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var keyword_apply = $rjs_core.attachProcedureArity(function(proc_3, kws_0, kw_vals_0, normal_args_0, ...normal_argss_071) {if (arguments.length<4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var normal_argss_0 = $rjs_core.Pair.listFromArray(normal_argss_071);var type_error_0 = function(what_0, which_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("type-error");return M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("keyword-apply"),what_0,which_0,proc_3,kws_0,kw_vals_0,normal_args_0,normal_argss_0);};if (M0.procedure_p(proc_3)!==false) {var if_res72 = M0.rvoid();} else {var if_res72 = type_error_0($rjs_core.UString.make("procedure?"),0);}if_res72;var loop_3 = function(ks_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ks_0)!==false) {var if_res79 = M0.rvoid();} else {var or_part_3 = M0.not(M0.pair_p(ks_0));if (or_part_3!==false) {var if_res73 = or_part_3;} else {var if_res73 = M0.not(M0.keyword_p(M0.car(ks_0)));}if (if_res73!==false) {var if_res78 = type_error_0($rjs_core.UString.make("(listof keyword?)"),1);} else {if (M0.null_p(M0.cdr(ks_0))!==false) {var if_res77 = M0.rvoid();} else {var or_part_4 = M0.not(M0.pair_p(M0.cdr(ks_0)));if (or_part_4!==false) {var if_res74 = or_part_4;} else {var if_res74 = M0.not(M0.keyword_p(M0.cadr(ks_0)));}if (if_res74!==false) {var if_res76 = loop_3(M0.cdr(ks_0));} else {if (M0.keyword_lt__p(M0.car(ks_0),M0.cadr(ks_0))!==false) {var if_res75 = loop_3(M0.cdr(ks_0));} else {var if_res75 = type_error_0($rjs_core.UString.make("(and/c (listof? keyword?) sorted? distinct?)"),1);}var if_res76 = if_res75;}var if_res77 = if_res76;}var if_res78 = if_res77;}var if_res79 = if_res78;}return if_res79;};loop_3(kws_0);if (M0.list_p(kw_vals_0)!==false) {var if_res80 = M0.rvoid();} else {var if_res80 = type_error_0($rjs_core.UString.make("list?"),2);}if_res80;if (M0.__eq_(M0.length(kws_0),M0.length(kw_vals_0))!==false) {var if_res81 = M0.rvoid();} else {var if_res81 = M0.raise_arguments_error_times_($rjs_core.PrimitiveSymbol.make("keyword-apply"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("keyword list length does not match value list length"),$rjs_core.UString.make("keyword list length"),M0.length(kws_0),$rjs_core.UString.make("value list length"),M0.length(kw_vals_0),$rjs_core.UString.make("keyword list"),kws_0,$rjs_core.UString.make("value list"),kw_vals_0);}if_res81;var loop_4 = function(normal_argss_1, pos_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(normal_argss_1))!==false) {var l_0 = M0.car(normal_argss_1);if (M0.list_p(l_0)!==false) {var if_res82 = l_0;} else {var if_res82 = type_error_0($rjs_core.UString.make("list?"),pos_0);}var if_res83 = if_res82;} else {var if_res83 = M0.cons(M0.car(normal_argss_1),loop_4(M0.cdr(normal_argss_1),M0.add1(pos_0)));}return if_res83;};var normal_args_1 = loop_4(M0.cons(normal_args_0,normal_argss_0),3);if (M0.null_p(kws_0)!==false) {var if_res84 = M0.apply(proc_3,normal_args_1);} else {var if_res84 = M0.apply(keyword_procedure_extract_by_method(kws_0,2+M0.length(normal_args_1),proc_3,0),kws_0,kw_vals_0,normal_args_1);}return if_res84;});var procedure_keywords = function(p_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_1)!==false) {var if_res89 = M0.values(keyword_procedure_required(p_1),keyword_procedure_allowed(p_1));} else {if (M0.procedure_p(p_1)!==false) {if (new_procedure_p(p_1)!==false) {var v_10 = new_procedure_ref(p_1);if (M0.procedure_p(v_10)!==false) {var if_res86 = procedure_keywords(v_10);} else {var a_4 = procedure_accessor_ref(p_1);if (a_4!==false) {var if_res85 = procedure_keywords(a_4(p_1));} else {var if_res85 = M0.values(M0.rnull,M0.rnull);}var if_res86 = if_res85;}var if_res87 = if_res86;} else {var if_res87 = M0.values(M0.rnull,M0.rnull);}var if_res88 = if_res87;} else {var if_res88 = M0.raise_argument_error_times_($rjs_core.PrimitiveSymbol.make("procedure-keywords"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("procedure?"),p_1);}var if_res89 = if_res88;}return if_res89;};var extract_keyword_root = function(p_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_2)!==false) {var if_res93 = p_2;} else {if (M0.procedure_p(p_2)!==false) {var v_11 = new_procedure_ref(p_2,false);if (M0.procedure_p(v_11)!==false) {var if_res91 = extract_keyword_root(v_11);} else {var a_5 = procedure_accessor_ref(p_2,false);if (a_5!==false) {var if_res90 = extract_keyword_root(a_5(p_2));} else {var if_res90 = false;}var if_res91 = if_res90;}var if_res92 = if_res91;} else {var if_res92 = false;}var if_res93 = if_res92;}return if_res93;};var missing_kw = $rjs_core.attachProcedureArity(function(proc_4, ...args_194) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_1 = $rjs_core.Pair.listFromArray(args_194);return M0.apply(keyword_procedure_extract_by_method(M0.rnull,0,proc_4,0),M0.rnull,M0.rnull,args_1);});var check_kw_args = function(p_3, kws_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_5 = function(kws_2, required_0, allowed_2) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_2)!==false) {if (M0.null_p(required_0)!==false) {var if_res95 = M0.values(false,false);} else {var if_res95 = M0.values(M0.car(required_0),false);}var if_res104 = if_res95;} else {if (M0.pair_p(required_0)!==false) {var if_res96 = M0.eq_p(M0.car(required_0),M0.car(kws_2));} else {var if_res96 = false;}if (if_res96!==false) {var temp99 = M0.cdr(kws_2);var temp98 = M0.cdr(required_0);if (allowed_2!==false) {var if_res97 = M0.cdr(allowed_2);} else {var if_res97 = false;}var if_res103 = loop_5(temp99,temp98,if_res97);} else {if (M0.not(allowed_2)!==false) {var if_res102 = loop_5(M0.cdr(kws_2),required_0,false);} else {if (M0.pair_p(allowed_2)!==false) {if (M0.eq_p(M0.car(allowed_2),M0.car(kws_2))!==false) {var if_res100 = loop_5(M0.cdr(kws_2),required_0,M0.cdr(allowed_2));} else {var if_res100 = loop_5(kws_2,required_0,M0.cdr(allowed_2));}var if_res101 = if_res100;} else {var if_res101 = M0.values(false,M0.car(kws_2));}var if_res102 = if_res101;}var if_res103 = if_res102;}var if_res104 = if_res103;}return if_res104;};return loop_5(kws_1,keyword_procedure_required(p_3),keyword_procedure_allowed(p_3));};var make_keyword_checker = function(req_kws_0, allowed_kws_0, arity_mask_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.not(allowed_kws_0)!==false) {if (M0.null_p(req_kws_0)!==false) {var if_res106 = function(kws_3, a_6) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.bitwise_bit_set_p(arity_mask_0,a_6);};} else {var if_res106 = function(kws_4, a_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subset_p(req_kws_0,kws_4)!==false) {var if_res105 = M0.bitwise_bit_set_p(arity_mask_0,a_7);} else {var if_res105 = false;}return if_res105;};}var if_res119 = if_res106;} else {if (M0.null_p(allowed_kws_0)!==false) {var if_res118 = function(kws_5, a_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(kws_5)!==false) {var if_res107 = M0.bitwise_bit_set_p(arity_mask_0,a_8);} else {var if_res107 = false;}return if_res107;};} else {if (M0.null_p(req_kws_0)!==false) {var if_res117 = function(kws_6, a_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subset_p(kws_6,allowed_kws_0)!==false) {var if_res108 = M0.bitwise_bit_set_p(arity_mask_0,a_9);} else {var if_res108 = false;}return if_res108;};} else {if (M0.list_p(req_kws_0)!==false) {if (M0.list_p(allowed_kws_0)!==false) {var if_res109 = M0.eq_p(M0.length(req_kws_0),M0.length(allowed_kws_0));} else {var if_res109 = false;}var if_res110 = if_res109;} else {var if_res110 = false;}if (if_res110!==false) {var if_res116 = function(kws_7, a_10) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_6 = function(kws_8, req_kws_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(req_kws_1)!==false) {var if_res113 = M0.null_p(kws_8);} else {if (M0.null_p(kws_8)!==false) {var if_res112 = false;} else {if (M0.eq_p(M0.car(kws_8),M0.car(req_kws_1))!==false) {var if_res111 = loop_6(M0.cdr(kws_8),M0.cdr(req_kws_1));} else {var if_res111 = false;}var if_res112 = if_res111;}var if_res113 = if_res112;}return if_res113;};if (loop_6(kws_7,req_kws_0)!==false) {var if_res114 = M0.bitwise_bit_set_p(arity_mask_0,a_10);} else {var if_res114 = false;}return if_res114;};} else {var if_res116 = function(kws_9, a_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subsets_p(req_kws_0,kws_9,allowed_kws_0)!==false) {var if_res115 = M0.bitwise_bit_set_p(arity_mask_0,a_11);} else {var if_res115 = false;}return if_res115;};}var if_res117 = if_res116;}var if_res118 = if_res117;}var if_res119 = if_res118;}return if_res119;};var subset_p = function(l1_0, l2_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(l1_0)!==false) {var if_res122 = true;} else {if (M0.null_p(l2_0)!==false) {var if_res121 = false;} else {if (M0.eq_p(M0.car(l1_0),M0.car(l2_0))!==false) {var if_res120 = subset_p(M0.cdr(l1_0),M0.cdr(l2_0));} else {var if_res120 = subset_p(l1_0,M0.cdr(l2_0));}var if_res121 = if_res120;}var if_res122 = if_res121;}return if_res122;};var subsets_p = function(l1_1, l2_1, l3_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(l1_1)!==false) {var if_res127 = subset_p(l2_1,l3_0);} else {if (M0.null_p(l2_1)!==false) {var if_res126 = false;} else {if (M0.null_p(l3_0)!==false) {var if_res125 = false;} else {var v2_0 = M0.car(l2_1);if (M0.eq_p(M0.car(l1_1),v2_0)!==false) {var if_res124 = subsets_p(M0.cdr(l1_1),M0.cdr(l2_1),M0.cdr(l3_0));} else {if (M0.eq_p(v2_0,M0.car(l3_0))!==false) {var if_res123 = subsets_p(l1_1,M0.cdr(l2_1),M0.cdr(l3_0));} else {var if_res123 = subsets_p(l1_1,l2_1,M0.cdr(l3_0));}var if_res124 = if_res123;}var if_res125 = if_res124;}var if_res126 = if_res125;}var if_res127 = if_res126;}return if_res127;};var keyword_procedure_extract_by_method = function(kws_10, n_1, p_4, method_n_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_4)!==false) {var if_res128 = keyword_procedure_checker(p_4)(kws_10,n_1);} else {var if_res128 = false;}if (if_res128!==false) {var if_res158 = keyword_procedure_proc(p_4);} else {if (M0.not(keyword_procedure_p(p_4))!==false) {if (M0.procedure_p(p_4)!==false) {if (new_procedure_p(p_4)!==false) {var a_12 = procedure_accessor_ref(p_4);if (a_12!==false) {var if_res129 = a_12(p_4);} else {var if_res129 = false;}var if_res130 = if_res129;} else {var if_res130 = false;}var or_part_5 = if_res130;if (or_part_5!==false) {var if_res133 = or_part_5;} else {var or_part_6 = M0.procedure_extract_target(p_4);if (or_part_6!==false) {var if_res132 = or_part_6;} else {if (new_procedure_p(p_4)!==false) {var if_res131 = $rjs_core.PrimitiveSymbol.make("method");} else {var if_res131 = false;}var if_res132 = if_res131;}var if_res133 = if_res132;}var if_res134 = if_res133;} else {var if_res134 = false;}var if_res135 = if_res134;} else {var if_res135 = false;}var p2_0 = if_res135;if (p2_0!==false) {if (M0.eq_p(p2_0,$rjs_core.PrimitiveSymbol.make("method"))!==false) {var p3_0 = keyword_procedure_extract_by_method(kws_10,M0.add1(n_1),new_procedure_ref(p_4),M0.add1(method_n_0));var if_res137 = $rjs_core.attachProcedureArity(function(kws_11, kw_args_0, ...args_2136) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_2 = $rjs_core.Pair.listFromArray(args_2136);return M0.apply(p3_0,kws_11,kw_args_0,M0.cons(p_4,args_2));});} else {var if_res137 = keyword_procedure_extract_by_method(kws_10,n_1,p2_0,method_n_0);}var if_res157 = if_res137;} else {var if_res157 = $rjs_core.attachProcedureArity(function(kws_12, kw_args_1, ...args_3138) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_3 = $rjs_core.Pair.listFromArray(args_3138);if (keyword_procedure_p(p_4)!==false) {var if_res139 = check_kw_args(p_4,kws_12);} else {var if_res139 = M0.values(false,M0.car(kws_12));}var let_result140 = if_res139;var missing_kw_0 = let_result140.getAt(0);var extra_kw_0 = let_result140.getAt(1);var or_part_7 = keyword_method_p(p_4);if (or_part_7!==false) {var if_res141 = or_part_7;} else {var if_res141 = okm_p(p_4);}if (if_res141!==false) {var if_res142 = 1;} else {var if_res142 = 0;}var method_n_1 = method_n_0+if_res142;if (M0.__gt__eq_(n_1,method_n_1)!==false) {var if_res143 = n_1-method_n_1;} else {var if_res143 = n_1;}var n_2 = if_res143;if (M0.null_p(args_3)!==false) {var if_res144 = M0.null_p(kws_12);} else {var if_res144 = false;}if (if_res144!==false) {var if_res145 = $rjs_core.UString.make("");} else {var if_res145 = M0.apply(M0.string_append,$rjs_core.UString.make("\n arguments...:"),M0.append(M0.map(function(v_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.format($rjs_core.UString.make("\n ~e"),v_12);},args_3),M0.map(function(kw_0, kw_arg_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.format($rjs_core.UString.make("\n ~a ~e"),kw_0,kw_arg_0);},kws_12,kw_args_1)));}var args_str_0 = if_res145;var proc_name_1 = function(p_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("proc-name");if (named_keyword_procedure_p(p_5)!==false) {var if_res146 = M0.vector_ref(keyword_procedure_name_plus_fail(p_5),0);} else {var if_res146 = false;}var or_part_8 = if_res146;if (or_part_8!==false) {var if_res148 = or_part_8;} else {var or_part_9 = M0.object_name(p_5);if (or_part_9!==false) {var if_res147 = or_part_9;} else {var if_res147 = p_5;}var if_res148 = if_res147;}return if_res148;};var application_message_0 = function(str_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("application-message");return M0.error_message__gt_adjusted_string($rjs_core.PrimitiveSymbol.make("application"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),str_0,$rjs_core.PrimitiveSymbol.make("racket/primitive"));};var or_part_10 = extra_kw_0;if (or_part_10!==false) {var if_res155 = or_part_10;} else {var if_res155 = missing_kw_0;}if (if_res155!==false) {var if_res156 = M0.exn_fail_contract;} else {var if_res156 = M0.exn_fail_contract_arity;}if (extra_kw_0!==false) {if (keyword_procedure_p(p_4)!==false) {var if_res150 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("procedure does not expect an argument with given keyword\n"),$rjs_core.UString.make(" procedure: ~a\n"),$rjs_core.UString.make(" given keyword: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),extra_kw_0,args_str_0));} else {if (M0.procedure_p(p_4)!==false) {var if_res149 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("procedure does not accept keyword arguments\n"),$rjs_core.UString.make(" procedure: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),args_str_0));} else {var if_res149 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("not a procedure;\n"),$rjs_core.UString.make(" expected a procedure that can be applied to arguments\n"),$rjs_core.UString.make(" given: ~e"),$rjs_core.UString.make("~a")),p_4,args_str_0));}var if_res150 = if_res149;}var if_res154 = if_res150;} else {if (missing_kw_0!==false) {var if_res153 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("required keyword argument not supplied\n"),$rjs_core.UString.make(" procedure: ~a\n"),$rjs_core.UString.make(" required keyword: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),missing_kw_0,args_str_0));} else {var temp152 = M0.string_append($rjs_core.UString.make("no case matching ~a non-keyword argument~a\n"),$rjs_core.UString.make(" procedure: ~a"),$rjs_core.UString.make("~a"));if (M0.__eq_(1,n_2-2)!==false) {var if_res151 = $rjs_core.UString.make("");} else {var if_res151 = $rjs_core.UString.make("s");}var if_res153 = application_message_0(M0.format(temp152,n_2-2,if_res151,proc_name_1(p_4),args_str_0));}var if_res154 = if_res153;}return M0.raise(if_res156(if_res154,M0.current_continuation_marks()));});}var if_res158 = if_res157;}return if_res158;};var cl159 = function(proc_5, mask_1, req_kw_0, allowed_kw_0, name_1, realm_1) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_5,false,mask_1,name_1,realm_1,req_kw_0,allowed_kw_0);};var cl160 = function(proc_6, mask_2, req_kw_1, allowed_kw_1, name_2) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_6,false,mask_2,name_2,$rjs_core.PrimitiveSymbol.make("racket"),req_kw_1,allowed_kw_1);};var cl161 = function(proc_7, mask_3, req_kw_2, allowed_kw_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_7,false,mask_3,false,$rjs_core.PrimitiveSymbol.make("racket"),req_kw_2,allowed_kw_2);};var procedure_reduce_keyword_arity_mask = $rjs_core.attachProcedureArity(function() {var fixed_lam162 = {'6':cl159,'5':cl160,'4':cl161}[arguments.length];if (fixed_lam162!==undefined) {return fixed_lam162.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,5,6]);var do_procedure_reduce_keyword_arity = function(who_1, proc_8, arity_0, mask_4, name_3, realm_2, req_kw_3, allowed_kw_3) {if (arguments.length!==8) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (okp_p(proc_8)!==false) {var if_res163 = okp_ref(proc_8,0);} else {var if_res163 = proc_8;}var p_6 = if_res163;if (arity_0!==false) {var if_res164 = M0.procedure_reduce_arity(p_6,arity_0,name_3,realm_2);} else {var if_res164 = M0.procedure_reduce_arity_mask(p_6,mask_4,name_3,realm_2);}var plain_proc_2 = if_res164;var sorted_p_0 = function(kws_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("sorted?");var loop_7 = function(kws_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_14)!==false) {var if_res167 = true;} else {if (M0.null_p(M0.cdr(kws_14))!==false) {var if_res166 = true;} else {if (M0.keyword_lt__p(M0.car(kws_14),M0.cadr(kws_14))!==false) {var if_res165 = loop_7(M0.cdr(kws_14));} else {var if_res165 = false;}var if_res166 = if_res165;}var if_res167 = if_res166;}return if_res167;};return loop_7(kws_13);};if (M0.list_p(req_kw_3)!==false) {if (M0.andmap(M0.keyword_p,req_kw_3)!==false) {var if_res168 = sorted_p_0(req_kw_3);} else {var if_res168 = false;}var if_res169 = if_res168;} else {var if_res169 = false;}if (if_res169!==false) {var if_res173 = M0.rvoid();} else {var temp172 = $rjs_core.PrimitiveSymbol.make("racket/primitive");var temp171 = $rjs_core.UString.make("(and/c (listof? keyword?) sorted? distinct?)");var or_part_11 = arity_0;if (or_part_11!==false) {var if_res170 = or_part_11;} else {var if_res170 = mask_4;}var if_res173 = M0.raise_argument_error_times_(who_1,temp172,temp171,2,proc_8,if_res170,req_kw_3,allowed_kw_3);}if_res173;if (allowed_kw_3!==false) {if (M0.list_p(allowed_kw_3)!==false) {if (M0.andmap(M0.keyword_p,allowed_kw_3)!==false) {var if_res174 = sorted_p_0(allowed_kw_3);} else {var if_res174 = false;}var if_res175 = if_res174;} else {var if_res175 = false;}if (if_res175!==false) {var if_res179 = M0.rvoid();} else {var temp178 = $rjs_core.PrimitiveSymbol.make("racket/primitive");var temp177 = $rjs_core.UString.make("(or/c (and/c (listof? keyword?) sorted? distinct?) #f)");var or_part_12 = arity_0;if (or_part_12!==false) {var if_res176 = or_part_12;} else {var if_res176 = mask_4;}var if_res179 = M0.raise_argument_error_times_(who_1,temp178,temp177,3,proc_8,if_res176,req_kw_3,allowed_kw_3);}if_res179;if (subset_p(req_kw_3,allowed_kw_3)!==false) {var if_res180 = M0.rvoid();} else {var if_res180 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("allowed-keyword list does not include all required keywords"),$rjs_core.UString.make("allowed-keyword list"),allowed_kw_3,$rjs_core.UString.make("required keywords"),req_kw_3);}var if_res181 = if_res180;} else {var if_res181 = M0.rvoid();}if_res181;var let_result182 = procedure_keywords(proc_8);var old_req_0 = let_result182.getAt(0);var old_allowed_0 = let_result182.getAt(1);if (subset_p(old_req_0,req_kw_3)!==false) {var if_res183 = M0.rvoid();} else {var if_res183 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot reduce required keyword set"),$rjs_core.UString.make("required keywords"),old_req_0,$rjs_core.UString.make("requested required keywords"),req_kw_3);}if_res183;if (old_allowed_0!==false) {if (subset_p(req_kw_3,old_allowed_0)!==false) {var if_res184 = M0.rvoid();} else {var if_res184 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot require keywords not in original allowed set"),$rjs_core.UString.make("original allowed keywords"),old_allowed_0,$rjs_core.UString.make("requested required keywords"),req_kw_3);}if_res184;var or_part_13 = M0.not(allowed_kw_3);if (or_part_13!==false) {var if_res185 = or_part_13;} else {var if_res185 = subset_p(allowed_kw_3,old_allowed_0);}if (if_res185!==false) {var if_res186 = M0.rvoid();} else {var if_res186 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot allow keywords not in original allowed set"),$rjs_core.UString.make("original allowed keywords"),old_allowed_0,$rjs_core.UString.make("requested allowed keywords"),allowed_kw_3);}var if_res187 = if_res186;} else {var if_res187 = M0.rvoid();}if_res187;if (M0.null_p(allowed_kw_3)!==false) {var if_res201 = plain_proc_2;} else {var or_part_14 = mask_4;if (or_part_14!==false) {var if_res188 = or_part_14;} else {var if_res188 = arity__gt_mask(arity_0);}var mask_5 = if_res188;var new_mask_0 = M0.arithmetic_shift(mask_5,2);var kw_checker_0 = make_keyword_checker(req_kw_3,allowed_kw_3,new_mask_0);var proc_9 = normalize_proc(proc_8);var new_kw_proc_0 = M0.procedure_reduce_arity_mask(keyword_procedure_proc(proc_9),new_mask_0);if (M0.null_p(req_kw_3)!==false) {if (okm_p(proc_9)!==false) {var if_res189 = make_optional_keyword_method;} else {var if_res189 = make_optional_keyword_procedure;}var if_res200 = if_res189(kw_checker_0,new_kw_proc_0,req_kw_3,allowed_kw_3,plain_proc_2);} else {var or_part_15 = name_3;if (or_part_15!==false) {var if_res199 = or_part_15;} else {if (named_keyword_procedure_p(proc_9)!==false) {var if_res197 = M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),0);} else {var if_res197 = false;}var or_part_16 = if_res197;if (or_part_16!==false) {var if_res198 = or_part_16;} else {var if_res198 = M0.object_name(proc_9);}var if_res199 = if_res198;}if (name_3!==false) {var if_res192 = realm_2;} else {var if_res192 = false;}var or_part_17 = if_res192;if (or_part_17!==false) {var if_res196 = or_part_17;} else {if (named_keyword_procedure_p(proc_9)!==false) {var or_part_19 = M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),1);if (or_part_19!==false) {var if_res193 = or_part_19;} else {var if_res193 = M0.procedure_realm(M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),2));}var if_res194 = if_res193;} else {var if_res194 = false;}var or_part_18 = if_res194;if (or_part_18!==false) {var if_res195 = or_part_18;} else {var if_res195 = M0.procedure_realm(proc_9);}var if_res196 = if_res195;}var temp191 = M0.procedure_reduce_arity_mask(missing_kw,M0.arithmetic_shift(mask_5,1));var or_part_20 = okm_p(proc_9);if (or_part_20!==false) {var if_res190 = or_part_20;} else {var if_res190 = keyword_method_p(proc_9);}var if_res200 = make_required(if_res199,if_res196,temp191,if_res190,false)(kw_checker_0,new_kw_proc_0,req_kw_3,allowed_kw_3);}var if_res201 = if_res200;}return if_res201;};var arity__gt_mask = function(a_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(a_13)!==false) {var if_res207 = M0.arithmetic_shift(1,a_13);} else {if (M0.arity_at_least_p(a_13)!==false) {var if_res206 = M0.bitwise_xor(-1,M0.sub1(M0.arithmetic_shift(1,M0.arity_at_least_value(a_13))));} else {if (M0.list_p(a_13)!==false) {var loop_8 = function(mask_6, l_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_1)!==false) {var if_res204 = mask_6;} else {var a_14 = M0.car(l_1);var or_part_21 = M0.exact_nonnegative_integer_p(a_14);if (or_part_21!==false) {var if_res202 = or_part_21;} else {var if_res202 = M0.arity_at_least_p(a_14);}if (if_res202!==false) {var if_res203 = loop_8(M0.bitwise_ior(mask_6,arity__gt_mask(a_14)),M0.cdr(l_1));} else {var if_res203 = false;}var if_res204 = if_res203;}return if_res204;};var if_res205 = loop_8(0,a_13);} else {var if_res205 = false;}var if_res206 = if_res205;}var if_res207 = if_res206;}return if_res207;};var cl208 = function(proc_10, mask_7, name_4, realm_3) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("procedure-reduce-arity");if (M0.procedure_p(proc_10)!==false) {var let_result212 = procedure_keywords(proc_10);var req_4 = let_result212.getAt(0);var allows_0 = let_result212.getAt(1);if (M0.pair_p(req_4)!==false) {var if_res213 = M0.not(M0.eqv_p(mask_7,0));} else {var if_res213 = false;}var if_res214 = if_res213;} else {var if_res214 = false;}if (if_res214!==false) {var if_res216 = M0.raise_arguments_error_times_($rjs_core.PrimitiveSymbol.make("procedure-reduce-arity"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("procedure has required keyword arguments"),$rjs_core.UString.make("procedure"),proc_10);} else {if (okm_p(proc_10)!==false) {var if_res215 = M0.procedure__gt_method(proc_10);} else {var if_res215 = proc_10;}var if_res216 = M0.procedure_reduce_arity_mask(if_res215,mask_7,name_4,realm_3);}return if_res216;};var cl209 = function(proc_11, mask_8, name_5) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_reduce_arity_mask(proc_11,mask_8,name_5,$rjs_core.PrimitiveSymbol.make("racket"));};var cl210 = function(proc_12, mask_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_reduce_arity_mask(proc_12,mask_9,false,$rjs_core.PrimitiveSymbol.make("racket"));};var procedure_reduce_arity_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam211 = {'4':cl208,'3':cl209,'2':cl210}[arguments.length];if (fixed_lam211!==undefined) {return fixed_lam211.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3,4]);var new_procedure_reduce_arity_mask = procedure_reduce_arity_0;var cl217 = function(proc_13, name_6, realm_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("procedure-rename");if (M0.symbol_p(name_6)!==false) {var if_res220 = M0.symbol_p(realm_4);} else {var if_res220 = false;}if (M0.not(if_res220)!==false) {var if_res222 = M0.procedure_rename(proc_13,name_6,realm_4);} else {var c1_0 = extract_keyword_root(proc_13);if (c1_0!==false) {var if_res221 = (function(kw_p_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-rename"),proc_13,false,M0.procedure_arity_mask(proc_13),name_6,realm_4,keyword_procedure_required(kw_p_0),keyword_procedure_allowed(kw_p_0));})(c1_0);} else {var if_res221 = M0.procedure_rename(proc_13,name_6,realm_4);}var if_res222 = if_res221;}return if_res222;};var cl218 = function(proc_14, name_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_rename(proc_14,name_7,$rjs_core.PrimitiveSymbol.make("racket"));};var procedure_rename_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam219 = {'3':cl217,'2':cl218}[arguments.length];if (fixed_lam219!==undefined) {return fixed_lam219.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var new_procedure_rename = procedure_rename_0;var normalize_proc = function(proc_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(proc_15)!==false) {var if_res230 = proc_15;} else {if (new_procedure_p(proc_15)!==false) {var let_result223 = procedure_keywords(proc_15);var req_kws_2 = let_result223.getAt(0);var allowed_kws_1 = let_result223.getAt(1);if (M0.null_p(allowed_kws_1)!==false) {var if_res228 = proc_15;} else {var if_res228 = make_optional_keyword_procedure(function(given_kws_0, given_argc_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_arity_includes_p(proc_15,given_argc_0-2,true)!==false) {var or_part_22 = M0.not(allowed_kws_1);if (or_part_22!==false) {var if_res225 = or_part_22;} else {var if_res225 = subset_p(given_kws_0,allowed_kws_1);}if (if_res225!==false) {var if_res226 = subset_p(req_kws_2,given_kws_0);} else {var if_res226 = false;}var if_res227 = if_res226;} else {var if_res227 = false;}return if_res227;},$rjs_core.attachProcedureArity(function(kws_15, kw_args_2, ...vals_0224) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var vals_0 = $rjs_core.Pair.listFromArray(vals_0224);return keyword_apply(proc_15,kws_15,kw_args_2,vals_0);}),req_kws_2,allowed_kws_1,proc_15);}var if_res229 = if_res228;} else {var if_res229 = proc_15;}var if_res230 = if_res229;}return if_res230;};var reverse$1 = function(l_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reverse");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res232 = M0.rvoid();} else {if (M0.list_p(l_2)!==false) {var if_res231 = M0.rvoid();} else {var if_res231 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("reverse"),$rjs_core.UString.make("list?"),l_2);}var if_res232 = if_res231;}if_res232;var loop_9 = function(a_15, l_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_3)!==false) {var if_res233 = a_15;} else {var if_res233 = loop_9(M0.cons(M0.car(l_3),a_15),M0.cdr(l_3));}return if_res233;};return loop_9(M0.rnull,l_2);};var generic_sort_0 = function(A_0, less_than_p_0, n_3) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("generic-sort");var n_by_2__0 = M0.unsafe_fxrshift(n_3,1);var n_by_2_plus__0 = M0.unsafe_fx_(n_3,n_by_2__0);var copying_mergesort_0 = function(Alo_0, Blo_0, n_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("copying-mergesort");if (M0.unsafe_fx_eq_(n_4,1)!==false) {var if_res244 = M0.unsafe_vector_set_bang_(A_0,Blo_0,M0.unsafe_vector_ref(A_0,Alo_0));} else {if (M0.unsafe_fx_eq_(n_4,2)!==false) {var x_0 = M0.unsafe_vector_ref(A_0,Alo_0);var y_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_plus_(Alo_0,1));if (less_than_p_0(y_0,x_0)!==false) {M0.unsafe_vector_set_bang_(A_0,Blo_0,y_0);var if_res234 = M0.unsafe_vector_set_bang_(A_0,M0.unsafe_fx_plus_(Blo_0,1),x_0);} else {M0.unsafe_vector_set_bang_(A_0,Blo_0,x_0);var if_res234 = M0.unsafe_vector_set_bang_(A_0,M0.unsafe_fx_plus_(Blo_0,1),y_0);}var if_res243 = if_res234;} else {if (M0.unsafe_fx_lt_(n_4,16)!==false) {M0.unsafe_vector_set_bang_(A_0,Blo_0,M0.unsafe_vector_ref(A_0,Alo_0));var iloop_0 = function(i_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("iloop");if (M0.unsafe_fx_lt_(i_0,n_4)!==false) {var ref_i_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_plus_(Alo_0,i_0));var jloop_0 = function(j_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("jloop");var ref_j_1_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_(j_0,1));if (M0.unsafe_fx_lt_(Blo_0,j_0)!==false) {var if_res235 = less_than_p_0(ref_i_0,ref_j_1_0);} else {var if_res235 = false;}if (if_res235!==false) {M0.unsafe_vector_set_bang_(A_0,j_0,ref_j_1_0);var if_res236 = jloop_0(M0.unsafe_fx_(j_0,1));} else {M0.unsafe_vector_set_bang_(A_0,j_0,ref_i_0);var if_res236 = iloop_0(M0.unsafe_fx_plus_(i_0,1));}return if_res236;};var if_res237 = jloop_0(M0.unsafe_fx_plus_(Blo_0,i_0));} else {var if_res237 = M0.rvoid();}return if_res237;};var if_res242 = iloop_0(1);} else {var n_by_2__1 = M0.unsafe_fxrshift(n_4,1);var n_by_2_plus__1 = M0.unsafe_fx_(n_4,n_by_2__1);var Amid1_0 = M0.unsafe_fx_plus_(Alo_0,n_by_2__1);var Amid2_0 = M0.unsafe_fx_plus_(Alo_0,n_by_2_plus__1);var Bmid1_0 = M0.unsafe_fx_plus_(Blo_0,n_by_2__1);copying_mergesort_0(Amid1_0,Bmid1_0,n_by_2_plus__1);copying_mergesort_0(Alo_0,Amid2_0,n_by_2__1);var b2_0 = M0.unsafe_fx_plus_(Blo_0,n_4);var loop_10 = function(a1_0, b1_0, c1_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_1 = M0.unsafe_vector_ref(A_0,a1_0);var y_1 = M0.unsafe_vector_ref(A_0,b1_0);if (M0.not(less_than_p_0(y_1,x_1))!==false) {M0.unsafe_vector_set_bang_(A_0,c1_1,x_1);var a1_1 = M0.unsafe_fx_plus_(a1_0,1);var c1_2 = M0.unsafe_fx_plus_(c1_1,1);if (M0.unsafe_fx_lt_(c1_2,b1_0)!==false) {var if_res238 = loop_10(a1_1,b1_0,c1_2);} else {var if_res238 = M0.rvoid();}var if_res241 = if_res238;} else {M0.unsafe_vector_set_bang_(A_0,c1_1,y_1);var b1_1 = M0.unsafe_fx_plus_(b1_0,1);var c1_3 = M0.unsafe_fx_plus_(c1_1,1);if (M0.unsafe_fx_lt__eq_(b2_0,b1_1)!==false) {var loop_11 = function(a1_2, c1_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_4,b1_1)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_4,M0.unsafe_vector_ref(A_0,a1_2));var if_res239 = loop_11(M0.unsafe_fx_plus_(a1_2,1),M0.unsafe_fx_plus_(c1_4,1));} else {var if_res239 = M0.rvoid();}return if_res239;};var if_res240 = loop_11(a1_0,c1_3);} else {var if_res240 = loop_10(a1_0,b1_1,c1_3);}var if_res241 = if_res240;}return if_res241;};var if_res242 = loop_10(Amid2_0,Bmid1_0,Blo_0);}var if_res243 = if_res242;}var if_res244 = if_res243;}return if_res244;};var Alo_1 = 0;var Amid1_1 = n_by_2__0;var Amid2_1 = n_by_2_plus__0;var Ahi_0 = n_3;var B1lo_0 = n_3;copying_mergesort_0(Amid1_1,B1lo_0,n_by_2_plus__0);if (M0.zero_p(n_by_2__0)!==false) {var if_res245 = M0.rvoid();} else {var if_res245 = copying_mergesort_0(Alo_1,Amid2_1,n_by_2__0);}if_res245;var b2_1 = Ahi_0;var loop_12 = function(a1_3, b1_2, c1_5) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_2 = M0.unsafe_vector_ref(A_0,a1_3);var y_2 = M0.unsafe_vector_ref(A_0,b1_2);if (less_than_p_0(x_2,y_2)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_5,x_2);var a1_4 = M0.unsafe_fx_plus_(a1_3,1);var c1_6 = M0.unsafe_fx_plus_(c1_5,1);if (M0.unsafe_fx_lt_(c1_6,b1_2)!==false) {var if_res246 = loop_12(a1_4,b1_2,c1_6);} else {var if_res246 = M0.rvoid();}var if_res249 = if_res246;} else {M0.unsafe_vector_set_bang_(A_0,c1_5,y_2);var b1_3 = M0.unsafe_fx_plus_(b1_2,1);var c1_7 = M0.unsafe_fx_plus_(c1_5,1);if (M0.unsafe_fx_lt__eq_(b2_1,b1_3)!==false) {var loop_13 = function(a1_5, c1_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_8,b1_3)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_8,M0.unsafe_vector_ref(A_0,a1_5));var if_res247 = loop_13(M0.unsafe_fx_plus_(a1_5,1),M0.unsafe_fx_plus_(c1_8,1));} else {var if_res247 = M0.rvoid();}return if_res247;};var if_res248 = loop_13(a1_3,c1_7);} else {var if_res248 = loop_12(a1_3,b1_3,c1_7);}var if_res249 = if_res248;}return if_res249;};return loop_12(B1lo_0,Amid2_1,Alo_1);};var generic_sort_by_key_0 = function(A_1, less_than_p_1, n_5, key_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("generic-sort/key");var n_by_2__2 = M0.unsafe_fxrshift(n_5,1);var n_by_2_plus__2 = M0.unsafe_fx_(n_5,n_by_2__2);var copying_mergesort_1 = function(Alo_2, Blo_1, n_6) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("copying-mergesort");if (M0.unsafe_fx_eq_(n_6,1)!==false) {var if_res263 = M0.unsafe_vector_set_bang_(A_1,Blo_1,M0.unsafe_vector_ref(A_1,Alo_2));} else {if (M0.unsafe_fx_eq_(n_6,2)!==false) {var x_3 = M0.unsafe_vector_ref(A_1,Alo_2);var y_3 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_plus_(Alo_2,1));if (key_2!==false) {var if_res250 = less_than_p_1(key_2(y_3),key_2(x_3));} else {var if_res250 = less_than_p_1(y_3,x_3);}if (if_res250!==false) {M0.unsafe_vector_set_bang_(A_1,Blo_1,y_3);var if_res251 = M0.unsafe_vector_set_bang_(A_1,M0.unsafe_fx_plus_(Blo_1,1),x_3);} else {M0.unsafe_vector_set_bang_(A_1,Blo_1,x_3);var if_res251 = M0.unsafe_vector_set_bang_(A_1,M0.unsafe_fx_plus_(Blo_1,1),y_3);}var if_res262 = if_res251;} else {if (M0.unsafe_fx_lt_(n_6,16)!==false) {M0.unsafe_vector_set_bang_(A_1,Blo_1,M0.unsafe_vector_ref(A_1,Alo_2));var iloop_1 = function(i_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("iloop");if (M0.unsafe_fx_lt_(i_1,n_6)!==false) {var ref_i_1 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_plus_(Alo_2,i_1));var jloop_1 = function(j_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("jloop");var ref_j_1_1 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_(j_1,1));if (M0.unsafe_fx_lt_(Blo_1,j_1)!==false) {if (key_2!==false) {var if_res252 = less_than_p_1(key_2(ref_i_1),key_2(ref_j_1_1));} else {var if_res252 = less_than_p_1(ref_i_1,ref_j_1_1);}var if_res253 = if_res252;} else {var if_res253 = false;}if (if_res253!==false) {M0.unsafe_vector_set_bang_(A_1,j_1,ref_j_1_1);var if_res254 = jloop_1(M0.unsafe_fx_(j_1,1));} else {M0.unsafe_vector_set_bang_(A_1,j_1,ref_i_1);var if_res254 = iloop_1(M0.unsafe_fx_plus_(i_1,1));}return if_res254;};var if_res255 = jloop_1(M0.unsafe_fx_plus_(Blo_1,i_1));} else {var if_res255 = M0.rvoid();}return if_res255;};var if_res261 = iloop_1(1);} else {var n_by_2__3 = M0.unsafe_fxrshift(n_6,1);var n_by_2_plus__3 = M0.unsafe_fx_(n_6,n_by_2__3);var Amid1_2 = M0.unsafe_fx_plus_(Alo_2,n_by_2__3);var Amid2_2 = M0.unsafe_fx_plus_(Alo_2,n_by_2_plus__3);var Bmid1_1 = M0.unsafe_fx_plus_(Blo_1,n_by_2__3);copying_mergesort_1(Amid1_2,Bmid1_1,n_by_2_plus__3);copying_mergesort_1(Alo_2,Amid2_2,n_by_2__3);var b2_2 = M0.unsafe_fx_plus_(Blo_1,n_6);var loop_14 = function(a1_6, b1_4, c1_9) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_4 = M0.unsafe_vector_ref(A_1,a1_6);var y_4 = M0.unsafe_vector_ref(A_1,b1_4);if (key_2!==false) {var if_res256 = less_than_p_1(key_2(y_4),key_2(x_4));} else {var if_res256 = less_than_p_1(y_4,x_4);}if (M0.not(if_res256)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_9,x_4);var a1_7 = M0.unsafe_fx_plus_(a1_6,1);var c1_10 = M0.unsafe_fx_plus_(c1_9,1);if (M0.unsafe_fx_lt_(c1_10,b1_4)!==false) {var if_res257 = loop_14(a1_7,b1_4,c1_10);} else {var if_res257 = M0.rvoid();}var if_res260 = if_res257;} else {M0.unsafe_vector_set_bang_(A_1,c1_9,y_4);var b1_5 = M0.unsafe_fx_plus_(b1_4,1);var c1_11 = M0.unsafe_fx_plus_(c1_9,1);if (M0.unsafe_fx_lt__eq_(b2_2,b1_5)!==false) {var loop_15 = function(a1_8, c1_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_12,b1_5)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_12,M0.unsafe_vector_ref(A_1,a1_8));var if_res258 = loop_15(M0.unsafe_fx_plus_(a1_8,1),M0.unsafe_fx_plus_(c1_12,1));} else {var if_res258 = M0.rvoid();}return if_res258;};var if_res259 = loop_15(a1_6,c1_11);} else {var if_res259 = loop_14(a1_6,b1_5,c1_11);}var if_res260 = if_res259;}return if_res260;};var if_res261 = loop_14(Amid2_2,Bmid1_1,Blo_1);}var if_res262 = if_res261;}var if_res263 = if_res262;}return if_res263;};var Alo_3 = 0;var Amid1_3 = n_by_2__2;var Amid2_3 = n_by_2_plus__2;var Ahi_1 = n_5;var B1lo_1 = n_5;copying_mergesort_1(Amid1_3,B1lo_1,n_by_2_plus__2);if (M0.zero_p(n_by_2__2)!==false) {var if_res264 = M0.rvoid();} else {var if_res264 = copying_mergesort_1(Alo_3,Amid2_3,n_by_2__2);}if_res264;var b2_3 = Ahi_1;var loop_16 = function(a1_9, b1_6, c1_13) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_5 = M0.unsafe_vector_ref(A_1,a1_9);var y_5 = M0.unsafe_vector_ref(A_1,b1_6);if (key_2!==false) {var if_res265 = less_than_p_1(key_2(x_5),key_2(y_5));} else {var if_res265 = less_than_p_1(x_5,y_5);}if (if_res265!==false) {M0.unsafe_vector_set_bang_(A_1,c1_13,x_5);var a1_10 = M0.unsafe_fx_plus_(a1_9,1);var c1_14 = M0.unsafe_fx_plus_(c1_13,1);if (M0.unsafe_fx_lt_(c1_14,b1_6)!==false) {var if_res266 = loop_16(a1_10,b1_6,c1_14);} else {var if_res266 = M0.rvoid();}var if_res269 = if_res266;} else {M0.unsafe_vector_set_bang_(A_1,c1_13,y_5);var b1_7 = M0.unsafe_fx_plus_(b1_6,1);var c1_15 = M0.unsafe_fx_plus_(c1_13,1);if (M0.unsafe_fx_lt__eq_(b2_3,b1_7)!==false) {var loop_17 = function(a1_11, c1_16) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_16,b1_7)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_16,M0.unsafe_vector_ref(A_1,a1_11));var if_res267 = loop_17(M0.unsafe_fx_plus_(a1_11,1),M0.unsafe_fx_plus_(c1_16,1));} else {var if_res267 = M0.rvoid();}return if_res267;};var if_res268 = loop_17(a1_9,c1_15);} else {var if_res268 = loop_16(a1_9,b1_7,c1_15);}var if_res269 = if_res268;}return if_res269;};return loop_16(B1lo_1,Amid2_3,Alo_3);};var cl341 = function(lst_0, less_than_p_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_7 = M0.length(lst_0);if (M0.unsafe_fx_eq_(n_7,0)!==false) {var if_res357 = lst_0;} else {var loop_18 = function(last_0, next_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_23 = M0.null_p(next_0);if (or_part_23!==false) {var if_res346 = or_part_23;} else {if (M0.not(less_than_p_2(M0.unsafe_car(next_0),last_0))!==false) {var if_res345 = loop_18(M0.unsafe_car(next_0),M0.unsafe_cdr(next_0));} else {var if_res345 = false;}var if_res346 = if_res345;}return if_res346;};if (loop_18(M0.car(lst_0),M0.cdr(lst_0))!==false) {var if_res356 = lst_0;} else {if (M0.unsafe_fx_lt__eq_(n_7,3)!==false) {if (M0.unsafe_fx_eq_(n_7,1)!==false) {var if_res352 = lst_0;} else {if (M0.unsafe_fx_eq_(n_7,2)!==false) {var if_res351 = M0.list(M0.cadr(lst_0),M0.car(lst_0));} else {var a_16 = M0.car(lst_0);var b_0 = M0.cadr(lst_0);var c_0 = M0.caddr(lst_0);if (less_than_p_2(b_0,a_16)!==false) {if (less_than_p_2(c_0,b_0)!==false) {var if_res348 = M0.list(c_0,b_0,a_16);} else {if (less_than_p_2(c_0,a_16)!==false) {var if_res347 = M0.list(b_0,c_0,a_16);} else {var if_res347 = M0.list(b_0,a_16,c_0);}var if_res348 = if_res347;}var if_res350 = if_res348;} else {if (less_than_p_2(c_0,a_16)!==false) {var if_res349 = M0.list(c_0,a_16,b_0);} else {var if_res349 = M0.list(a_16,c_0,b_0);}var if_res350 = if_res349;}var if_res351 = if_res350;}var if_res352 = if_res351;}var if_res355 = if_res352;} else {var vec_0 = M0.make_vector(n_7+M0.ceiling(n_7/2));var loop_19 = function(i_2, lst_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_1)!==false) {M0.vector_set_bang_(vec_0,i_2,M0.car(lst_1));var if_res353 = loop_19(M0.add1(i_2),M0.cdr(lst_1));} else {var if_res353 = M0.rvoid();}return if_res353;};loop_19(0,lst_0);generic_sort_0(vec_0,less_than_p_2,n_7);var loop_20 = function(i_3, r_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_4 = M0.sub1(i_3);if (M0.__lt_(i_4,0)!==false) {var if_res354 = r_0;} else {var if_res354 = loop_20(i_4,M0.cons(M0.vector_ref(vec_0,i_4),r_0));}return if_res354;};var if_res355 = loop_20(n_7,$rjs_core.Pair.makeList());}var if_res356 = if_res355;}var if_res357 = if_res356;}return if_res357;};var cl342 = function(lst_2, less_than_p_3, getkey_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_0!==false) {var if_res358 = M0.not(M0.eq_p(M0.values,getkey_0));} else {var if_res358 = false;}if (if_res358!==false) {var if_res359 = sort(lst_2,less_than_p_3,getkey_0,false);} else {var if_res359 = sort(lst_2,less_than_p_3);}return if_res359;};var cl343 = function(lst_3, less_than_p_4, getkey_1, cache_keys_p_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_1!==false) {var if_res360 = M0.not(M0.eq_p(M0.values,getkey_1));} else {var if_res360 = false;}if (if_res360!==false) {var n_8 = M0.length(lst_3);if (M0.unsafe_fx_eq_(n_8,0)!==false) {var if_res381 = lst_3;} else {if (cache_keys_p_0!==false) {var vec_1 = M0.make_vector(n_8+M0.ceiling(n_8/2));var loop_21 = function(i_5, lst_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_4)!==false) {var x_6 = M0.car(lst_4);M0.unsafe_vector_set_bang_(vec_1,i_5,M0.cons(getkey_1(x_6),x_6));var if_res361 = loop_21(M0.unsafe_fx_plus_(i_5,1),M0.cdr(lst_4));} else {var if_res361 = M0.rvoid();}return if_res361;};loop_21(0,lst_3);generic_sort_by_key_0(vec_1,less_than_p_4,n_8,M0.unsafe_car);var loop_22 = function(i_6, r_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_7 = M0.unsafe_fx_(i_6,1);if (M0.unsafe_fx_lt_(i_7,0)!==false) {var if_res362 = r_1;} else {var if_res362 = loop_22(i_7,M0.cons(M0.unsafe_cdr(M0.unsafe_vector_ref(vec_1,i_7)),r_1));}return if_res362;};var if_res380 = loop_22(n_8,$rjs_core.Pair.makeList());} else {var loop_23 = function(last_1, next_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_24 = M0.null_p(next_1);if (or_part_24!==false) {var if_res365 = or_part_24;} else {if (getkey_1!==false) {var if_res363 = less_than_p_4(getkey_1(M0.unsafe_car(next_1)),getkey_1(last_1));} else {var if_res363 = less_than_p_4(M0.unsafe_car(next_1),last_1);}if (M0.not(if_res363)!==false) {var if_res364 = loop_23(M0.unsafe_car(next_1),M0.unsafe_cdr(next_1));} else {var if_res364 = false;}var if_res365 = if_res364;}return if_res365;};if (loop_23(M0.car(lst_3),M0.cdr(lst_3))!==false) {var if_res379 = lst_3;} else {if (M0.unsafe_fx_lt__eq_(n_8,3)!==false) {if (M0.unsafe_fx_eq_(n_8,1)!==false) {var if_res375 = lst_3;} else {if (M0.unsafe_fx_eq_(n_8,2)!==false) {var if_res374 = M0.list(M0.cadr(lst_3),M0.car(lst_3));} else {var a_17 = M0.car(lst_3);var b_1 = M0.cadr(lst_3);var c_1 = M0.caddr(lst_3);if (getkey_1!==false) {var if_res366 = less_than_p_4(getkey_1(b_1),getkey_1(a_17));} else {var if_res366 = less_than_p_4(b_1,a_17);}if (if_res366!==false) {if (getkey_1!==false) {var if_res367 = less_than_p_4(getkey_1(c_1),getkey_1(b_1));} else {var if_res367 = less_than_p_4(c_1,b_1);}if (if_res367!==false) {var if_res370 = M0.list(c_1,b_1,a_17);} else {if (getkey_1!==false) {var if_res368 = less_than_p_4(getkey_1(c_1),getkey_1(a_17));} else {var if_res368 = less_than_p_4(c_1,a_17);}if (if_res368!==false) {var if_res369 = M0.list(b_1,c_1,a_17);} else {var if_res369 = M0.list(b_1,a_17,c_1);}var if_res370 = if_res369;}var if_res373 = if_res370;} else {if (getkey_1!==false) {var if_res371 = less_than_p_4(getkey_1(c_1),getkey_1(a_17));} else {var if_res371 = less_than_p_4(c_1,a_17);}if (if_res371!==false) {var if_res372 = M0.list(c_1,a_17,b_1);} else {var if_res372 = M0.list(a_17,c_1,b_1);}var if_res373 = if_res372;}var if_res374 = if_res373;}var if_res375 = if_res374;}var if_res378 = if_res375;} else {var vec_2 = M0.make_vector(n_8+M0.ceiling(n_8/2));var loop_24 = function(i_8, lst_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_5)!==false) {M0.vector_set_bang_(vec_2,i_8,M0.car(lst_5));var if_res376 = loop_24(M0.add1(i_8),M0.cdr(lst_5));} else {var if_res376 = M0.rvoid();}return if_res376;};loop_24(0,lst_3);generic_sort_by_key_0(vec_2,less_than_p_4,n_8,getkey_1);var loop_25 = function(i_9, r_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_10 = M0.sub1(i_9);if (M0.__lt_(i_10,0)!==false) {var if_res377 = r_2;} else {var if_res377 = loop_25(i_10,M0.cons(M0.vector_ref(vec_2,i_10),r_2));}return if_res377;};var if_res378 = loop_25(n_8,$rjs_core.Pair.makeList());}var if_res379 = if_res378;}var if_res380 = if_res379;}var if_res381 = if_res380;}var if_res382 = if_res381;} else {var if_res382 = sort(lst_3,less_than_p_4);}return if_res382;};var temp383 = $rjs_core.attachProcedureArity(function() {var fixed_lam344 = {'2':cl341,'3':cl342,'4':cl343}[arguments.length];if (fixed_lam344!==undefined) {return fixed_lam344.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3,4]);var cl305 = function(vec_3, less_than_p_5, start_0, end_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_9 = end_0-start_0;var dst_vec_0 = M0.make_vector(n_9);var dst_start_0 = 0;if (M0.unsafe_fx_eq_(n_9,0)!==false) {var if_res318 = M0.rvoid();} else {var loop_26 = function(prev_val_0, next_index_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_25 = M0.unsafe_fx_eq_(next_index_0,end_0);if (or_part_25!==false) {var if_res309 = or_part_25;} else {var next_val_0 = M0.unsafe_vector_ref(vec_3,next_index_0);if (M0.not(less_than_p_5(next_val_0,prev_val_0))!==false) {var if_res308 = loop_26(next_val_0,M0.unsafe_fx_plus_(next_index_0,1));} else {var if_res308 = false;}var if_res309 = if_res308;}return if_res309;};if (loop_26(M0.unsafe_vector_ref(vec_3,start_0),M0.unsafe_fx_plus_(start_0,1))!==false) {var if_res317 = M0.vector_copy_bang_(dst_vec_0,dst_start_0,vec_3,start_0,end_0);} else {if (M0.unsafe_fx_lt__eq_(n_9,3)!==false) {M0.vector_copy_bang_(dst_vec_0,dst_start_0,vec_3,start_0,end_0);if (M0.unsafe_fx_eq_(n_9,1)!==false) {var if_res315 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_9,2)!==false) {var tmp_1 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0));M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1)));var if_res314 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),tmp_1);} else {var a_18 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0));var b_2 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1));var c_2 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2));if (less_than_p_5(b_2,a_18)!==false) {if (less_than_p_5(c_2,b_2)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),c_2);var if_res311 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),a_18);} else {if (less_than_p_5(c_2,a_18)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),b_2);M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),c_2);var if_res310 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),a_18);} else {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),b_2);var if_res310 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),a_18);}var if_res311 = if_res310;}var if_res313 = if_res311;} else {if (less_than_p_5(c_2,a_18)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),c_2);M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),a_18);var if_res312 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),b_2);} else {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),c_2);var if_res312 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),b_2);}var if_res313 = if_res312;}var if_res314 = if_res313;}var if_res315 = if_res314;}var if_res316 = if_res315;} else {var work_vec_0 = M0.make_vector(n_9+M0.ceiling(n_9/2),false);M0.vector_copy_bang_(work_vec_0,0,vec_3,start_0,end_0);generic_sort_0(work_vec_0,less_than_p_5,n_9);var if_res316 = M0.vector_copy_bang_(dst_vec_0,dst_start_0,work_vec_0,0,n_9);}var if_res317 = if_res316;}var if_res318 = if_res317;}if_res318;return dst_vec_0;};var cl306 = function(vec_4, less_than_p_6, start_1, end_1, getkey_2, cache_keys_p_1) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_2!==false) {var if_res319 = M0.not(M0.eq_p(M0.values,getkey_2));} else {var if_res319 = false;}if (if_res319!==false) {var n_10 = end_1-start_1;var dst_vec_1 = M0.make_vector(n_10);var dst_start_1 = 0;if (M0.unsafe_fx_eq_(n_10,0)!==false) {var if_res338 = M0.rvoid();} else {if (cache_keys_p_1!==false) {var work_vec_1 = M0.make_vector(n_10+M0.ceiling(n_10/2),true);var loop_27 = function(i_11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_11,n_10)!==false) {var x_7 = M0.unsafe_vector_ref(vec_4,M0.unsafe_fx_plus_(i_11,start_1));M0.unsafe_vector_set_bang_(work_vec_1,i_11,M0.cons(getkey_2(x_7),x_7));var if_res320 = loop_27(M0.unsafe_fx_plus_(i_11,1));} else {var if_res320 = M0.rvoid();}return if_res320;};loop_27(0);generic_sort_by_key_0(work_vec_1,less_than_p_6,n_10,M0.unsafe_car);var loop_28 = function(i_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_12,n_10)!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(i_12,dst_start_1),M0.unsafe_cdr(M0.unsafe_vector_ref(work_vec_1,i_12)));var if_res321 = loop_28(M0.unsafe_fx_plus_(i_12,1));} else {var if_res321 = M0.rvoid();}return if_res321;};var if_res337 = loop_28(0);} else {var loop_29 = function(prev_val_1, next_index_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_26 = M0.unsafe_fx_eq_(next_index_1,end_1);if (or_part_26!==false) {var if_res324 = or_part_26;} else {var next_val_1 = M0.unsafe_vector_ref(vec_4,next_index_1);if (getkey_2!==false) {var if_res322 = less_than_p_6(getkey_2(next_val_1),getkey_2(prev_val_1));} else {var if_res322 = less_than_p_6(next_val_1,prev_val_1);}if (M0.not(if_res322)!==false) {var if_res323 = loop_29(next_val_1,M0.unsafe_fx_plus_(next_index_1,1));} else {var if_res323 = false;}var if_res324 = if_res323;}return if_res324;};if (loop_29(M0.unsafe_vector_ref(vec_4,start_1),M0.unsafe_fx_plus_(start_1,1))!==false) {var if_res336 = M0.vector_copy_bang_(dst_vec_1,dst_start_1,vec_4,start_1,end_1);} else {if (M0.unsafe_fx_lt__eq_(n_10,3)!==false) {M0.vector_copy_bang_(dst_vec_1,dst_start_1,vec_4,start_1,end_1);if (M0.unsafe_fx_eq_(n_10,1)!==false) {var if_res334 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_10,2)!==false) {var tmp_2 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0));M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1)));var if_res333 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),tmp_2);} else {var a_19 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0));var b_3 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1));var c_3 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2));if (getkey_2!==false) {var if_res325 = less_than_p_6(getkey_2(b_3),getkey_2(a_19));} else {var if_res325 = less_than_p_6(b_3,a_19);}if (if_res325!==false) {if (getkey_2!==false) {var if_res326 = less_than_p_6(getkey_2(c_3),getkey_2(b_3));} else {var if_res326 = less_than_p_6(c_3,b_3);}if (if_res326!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),c_3);var if_res329 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),a_19);} else {if (getkey_2!==false) {var if_res327 = less_than_p_6(getkey_2(c_3),getkey_2(a_19));} else {var if_res327 = less_than_p_6(c_3,a_19);}if (if_res327!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),b_3);M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),c_3);var if_res328 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),a_19);} else {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),b_3);var if_res328 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),a_19);}var if_res329 = if_res328;}var if_res332 = if_res329;} else {if (getkey_2!==false) {var if_res330 = less_than_p_6(getkey_2(c_3),getkey_2(a_19));} else {var if_res330 = less_than_p_6(c_3,a_19);}if (if_res330!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),c_3);M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),a_19);var if_res331 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),b_3);} else {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),c_3);var if_res331 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),b_3);}var if_res332 = if_res331;}var if_res333 = if_res332;}var if_res334 = if_res333;}var if_res335 = if_res334;} else {var work_vec_2 = M0.make_vector(n_10+M0.ceiling(n_10/2),false);M0.vector_copy_bang_(work_vec_2,0,vec_4,start_1,end_1);generic_sort_by_key_0(work_vec_2,less_than_p_6,n_10,getkey_2);var if_res335 = M0.vector_copy_bang_(dst_vec_1,dst_start_1,work_vec_2,0,n_10);}var if_res336 = if_res335;}var if_res337 = if_res336;}var if_res338 = if_res337;}if_res338;var if_res339 = dst_vec_1;} else {var if_res339 = vector_sort(vec_4,less_than_p_6,start_1,end_1);}return if_res339;};var temp340 = $rjs_core.attachProcedureArity(function() {var fixed_lam307 = {'4':cl305,'6':cl306}[arguments.length];if (fixed_lam307!==undefined) {return fixed_lam307.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,6]);var cl270 = function(vec_5, less_than_p_7, start_2, end_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_11 = end_2-start_2;var dst_vec_2 = vec_5;var dst_start_2 = start_2;if (M0.unsafe_fx_eq_(n_11,0)!==false) {var if_res283 = M0.rvoid();} else {var loop_30 = function(prev_val_2, next_index_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_27 = M0.unsafe_fx_eq_(next_index_2,end_2);if (or_part_27!==false) {var if_res274 = or_part_27;} else {var next_val_2 = M0.unsafe_vector_ref(vec_5,next_index_2);if (M0.not(less_than_p_7(next_val_2,prev_val_2))!==false) {var if_res273 = loop_30(next_val_2,M0.unsafe_fx_plus_(next_index_2,1));} else {var if_res273 = false;}var if_res274 = if_res273;}return if_res274;};if (loop_30(M0.unsafe_vector_ref(vec_5,start_2),M0.unsafe_fx_plus_(start_2,1))!==false) {var if_res282 = M0.rvoid();} else {if (M0.unsafe_fx_lt__eq_(n_11,3)!==false) {M0.rvoid();if (M0.unsafe_fx_eq_(n_11,1)!==false) {var if_res280 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_11,2)!==false) {var tmp_3 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0));M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1)));var if_res279 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),tmp_3);} else {var a_20 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0));var b_4 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1));var c_4 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2));if (less_than_p_7(b_4,a_20)!==false) {if (less_than_p_7(c_4,b_4)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),c_4);var if_res276 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),a_20);} else {if (less_than_p_7(c_4,a_20)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),b_4);M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),c_4);var if_res275 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),a_20);} else {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),b_4);var if_res275 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),a_20);}var if_res276 = if_res275;}var if_res278 = if_res276;} else {if (less_than_p_7(c_4,a_20)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),c_4);M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),a_20);var if_res277 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),b_4);} else {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),c_4);var if_res277 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),b_4);}var if_res278 = if_res277;}var if_res279 = if_res278;}var if_res280 = if_res279;}var if_res281 = if_res280;} else {var work_vec_3 = M0.make_vector(n_11+M0.ceiling(n_11/2),false);M0.vector_copy_bang_(work_vec_3,0,vec_5,start_2,end_2);generic_sort_0(work_vec_3,less_than_p_7,n_11);var if_res281 = M0.vector_copy_bang_(dst_vec_2,dst_start_2,work_vec_3,0,n_11);}var if_res282 = if_res281;}var if_res283 = if_res282;}if_res283;return M0.rvoid();};var cl271 = function(vec_6, less_than_p_8, start_3, end_3, getkey_3, cache_keys_p_2) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_3!==false) {var if_res284 = M0.not(M0.eq_p(M0.values,getkey_3));} else {var if_res284 = false;}if (if_res284!==false) {var n_12 = end_3-start_3;var dst_vec_3 = vec_6;var dst_start_3 = start_3;if (M0.unsafe_fx_eq_(n_12,0)!==false) {var if_res303 = M0.rvoid();} else {if (cache_keys_p_2!==false) {var work_vec_4 = M0.make_vector(n_12+M0.ceiling(n_12/2),true);var loop_31 = function(i_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_13,n_12)!==false) {var x_8 = M0.unsafe_vector_ref(vec_6,M0.unsafe_fx_plus_(i_13,start_3));M0.unsafe_vector_set_bang_(work_vec_4,i_13,M0.cons(getkey_3(x_8),x_8));var if_res285 = loop_31(M0.unsafe_fx_plus_(i_13,1));} else {var if_res285 = M0.rvoid();}return if_res285;};loop_31(0);generic_sort_by_key_0(work_vec_4,less_than_p_8,n_12,M0.unsafe_car);var loop_32 = function(i_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_14,n_12)!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(i_14,dst_start_3),M0.unsafe_cdr(M0.unsafe_vector_ref(work_vec_4,i_14)));var if_res286 = loop_32(M0.unsafe_fx_plus_(i_14,1));} else {var if_res286 = M0.rvoid();}return if_res286;};var if_res302 = loop_32(0);} else {var loop_33 = function(prev_val_3, next_index_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_28 = M0.unsafe_fx_eq_(next_index_3,end_3);if (or_part_28!==false) {var if_res289 = or_part_28;} else {var next_val_3 = M0.unsafe_vector_ref(vec_6,next_index_3);if (getkey_3!==false) {var if_res287 = less_than_p_8(getkey_3(next_val_3),getkey_3(prev_val_3));} else {var if_res287 = less_than_p_8(next_val_3,prev_val_3);}if (M0.not(if_res287)!==false) {var if_res288 = loop_33(next_val_3,M0.unsafe_fx_plus_(next_index_3,1));} else {var if_res288 = false;}var if_res289 = if_res288;}return if_res289;};if (loop_33(M0.unsafe_vector_ref(vec_6,start_3),M0.unsafe_fx_plus_(start_3,1))!==false) {var if_res301 = M0.rvoid();} else {if (M0.unsafe_fx_lt__eq_(n_12,3)!==false) {M0.rvoid();if (M0.unsafe_fx_eq_(n_12,1)!==false) {var if_res299 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_12,2)!==false) {var tmp_4 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0));M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1)));var if_res298 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),tmp_4);} else {var a_21 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0));var b_5 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1));var c_5 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2));if (getkey_3!==false) {var if_res290 = less_than_p_8(getkey_3(b_5),getkey_3(a_21));} else {var if_res290 = less_than_p_8(b_5,a_21);}if (if_res290!==false) {if (getkey_3!==false) {var if_res291 = less_than_p_8(getkey_3(c_5),getkey_3(b_5));} else {var if_res291 = less_than_p_8(c_5,b_5);}if (if_res291!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),c_5);var if_res294 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),a_21);} else {if (getkey_3!==false) {var if_res292 = less_than_p_8(getkey_3(c_5),getkey_3(a_21));} else {var if_res292 = less_than_p_8(c_5,a_21);}if (if_res292!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),b_5);M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),c_5);var if_res293 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),a_21);} else {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),b_5);var if_res293 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),a_21);}var if_res294 = if_res293;}var if_res297 = if_res294;} else {if (getkey_3!==false) {var if_res295 = less_than_p_8(getkey_3(c_5),getkey_3(a_21));} else {var if_res295 = less_than_p_8(c_5,a_21);}if (if_res295!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),c_5);M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),a_21);var if_res296 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),b_5);} else {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),c_5);var if_res296 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),b_5);}var if_res297 = if_res296;}var if_res298 = if_res297;}var if_res299 = if_res298;}var if_res300 = if_res299;} else {var work_vec_5 = M0.make_vector(n_12+M0.ceiling(n_12/2),false);M0.vector_copy_bang_(work_vec_5,0,vec_6,start_3,end_3);generic_sort_by_key_0(work_vec_5,less_than_p_8,n_12,getkey_3);var if_res300 = M0.vector_copy_bang_(dst_vec_3,dst_start_3,work_vec_5,0,n_12);}var if_res301 = if_res300;}var if_res302 = if_res301;}var if_res303 = if_res302;}if_res303;var if_res304 = M0.rvoid();} else {var if_res304 = vector_sort_bang_(vec_6,less_than_p_8,start_3,end_3);}return if_res304;};var let_result384 = M0.values(temp383,temp340,$rjs_core.attachProcedureArity(function() {var fixed_lam272 = {'4':cl270,'6':cl271}[arguments.length];if (fixed_lam272!==undefined) {return fixed_lam272.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,6]));var sort = let_result384.getAt(0);var vector_sort = let_result384.getAt(1);var vector_sort_bang_ = let_result384.getAt(2);var let_result385 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("sequence"),false,1,0,false);var struct_do_sequence = let_result385.getAt(0);var make_do_sequence = let_result385.getAt(1);var do_sequence_p = let_result385.getAt(2);var do_sequence_ref = let_result385.getAt(3);var do_sequence_set_bang_ = let_result385.getAt(4);var let_result394 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("stream"),function(v_13, si_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.vector_p(v_13)!==false) {if (M0.__eq_(3,M0.vector_length(v_13))!==false) {if (M0.procedure_p(M0.vector_ref(v_13,0))!==false) {if (M0.procedure_arity_includes_p(M0.vector_ref(v_13,0),1)!==false) {if (M0.procedure_p(M0.vector_ref(v_13,1))!==false) {if (M0.procedure_arity_includes_p(M0.vector_ref(v_13,1),1)!==false) {if (M0.procedure_p(M0.vector_ref(v_13,2))!==false) {var if_res386 = M0.procedure_arity_includes_p(M0.vector_ref(v_13,2),1);} else {var if_res386 = false;}var if_res387 = if_res386;} else {var if_res387 = false;}var if_res388 = if_res387;} else {var if_res388 = false;}var if_res389 = if_res388;} else {var if_res389 = false;}var if_res390 = if_res389;} else {var if_res390 = false;}var if_res391 = if_res390;} else {var if_res391 = false;}var if_res392 = if_res391;} else {var if_res392 = false;}if (if_res392!==false) {var if_res393 = M0.rvoid();} else {var if_res393 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("guard-for-prop:stream"),M0.string_append($rjs_core.UString.make("(vector/c (procedure-arity-includes/c 1)\n"),$rjs_core.UString.make(" (procedure-arity-includes/c 1)\n"),$rjs_core.UString.make(" (procedure-arity-includes/c 1))")),v_13);}if_res393;return M0.vector__gt_immutable_vector(v_13);},$rjs_core.Pair.makeList(),true);var prop_stream = let_result394.getAt(0);var stream_via_prop_p = let_result394.getAt(1);var stream_ref = let_result394.getAt(2);var let_result397 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("sequence"),function(v_14, si_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(v_14)!==false) {var if_res395 = M0.procedure_arity_includes_p(v_14,1);} else {var if_res395 = false;}if (if_res395!==false) {var if_res396 = M0.rvoid();} else {var if_res396 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("guard-for-prop:sequence"),$rjs_core.UString.make("(procedure-arity-includes/c 1)"),v_14);}if_res396;return v_14;});var prop_gen_sequence = let_result397.getAt(0);var sequence_via_prop_p = let_result397.getAt(1);var sequence_ref = let_result397.getAt(2);var let_result401 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("sequence"),function(v_15, sinfo_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(v_15)!==false) {var if_res398 = M0.procedure_arity_includes_p(v_15,1);} else {var if_res398 = false;}if (if_res398!==false) {var if_res399 = M0.rvoid();} else {var if_res399 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sequence-property-guard"),$rjs_core.UString.make("(procedure-arity-includes/c 1)"),v_15);}if_res399;return function(self_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var s_0 = v_15(self_0);if (sequence_p(s_0)!==false) {var if_res400 = M0.rvoid();} else {var if_res400 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("sequence-generate"),$rjs_core.UString.make("procedure (value of prop:sequence) produced a non-sequence: "),s_0);}if_res400;return s_0;};});var prop_sequence = let_result401.getAt(0);var __sequence_p = let_result401.getAt(1);var __sequence_ref = let_result401.getAt(2);var stream_p = function(v_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_29 = M0.list_p(v_16);if (or_part_29!==false) {var if_res402 = or_part_29;} else {var if_res402 = stream_via_prop_p(v_16);}return if_res402;};var unsafe_stream_not_empty_p = function(v_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(v_17)!==false) {var if_res404 = false;} else {var or_part_30 = M0.pair_p(v_17);if (or_part_30!==false) {var if_res403 = or_part_30;} else {var if_res403 = M0.not(M0.unsafe_vector_ref(stream_ref(v_17),0)(v_17));}var if_res404 = if_res403;}return if_res404;};var unsafe_stream_first = function(v_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.pair_p(v_18)!==false) {var if_res405 = M0.car(v_18);} else {var if_res405 = M0.unsafe_vector_ref(stream_ref(v_18),1)(v_18);}return if_res405;};var unsafe_stream_rest = function(v_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.pair_p(v_19)!==false) {var if_res407 = M0.cdr(v_19);} else {var r_3 = M0.unsafe_vector_ref(stream_ref(v_19),2)(v_19);if (stream_p(r_3)!==false) {var if_res406 = M0.rvoid();} else {var if_res406 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("stream-rest-guard"),$rjs_core.UString.make("result is not a stream: "),r_3);}if_res406;var if_res407 = r_3;}return if_res407;};var sequence_p = function(v_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_31 = M0.exact_nonnegative_integer_p(v_20);if (or_part_31!==false) {var if_res420 = or_part_31;} else {var or_part_32 = do_sequence_p(v_20);if (or_part_32!==false) {var if_res419 = or_part_32;} else {var or_part_33 = sequence_via_prop_p(v_20);if (or_part_33!==false) {var if_res418 = or_part_33;} else {var or_part_34 = stream_p(v_20);if (or_part_34!==false) {var if_res417 = or_part_34;} else {var or_part_35 = M0.mpair_p(v_20);if (or_part_35!==false) {var if_res416 = or_part_35;} else {var or_part_36 = M0.vector_p(v_20);if (or_part_36!==false) {var if_res415 = or_part_36;} else {var or_part_37 = M0.flvector_p(v_20);if (or_part_37!==false) {var if_res414 = or_part_37;} else {var or_part_38 = M0.fxvector_p(v_20);if (or_part_38!==false) {var if_res413 = or_part_38;} else {var or_part_39 = M0.string_p(v_20);if (or_part_39!==false) {var if_res412 = or_part_39;} else {var or_part_40 = M0.bytes_p(v_20);if (or_part_40!==false) {var if_res411 = or_part_40;} else {var or_part_41 = M0.input_port_p(v_20);if (or_part_41!==false) {var if_res410 = or_part_41;} else {var or_part_42 = M0.hash_p(v_20);if (or_part_42!==false) {var if_res409 = or_part_42;} else {if (__sequence_p(v_20)!==false) {var if_res408 = M0.not(M0.struct_type_p(v_20));} else {var if_res408 = false;}var if_res409 = if_res408;}var if_res410 = if_res409;}var if_res411 = if_res410;}var if_res412 = if_res411;}var if_res413 = if_res412;}var if_res414 = if_res413;}var if_res415 = if_res414;}var if_res416 = if_res415;}var if_res417 = if_res416;}var if_res418 = if_res417;}var if_res419 = if_res418;}var if_res420 = if_res419;}return if_res420;};var make_sequence = function(who_2, v_21) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(v_21)!==false) {var if_res439 = __integer_gen(v_21);} else {if (do_sequence_p(v_21)!==false) {var cl421 = function(pos__gt_vals_0, pos_next_0, init_0, pos_cont_p_0, val_cont_p_0, all_cont_p_0) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(pos__gt_vals_0,false,pos_next_0,init_0,pos_cont_p_0,val_cont_p_0,all_cont_p_0);};var cl422 = function(pos__gt_vals_1, pre_pos_next_0, pos_next_1, init_1, pos_cont_p_1, val_cont_p_1, all_cont_p_1) {if (arguments.length!==7) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(pos__gt_vals_1,pre_pos_next_0,pos_next_1,init_1,pos_cont_p_1,val_cont_p_1,all_cont_p_1);};var if_res438 = M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_sequence_ref(v_21,0)();},$rjs_core.attachProcedureArity(function() {var fixed_lam423 = {'6':cl421,'7':cl422}[arguments.length];if (fixed_lam423!==undefined) {return fixed_lam423.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[6,7]));} else {if (M0.mpair_p(v_21)!==false) {var if_res437 = __mlist_gen(v_21);} else {if (M0.list_p(v_21)!==false) {var if_res436 = __list_gen(v_21);} else {if (M0.vector_p(v_21)!==false) {var if_res435 = __vector_gen(v_21,0,M0.vector_length(v_21),1);} else {if (M0.flvector_p(v_21)!==false) {var if_res434 = __flvector_gen(v_21,0,M0.flvector_length(v_21),1);} else {if (M0.fxvector_p(v_21)!==false) {var if_res433 = __fxvector_gen(v_21,0,M0.fxvector_length(v_21),1);} else {if (M0.string_p(v_21)!==false) {var if_res432 = __string_gen(v_21,0,M0.string_length(v_21),1);} else {if (M0.bytes_p(v_21)!==false) {var if_res431 = __bytes_gen(v_21,0,M0.bytes_length(v_21),1);} else {if (M0.input_port_p(v_21)!==false) {var if_res430 = __input_port_gen(v_21);} else {if (M0.hash_p(v_21)!==false) {var if_res429 = __hash_gen(v_21,M0.hash_iterate_key_plus_value,M0.hash_iterate_first,M0.hash_iterate_next);} else {if (sequence_via_prop_p(v_21)!==false) {var if_res428 = sequence_ref(v_21)(v_21);} else {if (__sequence_p(v_21)!==false) {var if_res427 = make_sequence(who_2,__sequence_ref(v_21)(v_21));} else {if (stream_p(v_21)!==false) {var if_res426 = __stream_gen(v_21);} else {var temp425 = $rjs_core.UString.make("for: expected a sequence for ~a, got something else: ~v");if (M0.__eq_(1,M0.length(who_2))!==false) {var if_res424 = M0.car(who_2);} else {var if_res424 = who_2;}var if_res426 = M0.raise(M0.exn_fail_contract(M0.format(temp425,if_res424,v_21),M0.current_continuation_marks()));}var if_res427 = if_res426;}var if_res428 = if_res427;}var if_res429 = if_res428;}var if_res430 = if_res429;}var if_res431 = if_res430;}var if_res432 = if_res431;}var if_res433 = if_res432;}var if_res434 = if_res433;}var if_res435 = if_res434;}var if_res436 = if_res435;}var if_res437 = if_res436;}var if_res438 = if_res437;}var if_res439 = if_res438;}return if_res439;};var let_result441 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,3,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var cont_p_0 = range_ref(v_22,2);if (cont_p_0!==false) {var if_res440 = M0.not(cont_p_0(range_ref(v_22,0)));} else {var if_res440 = false;}return if_res440;},function(v_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return range_ref(v_23,0);},function(v_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return make_range(range_ref(v_24,1)(range_ref(v_24,0)),range_ref(v_24,1),range_ref(v_24,2));})),M0.cons(prop_gen_sequence,function(v_25) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.values,false,range_ref(v_25,1),range_ref(v_25,0),range_ref(v_25,2),false,false);})));var struct_range = let_result441.getAt(0);var make_range = let_result441.getAt(1);var range_p = let_result441.getAt(2);var range_ref = let_result441.getAt(3);var range_set_bang_ = let_result441.getAt(4);var check_range = function(a_22, b_6, step_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return check_range_generic($rjs_core.PrimitiveSymbol.make("in-range"),a_22,b_6,step_0);};var check_range_generic = function(who_3, a_23, b_7, step_1) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.real_p(a_23)!==false) {var if_res442 = M0.rvoid();} else {var if_res442 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),a_23);}if_res442;if (M0.real_p(b_7)!==false) {var if_res443 = M0.rvoid();} else {var if_res443 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),b_7);}if_res443;if (M0.real_p(step_1)!==false) {var if_res444 = M0.rvoid();} else {var if_res444 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),step_1);}return if_res444;};var __integer_gen = function(v_26) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.values,false,M0.add1,0,function(i_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_15,v_26);},false,false);};var check_naturals = function(n_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.integer_p(n_13)!==false) {if (M0.exact_p(n_13)!==false) {var if_res445 = M0.__gt__eq_(n_13,0);} else {var if_res445 = false;}var if_res446 = if_res445;} else {var if_res446 = false;}if (if_res446!==false) {var if_res447 = M0.rvoid();} else {var if_res447 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-naturals"),$rjs_core.UString.make("exact-nonnegative-integer?"),n_13);}return if_res447;};var let_result448 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,1,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.pair_p(list_stream_ref(v_27,0)));},function(v_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.car(list_stream_ref(v_28,0));},function(v_29) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return make_list_stream(M0.cdr(list_stream_ref(v_29,0)));})),M0.cons(prop_gen_sequence,function(v_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.car,M0.cdr,M0.values,list_stream_ref(v_30,0),M0.pair_p,false,false);})));var struct_list_stream = let_result448.getAt(0);var make_list_stream = let_result448.getAt(1);var list_stream_p = let_result448.getAt(2);var list_stream_ref = let_result448.getAt(3);var list_stream_set_bang_ = let_result448.getAt(4);var check_list = function(l_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(l_4)!==false) {var if_res449 = M0.rvoid();} else {var if_res449 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-list"),$rjs_core.UString.make("list?"),l_4);}return if_res449;};var __list_gen = function(l_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.car,M0.cdr,M0.values,l_5,M0.pair_p,false,false);};var __mlist_gen = function(l_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.mcar,false,M0.mcdr,l_6,M0.mpair_p,false,false);};var __input_port_gen = function(p_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.read_byte,false,M0.values,p_7,false,function(x_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.eof_object_p(x_9));},false);};var __stream_gen = function(l_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(unsafe_stream_first,unsafe_stream_rest,M0.values,l_7,unsafe_stream_not_empty_p,false,false);};var cl450 = function(ht_2, __get_0, __first_0, __next_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(function(pos_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __get_0(ht_2,pos_1);},false,function(pos_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __next_0(ht_2,pos_2);},__first_0(ht_2),function(pos_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos_3;},false,false);};var cl451 = function(ht_3, __get_1, __first_1, __next_1, bad_v_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(function(pos_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __get_1(ht_3,pos_4,bad_v_0);},false,function(pos_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __next_1(ht_3,pos_5);},__first_1(ht_3),function(pos_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos_6;},false,false);};var __hash_gen = $rjs_core.attachProcedureArity(function() {var fixed_lam452 = {'4':cl450,'5':cl451}[arguments.length];if (fixed_lam452!==undefined) {return fixed_lam452.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,5]);var check_in_hash = function(ht_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if ((function(ht_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.hash_p(ht_5);})(ht_4)!==false) {var if_res453 = M0.rvoid();} else {var if_res453 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-hash"),$rjs_core.UString.make("hash?"),ht_4);}return if_res453;};var __vector_gen = function(v_31, start_4, stop_0, step_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_2,1)!==false) {var if_res455 = M0.add1;} else {var if_res455 = function(i_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_17+step_2;};}if (M0.__gt_(step_2,0)!==false) {var if_res454 = function(i_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_18,stop_0);};} else {var if_res454 = function(i_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_19,stop_0);};}return M0.values(function(i_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_vector_ref(v_31,i_16);},false,if_res455,start_4,if_res454,false,false);};var __string_gen = function(v_32, start_5, stop_1, step_3) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_3,1)!==false) {var if_res457 = M0.add1;} else {var if_res457 = function(i_21) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_21+step_3;};}if (M0.__gt_(step_3,0)!==false) {var if_res456 = function(i_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_22,stop_1);};} else {var if_res456 = function(i_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_23,stop_1);};}return M0.values(function(i_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.string_ref(v_32,i_20);},false,if_res457,start_5,if_res456,false,false);};var check_string = function(v_33) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(v_33)!==false) {var if_res458 = M0.rvoid();} else {var if_res458 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-string"),$rjs_core.UString.make("string"),v_33);}return if_res458;};var __bytes_gen = function(v_34, start_6, stop_2, step_4) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_4,1)!==false) {var if_res460 = M0.add1;} else {var if_res460 = function(i_25) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_25+step_4;};}if (M0.__gt_(step_4,0)!==false) {var if_res459 = function(i_26) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_26,stop_2);};} else {var if_res459 = function(i_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_27,stop_2);};}return M0.values(function(i_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_bytes_ref(v_34,i_24);},false,if_res460,start_6,if_res459,false,false);};var __flvector_gen = function(v_35, start_7, stop_3, step_5) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_5,1)!==false) {var if_res462 = M0.add1;} else {var if_res462 = function(i_29) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_29+step_5;};}if (M0.__gt_(step_5,0)!==false) {var if_res461 = function(i_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_30,stop_3);};} else {var if_res461 = function(i_31) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_31,stop_3);};}return M0.values(function(i_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_flvector_ref(v_35,i_28);},false,if_res462,start_7,if_res461,false,false);};var __fxvector_gen = function(v_36, start_8, stop_4, step_6) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_6,1)!==false) {var if_res464 = M0.add1;} else {var if_res464 = function(i_33) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_33+step_6;};}if (M0.__gt_(step_6,0)!==false) {var if_res463 = function(i_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_34,stop_4);};} else {var if_res463 = function(i_35) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_35,stop_4);};}return M0.values(function(i_32) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_fxvector_ref(v_36,i_32);},false,if_res464,start_8,if_res463,false,false);};var in_values_times__sequence = function(g_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (sequence_p(g_0)!==false) {var if_res465 = M0.rvoid();} else {var if_res465 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-values-sequence"),$rjs_core.UString.make("sequence?"),g_0);}if_res465;return make_do_sequence(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result466 = make_sequence(false,g_0);var pos__gt_val_0 = let_result466.getAt(0);var pre_pos_next_1 = let_result466.getAt(1);var pos_next_2 = let_result466.getAt(2);var init_2 = let_result466.getAt(3);var pos_cont_p_2 = let_result466.getAt(4);var pre_cont_p_0 = let_result466.getAt(5);var post_cont_p_0 = let_result466.getAt(6);if (pre_cont_p_0!==false) {var if_res470 = function(vals_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(vals_1)!==false) {var if_res469 = M0.apply(pre_cont_p_0,vals_1);} else {var if_res469 = pre_cont_p_0(vals_1);}return if_res469;};} else {var if_res470 = false;}if (post_cont_p_0!==false) {var if_res468 = function(pos_8, vals_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(vals_2)!==false) {var if_res467 = M0.apply(post_cont_p_0,pos_8,vals_2);} else {var if_res467 = post_cont_p_0(pos_8,vals_2);}return if_res467;};} else {var if_res468 = false;}return M0.values(function(pos_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var cl471 = function(v_37) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(v_37)!==false) {var if_res475 = M0.list(v_37);} else {var if_res475 = v_37;}return if_res475;};var cl472 = $rjs_core.attachProcedureArity(function(...vs_0476) {var vs_0 = $rjs_core.Pair.listFromArray(vs_0476);return vs_0;});return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos__gt_val_0(pos_7);},$rjs_core.attachProcedureArity(function() {var fixed_lam473 = {'1':cl471}[arguments.length];if (fixed_lam473!==undefined) {return fixed_lam473.apply(null,arguments);} else {if (true!==false) {var if_res474 = cl472.apply(null,arguments);} else {var if_res474 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res474;}},[M0.make_arity_at_least(0)]));},pre_pos_next_1,pos_next_2,init_2,pos_cont_p_2,if_res470,if_res468);});};var let_result477 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,3,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_38) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_38,0)();},function(v_39) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_39,1)();},function(v_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_40,2)();}))));var struct_do_stream = let_result477.getAt(0);var make_do_stream = let_result477.getAt(1);var do_stream_p = let_result477.getAt(2);var do_stream_ref = let_result477.getAt(3);var do_stream_set_bang_ = let_result477.getAt(4);var empty_stream = make_do_stream(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return true;},M0.rvoid,M0.rvoid);var cl478 = function(f_0, l_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("map");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res485 = true;} else {if (M0.procedure_p(f_0)!==false) {if (M0.procedure_arity_includes_p(f_0,1)!==false) {var if_res483 = M0.list_p(l_8);} else {var if_res483 = false;}var if_res484 = if_res483;} else {var if_res484 = false;}var if_res485 = if_res484;}if (if_res485!==false) {var loop_0 = function(l_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_9)!==false) {var if_res486 = M0.rnull;} else {var r_4 = M0.cdr(l_9);var if_res486 = M0.cons(f_0(M0.car(l_9)),loop_0(r_4));}return if_res486;};var if_res487 = loop_0(l_8);} else {var if_res487 = gen_map(f_0,M0.list(l_8));}return if_res487;};var cl479 = function(f_1, l1_2, l2_2) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res492 = true;} else {if (M0.procedure_p(f_1)!==false) {if (M0.procedure_arity_includes_p(f_1,2)!==false) {if (M0.list_p(l1_2)!==false) {if (M0.list_p(l2_2)!==false) {var if_res488 = M0.__eq_(M0.length(l1_2),M0.length(l2_2));} else {var if_res488 = false;}var if_res489 = if_res488;} else {var if_res489 = false;}var if_res490 = if_res489;} else {var if_res490 = false;}var if_res491 = if_res490;} else {var if_res491 = false;}var if_res492 = if_res491;}if (if_res492!==false) {var loop_34 = function(l1_3, l2_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l1_3)!==false) {var if_res493 = M0.rnull;} else {var r1_0 = M0.cdr(l1_3);var r2_0 = M0.cdr(l2_3);var if_res493 = M0.cons(f_1(M0.car(l1_3),M0.car(l2_3)),loop_34(r1_0,r2_0));}return if_res493;};var if_res494 = loop_34(l1_2,l2_2);} else {var if_res494 = gen_map(f_1,M0.list(l1_2,l2_2));}return if_res494;};var cl480 = $rjs_core.attachProcedureArity(function(f_2, l_10, ...args_4495) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_4 = $rjs_core.Pair.listFromArray(args_4495);return gen_map(f_2,M0.cons(l_10,args_4));});var map_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam481 = {'2':cl478,'3':cl479}[arguments.length];if (fixed_lam481!==undefined) {return fixed_lam481.apply(null,arguments);} else {if (M0.__gt__eq_(cl480.length,1)!==false) {var if_res482 = cl480.apply(null,arguments);} else {var if_res482 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res482;}},[M0.make_arity_at_least(2)]);var map2 = map_0;var cl496 = function(f_3, l_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("andmap");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res503 = true;} else {if (M0.procedure_p(f_3)!==false) {if (M0.procedure_arity_includes_p(f_3,1)!==false) {var if_res501 = M0.list_p(l_11);} else {var if_res501 = false;}var if_res502 = if_res501;} else {var if_res502 = false;}var if_res503 = if_res502;}if (if_res503!==false) {if (M0.null_p(l_11)!==false) {var if_res506 = true;} else {var loop_35 = function(l_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l_12))!==false) {var if_res505 = f_3(M0.car(l_12));} else {var r_5 = M0.cdr(l_12);if (f_3(M0.car(l_12))!==false) {var if_res504 = loop_35(r_5);} else {var if_res504 = false;}var if_res505 = if_res504;}return if_res505;};var if_res506 = loop_35(l_11);}var if_res507 = if_res506;} else {var if_res507 = gen_andmap(f_3,M0.list(l_11));}return if_res507;};var cl497 = function(f_4, l1_4, l2_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res512 = true;} else {if (M0.procedure_p(f_4)!==false) {if (M0.procedure_arity_includes_p(f_4,2)!==false) {if (M0.list_p(l1_4)!==false) {if (M0.list_p(l2_4)!==false) {var if_res508 = M0.__eq_(M0.length(l1_4),M0.length(l2_4));} else {var if_res508 = false;}var if_res509 = if_res508;} else {var if_res509 = false;}var if_res510 = if_res509;} else {var if_res510 = false;}var if_res511 = if_res510;} else {var if_res511 = false;}var if_res512 = if_res511;}if (if_res512!==false) {if (M0.null_p(l1_4)!==false) {var if_res515 = true;} else {var loop_36 = function(l1_5, l2_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l1_5))!==false) {var if_res514 = f_4(M0.car(l1_5),M0.car(l2_5));} else {var r1_1 = M0.cdr(l1_5);var r2_1 = M0.cdr(l2_5);if (f_4(M0.car(l1_5),M0.car(l2_5))!==false) {var if_res513 = loop_36(r1_1,r2_1);} else {var if_res513 = false;}var if_res514 = if_res513;}return if_res514;};var if_res515 = loop_36(l1_4,l2_4);}var if_res516 = if_res515;} else {var if_res516 = gen_andmap(f_4,M0.list(l1_4,l2_4));}return if_res516;};var cl498 = $rjs_core.attachProcedureArity(function(f_5, l_13, ...args_5517) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_5 = $rjs_core.Pair.listFromArray(args_5517);return gen_andmap(f_5,M0.cons(l_13,args_5));});var andmap_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam499 = {'2':cl496,'3':cl497}[arguments.length];if (fixed_lam499!==undefined) {return fixed_lam499.apply(null,arguments);} else {if (M0.__gt__eq_(cl498.length,1)!==false) {var if_res500 = cl498.apply(null,arguments);} else {var if_res500 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res500;}},[M0.make_arity_at_least(2)]);var andmap2 = andmap_0;var cl518 = function(f_6, l_14) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("ormap");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res525 = true;} else {if (M0.procedure_p(f_6)!==false) {if (M0.procedure_arity_includes_p(f_6,1)!==false) {var if_res523 = M0.list_p(l_14);} else {var if_res523 = false;}var if_res524 = if_res523;} else {var if_res524 = false;}var if_res525 = if_res524;}if (if_res525!==false) {if (M0.null_p(l_14)!==false) {var if_res528 = false;} else {var loop_37 = function(l_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l_15))!==false) {var if_res527 = f_6(M0.car(l_15));} else {var r_6 = M0.cdr(l_15);var or_part_43 = f_6(M0.car(l_15));if (or_part_43!==false) {var if_res526 = or_part_43;} else {var if_res526 = loop_37(r_6);}var if_res527 = if_res526;}return if_res527;};var if_res528 = loop_37(l_14);}var if_res529 = if_res528;} else {var if_res529 = gen_ormap(f_6,M0.list(l_14));}return if_res529;};var cl519 = function(f_7, l1_6, l2_6) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res534 = true;} else {if (M0.procedure_p(f_7)!==false) {if (M0.procedure_arity_includes_p(f_7,2)!==false) {if (M0.list_p(l1_6)!==false) {if (M0.list_p(l2_6)!==false) {var if_res530 = M0.__eq_(M0.length(l1_6),M0.length(l2_6));} else {var if_res530 = false;}var if_res531 = if_res530;} else {var if_res531 = false;}var if_res532 = if_res531;} else {var if_res532 = false;}var if_res533 = if_res532;} else {var if_res533 = false;}var if_res534 = if_res533;}if (if_res534!==false) {if (M0.null_p(l1_6)!==false) {var if_res537 = false;} else {var loop_38 = function(l1_7, l2_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l1_7))!==false) {var if_res536 = f_7(M0.car(l1_7),M0.car(l2_7));} else {var r1_2 = M0.cdr(l1_7);var r2_2 = M0.cdr(l2_7);var or_part_44 = f_7(M0.car(l1_7),M0.car(l2_7));if (or_part_44!==false) {var if_res535 = or_part_44;} else {var if_res535 = loop_38(r1_2,r2_2);}var if_res536 = if_res535;}return if_res536;};var if_res537 = loop_38(l1_6,l2_6);}var if_res538 = if_res537;} else {var if_res538 = gen_ormap(f_7,M0.list(l1_6,l2_6));}return if_res538;};var cl520 = $rjs_core.attachProcedureArity(function(f_8, l_16, ...args_6539) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_6 = $rjs_core.Pair.listFromArray(args_6539);return gen_ormap(f_8,M0.cons(l_16,args_6));});var ormap_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam521 = {'2':cl518,'3':cl519}[arguments.length];if (fixed_lam521!==undefined) {return fixed_lam521.apply(null,arguments);} else {if (M0.__gt__eq_(cl520.length,1)!==false) {var if_res522 = cl520.apply(null,arguments);} else {var if_res522 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res522;}},[M0.make_arity_at_least(2)]);var ormap2 = ormap_0;var check_args = function(who_4, f_9, ls_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_9)!==false) {var if_res540 = M0.rvoid();} else {var if_res540 = M0.raise_argument_error(who_4,$rjs_core.UString.make("procedure?"),f_9);}if_res540;var loop_39 = function(prev_len_0, ls_5, i_36) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_5)!==false) {var if_res544 = M0.rvoid();} else {var l_17 = M0.car(ls_5);if (M0.list_p(l_17)!==false) {var if_res541 = M0.rvoid();} else {var if_res541 = M0.raise_argument_error(who_4,$rjs_core.UString.make("list?"),l_17);}if_res541;var len_0 = M0.length(l_17);if (prev_len_0!==false) {var if_res542 = M0.not(M0.__eq_(len_0,prev_len_0));} else {var if_res542 = false;}if (if_res542!==false) {var if_res543 = M0.raise_arguments_error(who_4,$rjs_core.UString.make("all lists must have same size"),$rjs_core.UString.make("first list length"),prev_len_0,$rjs_core.UString.make("other list length"),len_0,$rjs_core.UString.make("procedure"),f_9);} else {var if_res543 = M0.rvoid();}if_res543;var if_res544 = loop_39(len_0,M0.cdr(ls_5),M0.add1(i_36));}return if_res544;};loop_39(false,ls_4,1);if (M0.procedure_arity_includes_p(f_9,M0.length(ls_4))!==false) {var if_res561 = M0.rvoid();} else {var let_result545 = procedure_keywords(f_9);var required_keywords_0 = let_result545.getAt(0);var optional_keywords_0 = let_result545.getAt(1);if (M0.pair_p(required_keywords_0)!==false) {var if_res560 = M0.string_append($rjs_core.UString.make("argument mismatch;\n"),$rjs_core.UString.make(" the given procedure expects keyword arguments"));} else {var if_res560 = M0.string_append($rjs_core.UString.make("argument mismatch;\n"),$rjs_core.UString.make(" the given procedure's expected number of arguments does not match"),$rjs_core.UString.make(" the given number of lists"));}var temp559 = $rjs_core.UString.make("given procedure");var n_14 = M0.object_name(f_9);if (M0.symbol_p(n_14)!==false) {var if_res556 = M0.symbol__gt_string(n_14);} else {var if_res556 = false;}var or_part_45 = if_res556;if (or_part_45!==false) {var if_res557 = or_part_45;} else {var if_res557 = $rjs_core.UString.make("#");}var temp558 = M0.unquoted_printing_string(if_res557);var a_24 = M0.procedure_arity(f_9);if (M0.pair_p(required_keywords_0)!==false) {var if_res555 = M0.rnull;} else {if (M0.integer_p(a_24)!==false) {var if_res554 = M0.list($rjs_core.UString.make("expected"),a_24);} else {if (M0.arity_at_least_p(a_24)!==false) {var if_res553 = M0.list($rjs_core.UString.make("expected"),M0.unquoted_printing_string(M0.string_append($rjs_core.UString.make("at least "),M0.number__gt_string(M0.arity_at_least_value(a_24)))));} else {var if_res553 = M0.rnull;}var if_res554 = if_res553;}var if_res555 = if_res554;}if (M0.pair_p(required_keywords_0)!==false) {var if_res552 = M0.rnull;} else {var if_res552 = M0.list($rjs_core.UString.make("given"),M0.length(ls_4));}if (M0.pair_p(required_keywords_0)!==false) {var temp550 = $rjs_core.UString.make("required keywords");var loop_40 = function(kws_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_16)!==false) {var if_res549 = M0.rnull;} else {var if_res549 = M0.list_times_($rjs_core.UString.make(" "),M0.string_append($rjs_core.UString.make("#:"),M0.keyword__gt_string(M0.car(kws_16))),loop_40(M0.cdr(kws_16)));}return if_res549;};var if_res551 = M0.list(temp550,M0.unquoted_printing_string(M0.apply(M0.string_append,M0.cdr(loop_40(required_keywords_0)))));} else {var if_res551 = M0.rnull;}var w_0 = M0.quotient(M0.error_print_width(),M0.length(ls_4));if (M0.__gt_(w_0,10)!==false) {var temp547 = $rjs_core.UString.make("argument lists...");var loop_41 = function(ls_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_6)!==false) {var if_res546 = M0.rnull;} else {var if_res546 = M0.cons(M0.string_append($rjs_core.UString.make("\n "),M0.error_value__gt_string_handler()(M0.car(ls_6),w_0)),loop_41(M0.cdr(ls_6)));}return if_res546;};var if_res548 = M0.list(temp547,M0.unquoted_printing_string(M0.apply(M0.string_append,loop_41(ls_4))));} else {var if_res548 = M0.rnull;}var if_res561 = M0.apply(M0.raise_arguments_error,who_4,if_res560,temp559,temp558,M0.append(if_res555,if_res552,if_res551,if_res548));}return if_res561;};var gen_map = function(f_10, ls_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res562 = true;} else {var if_res562 = check_args($rjs_core.PrimitiveSymbol.make("map"),f_10,ls_7);}if_res562;var loop_42 = function(ls_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_8))!==false) {var if_res563 = M0.rnull;} else {var next_ls_0 = map2(M0.cdr,ls_8);var if_res563 = M0.cons(M0.apply(f_10,map2(M0.car,ls_8)),loop_42(next_ls_0));}return if_res563;};return loop_42(ls_7);};var gen_andmap = function(f_11, ls_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res564 = true;} else {var if_res564 = check_args($rjs_core.PrimitiveSymbol.make("andmap"),f_11,ls_9);}if_res564;var loop_43 = function(ls_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_10))!==false) {var if_res567 = true;} else {if (M0.null_p(M0.cdar(ls_10))!==false) {var if_res566 = M0.apply(f_11,map2(M0.car,ls_10));} else {var next_ls_1 = map2(M0.cdr,ls_10);if (M0.apply(f_11,map2(M0.car,ls_10))!==false) {var if_res565 = loop_43(next_ls_1);} else {var if_res565 = false;}var if_res566 = if_res565;}var if_res567 = if_res566;}return if_res567;};return loop_43(ls_9);};var gen_ormap = function(f_12, ls_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res568 = true;} else {var if_res568 = check_args($rjs_core.PrimitiveSymbol.make("ormap"),f_12,ls_11);}if_res568;var loop_44 = function(ls_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_12))!==false) {var if_res571 = false;} else {if (M0.null_p(M0.cdar(ls_12))!==false) {var if_res570 = M0.apply(f_12,map2(M0.car,ls_12));} else {var next_ls_2 = map2(M0.cdr,ls_12);var or_part_46 = M0.apply(f_12,map2(M0.car,ls_12));if (or_part_46!==false) {var if_res569 = or_part_46;} else {var if_res569 = loop_44(next_ls_2);}var if_res570 = if_res569;}var if_res571 = if_res570;}return if_res571;};return loop_44(ls_11);};var new_keyword_apply = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_17, kw_args_3, proc_16, orig_kws_0, orig_kw_args_0, args_7, ...rest_0572) {if (arguments.length<6) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rest_0 = $rjs_core.Pair.listFromArray(rest_0572);var loop_45 = function(kws_19, kw_args_5, kws2_0, kw_args2_0, swapped_p_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_19)!==false) {var if_res577 = M0.values(kws2_0,kw_args2_0);} else {if (M0.null_p(kws2_0)!==false) {var if_res576 = M0.values(kws_19,kw_args_5);} else {if (M0.keyword_lt__p(M0.car(kws_19),M0.car(kws2_0))!==false) {var let_result573 = loop_45(M0.cdr(kws_19),M0.cdr(kw_args_5),kws2_0,kw_args2_0,false);var res_kws_0 = let_result573.getAt(0);var res_kw_args_0 = let_result573.getAt(1);var if_res575 = M0.values(M0.cons(M0.car(kws_19),res_kws_0),M0.cons(M0.car(kw_args_5),res_kw_args_0));} else {if (swapped_p_0!==false) {var if_res574 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("keyword-apply"),$rjs_core.UString.make("keyword duplicated in list and direct keyword arguments: "),M0.car(kws_19));} else {var if_res574 = loop_45(kws2_0,kw_args2_0,kws_19,kw_args_5,true);}var if_res575 = if_res574;}var if_res576 = if_res575;}var if_res577 = if_res576;}return if_res577;};var let_result578 = loop_45(kws_17,kw_args_3,orig_kws_0,orig_kw_args_0,false);var kws_18 = let_result578.getAt(0);var kw_args_4 = let_result578.getAt(1);return keyword_apply(proc_16,kws_18,kw_args_4,M0.apply(M0.list_times_,args_7,rest_0));}),keyword_apply);var hash__gt_list_0 = function(h_0, try_order_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("hash->list");return M0.hash_map(h_0,M0.cons,try_order_p_0);};var cl579 = function(h_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("hash->list");if (M0.hash_p(h_1)!==false) {var if_res582 = M0.rvoid();} else {var if_res582 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash->list"),$rjs_core.UString.make("hash?"),0,h_1);}if_res582;return hash__gt_list_0(h_1,false);};var cl580 = function(h_2, try_order_p_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(h_2)!==false) {var if_res583 = M0.rvoid();} else {var if_res583 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash->list"),$rjs_core.UString.make("hash?"),0,h_2,try_order_p_1);}if_res583;return hash__gt_list_0(h_2,try_order_p_1);};var hash__gt_list_1 = $rjs_core.attachProcedureArity(function() {var fixed_lam581 = {'1':cl579,'2':cl580}[arguments.length];if (fixed_lam581!==undefined) {return fixed_lam581.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var hash__gt_list = hash__gt_list_1;var sort_dot_1 = function(cache_keys_p2_0, key1_0, lst5_0, less_p6_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("sort");var lst_6 = lst5_0;var less_p_0 = less_p6_0;var getkey_4 = key1_0;var cache_keys_p_3 = cache_keys_p2_0;if (M0.list_p(lst_6)!==false) {var if_res584 = M0.rvoid();} else {var if_res584 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("list?"),lst_6);}if_res584;if (M0.procedure_p(less_p_0)!==false) {var if_res585 = M0.procedure_arity_includes_p(less_p_0,2);} else {var if_res585 = false;}if (if_res585!==false) {var if_res586 = M0.rvoid();} else {var if_res586 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("(any/c any/c . -> . any/c)"),less_p_0);}if_res586;if (getkey_4!==false) {if (M0.procedure_p(getkey_4)!==false) {var if_res587 = M0.procedure_arity_includes_p(getkey_4,1);} else {var if_res587 = false;}var if_res588 = M0.not(if_res587);} else {var if_res588 = false;}if (if_res588!==false) {var if_res589 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("(any/c . -> . any/c)"),getkey_4);} else {var if_res589 = M0.rvoid();}if_res589;if (getkey_4!==false) {var if_res590 = sort(lst_6,less_p_0,getkey_4,cache_keys_p_3);} else {var if_res590 = sort(lst_6,less_p_0);}return if_res590;};var filter = function(f_13, list_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_13)!==false) {var if_res591 = M0.procedure_arity_includes_p(f_13,1);} else {var if_res591 = false;}if (if_res591!==false) {var if_res592 = M0.rvoid();} else {var if_res592 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("filter"),$rjs_core.UString.make("(any/c . -> . any/c)"),f_13);}if_res592;if (M0.list_p(list_0)!==false) {var if_res593 = M0.rvoid();} else {var if_res593 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("filter"),$rjs_core.UString.make("list?"),list_0);}if_res593;var loop_10 = function(l_18, result_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_18)!==false) {var if_res596 = reverse$1(result_0);} else {var temp595 = M0.cdr(l_18);if (f_13(M0.car(l_18))!==false) {var if_res594 = M0.cons(M0.car(l_18),result_0);} else {var if_res594 = result_0;}var if_res596 = loop_10(temp595,if_res594);}return if_res596;};return loop_10(list_0,M0.rnull);};var build_list = function(n_15, fcn_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(n_15)!==false) {var if_res597 = M0.rvoid();} else {var if_res597 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("build-list"),$rjs_core.UString.make("exact-nonnegative-integer?"),n_15);}if_res597;if (M0.procedure_p(fcn_0)!==false) {var if_res598 = M0.procedure_arity_includes_p(fcn_0,1);} else {var if_res598 = false;}if (if_res598!==false) {var if_res599 = M0.rvoid();} else {var if_res599 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("build-list"),$rjs_core.UString.make("(exact-nonnegative-integer? . -> . any/c)"),fcn_0);}if_res599;var recr_0 = function(j_2, i_37) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("recr");if (M0.zero_p(i_37)!==false) {var if_res600 = M0.rnull;} else {var if_res600 = M0.cons(fcn_0(j_2),recr_0(M0.add1(j_2),M0.sub1(i_37)));}return if_res600;};return recr_0(0,n_15);};var pipeline1_0 = function(f_14, rfuns_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("pipeline1");return function(x_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_14 = function(x_11, f_15, rfuns_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(rfuns_1)!==false) {var if_res601 = f_15(x_11);} else {var if_res601 = loop_14(f_15(x_11),M0.car(rfuns_1),M0.cdr(rfuns_1));}return if_res601;};return loop_14(x_10,f_14,rfuns_0);};};var pipeline_times__0 = function(f_16, rfuns_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("pipeline*");if (M0.eqv_p(1,M0.procedure_arity(f_16))!==false) {var loop_46 = function(f_17, rfuns_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(rfuns_3)!==false) {var if_res603 = f_17;} else {var fst_0 = M0.car(rfuns_3);if (M0.eqv_p(1,M0.procedure_arity(fst_0))!==false) {var if_res602 = function(x_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fst_0(f_17(x_12));};} else {var if_res602 = function(x_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_17(x_13);},fst_0);};}var if_res603 = loop_46(if_res602,M0.cdr(rfuns_3));}return if_res603;};var if_res610 = loop_46(f_16,rfuns_2);} else {var funs_0 = reverse$1(M0.cons(f_16,rfuns_2));var loop_47 = function(f_18, funs_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(funs_1)!==false) {var if_res609 = f_18;} else {var fst_1 = M0.car(funs_1);if (M0.eqv_p(1,M0.procedure_arity(f_18))!==false) {if (M0.eqv_p(1,M0.procedure_arity(fst_1))!==false) {var if_res605 = function(x_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_18(fst_1(x_14));};} else {var if_res605 = $rjs_core.attachProcedureArity(function(...xs_0604) {var xs_0 = $rjs_core.Pair.listFromArray(xs_0604);return f_18(M0.apply(fst_1,xs_0));});}var if_res608 = if_res605;} else {if (M0.eqv_p(1,M0.procedure_arity(fst_1))!==false) {var if_res607 = function(x_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fst_1(x_15);},f_18);};} else {var if_res607 = $rjs_core.attachProcedureArity(function(...xs_1606) {var xs_1 = $rjs_core.Pair.listFromArray(xs_1606);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(fst_1,xs_1);},f_18);});}var if_res608 = if_res607;}var if_res609 = loop_47(if_res608,M0.cdr(funs_1));}return if_res609;};var if_res610 = loop_47(M0.car(funs_0),M0.cdr(funs_0));}return if_res610;};var simple_compose_0 = function(f_19, g_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("simple-compose");var arity_1 = M0.procedure_arity(g_1);var let_result611 = procedure_keywords(g_1);var required_kwds_0 = let_result611.getAt(0);var allowed_kwds_0 = let_result611.getAt(1);if (M0.eq_p(1,arity_1)!==false) {var if_res618 = function(x_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_19(g_1(x_16));};} else {var cl612 = function(x_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_19(g_1(x_17));};var cl613 = function(x_18, y_6) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_19(g_1(x_18,y_6));};var cl614 = $rjs_core.attachProcedureArity(function(...args_8617) {var args_8 = $rjs_core.Pair.listFromArray(args_8617);return f_19(M0.apply(g_1,args_8));});var if_res618 = $rjs_core.attachProcedureArity(function() {var fixed_lam615 = {'1':cl612,'2':cl613}[arguments.length];if (fixed_lam615!==undefined) {return fixed_lam615.apply(null,arguments);} else {if (true!==false) {var if_res616 = cl614.apply(null,arguments);} else {var if_res616 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res616;}},[M0.make_arity_at_least(0)]);}var composed_0 = if_res618;if (M0.null_p(allowed_kwds_0)!==false) {var if_res620 = composed_0;} else {var if_res620 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_20, kw_args_6, ...xs_2619) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_2 = $rjs_core.Pair.listFromArray(xs_2619);return f_19(new_keyword_apply(g_1,kws_20,kw_args_6,xs_2));}),composed_0);}return if_res620;};var cl621 = function(f_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compose1");if (M0.procedure_p(f_20)!==false) {var if_res627 = f_20;} else {var if_res627 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),0,f_20);}return if_res627;};var cl622 = function(f_21, g_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_21)!==false) {var if_res628 = M0.rvoid();} else {var if_res628 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),0,f_21,g_2);}if_res628;if (M0.procedure_p(g_2)!==false) {var if_res629 = M0.rvoid();} else {var if_res629 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),1,f_21,g_2);}if_res629;if (M0.procedure_arity_includes_p(f_21,1)!==false) {var if_res630 = M0.rvoid();} else {var if_res630 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("(any/c . -> . any/c)"),0,f_21,$rjs_core.Pair.makeList());}if_res630;var let_result631 = procedure_keywords(f_21);var req_5 = let_result631.getAt(0);var __0 = let_result631.getAt(1);if (M0.null_p(req_5)!==false) {var if_res632 = M0.rvoid();} else {var if_res632 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),0,f_21,$rjs_core.Pair.makeList());}if_res632;return simple_compose_0(f_21,g_2);};var cl623 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values;};var cl624 = $rjs_core.attachProcedureArity(function(f0_0, ...fs0_0633) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fs0_0 = $rjs_core.Pair.listFromArray(fs0_0633);var loop_48 = function(f_22, fs_0, i_38, rfuns_4) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.procedure_p(f_22)!==false) {var if_res634 = M0.rvoid();} else {var if_res634 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),i_38,f0_0,fs0_0);}if_res634;if (M0.pair_p(fs_0)!==false) {if (M0.procedure_arity_includes_p(f_22,1)!==false) {var if_res635 = M0.rvoid();} else {var if_res635 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("(any/c . -> . any/c)"),i_38,f0_0,fs0_0);}if_res635;var let_result636 = procedure_keywords(f_22);var req_6 = let_result636.getAt(0);var __1 = let_result636.getAt(1);if (M0.null_p(req_6)!==false) {var if_res637 = M0.rvoid();} else {var if_res637 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),i_38,f0_0,fs0_0);}if_res637;var if_res638 = loop_48(M0.car(fs_0),M0.cdr(fs_0),M0.add1(i_38),M0.cons(f_22,rfuns_4));} else {var if_res638 = simple_compose_0(pipeline1_0(M0.car(rfuns_4),M0.cdr(rfuns_4)),f_22);}return if_res638;};return loop_48(f0_0,fs0_0,0,$rjs_core.Pair.makeList());});var compose1_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam625 = {'1':cl621,'2':cl622,'0':cl623}[arguments.length];if (fixed_lam625!==undefined) {return fixed_lam625.apply(null,arguments);} else {if (M0.__gt__eq_(cl624.length,1)!==false) {var if_res626 = cl624.apply(null,arguments);} else {var if_res626 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res626;}},[0,M0.make_arity_at_least(1)]);var simple_compose_1 = function(f_23, g_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("simple-compose");if (M0.eqv_p(1,M0.procedure_arity(f_23))!==false) {var arity_2 = M0.procedure_arity(g_3);var let_result639 = procedure_keywords(g_3);var required_kwds_1 = let_result639.getAt(0);var allowed_kwds_1 = let_result639.getAt(1);if (M0.eq_p(1,arity_2)!==false) {var if_res646 = function(x_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_23(g_3(x_19));};} else {var cl640 = function(x_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_23(g_3(x_20));};var cl641 = function(x_21, y_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_23(g_3(x_21,y_7));};var cl642 = $rjs_core.attachProcedureArity(function(...args_9645) {var args_9 = $rjs_core.Pair.listFromArray(args_9645);return f_23(M0.apply(g_3,args_9));});var if_res646 = $rjs_core.attachProcedureArity(function() {var fixed_lam643 = {'1':cl640,'2':cl641}[arguments.length];if (fixed_lam643!==undefined) {return fixed_lam643.apply(null,arguments);} else {if (true!==false) {var if_res644 = cl642.apply(null,arguments);} else {var if_res644 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res644;}},[M0.make_arity_at_least(0)]);}var composed_1 = if_res646;if (M0.null_p(allowed_kwds_1)!==false) {var if_res648 = composed_1;} else {var if_res648 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_21, kw_args_7, ...xs_3647) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_3 = $rjs_core.Pair.listFromArray(xs_3647);return f_23(new_keyword_apply(g_3,kws_21,kw_args_7,xs_3));}),composed_1);}var if_res659 = if_res648;} else {var arity_3 = M0.procedure_arity(g_3);var let_result649 = procedure_keywords(g_3);var required_kwds_2 = let_result649.getAt(0);var allowed_kwds_2 = let_result649.getAt(1);if (M0.eq_p(1,arity_3)!==false) {var if_res656 = function(x_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_22);},f_23);};} else {var cl650 = function(x_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_23);},f_23);};var cl651 = function(x_24, y_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_24,y_8);},f_23);};var cl652 = $rjs_core.attachProcedureArity(function(...args_10655) {var args_10 = $rjs_core.Pair.listFromArray(args_10655);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(g_3,args_10);},f_23);});var if_res656 = $rjs_core.attachProcedureArity(function() {var fixed_lam653 = {'1':cl650,'2':cl651}[arguments.length];if (fixed_lam653!==undefined) {return fixed_lam653.apply(null,arguments);} else {if (true!==false) {var if_res654 = cl652.apply(null,arguments);} else {var if_res654 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res654;}},[M0.make_arity_at_least(0)]);}var composed_2 = if_res656;if (M0.null_p(allowed_kwds_2)!==false) {var if_res658 = composed_2;} else {var if_res658 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_22, kw_args_8, ...xs_4657) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_4 = $rjs_core.Pair.listFromArray(xs_4657);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_keyword_apply(g_3,kws_22,kw_args_8,xs_4);},f_23);}),composed_2);}var if_res659 = if_res658;}return if_res659;};var cl660 = function(f_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compose");if (M0.procedure_p(f_24)!==false) {var if_res666 = f_24;} else {var if_res666 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),0,f_24);}return if_res666;};var cl661 = function(f_25, g_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_25)!==false) {var if_res667 = M0.rvoid();} else {var if_res667 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),0,f_25,g_4);}if_res667;if (M0.procedure_p(g_4)!==false) {var if_res668 = M0.rvoid();} else {var if_res668 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),1,f_25,g_4);}if_res668;var let_result669 = procedure_keywords(f_25);var req_7 = let_result669.getAt(0);var __2 = let_result669.getAt(1);if (M0.null_p(req_7)!==false) {var if_res670 = M0.rvoid();} else {var if_res670 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),0,f_25,$rjs_core.Pair.makeList());}if_res670;return simple_compose_1(f_25,g_4);};var cl662 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values;};var cl663 = $rjs_core.attachProcedureArity(function(f0_1, ...fs0_1671) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fs0_1 = $rjs_core.Pair.listFromArray(fs0_1671);var loop_49 = function(f_26, fs_1, i_39, rfuns_5) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.procedure_p(f_26)!==false) {var if_res672 = M0.rvoid();} else {var if_res672 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),i_39,f0_1,fs0_1);}if_res672;if (M0.pair_p(fs_1)!==false) {var let_result673 = procedure_keywords(f_26);var req_8 = let_result673.getAt(0);var __3 = let_result673.getAt(1);if (M0.null_p(req_8)!==false) {var if_res674 = M0.rvoid();} else {var if_res674 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),i_39,f0_1,fs0_1);}if_res674;var if_res675 = loop_49(M0.car(fs_1),M0.cdr(fs_1),M0.add1(i_39),M0.cons(f_26,rfuns_5));} else {var if_res675 = simple_compose_1(pipeline_times__0(M0.car(rfuns_5),M0.cdr(rfuns_5)),f_26);}return if_res675;};return loop_49(f0_1,fs0_1,0,$rjs_core.Pair.makeList());});var compose_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam664 = {'1':cl660,'2':cl661,'0':cl662}[arguments.length];if (fixed_lam664!==undefined) {return fixed_lam664.apply(null,arguments);} else {if (M0.__gt__eq_(cl663.length,1)!==false) {var if_res665 = cl663.apply(null,arguments);} else {var if_res665 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res665;}},[0,M0.make_arity_at_least(1)]);var let_result676 = M0.values(compose1_0,compose_0);var compose1 = let_result676.getAt(0);var compose = let_result676.getAt(1);var regexp_quote_chars_s = $rjs_core.Regexp.fromString("[][.*?+|(){}\\$^]");var regexp_quote_chars_b = $rjs_core.Regexp.fromString("[][.*?+|(){}\\$^]");var regexp_quote_0 = function(s4_0, case_sens_p3_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("regexp-quote");var s_1 = s4_0;var case_sens_p_0 = case_sens_p3_0;if (M0.bytes_p(s_1)!==false) {var if_res678 = true;} else {if (M0.string_p(s_1)!==false) {var if_res677 = false;} else {var if_res677 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("regexp-quote"),$rjs_core.UString.make("(or/c string? bytes?)"),s_1);}var if_res678 = if_res677;}var b_p_0 = if_res678;if (b_p_0!==false) {var if_res679 = M0.regexp_replace_times_(regexp_quote_chars_b,s_1,$rjs_core.Bytes.fromIntArray([92,92,38]));} else {var if_res679 = M0.regexp_replace_times_(regexp_quote_chars_s,s_1,$rjs_core.UString.make("\\\\&"));}var s_2 = if_res679;if (case_sens_p_0!==false) {var if_res681 = s_2;} else {if (b_p_0!==false) {var if_res680 = M0.bytes_append($rjs_core.Bytes.fromIntArray([40,63,105,58]),s_2,$rjs_core.Bytes.fromIntArray([41]));} else {var if_res680 = M0.string_append($rjs_core.UString.make("(?i:"),s_2,$rjs_core.UString.make(")"));}var if_res681 = if_res680;}return if_res681;};var cl682 = function(s_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return regexp_quote_0(s_3,true);};var cl683 = function(s_4, case_sens_p3_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return regexp_quote_0(s_4,case_sens_p3_1);};var regexp_quote = $rjs_core.attachProcedureArity(function() {var fixed_lam684 = {'1':cl682,'2':cl683}[arguments.length];if (fixed_lam684!==undefined) {return fixed_lam684.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var regexp_match_exact_p = function(p_8, s_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var m_0 = M0.regexp_match_positions(p_8,s_5);if (m_0!==false) {if (M0.zero_p(M0.caar(m_0))!==false) {var temp690 = M0.cdar(m_0);if (M0.bytes_p(s_5)!==false) {var if_res689 = M0.bytes_length(s_5);} else {var or_part_47 = M0.byte_regexp_p(p_8);if (or_part_47!==false) {var if_res685 = or_part_47;} else {var if_res685 = M0.bytes_p(p_8);}if (if_res685!==false) {if (M0.path_p(s_5)!==false) {var if_res686 = M0.bytes_length(M0.path__gt_bytes(s_5));} else {var if_res686 = M0.string_utf_8_length(s_5);}var if_res688 = if_res686;} else {if (M0.path_p(s_5)!==false) {var if_res687 = M0.string_length(M0.path__gt_string(s_5));} else {var if_res687 = M0.string_length(s_5);}var if_res688 = if_res687;}var if_res689 = if_res688;}var if_res691 = M0.__eq_(temp690,if_res689);} else {var if_res691 = false;}var if_res692 = if_res691;} else {var if_res692 = false;}return if_res692;};var print_value_columns = M0.make_parameter(Infinity,function(c_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_48 = M0.eqv_p(c_6,Infinity);if (or_part_48!==false) {var if_res694 = or_part_48;} else {if (M0.exact_integer_p(c_6)!==false) {var if_res693 = M0.__gt_(c_6,5);} else {var if_res693 = false;}var if_res694 = if_res693;}if (if_res694!==false) {var if_res695 = c_6;} else {var if_res695 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("print-value-columns"),$rjs_core.UString.make("(or/c +inf.0 (and/c exact-integer? (>/c 5)))"),c_6);}return if_res695;},$rjs_core.PrimitiveSymbol.make("print-value-columns"));var let_result696 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("set-impl"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("set-impl"));var struct__0 = let_result696.getAt(0);var make__0 = let_result696.getAt(1);var __p_1 = let_result696.getAt(2);var __ref_1 = let_result696.getAt(3);var __set_bang__1 = let_result696.getAt(4);var let_result697 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("contents")));var struct_set_impl = let_result697.getAt(0);var set_impl1_dot_1 = let_result697.getAt(1);var set_impl_p = let_result697.getAt(2);var set_impl_contents = let_result697.getAt(3);var set = $rjs_core.attachProcedureArity(function(...args_11698) {var args_11 = $rjs_core.Pair.listFromArray(args_11698);return set_impl1_dot_1(M0.make_immutable_hash(map2(function(e_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.cons(e_0,true);},args_11)));});var set_member_p = function(st_0, v_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return hash_has_key_p(set_impl_contents(st_0),v_41);};var set_add = function(st_1, v_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_impl1_dot_1(M0.hash_set(set_impl_contents(st_1),v_1,true));};var list__gt_set = function(lst_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result699 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("elem")),lst_7);var pos__gt_vals_2 = let_result699.getAt(0);var pos_pre_inc_0 = let_result699.getAt(1);var pos_next_3 = let_result699.getAt(2);var init_3 = let_result699.getAt(3);var pos_cont_p_3 = let_result699.getAt(4);var val_cont_p_2 = let_result699.getAt(5);var all_cont_p_2 = let_result699.getAt(6);M0.rvoid();var for_loop_0 = function(st_2, pos_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_3!==false) {var if_res700 = pos_cont_p_3(pos_9);} else {var if_res700 = true;}if (if_res700!==false) {var elem_1 = pos__gt_vals_2(pos_9);if (all_cont_p_2!==false) {var if_res701 = function(pos_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_2(pos_10,elem_1);};} else {var if_res701 = false;}var let_result702 = M0.values(elem_1,if_res701);var elem_0 = let_result702.getAt(0);var all_cont_p_by_pos_0 = let_result702.getAt(1);if (pos_pre_inc_0!==false) {var if_res703 = pos_pre_inc_0(pos_9);} else {var if_res703 = pos_9;}var pos_11 = if_res703;if (val_cont_p_2!==false) {var if_res704 = val_cont_p_2(elem_0);} else {var if_res704 = true;}if (if_res704!==false) {var st_4 = st_2;var st_5 = set_add(st_4,elem_0);var st_3 = M0.values(st_5);if (all_cont_p_by_pos_0!==false) {var if_res705 = all_cont_p_by_pos_0(pos_11);} else {var if_res705 = true;}if (if_res705!==false) {var if_res706 = M0.not(false);} else {var if_res706 = false;}if (if_res706!==false) {var if_res707 = for_loop_0(st_3,pos_next_3(pos_11));} else {var if_res707 = st_3;}var if_res708 = if_res707;} else {var if_res708 = st_2;}var if_res709 = if_res708;} else {var if_res709 = st_2;}return if_res709;};return for_loop_0(set(),init_3);};var output_directory = M0.make_parameter($rjs_core.UString.make("js-build"));var current_source_file = M0.make_parameter(false);var main_source_file = M0.make_parameter(false);var racketscript_main_module = M0.path__gt_complete_path($rjs_core.UString.make("main.rkt"));var let_result710 = M0.split_path(racketscript_main_module);var dir_path_0 = let_result710.getAt(0);var _p_0 = let_result710.getAt(1);var _b_0 = let_result710.getAt(2);var racketscript_compiler_dir = dir_path_0;var racketscript_runtime_dir = M0.build_path(racketscript_compiler_dir,$rjs_core.UString.make("runtime"));var racketscript_dir = M0.simplify_path(M0.build_path(racketscript_compiler_dir,$rjs_core.UString.make("..")));var jsruntime_core_module = M0.make_parameter($rjs_core.UString.make("$rjs_core"));var test_environment_p = M0.make_parameter(false);var logging_p = M0.make_parameter(true);var ignored_module_imports_in_boot = set(M0.build_path(racketscript_dir,$rjs_core.UString.make("private"),$rjs_core.UString.make("interop.rkt")));var primitive_modules = set($rjs_core.PrimitiveSymbol.make("#%runtime"),$rjs_core.PrimitiveSymbol.make("#%core"),$rjs_core.PrimitiveSymbol.make("#%main"),$rjs_core.PrimitiveSymbol.make("#%read"),$rjs_core.PrimitiveSymbol.make("#%kernel"),$rjs_core.PrimitiveSymbol.make("#%paramz"),$rjs_core.PrimitiveSymbol.make("#%unsafe"),$rjs_core.PrimitiveSymbol.make("#%utils"),$rjs_core.PrimitiveSymbol.make("#%flfxnum"),$rjs_core.PrimitiveSymbol.make("#%futures"),$rjs_core.PrimitiveSymbol.make("#%extfl"),$rjs_core.PrimitiveSymbol.make("#%place-struct"),$rjs_core.PrimitiveSymbol.make("#%network"),$rjs_core.PrimitiveSymbol.make("#%builtin"),$rjs_core.PrimitiveSymbol.make("#%boot"),$rjs_core.PrimitiveSymbol.make("#%foreign"),$rjs_core.PrimitiveSymbol.make("#%place"),$rjs_core.PrimitiveSymbol.make("#%linklet-primitive"),M0.build_path(racketscript_runtime_dir,$rjs_core.UString.make("lib.rkt")));var skip_arity_checks_p = M0.make_parameter(false);var false_p = function(v_42) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.eq_p(v_42,false);};var empty_p = function(l_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.null_p(l_2);};var cons_p = function(l_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.pair_p(l_19);};var too_large = function(who_5, list_1, n_16) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}var proper_p_0 = M0.list_p(list_1);var temp713 = $rjs_core.UString.make("a ~alist with at least ~a ~a");if (proper_p_0!==false) {var if_res712 = $rjs_core.UString.make("");} else {var if_res712 = $rjs_core.UString.make("(possibly improper) ");}if (proper_p_0!==false) {var if_res711 = $rjs_core.UString.make("elements");} else {var if_res711 = $rjs_core.UString.make("pairs");}return M0.raise_argument_error(who_5,M0.format(temp713,if_res712,n_16,if_res711),list_1);};var split_at = function(list0_0, n0_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(n0_0)!==false) {var if_res714 = M0.rvoid();} else {var if_res714 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("split-at"),$rjs_core.UString.make("exact-nonnegative-integer?"),1,list0_0,n0_0);}if_res714;var loop_50 = function(list_2, n_17, pfx_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.zero_p(n_17)!==false) {var if_res716 = M0.values(reverse$1(pfx_0),list_2);} else {if (M0.pair_p(list_2)!==false) {var if_res715 = loop_50(M0.cdr(list_2),M0.sub1(n_17),M0.cons(M0.car(list_2),pfx_0));} else {var if_res715 = too_large($rjs_core.PrimitiveSymbol.make("split-at"),list0_0,n0_0);}var if_res716 = if_res715;}return if_res716;};return loop_50(list0_0,n0_0,$rjs_core.Pair.makeList());};var flatten = function(orig_sexp_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_51 = function(sexp_0, acc_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(sexp_0)!==false) {var if_res718 = acc_0;} else {if (M0.pair_p(sexp_0)!==false) {var if_res717 = loop_51(M0.car(sexp_0),loop_51(M0.cdr(sexp_0),acc_0));} else {var if_res717 = M0.cons(sexp_0,acc_0);}var if_res718 = if_res717;}return if_res718;};return loop_51(orig_sexp_0,M0.rnull);};var cl719 = function(f_27, l_20) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(M0.append,map2(f_27,l_20));};var cl720 = function(f_28, l1_8, l2_8) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(M0.append,map2(f_28,l1_8,l2_8));};var cl721 = $rjs_core.attachProcedureArity(function(f_29, l_21, ...ls_13724) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var ls_13 = $rjs_core.Pair.listFromArray(ls_13724);return M0.apply(M0.append,M0.apply(map2,f_29,l_21,ls_13));});var append_map = $rjs_core.attachProcedureArity(function() {var fixed_lam722 = {'2':cl719,'3':cl720}[arguments.length];if (fixed_lam722!==undefined) {return fixed_lam722.apply(null,arguments);} else {if (M0.__gt__eq_(cl721.length,1)!==false) {var if_res723 = cl721.apply(null,arguments);} else {var if_res723 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res723;}},[M0.make_arity_at_least(2)]);var immutable_cache = M0.make_weak_hasheq();var string__gt_immutable_string_by_cache = function(str_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.immutable_p(str_1)!==false) {var if_res727 = str_1;} else {var old_0 = M0.hash_ref(immutable_cache,str_1,false);if (old_0!==false) {var if_res725 = M0.string_eq__p(str_1,old_0);} else {var if_res725 = false;}if (if_res725!==false) {var if_res726 = old_0;} else {var new_1 = M0.string__gt_immutable_string(str_1);M0.hash_set_bang_(immutable_cache,str_1,new_1);var if_res726 = new_1;}var if_res727 = if_res726;}return if_res727;};var t_0 = M0.make_weak_hasheq();var t_plus__0 = M0.make_weak_hasheq();var spaces_0 = $rjs_core.Pair.makeList($rjs_core.Regexp.fromString("\\s+"),$rjs_core.Regexp.fromString("^\\s+"),$rjs_core.Regexp.fromString("\\s+$"));M0.hash_set_bang_(t_0,M0.unsafe_undefined,spaces_0);M0.hash_set_bang_(t_plus__0,M0.unsafe_undefined,spaces_0);var get_rxs = function(who_6, rx_0, __plus__p_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("get-rxs");if (M0.string_p(rx_0)!==false) {var if_res728 = string__gt_immutable_string_by_cache(rx_0);} else {var if_res728 = rx_0;}var rx_times__0 = if_res728;if (__plus__p_0!==false) {var if_res733 = t_plus__0;} else {var if_res733 = t_0;}return hash_ref_bang_(if_res733,rx_times__0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(rx_0)!==false) {var if_res730 = regexp_quote(rx_times__0);} else {if (M0.regexp_p(rx_0)!==false) {var if_res729 = M0.string_append($rjs_core.UString.make("(?:"),M0.object_name(rx_0),$rjs_core.UString.make(")"));} else {var if_res729 = M0.raise_argument_error(who_6,$rjs_core.UString.make("(or/c string? regexp?)"),rx_0);}var if_res730 = if_res729;}var s_6 = if_res730;if (__plus__p_0!==false) {var if_res731 = M0.string_append($rjs_core.UString.make("(?:"),s_6,$rjs_core.UString.make(")+"));} else {var if_res731 = s_6;}var s_7 = if_res731;var __s_0 = M0.string_append($rjs_core.UString.make("^"),s_7);var s$_0 = M0.string_append(s_7,$rjs_core.UString.make("$"));if (M0.pregexp_p(rx_0)!==false) {var if_res732 = M0.list(M0.pregexp(s_7),M0.pregexp(__s_0),M0.pregexp(s$_0));} else {var if_res732 = M0.list(M0.regexp(s_7),M0.regexp(__s_0),M0.regexp(s$_0));}return if_res732;});};var replace_cache = M0.make_weak_hasheq();var string_prefix_p = function(str_2, prefix_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(str_2)!==false) {var if_res734 = M0.rvoid();} else {var if_res734 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("string-prefix?"),$rjs_core.UString.make("string?"),str_2);}if_res734;var let_result735 = M0.values();if (M0.string_p(prefix_0)!==false) {var if_res736 = M0.rvoid();} else {var if_res736 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("string-prefix?"),$rjs_core.UString.make("string?"),prefix_0);}if_res736;var let_result737 = M0.values();var l1_9 = M0.string_length(str_2);var l2_9 = M0.string_length(prefix_0);var loop_51 = function(i_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.__eq_(l2_9,i_40)!==false) {var if_res740 = true;} else {if (M0.__eq_(l1_9,i_40)!==false) {var if_res739 = false;} else {if (M0.char_eq__p(M0.string_ref(str_2,i_40),M0.string_ref(prefix_0,i_40))!==false) {var if_res738 = loop_51(M0.add1(i_40));} else {var if_res738 = false;}var if_res739 = if_res738;}var if_res740 = if_res739;}return if_res740;};return loop_51(0);};var normalize_symbol_0 = function(s2_0, ignores1_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("normalize-symbol");var s_8 = s2_0;var ignores_0 = ignores1_0;var should_rename_p_0 = function(s_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("should-rename?");return M0.not(string_prefix_p(s_9,jsruntime_core_module()));};var ss_0 = M0.symbol__gt_string(s_8);if (false_p(should_rename_p_0(ss_0))!==false) {var if_res758 = ss_0;} else {if (reserved_keyword_p(s_8)!==false) {var if_res757 = M0.string_append($rjs_core.UString.make("r"),ss_0);} else {var v_43 = M0.string__gt_list(ss_0);var v_1 = v_43;var alt_0 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_1);};var p_9 = v_1;if (M0.pair_p(p_9)!==false) {var if_res741 = true;} else {var if_res741 = false;}if (if_res741!==false) {var p_10 = v_1;var a_25 = M0.car(p_10);var ch_first_2 = a_25;var d_0 = M0.cdr(p_10);var ch_rest_2 = d_0;var let_result742 = M0.values(ch_first_2,ch_rest_2);var ch_first_1 = let_result742.getAt(0);var ch_rest_1 = let_result742.getAt(1);var if_res743 = M0.values(ch_first_1,ch_rest_1);} else {var if_res743 = alt_0();}var let_result744 = if_res743;var ch_first_0 = let_result744.getAt(0);var ch_rest_0 = let_result744.getAt(1);var temp756 = normalize_symbol_atom(ch_first_0,true,ignores_0);var loop_52 = function(ss_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_44 = ss_1;var alt_1 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_2 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_3 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_44);};var p_11 = v_44;if (M0.pair_p(p_11)!==false) {var if_res745 = true;} else {var if_res745 = false;}if (if_res745!==false) {var p_12 = v_44;var a_26 = M0.car(p_12);var fst_3 = a_26;var d_1 = M0.cdr(p_12);var rst_1 = d_1;var let_result746 = M0.values(fst_3,rst_1);var fst_2 = let_result746.getAt(0);var rst_0 = let_result746.getAt(1);var if_res747 = M0.cons(normalize_symbol_atom(fst_2,false,ignores_0),loop_52(rst_0));} else {var if_res747 = alt_3();}return if_res747;};var p_13 = v_44;if (M0.pair_p(p_13)!==false) {var a_27 = M0.cdr(p_13);var p_14 = a_27;if (M0.pair_p(p_14)!==false) {var if_res748 = true;} else {var if_res748 = false;}var if_res749 = if_res748;} else {var if_res749 = false;}if (if_res749!==false) {var p_15 = v_44;var a_28 = M0.car(p_15);var fst_5 = a_28;var d_2 = M0.cdr(p_15);var p_16 = d_2;var a_29 = M0.car(p_16);var snd_2 = a_29;var d_3 = M0.cdr(p_16);var rst_4 = d_3;var let_result750 = M0.values(snd_2,rst_4);var snd_1 = let_result750.getAt(0);var rst_3 = let_result750.getAt(1);var let_result751 = M0.values(fst_5,snd_1,rst_3);var fst_4 = let_result751.getAt(0);var snd_0 = let_result751.getAt(1);var rst_2 = let_result751.getAt(2);if (M0.eq_p(fst_4,$rjs_core.UString.make("-"))!==false) {var if_res752 = M0.eq_p(snd_0,$rjs_core.UString.make(">"));} else {var if_res752 = false;}if (if_res752!==false) {var if_res753 = M0.cons($rjs_core.UString.make("_to_"),loop_52(rst_2));} else {var if_res753 = alt_2();}var if_res754 = if_res753;} else {var if_res754 = alt_2();}return if_res754;};if (M0.eq_p($rjs_core.Pair.makeList(),v_44)!==false) {var if_res755 = M0.rnull;} else {var if_res755 = alt_1();}return if_res755;};var if_res757 = M0.apply(M0.string_append,M0.cons(temp756,loop_52(ch_rest_0)));}var if_res758 = if_res757;}return if_res758;};var cl759 = function(s_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_0(s_10,$rjs_core.Pair.makeList());};var cl760 = function(s_2, ignores1_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_0(s_2,ignores1_1);};var normalize_symbol = $rjs_core.attachProcedureArity(function() {var fixed_lam761 = {'1':cl759,'2':cl760}[arguments.length];if (fixed_lam761!==undefined) {return fixed_lam761.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var valid_literal_atom_p = function(ch_0, first_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (first_p_0!==false) {var if_res762 = $rjs_core.Regexp.fromString("\\$|_|\\p{L}|\\p{Nl}");} else {var if_res762 = $rjs_core.Regexp.fromString("\\$|_|\\p{L}|\\p{Nl}|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}");}var patt_0 = if_res762;return regexp_match_exact_p(patt_0,M0.string(ch_0));};var reserved_keyword_p = function(s_11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_member_p(es6_reserved_keywords,s_11);};var normalize_symbol_atom_0 = function(ch4_0, first_p5_0, ignores3_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("normalize-symbol-atom");var ch_1 = ch4_0;var first_p_1 = first_p5_0;var ignores_1 = ignores3_0;var char_map_0 = $rjs_core.Hash.makeEqual([[$rjs_core.UString.make("&"),$rjs_core.UString.make("_and_")],[$rjs_core.UString.make("'"),$rjs_core.UString.make("_prime_")],[$rjs_core.UString.make("!"),$rjs_core.UString.make("_bang_")],[$rjs_core.UString.make("<"),$rjs_core.UString.make("_lt_")],[$rjs_core.UString.make("*"),$rjs_core.UString.make("_times_")],[$rjs_core.UString.make("+"),$rjs_core.UString.make("_plus_")],[$rjs_core.UString.make(">"),$rjs_core.UString.make("_gt_")],[$rjs_core.UString.make("."),$rjs_core.UString.make("_dot_")],[$rjs_core.UString.make("?"),$rjs_core.UString.make("_p")],[$rjs_core.UString.make("/"),$rjs_core.UString.make("_by_")],[$rjs_core.UString.make("="),$rjs_core.UString.make("_eq_")],[$rjs_core.UString.make("-"),$rjs_core.UString.make("_")]],false);var sch_0 = M0.string(ch_1);var or_part_49 = member(sch_0,ignores_1);if (or_part_49!==false) {var if_res763 = or_part_49;} else {var if_res763 = valid_literal_atom_p(ch_1,first_p_1);}if (if_res763!==false) {var if_res766 = sch_0;} else {if (first_p_1!==false) {var if_res765 = M0.string_append($rjs_core.UString.make("_"),normalize_symbol_atom(ch_1,false));} else {if (hash_has_key_p(char_map_0,sch_0)!==false) {var if_res764 = M0.hash_ref(char_map_0,sch_0);} else {var if_res764 = $rjs_core.UString.make("_");}var if_res765 = if_res764;}var if_res766 = if_res765;}return if_res766;};var cl767 = function(ch_2, first_p_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_atom_0(ch_2,first_p_2,$rjs_core.Pair.makeList());};var cl768 = function(ch_3, first_p_3, ignores3_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_atom_0(ch_3,first_p_3,ignores3_1);};var normalize_symbol_atom = $rjs_core.attachProcedureArity(function() {var fixed_lam769 = {'2':cl767,'3':cl768}[arguments.length];if (fixed_lam769!==undefined) {return fixed_lam769.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var fresh_id_counter = M0.make_parameter(0);if (test_environment_p()!==false) {var if_res770 = M0.gensym;} else {var if_res770 = function(id_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}fresh_id_counter(M0.add1(fresh_id_counter()));return M0.string__gt_symbol(M0.format($rjs_core.UString.make("~a~a"),id_0,fresh_id_counter()));};}var fresh_id = if_res770;var es6_reserved_keywords = list__gt_set($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("abstract"),$rjs_core.PrimitiveSymbol.make("arguments"),$rjs_core.PrimitiveSymbol.make("await*"),$rjs_core.PrimitiveSymbol.make("boolean"),$rjs_core.PrimitiveSymbol.make("break"),$rjs_core.PrimitiveSymbol.make("byte"),$rjs_core.PrimitiveSymbol.make("case"),$rjs_core.PrimitiveSymbol.make("catch"),$rjs_core.PrimitiveSymbol.make("char"),$rjs_core.PrimitiveSymbol.make("class*"),$rjs_core.PrimitiveSymbol.make("const"),$rjs_core.PrimitiveSymbol.make("continue"),$rjs_core.PrimitiveSymbol.make("debugger"),$rjs_core.PrimitiveSymbol.make("default"),$rjs_core.PrimitiveSymbol.make("delete"),$rjs_core.PrimitiveSymbol.make("do"),$rjs_core.PrimitiveSymbol.make("double"),$rjs_core.PrimitiveSymbol.make("else"),$rjs_core.PrimitiveSymbol.make("enum*"),$rjs_core.PrimitiveSymbol.make("eval"),$rjs_core.PrimitiveSymbol.make("export*"),$rjs_core.PrimitiveSymbol.make("extends*"),$rjs_core.PrimitiveSymbol.make("false"),$rjs_core.PrimitiveSymbol.make("final"),$rjs_core.PrimitiveSymbol.make("finally"),$rjs_core.PrimitiveSymbol.make("float"),$rjs_core.PrimitiveSymbol.make("for"),$rjs_core.PrimitiveSymbol.make("function"),$rjs_core.PrimitiveSymbol.make("goto"),$rjs_core.PrimitiveSymbol.make("if"),$rjs_core.PrimitiveSymbol.make("implements"),$rjs_core.PrimitiveSymbol.make("import*"),$rjs_core.PrimitiveSymbol.make("in"),$rjs_core.PrimitiveSymbol.make("instanceof"),$rjs_core.PrimitiveSymbol.make("int"),$rjs_core.PrimitiveSymbol.make("interface"),$rjs_core.PrimitiveSymbol.make("let*"),$rjs_core.PrimitiveSymbol.make("long"),$rjs_core.PrimitiveSymbol.make("native"),$rjs_core.PrimitiveSymbol.make("new"),$rjs_core.PrimitiveSymbol.make("null"),$rjs_core.PrimitiveSymbol.make("package"),$rjs_core.PrimitiveSymbol.make("private"),$rjs_core.PrimitiveSymbol.make("protected"),$rjs_core.PrimitiveSymbol.make("public"),$rjs_core.PrimitiveSymbol.make("return"),$rjs_core.PrimitiveSymbol.make("short"),$rjs_core.PrimitiveSymbol.make("static"),$rjs_core.PrimitiveSymbol.make("super*"),$rjs_core.PrimitiveSymbol.make("switch"),$rjs_core.PrimitiveSymbol.make("synchronized"),$rjs_core.PrimitiveSymbol.make("this"),$rjs_core.PrimitiveSymbol.make("throw"),$rjs_core.PrimitiveSymbol.make("throws"),$rjs_core.PrimitiveSymbol.make("transient"),$rjs_core.PrimitiveSymbol.make("true"),$rjs_core.PrimitiveSymbol.make("try"),$rjs_core.PrimitiveSymbol.make("typeof"),$rjs_core.PrimitiveSymbol.make("var"),$rjs_core.PrimitiveSymbol.make("void"),$rjs_core.PrimitiveSymbol.make("volatile"),$rjs_core.PrimitiveSymbol.make("while"),$rjs_core.PrimitiveSymbol.make("with"),$rjs_core.PrimitiveSymbol.make("yield")));var let_result771 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Linklet"),false,4,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2,3),false,$rjs_core.PrimitiveSymbol.make("Linklet"));var struct__0 = let_result771.getAt(0);var make__0 = let_result771.getAt(1);var __p_1 = let_result771.getAt(2);var __ref_1 = let_result771.getAt(3);var __set_bang__1 = let_result771.getAt(4);var let_result772 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("path")),M0.make_struct_field_accessor(__ref_1,1,$rjs_core.PrimitiveSymbol.make("imports")),M0.make_struct_field_accessor(__ref_1,2,$rjs_core.PrimitiveSymbol.make("exports")),M0.make_struct_field_accessor(__ref_1,3,$rjs_core.PrimitiveSymbol.make("forms")));var struct_Linklet = let_result772.getAt(0);var Linklet1_dot_1 = let_result772.getAt(1);var Linklet_p = let_result772.getAt(2);var Linklet_path = let_result772.getAt(3);var Linklet_imports = let_result772.getAt(4);var Linklet_exports = let_result772.getAt(5);var Linklet_forms = let_result772.getAt(6);var let_result773 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("DefineValues"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("DefineValues"));var struct__1 = let_result773.getAt(0);var make__1 = let_result773.getAt(1);var __p_2 = let_result773.getAt(2);var __ref_2 = let_result773.getAt(3);var __set_bang__2 = let_result773.getAt(4);var let_result774 = M0.values(struct__1,make__1,__p_2,M0.make_struct_field_accessor(__ref_2,0,$rjs_core.PrimitiveSymbol.make("ids")),M0.make_struct_field_accessor(__ref_2,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_DefineValues = let_result774.getAt(0);var DefineValues2_dot_1 = let_result774.getAt(1);var DefineValues_p = let_result774.getAt(2);var DefineValues_ids = let_result774.getAt(3);var DefineValues_expr = let_result774.getAt(4);var let_result775 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ImportedIdent"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ImportedIdent"));var struct__2 = let_result775.getAt(0);var make__2 = let_result775.getAt(1);var __p_3 = let_result775.getAt(2);var __ref_3 = let_result775.getAt(3);var __set_bang__3 = let_result775.getAt(4);var let_result776 = M0.values(struct__2,make__2,__p_3,M0.make_struct_field_accessor(__ref_3,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_3,1,$rjs_core.PrimitiveSymbol.make("src-mod")),M0.make_struct_field_accessor(__ref_3,2,$rjs_core.PrimitiveSymbol.make("reachable?")));var struct_ImportedIdent = let_result776.getAt(0);var ImportedIdent3_dot_1 = let_result776.getAt(1);var ImportedIdent_p = let_result776.getAt(2);var ImportedIdent_id = let_result776.getAt(3);var ImportedIdent_src_mod = let_result776.getAt(4);var ImportedIdent_reachable_p = let_result776.getAt(5);var let_result777 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("TopLevelIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("TopLevelIdent"));var struct__3 = let_result777.getAt(0);var make__3 = let_result777.getAt(1);var __p_4 = let_result777.getAt(2);var __ref_4 = let_result777.getAt(3);var __set_bang__4 = let_result777.getAt(4);var let_result778 = M0.values(struct__3,make__3,__p_4,M0.make_struct_field_accessor(__ref_4,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_TopLevelIdent = let_result778.getAt(0);var TopLevelIdent4_dot_1 = let_result778.getAt(1);var TopLevelIdent_p = let_result778.getAt(2);var TopLevelIdent_id = let_result778.getAt(3);var let_result779 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LinkletImportIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("LinkletImportIdent"));var struct__4 = let_result779.getAt(0);var make__4 = let_result779.getAt(1);var __p_5 = let_result779.getAt(2);var __ref_5 = let_result779.getAt(3);var __set_bang__5 = let_result779.getAt(4);var let_result780 = M0.values(struct__4,make__4,__p_5,M0.make_struct_field_accessor(__ref_5,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_LinkletImportIdent = let_result780.getAt(0);var LinkletImportIdent5_dot_1 = let_result780.getAt(1);var LinkletImportIdent_p = let_result780.getAt(2);var LinkletImportIdent_id = let_result780.getAt(3);var let_result781 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LocalIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("LocalIdent"));var struct__5 = let_result781.getAt(0);var make__5 = let_result781.getAt(1);var __p_6 = let_result781.getAt(2);var __ref_6 = let_result781.getAt(3);var __set_bang__6 = let_result781.getAt(4);var let_result782 = M0.values(struct__5,make__5,__p_6,M0.make_struct_field_accessor(__ref_6,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_LocalIdent = let_result782.getAt(0);var LocalIdent6_dot_1 = let_result782.getAt(1);var LocalIdent_p = let_result782.getAt(2);var LocalIdent_id = let_result782.getAt(3);var let_result783 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Quote"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("Quote"));var struct__6 = let_result783.getAt(0);var make__6 = let_result783.getAt(1);var __p_7 = let_result783.getAt(2);var __ref_7 = let_result783.getAt(3);var __set_bang__7 = let_result783.getAt(4);var let_result784 = M0.values(struct__6,make__6,__p_7,M0.make_struct_field_accessor(__ref_7,0,$rjs_core.PrimitiveSymbol.make("datum")));var struct_Quote = let_result784.getAt(0);var Quote7_dot_1 = let_result784.getAt(1);var Quote_p = let_result784.getAt(2);var Quote_datum = let_result784.getAt(3);var let_result785 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Begin0"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("Begin0"));var struct__7 = let_result785.getAt(0);var make__7 = let_result785.getAt(1);var __p_8 = let_result785.getAt(2);var __ref_8 = let_result785.getAt(3);var __set_bang__8 = let_result785.getAt(4);var let_result786 = M0.values(struct__7,make__7,__p_8,M0.make_struct_field_accessor(__ref_8,0,$rjs_core.PrimitiveSymbol.make("expr0")),M0.make_struct_field_accessor(__ref_8,1,$rjs_core.PrimitiveSymbol.make("exprs")));var struct_Begin0 = let_result786.getAt(0);var Begin08_dot_1 = let_result786.getAt(1);var Begin0_p = let_result786.getAt(2);var Begin0_expr0 = let_result786.getAt(3);var Begin0_exprs = let_result786.getAt(4);var let_result787 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("App"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("App"));var struct__8 = let_result787.getAt(0);var make__8 = let_result787.getAt(1);var __p_9 = let_result787.getAt(2);var __ref_9 = let_result787.getAt(3);var __set_bang__9 = let_result787.getAt(4);var let_result788 = M0.values(struct__8,make__8,__p_9,M0.make_struct_field_accessor(__ref_9,0,$rjs_core.PrimitiveSymbol.make("lam")),M0.make_struct_field_accessor(__ref_9,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_App = let_result788.getAt(0);var App9_dot_1 = let_result788.getAt(1);var App_p = let_result788.getAt(2);var App_lam = let_result788.getAt(3);var App_args = let_result788.getAt(4);var let_result789 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Lambda"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("Lambda"));var struct__9 = let_result789.getAt(0);var make__9 = let_result789.getAt(1);var __p_10 = let_result789.getAt(2);var __ref_10 = let_result789.getAt(3);var __set_bang__10 = let_result789.getAt(4);var let_result790 = M0.values(struct__9,make__9,__p_10,M0.make_struct_field_accessor(__ref_10,0,$rjs_core.PrimitiveSymbol.make("formals")),M0.make_struct_field_accessor(__ref_10,1,$rjs_core.PrimitiveSymbol.make("exprs")),M0.make_struct_field_accessor(__ref_10,2,$rjs_core.PrimitiveSymbol.make("unchecked?")));var struct_Lambda = let_result790.getAt(0);var Lambda10_dot_1 = let_result790.getAt(1);var Lambda_p = let_result790.getAt(2);var Lambda_formals = let_result790.getAt(3);var Lambda_exprs = let_result790.getAt(4);var Lambda_unchecked_p = let_result790.getAt(5);var let_result791 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("CaseLambda"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("CaseLambda"));var struct__10 = let_result791.getAt(0);var make__10 = let_result791.getAt(1);var __p_11 = let_result791.getAt(2);var __ref_11 = let_result791.getAt(3);var __set_bang__11 = let_result791.getAt(4);var let_result792 = M0.values(struct__10,make__10,__p_11,M0.make_struct_field_accessor(__ref_11,0,$rjs_core.PrimitiveSymbol.make("clauses")));var struct_CaseLambda = let_result792.getAt(0);var CaseLambda11_dot_1 = let_result792.getAt(1);var CaseLambda_p = let_result792.getAt(2);var CaseLambda_clauses = let_result792.getAt(3);var let_result793 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("If"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("If"));var struct__11 = let_result793.getAt(0);var make__11 = let_result793.getAt(1);var __p_12 = let_result793.getAt(2);var __ref_12 = let_result793.getAt(3);var __set_bang__12 = let_result793.getAt(4);var let_result794 = M0.values(struct__11,make__11,__p_12,M0.make_struct_field_accessor(__ref_12,0,$rjs_core.PrimitiveSymbol.make("pred")),M0.make_struct_field_accessor(__ref_12,1,$rjs_core.PrimitiveSymbol.make("t-branch")),M0.make_struct_field_accessor(__ref_12,2,$rjs_core.PrimitiveSymbol.make("f-branch")));var struct_If = let_result794.getAt(0);var If12_dot_1 = let_result794.getAt(1);var If_p = let_result794.getAt(2);var If_pred = let_result794.getAt(3);var If_t_branch = let_result794.getAt(4);var If_f_branch = let_result794.getAt(5);var let_result795 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LetValues"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("LetValues"));var struct__12 = let_result795.getAt(0);var make__12 = let_result795.getAt(1);var __p_13 = let_result795.getAt(2);var __ref_13 = let_result795.getAt(3);var __set_bang__13 = let_result795.getAt(4);var let_result796 = M0.values(struct__12,make__12,__p_13,M0.make_struct_field_accessor(__ref_13,0,$rjs_core.PrimitiveSymbol.make("bindings")),M0.make_struct_field_accessor(__ref_13,1,$rjs_core.PrimitiveSymbol.make("body")));var struct_LetValues = let_result796.getAt(0);var LetValues13_dot_1 = let_result796.getAt(1);var LetValues_p = let_result796.getAt(2);var LetValues_bindings = let_result796.getAt(3);var LetValues_body = let_result796.getAt(4);var let_result797 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Set!"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("Set!"));var struct__13 = let_result797.getAt(0);var make__13 = let_result797.getAt(1);var __p_14 = let_result797.getAt(2);var __ref_14 = let_result797.getAt(3);var __set_bang__14 = let_result797.getAt(4);var let_result798 = M0.values(struct__13,make__13,__p_14,M0.make_struct_field_accessor(__ref_14,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_14,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_Set_bang_ = let_result798.getAt(0);var Set_bang_14_dot_1 = let_result798.getAt(1);var Set_bang__p = let_result798.getAt(2);var Set_bang__id = let_result798.getAt(3);var Set_bang__expr = let_result798.getAt(4);var let_result799 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("WithContinuationMark"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("WithContinuationMark"));var struct__14 = let_result799.getAt(0);var make__14 = let_result799.getAt(1);var __p_15 = let_result799.getAt(2);var __ref_15 = let_result799.getAt(3);var __set_bang__15 = let_result799.getAt(4);var let_result800 = M0.values(struct__14,make__14,__p_15,M0.make_struct_field_accessor(__ref_15,0,$rjs_core.PrimitiveSymbol.make("key")),M0.make_struct_field_accessor(__ref_15,1,$rjs_core.PrimitiveSymbol.make("value")),M0.make_struct_field_accessor(__ref_15,2,$rjs_core.PrimitiveSymbol.make("result")));var struct_WithContinuationMark = let_result800.getAt(0);var WithContinuationMark15_dot_1 = let_result800.getAt(1);var WithContinuationMark_p = let_result800.getAt(2);var WithContinuationMark_key = let_result800.getAt(3);var WithContinuationMark_value = let_result800.getAt(4);var WithContinuationMark_result = let_result800.getAt(5);var let_result801 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("VarRef"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("VarRef"));var struct__15 = let_result801.getAt(0);var make__15 = let_result801.getAt(1);var __p_16 = let_result801.getAt(2);var __ref_16 = let_result801.getAt(3);var __set_bang__16 = let_result801.getAt(4);var let_result802 = M0.values(struct__15,make__15,__p_16,M0.make_struct_field_accessor(__ref_16,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_VarRef = let_result802.getAt(0);var VarRef16_dot_1 = let_result802.getAt(1);var VarRef_p = let_result802.getAt(2);var VarRef_id = let_result802.getAt(3);var let_result803 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("JSRequire"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("JSRequire"));var struct__16 = let_result803.getAt(0);var make__16 = let_result803.getAt(1);var __p_17 = let_result803.getAt(2);var __ref_17 = let_result803.getAt(3);var __set_bang__17 = let_result803.getAt(4);var let_result804 = M0.values(struct__16,make__16,__p_17,M0.make_struct_field_accessor(__ref_17,0,$rjs_core.PrimitiveSymbol.make("alias")),M0.make_struct_field_accessor(__ref_17,1,$rjs_core.PrimitiveSymbol.make("path")),M0.make_struct_field_accessor(__ref_17,2,$rjs_core.PrimitiveSymbol.make("mode")));var struct_JSRequire = let_result804.getAt(0);var JSRequire17_dot_1 = let_result804.getAt(1);var JSRequire_p = let_result804.getAt(2);var JSRequire_alias = let_result804.getAt(3);var JSRequire_path = let_result804.getAt(4);var JSRequire_mode = let_result804.getAt(5);var let_result805 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("SimpleProvide"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("SimpleProvide"));var struct__17 = let_result805.getAt(0);var make__17 = let_result805.getAt(1);var __p_18 = let_result805.getAt(2);var __ref_18 = let_result805.getAt(3);var __set_bang__18 = let_result805.getAt(4);var let_result806 = M0.values(struct__17,make__17,__p_18,M0.make_struct_field_accessor(__ref_18,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_SimpleProvide = let_result806.getAt(0);var SimpleProvide18_dot_1 = let_result806.getAt(1);var SimpleProvide_p = let_result806.getAt(2);var SimpleProvide_id = let_result806.getAt(3);var let_result807 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("RenamedProvide"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("RenamedProvide"));var struct__18 = let_result807.getAt(0);var make__18 = let_result807.getAt(1);var __p_19 = let_result807.getAt(2);var __ref_19 = let_result807.getAt(3);var __set_bang__19 = let_result807.getAt(4);var let_result808 = M0.values(struct__18,make__18,__p_19,M0.make_struct_field_accessor(__ref_19,0,$rjs_core.PrimitiveSymbol.make("local-id")),M0.make_struct_field_accessor(__ref_19,1,$rjs_core.PrimitiveSymbol.make("exported-id")));var struct_RenamedProvide = let_result808.getAt(0);var RenamedProvide19_dot_1 = let_result808.getAt(1);var RenamedProvide_p = let_result808.getAt(2);var RenamedProvide_local_id = let_result808.getAt(3);var RenamedProvide_exported_id = let_result808.getAt(4);var Ident_p = function(e_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_50 = ImportedIdent_p(e_1);if (or_part_50!==false) {var if_res811 = or_part_50;} else {var or_part_51 = TopLevelIdent_p(e_1);if (or_part_51!==false) {var if_res810 = or_part_51;} else {var or_part_52 = LinkletImportIdent_p(e_1);if (or_part_52!==false) {var if_res809 = or_part_52;} else {var if_res809 = LocalIdent_p(e_1);}var if_res810 = if_res809;}var if_res811 = if_res810;}return if_res811;};var TopLevelForm_p = function(e_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_53 = Expr_p(e_2);if (or_part_53!==false) {var if_res813 = or_part_53;} else {var or_part_54 = DefineValues_p(e_2);if (or_part_54!==false) {var if_res812 = or_part_54;} else {var if_res812 = JSRequire_p(e_2);}var if_res813 = if_res812;}return if_res813;};var Begin_p = function(e_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(e_3)!==false) {var if_res814 = andmap2(TopLevelForm_p,e_3);} else {var if_res814 = false;}return if_res814;};var Expr_p = function(e_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_55 = Ident_p(e_4);if (or_part_55!==false) {var if_res825 = or_part_55;} else {var or_part_56 = VarRef_p(e_4);if (or_part_56!==false) {var if_res824 = or_part_56;} else {var or_part_57 = Quote_p(e_4);if (or_part_57!==false) {var if_res823 = or_part_57;} else {var or_part_58 = Begin_p(e_4);if (or_part_58!==false) {var if_res822 = or_part_58;} else {var or_part_59 = Begin0_p(e_4);if (or_part_59!==false) {var if_res821 = or_part_59;} else {var or_part_60 = App_p(e_4);if (or_part_60!==false) {var if_res820 = or_part_60;} else {var or_part_61 = Lambda_p(e_4);if (or_part_61!==false) {var if_res819 = or_part_61;} else {var or_part_62 = CaseLambda_p(e_4);if (or_part_62!==false) {var if_res818 = or_part_62;} else {var or_part_63 = If_p(e_4);if (or_part_63!==false) {var if_res817 = or_part_63;} else {var or_part_64 = LetValues_p(e_4);if (or_part_64!==false) {var if_res816 = or_part_64;} else {var or_part_65 = Set_bang__p(e_4);if (or_part_65!==false) {var if_res815 = or_part_65;} else {var if_res815 = WithContinuationMark_p(e_4);}var if_res816 = if_res815;}var if_res817 = if_res816;}var if_res818 = if_res817;}var if_res819 = if_res818;}var if_res820 = if_res819;}var if_res821 = if_res820;}var if_res822 = if_res821;}var if_res823 = if_res822;}var if_res824 = if_res823;}var if_res825 = if_res824;}return if_res825;};var lambda_arity = function(f_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var frmls_0 = Lambda_formals(f_30);if (M0.symbol_p(frmls_0)!==false) {var if_res828 = M0.arity_at_least(0);} else {if (M0.list_p(frmls_0)!==false) {var if_res827 = M0.length(frmls_0);} else {if (M0.pair_p(frmls_0)!==false) {var if_res826 = M0.arity_at_least(M0.length(M0.car(frmls_0)));} else {var if_res826 = M0.rvoid();}var if_res827 = if_res826;}var if_res828 = if_res827;}return if_res828;};var variadic_lambda_p = function(lam_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.list_p(Lambda_formals(lam_0)));};var hash_union = function(h1_0, h2_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var ht_6 = h2_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res829 = M0.rvoid();} else {var if_res829 = check_in_hash(ht_6);}if_res829;var for_loop_1 = function(res_0, i_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_41!==false) {var let_result830 = M0.hash_iterate_key_plus_value(ht_6,i_41);var k_0 = let_result830.getAt(0);var v_45 = let_result830.getAt(1);var res_2 = res_0;if (hash_has_key_p(res_2,k_0)!==false) {var if_res831 = M0.error($rjs_core.PrimitiveSymbol.make("hash-union"));} else {var if_res831 = M0.hash_set(res_2,k_0,v_45);}var res_3 = if_res831;var res_1 = M0.values(res_3);if (M0.not(false)!==false) {var if_res832 = for_loop_1(res_1,M0.hash_iterate_next(ht_6,i_41));} else {var if_res832 = res_1;}var if_res833 = if_res832;} else {var if_res833 = res_0;}return if_res833;};return for_loop_1(h1_0,M0.hash_iterate_first(ht_6));};var formals__gt_absyn = function(formals_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_66 = M0.symbol_p(formals_0);if (or_part_66!==false) {var if_res834 = or_part_66;} else {var if_res834 = M0.list_p(formals_0);}if (if_res834!==false) {var if_res837 = formals_0;} else {if (M0.pair_p(formals_0)!==false) {var loop_53 = function(rev_elms_0, rem_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(rem_0)!==false) {var if_res835 = loop_53(M0.cons(M0.car(rem_0),rev_elms_0),M0.cdr(rem_0));} else {var if_res835 = M0.cons(reverse$1(rev_elms_0),rem_0);}return if_res835;};var if_res836 = loop_53($rjs_core.Pair.makeList(),formals_0);} else {var if_res836 = M0.rvoid();}var if_res837 = if_res836;}return if_res837;};var formals__gt_bindings = function(formals_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var get_formals_0 = function(formals_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("get-formals");if (M0.symbol_p(formals_2)!==false) {var if_res841 = M0.list(formals_2);} else {if (M0.list_p(formals_2)!==false) {var if_res840 = formals_2;} else {if (M0.pair_p(formals_2)!==false) {var loop_54 = function(rev_elms_1, rem_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(rem_1)!==false) {var if_res838 = loop_54(M0.cons(M0.car(rem_1),rev_elms_1),M0.cdr(rem_1));} else {var if_res838 = M0.cons(rem_1,reverse$1(rev_elms_1));}return if_res838;};var if_res839 = loop_54($rjs_core.Pair.makeList(),formals_2);} else {var if_res839 = M0.rvoid();}var if_res840 = if_res839;}var if_res841 = if_res840;}return if_res841;};var let_result842 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),get_formals_0(formals_1));var pos__gt_vals_3 = let_result842.getAt(0);var pos_pre_inc_1 = let_result842.getAt(1);var pos_next_4 = let_result842.getAt(2);var init_4 = let_result842.getAt(3);var pos_cont_p_4 = let_result842.getAt(4);var val_cont_p_3 = let_result842.getAt(5);var all_cont_p_3 = let_result842.getAt(6);M0.rvoid();var for_loop_2 = function(table_0, pos_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_4!==false) {var if_res843 = pos_cont_p_4(pos_11);} else {var if_res843 = true;}if (if_res843!==false) {var i_43 = pos__gt_vals_3(pos_11);if (all_cont_p_3!==false) {var if_res844 = function(pos_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_3(pos_12,i_43);};} else {var if_res844 = false;}var let_result845 = M0.values(i_43,if_res844);var i_42 = let_result845.getAt(0);var all_cont_p_by_pos_1 = let_result845.getAt(1);if (pos_pre_inc_1!==false) {var if_res846 = pos_pre_inc_1(pos_11);} else {var if_res846 = pos_11;}var pos_13 = if_res846;if (val_cont_p_3!==false) {var if_res847 = val_cont_p_3(i_42);} else {var if_res847 = true;}if (if_res847!==false) {var table_2 = table_0;var let_result848 = M0.values(i_42,$rjs_core.PrimitiveSymbol.make("lexical"));var key_3 = let_result848.getAt(0);var val_0 = let_result848.getAt(1);var table_3 = M0.hash_set(table_2,key_3,val_0);var table_1 = M0.values(table_3);if (all_cont_p_by_pos_1!==false) {var if_res849 = all_cont_p_by_pos_1(pos_13);} else {var if_res849 = true;}if (if_res849!==false) {var if_res850 = M0.not(false);} else {var if_res850 = false;}if (if_res850!==false) {var if_res851 = for_loop_2(table_1,pos_next_4(pos_13));} else {var if_res851 = table_1;}var if_res852 = if_res851;} else {var if_res852 = table_0;}var if_res853 = if_res852;} else {var if_res853 = table_0;}return if_res853;};return for_loop_2($rjs_core.Hash.makeEqual([],false),init_4);};var to_absyn = function(v_46, bindings_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var t_2 = function(v3_0, b2_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("t");var v_47 = v3_0;if (M0.eq_p(b2_4,M0.unsafe_undefined)!==false) {var if_res854 = bindings_0;} else {var if_res854 = b2_4;}var b_8 = if_res854;return to_absyn(v_47,b_8);};var cl855 = function(v_48) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("t");return t_2(v_48,M0.unsafe_undefined);};var cl856 = function(v_49, b2_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return t_2(v_49,b2_5);};var t_1 = $rjs_core.attachProcedureArity(function() {var fixed_lam857 = {'1':cl855,'2':cl856}[arguments.length];if (fixed_lam857!==undefined) {return fixed_lam857.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var v_50 = v_46;var p_17 = v_50;if (M0.pair_p(p_17)!==false) {var if_res858 = M0.car(p_17);} else {var if_res858 = false;}var hd_0 = if_res858;var alt_4 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_5 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_6 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_7 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_8 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_9 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_10 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_11 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_12 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_13 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_14 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_15 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_16 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_17 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_18 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_19 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_20 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_21 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");displayln($rjs_core.UString.make("unsupported form =>"));displayln(v_46);return M0.error($rjs_core.PrimitiveSymbol.make("linklet-expand"));};var p_18 = v_50;if (M0.pair_p(p_18)!==false) {var if_res859 = true;} else {var if_res859 = false;}if (if_res859!==false) {var p_19 = v_50;var a_30 = M0.car(p_19);var rator_1 = a_30;var d_4 = M0.cdr(p_19);var rands_1 = d_4;var let_result860 = M0.values(rator_1,rands_1);var rator_0 = let_result860.getAt(0);var rands_0 = let_result860.getAt(1);var if_res861 = App9_dot_1(t_1(rator_0),map2(t_1,rands_0));} else {var if_res861 = alt_21();}return if_res861;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("with-continuation-mark"),hd_0)!==false) {var a_31 = M0.cdr(v_50);var p_20 = a_31;if (M0.pair_p(p_20)!==false) {var a_32 = M0.cdr(p_20);var p_21 = a_32;if (M0.pair_p(p_21)!==false) {var a_33 = M0.cdr(p_21);var p_22 = a_33;if (M0.pair_p(p_22)!==false) {var a_34 = M0.cdr(p_22);var if_res862 = M0.eq_p($rjs_core.Pair.makeList(),a_34);} else {var if_res862 = false;}var if_res863 = if_res862;} else {var if_res863 = false;}var if_res864 = if_res863;} else {var if_res864 = false;}var if_res865 = if_res864;} else {var if_res865 = false;}if (if_res865!==false) {var d_5 = M0.cdr(v_50);var p_23 = d_5;var a_35 = M0.car(p_23);var key_5 = a_35;var d_6 = M0.cdr(p_23);var p_0 = d_6;var a_36 = M0.car(p_0);var value_2 = a_36;var d_7 = M0.cdr(p_0);var a_37 = M0.car(d_7);var result_3 = a_37;var let_result866 = M0.values(value_2,result_3);var value_1 = let_result866.getAt(0);var result_2 = let_result866.getAt(1);var let_result867 = M0.values(key_5,value_1,result_2);var key_4 = let_result867.getAt(0);var value_0 = let_result867.getAt(1);var result_1 = let_result867.getAt(2);var if_res868 = WithContinuationMark15_dot_1(t_1(key_4),t_1(value_0),t_1(result_1));} else {var if_res868 = alt_20();}return if_res868;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("set!"),hd_0)!==false) {var a_38 = M0.cdr(v_50);var p_24 = a_38;if (M0.pair_p(p_24)!==false) {var a_39 = M0.cdr(p_24);var p_25 = a_39;if (M0.pair_p(p_25)!==false) {var a_40 = M0.cdr(p_25);var if_res869 = M0.eq_p($rjs_core.Pair.makeList(),a_40);} else {var if_res869 = false;}var if_res870 = if_res869;} else {var if_res870 = false;}var if_res871 = if_res870;} else {var if_res871 = false;}if (if_res871!==false) {var d_8 = M0.cdr(v_50);var p_26 = d_8;var a_41 = M0.car(p_26);var s_13 = a_41;var d_9 = M0.cdr(p_26);var a_42 = M0.car(d_9);var e_6 = a_42;var let_result872 = M0.values(s_13,e_6);var s_12 = let_result872.getAt(0);var e_5 = let_result872.getAt(1);var if_res873 = Set_bang_14_dot_1(s_12,t_1(e_5));} else {var if_res873 = alt_19();}return if_res873;};if (M0.symbol_p(v_46)!==false) {if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define"),M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res876 = TopLevelIdent4_dot_1(v_46);} else {if (M0.number_p(M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res875 = LinkletImportIdent5_dot_1(v_46,M0.hash_ref(bindings_0,v_46));} else {if (M0.eq_p($rjs_core.PrimitiveSymbol.make("lexical"),M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res874 = LocalIdent6_dot_1(v_46);} else {var if_res874 = ImportedIdent3_dot_1(v_46,$rjs_core.PrimitiveSymbol.make("#%kernel"),true);}var if_res875 = if_res874;}var if_res876 = if_res875;}var if_res877 = if_res876;} else {var if_res877 = alt_18();}return if_res877;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"),hd_0)!==false) {var a_43 = M0.cdr(v_50);var if_res878 = M0.eq_p($rjs_core.Pair.makeList(),a_43);} else {var if_res878 = false;}if (if_res878!==false) {var if_res879 = VarRef16_dot_1(false);} else {var if_res879 = alt_17();}return if_res879;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"),hd_0)!==false) {var a_44 = M0.cdr(v_50);var p_27 = a_44;if (M0.pair_p(p_27)!==false) {var a_45 = M0.cdr(p_27);var if_res880 = M0.eq_p($rjs_core.Pair.makeList(),a_45);} else {var if_res880 = false;}var if_res881 = if_res880;} else {var if_res881 = false;}if (if_res881!==false) {var d_10 = M0.cdr(v_50);var a_46 = M0.car(d_10);var x_25 = a_46;var if_res882 = VarRef16_dot_1(x_25);} else {var if_res882 = alt_16();}return if_res882;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_47 = M0.cdr(v_50);var p_28 = a_47;if (M0.pair_p(p_28)!==false) {var a_48 = M0.car(p_28);if (M0.list_p(a_48)!==false) {var a_49 = M0.cdr(p_28);var p_29 = a_49;if (M0.pair_p(p_29)!==false) {var a_50 = M0.cdr(p_29);var if_res883 = M0.eq_p($rjs_core.Pair.makeList(),a_50);} else {var if_res883 = false;}var if_res884 = if_res883;} else {var if_res884 = false;}var if_res885 = if_res884;} else {var if_res885 = false;}var if_res886 = if_res885;} else {var if_res886 = false;}if (if_res886!==false) {var d_11 = M0.cdr(v_50);var p_30 = d_11;var a_51 = M0.car(p_30);var id_2 = a_51;var d_12 = M0.cdr(p_30);var a_52 = M0.car(d_12);var b_10 = a_52;var let_result887 = M0.values(id_2,b_10);var id_1 = let_result887.getAt(0);var b_9 = let_result887.getAt(1);var if_res888 = DefineValues2_dot_1(id_1,t_1(b_9));} else {var if_res888 = alt_15();}return if_res888;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_53 = M0.cdr(v_50);var p_31 = a_53;if (M0.pair_p(p_31)!==false) {var a_54 = M0.car(p_31);var p_32 = a_54;if (M0.pair_p(p_32)!==false) {var a_55 = M0.cdr(p_32);var if_res889 = M0.eq_p($rjs_core.Pair.makeList(),a_55);} else {var if_res889 = false;}if (if_res889!==false) {var a_56 = M0.cdr(p_31);var p_33 = a_56;if (M0.pair_p(p_33)!==false) {var a_57 = M0.car(p_33);var p_34 = a_57;if (M0.pair_p(p_34)!==false) {var a_58 = M0.car(p_34);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),a_58)!==false) {var a_59 = M0.cdr(p_34);var p_35 = a_59;if (M0.pair_p(p_35)!==false) {var a_60 = M0.car(p_35);var p_36 = a_60;if (M0.pair_p(p_36)!==false) {var a_61 = M0.car(p_36);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_61)!==false) {var a_62 = M0.cdr(p_36);var p_37 = a_62;if (M0.pair_p(p_37)!==false) {var a_63 = M0.car(p_37);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("require"),a_63)!==false) {var a_64 = M0.cdr(p_37);var if_res890 = M0.eq_p($rjs_core.Pair.makeList(),a_64);} else {var if_res890 = false;}var if_res891 = if_res890;} else {var if_res891 = false;}var if_res892 = if_res891;} else {var if_res892 = false;}var if_res893 = if_res892;} else {var if_res893 = false;}if (if_res893!==false) {var a_65 = M0.cdr(p_35);var p_38 = a_65;if (M0.pair_p(p_38)!==false) {var a_66 = M0.car(p_38);var p_39 = a_66;if (M0.pair_p(p_39)!==false) {var a_67 = M0.car(p_39);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_67)!==false) {var a_68 = M0.cdr(p_39);var p_40 = a_68;if (M0.pair_p(p_40)!==false) {var a_69 = M0.car(p_40);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("*"),a_69)!==false) {var a_70 = M0.cdr(p_40);var if_res894 = M0.eq_p($rjs_core.Pair.makeList(),a_70);} else {var if_res894 = false;}var if_res895 = if_res894;} else {var if_res895 = false;}var if_res896 = if_res895;} else {var if_res896 = false;}var if_res897 = if_res896;} else {var if_res897 = false;}if (if_res897!==false) {var a_71 = M0.cdr(p_38);var p_41 = a_71;if (M0.pair_p(p_41)!==false) {var a_72 = M0.car(p_41);var p_42 = a_72;if (M0.pair_p(p_42)!==false) {var a_73 = M0.car(p_42);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_73)!==false) {var a_74 = M0.cdr(p_42);var p_43 = a_74;if (M0.pair_p(p_43)!==false) {var a_75 = M0.cdr(p_43);var if_res898 = M0.eq_p($rjs_core.Pair.makeList(),a_75);} else {var if_res898 = false;}var if_res899 = if_res898;} else {var if_res899 = false;}var if_res900 = if_res899;} else {var if_res900 = false;}if (if_res900!==false) {var a_76 = M0.cdr(p_41);var if_res901 = M0.eq_p($rjs_core.Pair.makeList(),a_76);} else {var if_res901 = false;}var if_res902 = if_res901;} else {var if_res902 = false;}var if_res903 = if_res902;} else {var if_res903 = false;}var if_res904 = if_res903;} else {var if_res904 = false;}var if_res905 = if_res904;} else {var if_res905 = false;}var if_res906 = if_res905;} else {var if_res906 = false;}var if_res907 = if_res906;} else {var if_res907 = false;}var if_res908 = if_res907;} else {var if_res908 = false;}if (if_res908!==false) {var a_77 = M0.cdr(p_33);var if_res909 = M0.eq_p($rjs_core.Pair.makeList(),a_77);} else {var if_res909 = false;}var if_res910 = if_res909;} else {var if_res910 = false;}var if_res911 = if_res910;} else {var if_res911 = false;}var if_res912 = if_res911;} else {var if_res912 = false;}var if_res913 = if_res912;} else {var if_res913 = false;}if (if_res913!==false) {var d_13 = M0.cdr(v_50);var p_44 = d_13;var a_78 = M0.car(p_44);var a_79 = M0.car(a_78);var name_9 = a_79;var d_14 = M0.cdr(p_44);var a_80 = M0.car(d_14);var d_15 = M0.cdr(a_80);var d_16 = M0.cdr(d_15);var d_17 = M0.cdr(d_16);var a_81 = M0.car(d_17);var d_18 = M0.cdr(a_81);var a_82 = M0.car(d_18);var mod_1 = a_82;var let_result914 = M0.values(name_9,mod_1);var name_8 = let_result914.getAt(0);var mod_0 = let_result914.getAt(1);var if_res915 = JSRequire17_dot_1(name_8,mod_0,$rjs_core.PrimitiveSymbol.make("*"));} else {var if_res915 = alt_14();}return if_res915;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_83 = M0.cdr(v_50);var p_45 = a_83;if (M0.pair_p(p_45)!==false) {var a_84 = M0.car(p_45);var p_46 = a_84;if (M0.pair_p(p_46)!==false) {var a_85 = M0.cdr(p_46);var if_res916 = M0.eq_p($rjs_core.Pair.makeList(),a_85);} else {var if_res916 = false;}if (if_res916!==false) {var a_86 = M0.cdr(p_45);var p_47 = a_86;if (M0.pair_p(p_47)!==false) {var a_87 = M0.car(p_47);var p_48 = a_87;if (M0.pair_p(p_48)!==false) {var a_88 = M0.car(p_48);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),a_88)!==false) {var a_89 = M0.cdr(p_48);var p_49 = a_89;if (M0.pair_p(p_49)!==false) {var a_90 = M0.car(p_49);var p_50 = a_90;if (M0.pair_p(p_50)!==false) {var a_91 = M0.car(p_50);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_91)!==false) {var a_92 = M0.cdr(p_50);var p_51 = a_92;if (M0.pair_p(p_51)!==false) {var a_93 = M0.car(p_51);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("require"),a_93)!==false) {var a_94 = M0.cdr(p_51);var if_res917 = M0.eq_p($rjs_core.Pair.makeList(),a_94);} else {var if_res917 = false;}var if_res918 = if_res917;} else {var if_res918 = false;}var if_res919 = if_res918;} else {var if_res919 = false;}var if_res920 = if_res919;} else {var if_res920 = false;}if (if_res920!==false) {var a_95 = M0.cdr(p_49);var p_52 = a_95;if (M0.pair_p(p_52)!==false) {var a_96 = M0.car(p_52);var p_53 = a_96;if (M0.pair_p(p_53)!==false) {var a_97 = M0.car(p_53);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_97)!==false) {var a_98 = M0.cdr(p_53);var p_54 = a_98;if (M0.pair_p(p_54)!==false) {var a_99 = M0.cdr(p_54);var if_res921 = M0.eq_p($rjs_core.Pair.makeList(),a_99);} else {var if_res921 = false;}var if_res922 = if_res921;} else {var if_res922 = false;}var if_res923 = if_res922;} else {var if_res923 = false;}if (if_res923!==false) {var a_100 = M0.cdr(p_52);var if_res924 = M0.eq_p($rjs_core.Pair.makeList(),a_100);} else {var if_res924 = false;}var if_res925 = if_res924;} else {var if_res925 = false;}var if_res926 = if_res925;} else {var if_res926 = false;}var if_res927 = if_res926;} else {var if_res927 = false;}var if_res928 = if_res927;} else {var if_res928 = false;}var if_res929 = if_res928;} else {var if_res929 = false;}if (if_res929!==false) {var a_101 = M0.cdr(p_47);var if_res930 = M0.eq_p($rjs_core.Pair.makeList(),a_101);} else {var if_res930 = false;}var if_res931 = if_res930;} else {var if_res931 = false;}var if_res932 = if_res931;} else {var if_res932 = false;}var if_res933 = if_res932;} else {var if_res933 = false;}var if_res934 = if_res933;} else {var if_res934 = false;}if (if_res934!==false) {var d_19 = M0.cdr(v_50);var p_55 = d_19;var a_102 = M0.car(p_55);var a_103 = M0.car(a_102);var name_11 = a_103;var d_20 = M0.cdr(p_55);var a_104 = M0.car(d_20);var d_21 = M0.cdr(a_104);var d_22 = M0.cdr(d_21);var a_105 = M0.car(d_22);var d_23 = M0.cdr(a_105);var a_106 = M0.car(d_23);var mod_3 = a_106;var let_result935 = M0.values(name_11,mod_3);var name_10 = let_result935.getAt(0);var mod_2 = let_result935.getAt(1);var if_res936 = JSRequire17_dot_1(name_10,mod_2,$rjs_core.PrimitiveSymbol.make("default"));} else {var if_res936 = alt_13();}return if_res936;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("lambda"),hd_0)!==false) {var a_107 = M0.cdr(v_50);var p_56 = a_107;if (M0.pair_p(p_56)!==false) {var a_108 = M0.cdr(p_56);var p_57 = a_108;if (M0.pair_p(p_57)!==false) {var a_109 = M0.cdr(p_57);var if_res937 = M0.eq_p($rjs_core.Pair.makeList(),a_109);} else {var if_res937 = false;}var if_res938 = if_res937;} else {var if_res938 = false;}var if_res939 = if_res938;} else {var if_res939 = false;}if (if_res939!==false) {var d_24 = M0.cdr(v_50);var p_58 = d_24;var a_110 = M0.car(p_58);var formals_4 = a_110;var d_25 = M0.cdr(p_58);var a_111 = M0.car(d_25);var body_1 = a_111;var let_result940 = M0.values(formals_4,body_1);var formals_3 = let_result940.getAt(0);var body_0 = let_result940.getAt(1);var fabsyn_0 = formals__gt_absyn(formals_3);var if_res941 = Lambda10_dot_1(fabsyn_0,M0.list(t_1(body_0,hash_union(bindings_0,formals__gt_bindings(formals_3)))),false);} else {var if_res941 = alt_12();}return if_res941;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("case-lambda"),hd_0)!==false) {var if_res942 = true;} else {var if_res942 = false;}if (if_res942!==false) {var d_26 = M0.cdr(v_50);var clauses_0 = d_26;var if_res947 = CaseLambda11_dot_1(map2(function(c_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_51 = c_7;var alt_22 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_51);};var p_59 = v_51;if (M0.pair_p(p_59)!==false) {var a_112 = M0.cdr(p_59);var p_60 = a_112;if (M0.pair_p(p_60)!==false) {var a_113 = M0.cdr(p_60);var if_res943 = M0.eq_p($rjs_core.Pair.makeList(),a_113);} else {var if_res943 = false;}var if_res944 = if_res943;} else {var if_res944 = false;}if (if_res944!==false) {var p_61 = v_51;var a_114 = M0.car(p_61);var formals_6 = a_114;var d_27 = M0.cdr(p_61);var a_115 = M0.car(d_27);var body_3 = a_115;var let_result945 = M0.values(formals_6,body_3);var formals_5 = let_result945.getAt(0);var body_2 = let_result945.getAt(1);var if_res946 = Lambda10_dot_1(formals__gt_absyn(formals_5),M0.list(t_1(body_2,hash_union(bindings_0,formals__gt_bindings(formals_5)))),false);} else {var if_res946 = alt_22();}return if_res946;},clauses_0));} else {var if_res947 = alt_11();}return if_res947;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("letrec-values"),hd_0)!==false) {var a_116 = M0.cdr(v_50);var p_62 = a_116;if (M0.pair_p(p_62)!==false) {var a_117 = M0.car(p_62);if (M0.list_p(a_117)!==false) {var lst_8 = a_117;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res948 = M0.rvoid();} else {var if_res948 = check_list(lst_8);}if_res948;var for_loop_3 = function(result_4, lst_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_9)!==false) {var v_52 = M0.unsafe_car(lst_9);var rest_1 = M0.unsafe_cdr(lst_9);var p_63 = v_52;if (M0.pair_p(p_63)!==false) {var a_118 = M0.cdr(p_63);var p_64 = a_118;if (M0.pair_p(p_64)!==false) {var a_119 = M0.cdr(p_64);var if_res949 = M0.eq_p($rjs_core.Pair.makeList(),a_119);} else {var if_res949 = false;}var if_res950 = if_res949;} else {var if_res950 = false;}var result_6 = if_res950;var result_5 = M0.values(result_6);if (M0.not($rjs_core.attachProcedureArity(function(...x_26951) {var x_26 = $rjs_core.Pair.listFromArray(x_26951);return M0.not(result_5);})(v_52))!==false) {var if_res952 = M0.not(false);} else {var if_res952 = false;}if (if_res952!==false) {var if_res953 = for_loop_3(result_5,rest_1);} else {var if_res953 = result_5;}var if_res954 = if_res953;} else {var if_res954 = result_4;}return if_res954;};var if_res955 = for_loop_3(true,lst_8);} else {var if_res955 = false;}if (if_res955!==false) {var a_120 = M0.cdr(p_62);var p_65 = a_120;if (M0.pair_p(p_65)!==false) {var a_121 = M0.cdr(p_65);var if_res956 = M0.eq_p($rjs_core.Pair.makeList(),a_121);} else {var if_res956 = false;}var if_res957 = if_res956;} else {var if_res957 = false;}var if_res958 = if_res957;} else {var if_res958 = false;}var if_res959 = if_res958;} else {var if_res959 = false;}if (if_res959!==false) {var d_28 = M0.cdr(v_50);var p_66 = d_28;var a_122 = M0.car(p_66);var lst_10 = a_122;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res960 = M0.rvoid();} else {var if_res960 = check_list(lst_10);}if_res960;var for_loop_4 = function(xs_8, es_3, lst_11) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_11)!==false) {var v_53 = M0.unsafe_car(lst_11);var rest_2 = M0.unsafe_cdr(lst_11);var xs_10 = xs_8;var es_5 = es_3;var p_67 = v_53;var a_123 = M0.car(p_67);var xs_12 = a_123;var d_29 = M0.cdr(p_67);var a_124 = M0.car(d_29);var es_7 = a_124;var let_result961 = M0.values(xs_12,es_7);var xs4_0 = let_result961.getAt(0);var es5_0 = let_result961.getAt(1);var let_result962 = M0.values(M0.cons(xs4_0,xs_10),M0.cons(es5_0,es_5));var xs_11 = let_result962.getAt(0);var es_6 = let_result962.getAt(1);var let_result963 = M0.values(xs_11,es_6);var xs_9 = let_result963.getAt(0);var es_4 = let_result963.getAt(1);if (M0.not(false)!==false) {var if_res964 = for_loop_4(xs_9,es_4,rest_2);} else {var if_res964 = M0.values(xs_9,es_4);}var if_res965 = if_res964;} else {var if_res965 = M0.values(xs_8,es_3);}return if_res965;};var let_result966 = for_loop_4(M0.rnull,M0.rnull,lst_10);var xs_7 = let_result966.getAt(0);var es_2 = let_result966.getAt(1);var let_result967 = M0.values(reverse$1(xs_7),reverse$1(es_2));var xs_6 = let_result967.getAt(0);var es_1 = let_result967.getAt(1);var d_30 = M0.cdr(p_66);var a_125 = M0.car(d_30);var b_12 = a_125;var let_result968 = M0.values(xs_6,es_1,b_12);var xs_5 = let_result968.getAt(0);var es_0 = let_result968.getAt(1);var b_11 = let_result968.getAt(2);var let_result969 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_5);var pos__gt_vals_4 = let_result969.getAt(0);var pos_pre_inc_2 = let_result969.getAt(1);var pos_next_5 = let_result969.getAt(2);var init_5 = let_result969.getAt(3);var pos_cont_p_5 = let_result969.getAt(4);var val_cont_p_4 = let_result969.getAt(5);var all_cont_p_4 = let_result969.getAt(6);M0.rvoid();var for_loop_5 = function(table_4, pos_14) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_5!==false) {var if_res970 = pos_cont_p_5(pos_14);} else {var if_res970 = true;}if (if_res970!==false) {var x_28 = pos__gt_vals_4(pos_14);if (all_cont_p_4!==false) {var if_res971 = function(pos_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_4(pos_15,x_28);};} else {var if_res971 = false;}var let_result972 = M0.values(x_28,if_res971);var x_27 = let_result972.getAt(0);var all_cont_p_by_pos_2 = let_result972.getAt(1);if (pos_pre_inc_2!==false) {var if_res973 = pos_pre_inc_2(pos_14);} else {var if_res973 = pos_14;}var pos_16 = if_res973;if (val_cont_p_4!==false) {var if_res974 = val_cont_p_4(x_27);} else {var if_res974 = true;}if (if_res974!==false) {var table_6 = table_4;var let_result975 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),x_27);var pos__gt_vals_5 = let_result975.getAt(0);var pos_pre_inc_3 = let_result975.getAt(1);var pos_next_6 = let_result975.getAt(2);var init_6 = let_result975.getAt(3);var pos_cont_p_6 = let_result975.getAt(4);var val_cont_p_5 = let_result975.getAt(5);var all_cont_p_5 = let_result975.getAt(6);M0.rvoid();var for_loop_6 = function(table_7, pos_17) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_6!==false) {var if_res976 = pos_cont_p_6(pos_17);} else {var if_res976 = true;}if (if_res976!==false) {var i_45 = pos__gt_vals_5(pos_17);if (all_cont_p_5!==false) {var if_res977 = function(pos_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_5(pos_18,i_45);};} else {var if_res977 = false;}var let_result978 = M0.values(i_45,if_res977);var i_44 = let_result978.getAt(0);var all_cont_p_by_pos_3 = let_result978.getAt(1);if (pos_pre_inc_3!==false) {var if_res979 = pos_pre_inc_3(pos_17);} else {var if_res979 = pos_17;}var pos_19 = if_res979;if (val_cont_p_5!==false) {var if_res980 = val_cont_p_5(i_44);} else {var if_res980 = true;}if (if_res980!==false) {var table_9 = table_7;var table_10 = table_9;var let_result981 = M0.values(i_44,$rjs_core.PrimitiveSymbol.make("lexical"));var key_6 = let_result981.getAt(0);var val_1 = let_result981.getAt(1);var table_11 = M0.hash_set(table_10,key_6,val_1);var table_8 = M0.values(table_11);if (all_cont_p_by_pos_3!==false) {var if_res982 = all_cont_p_by_pos_3(pos_19);} else {var if_res982 = true;}if (if_res982!==false) {var if_res983 = M0.not(false);} else {var if_res983 = false;}if (if_res983!==false) {var if_res984 = for_loop_6(table_8,pos_next_6(pos_19));} else {var if_res984 = table_8;}var if_res985 = if_res984;} else {var if_res985 = table_7;}var if_res986 = if_res985;} else {var if_res986 = table_7;}return if_res986;};var table_5 = for_loop_6(table_6,init_6);if (all_cont_p_by_pos_2!==false) {var if_res987 = all_cont_p_by_pos_2(pos_16);} else {var if_res987 = true;}if (if_res987!==false) {var if_res988 = M0.not(false);} else {var if_res988 = false;}if (if_res988!==false) {var if_res989 = for_loop_5(table_5,pos_next_5(pos_16));} else {var if_res989 = table_5;}var if_res990 = if_res989;} else {var if_res990 = table_4;}var if_res991 = if_res990;} else {var if_res991 = table_4;}return if_res991;};var bindings_times__0 = hash_union(bindings_0,for_loop_5($rjs_core.Hash.makeEqual([],false),init_5));var let_result992 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_5);var pos__gt_vals_6 = let_result992.getAt(0);var pos_pre_inc_4 = let_result992.getAt(1);var pos_next_7 = let_result992.getAt(2);var init_7 = let_result992.getAt(3);var pos_cont_p_7 = let_result992.getAt(4);var val_cont_p_6 = let_result992.getAt(5);var all_cont_p_6 = let_result992.getAt(6);var let_result993 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),es_0);var pos__gt_vals_7 = let_result993.getAt(0);var pos_pre_inc_5 = let_result993.getAt(1);var pos_next_8 = let_result993.getAt(2);var init_8 = let_result993.getAt(3);var pos_cont_p_8 = let_result993.getAt(4);var val_cont_p_7 = let_result993.getAt(5);var all_cont_p_7 = let_result993.getAt(6);M0.rvoid();M0.rvoid();var for_loop_7 = function(fold_var_0, pos_20, pos_21) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_7!==false) {var if_res994 = pos_cont_p_7(pos_20);} else {var if_res994 = true;}if (if_res994!==false) {if (pos_cont_p_8!==false) {var if_res995 = pos_cont_p_8(pos_21);} else {var if_res995 = true;}var if_res996 = if_res995;} else {var if_res996 = false;}if (if_res996!==false) {var x_30 = pos__gt_vals_6(pos_20);if (all_cont_p_6!==false) {var if_res997 = function(pos_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_6(pos_22,x_30);};} else {var if_res997 = false;}var let_result998 = M0.values(x_30,if_res997);var x_29 = let_result998.getAt(0);var all_cont_p_by_pos_4 = let_result998.getAt(1);if (pos_pre_inc_4!==false) {var if_res999 = pos_pre_inc_4(pos_20);} else {var if_res999 = pos_20;}var pos_23 = if_res999;var e_8 = pos__gt_vals_7(pos_21);if (all_cont_p_7!==false) {var if_res1000 = function(pos_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_7(pos_24,e_8);};} else {var if_res1000 = false;}var let_result1001 = M0.values(e_8,if_res1000);var e_7 = let_result1001.getAt(0);var all_cont_p_by_pos_5 = let_result1001.getAt(1);if (pos_pre_inc_5!==false) {var if_res1002 = pos_pre_inc_5(pos_21);} else {var if_res1002 = pos_21;}var pos_25 = if_res1002;if (val_cont_p_6!==false) {var if_res1003 = val_cont_p_6(x_29);} else {var if_res1003 = true;}if (if_res1003!==false) {if (val_cont_p_7!==false) {var if_res1004 = val_cont_p_7(e_7);} else {var if_res1004 = true;}var if_res1005 = if_res1004;} else {var if_res1005 = false;}if (if_res1005!==false) {var fold_var_2 = fold_var_0;var fold_var_3 = M0.cons(M0.cons(x_29,t_1(e_7,bindings_times__0)),fold_var_2);var fold_var_1 = M0.values(fold_var_3);if (all_cont_p_by_pos_4!==false) {var if_res1006 = all_cont_p_by_pos_4(pos_23);} else {var if_res1006 = true;}if (if_res1006!==false) {if (all_cont_p_by_pos_5!==false) {var if_res1007 = all_cont_p_by_pos_5(pos_25);} else {var if_res1007 = true;}if (if_res1007!==false) {var if_res1008 = M0.not(false);} else {var if_res1008 = false;}var if_res1009 = if_res1008;} else {var if_res1009 = false;}if (if_res1009!==false) {var if_res1010 = for_loop_7(fold_var_1,pos_next_7(pos_23),pos_next_8(pos_25));} else {var if_res1010 = fold_var_1;}var if_res1011 = if_res1010;} else {var if_res1011 = fold_var_0;}var if_res1012 = if_res1011;} else {var if_res1012 = fold_var_0;}return if_res1012;};var if_res1013 = LetValues13_dot_1(reverse$1(for_loop_7(M0.rnull,init_7,init_8)),M0.list(t_1(b_11,bindings_times__0)));} else {var if_res1013 = alt_10();}return if_res1013;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("let-values"),hd_0)!==false) {var a_126 = M0.cdr(v_50);var p_68 = a_126;if (M0.pair_p(p_68)!==false) {var a_127 = M0.car(p_68);if (M0.list_p(a_127)!==false) {var lst_12 = a_127;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1014 = M0.rvoid();} else {var if_res1014 = check_list(lst_12);}if_res1014;var for_loop_8 = function(result_7, lst_13) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_13)!==false) {var v_54 = M0.unsafe_car(lst_13);var rest_3 = M0.unsafe_cdr(lst_13);var p_69 = v_54;if (M0.pair_p(p_69)!==false) {var a_128 = M0.cdr(p_69);var p_70 = a_128;if (M0.pair_p(p_70)!==false) {var a_129 = M0.cdr(p_70);var if_res1015 = M0.eq_p($rjs_core.Pair.makeList(),a_129);} else {var if_res1015 = false;}var if_res1016 = if_res1015;} else {var if_res1016 = false;}var result_9 = if_res1016;var result_8 = M0.values(result_9);if (M0.not($rjs_core.attachProcedureArity(function(...x_311017) {var x_31 = $rjs_core.Pair.listFromArray(x_311017);return M0.not(result_8);})(v_54))!==false) {var if_res1018 = M0.not(false);} else {var if_res1018 = false;}if (if_res1018!==false) {var if_res1019 = for_loop_8(result_8,rest_3);} else {var if_res1019 = result_8;}var if_res1020 = if_res1019;} else {var if_res1020 = result_7;}return if_res1020;};var if_res1021 = for_loop_8(true,lst_12);} else {var if_res1021 = false;}if (if_res1021!==false) {var a_130 = M0.cdr(p_68);var p_71 = a_130;if (M0.pair_p(p_71)!==false) {var a_131 = M0.cdr(p_71);var if_res1022 = M0.eq_p($rjs_core.Pair.makeList(),a_131);} else {var if_res1022 = false;}var if_res1023 = if_res1022;} else {var if_res1023 = false;}var if_res1024 = if_res1023;} else {var if_res1024 = false;}var if_res1025 = if_res1024;} else {var if_res1025 = false;}if (if_res1025!==false) {var d_31 = M0.cdr(v_50);var p_72 = d_31;var a_132 = M0.car(p_72);var lst_14 = a_132;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1026 = M0.rvoid();} else {var if_res1026 = check_list(lst_14);}if_res1026;var for_loop_9 = function(xs_15, es_11, lst_15) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_15)!==false) {var v_55 = M0.unsafe_car(lst_15);var rest_4 = M0.unsafe_cdr(lst_15);var xs_17 = xs_15;var es_13 = es_11;var p_73 = v_55;var a_133 = M0.car(p_73);var xs_19 = a_133;var d_32 = M0.cdr(p_73);var a_134 = M0.car(d_32);var es_15 = a_134;var let_result1027 = M0.values(xs_19,es_15);var xs10_0 = let_result1027.getAt(0);var es11_0 = let_result1027.getAt(1);var let_result1028 = M0.values(M0.cons(xs10_0,xs_17),M0.cons(es11_0,es_13));var xs_18 = let_result1028.getAt(0);var es_14 = let_result1028.getAt(1);var let_result1029 = M0.values(xs_18,es_14);var xs_16 = let_result1029.getAt(0);var es_12 = let_result1029.getAt(1);if (M0.not(false)!==false) {var if_res1030 = for_loop_9(xs_16,es_12,rest_4);} else {var if_res1030 = M0.values(xs_16,es_12);}var if_res1031 = if_res1030;} else {var if_res1031 = M0.values(xs_15,es_11);}return if_res1031;};var let_result1032 = for_loop_9(M0.rnull,M0.rnull,lst_14);var xs_14 = let_result1032.getAt(0);var es_10 = let_result1032.getAt(1);var let_result1033 = M0.values(reverse$1(xs_14),reverse$1(es_10));var xs_13 = let_result1033.getAt(0);var es_9 = let_result1033.getAt(1);var d_33 = M0.cdr(p_72);var a_135 = M0.car(d_33);var b_14 = a_135;var let_result1034 = M0.values(xs_13,es_9,b_14);var xs_4 = let_result1034.getAt(0);var es_8 = let_result1034.getAt(1);var b_13 = let_result1034.getAt(2);var let_result1035 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_4);var pos__gt_vals_8 = let_result1035.getAt(0);var pos_pre_inc_6 = let_result1035.getAt(1);var pos_next_9 = let_result1035.getAt(2);var init_9 = let_result1035.getAt(3);var pos_cont_p_9 = let_result1035.getAt(4);var val_cont_p_8 = let_result1035.getAt(5);var all_cont_p_8 = let_result1035.getAt(6);M0.rvoid();var for_loop_10 = function(table_12, pos_26) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_9!==false) {var if_res1036 = pos_cont_p_9(pos_26);} else {var if_res1036 = true;}if (if_res1036!==false) {var x_33 = pos__gt_vals_8(pos_26);if (all_cont_p_8!==false) {var if_res1037 = function(pos_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_8(pos_27,x_33);};} else {var if_res1037 = false;}var let_result1038 = M0.values(x_33,if_res1037);var x_32 = let_result1038.getAt(0);var all_cont_p_by_pos_6 = let_result1038.getAt(1);if (pos_pre_inc_6!==false) {var if_res1039 = pos_pre_inc_6(pos_26);} else {var if_res1039 = pos_26;}var pos_28 = if_res1039;if (val_cont_p_8!==false) {var if_res1040 = val_cont_p_8(x_32);} else {var if_res1040 = true;}if (if_res1040!==false) {var table_14 = table_12;var let_result1041 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),x_32);var pos__gt_vals_9 = let_result1041.getAt(0);var pos_pre_inc_7 = let_result1041.getAt(1);var pos_next_10 = let_result1041.getAt(2);var init_10 = let_result1041.getAt(3);var pos_cont_p_10 = let_result1041.getAt(4);var val_cont_p_9 = let_result1041.getAt(5);var all_cont_p_9 = let_result1041.getAt(6);M0.rvoid();var for_loop_11 = function(table_15, pos_29) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_10!==false) {var if_res1042 = pos_cont_p_10(pos_29);} else {var if_res1042 = true;}if (if_res1042!==false) {var i_47 = pos__gt_vals_9(pos_29);if (all_cont_p_9!==false) {var if_res1043 = function(pos_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_9(pos_30,i_47);};} else {var if_res1043 = false;}var let_result1044 = M0.values(i_47,if_res1043);var i_46 = let_result1044.getAt(0);var all_cont_p_by_pos_7 = let_result1044.getAt(1);if (pos_pre_inc_7!==false) {var if_res1045 = pos_pre_inc_7(pos_29);} else {var if_res1045 = pos_29;}var pos_31 = if_res1045;if (val_cont_p_9!==false) {var if_res1046 = val_cont_p_9(i_46);} else {var if_res1046 = true;}if (if_res1046!==false) {var table_17 = table_15;var table_18 = table_17;var let_result1047 = M0.values(i_46,$rjs_core.PrimitiveSymbol.make("lexical"));var key_1 = let_result1047.getAt(0);var val_2 = let_result1047.getAt(1);var table_19 = M0.hash_set(table_18,key_1,val_2);var table_16 = M0.values(table_19);if (all_cont_p_by_pos_7!==false) {var if_res1048 = all_cont_p_by_pos_7(pos_31);} else {var if_res1048 = true;}if (if_res1048!==false) {var if_res1049 = M0.not(false);} else {var if_res1049 = false;}if (if_res1049!==false) {var if_res1050 = for_loop_11(table_16,pos_next_10(pos_31));} else {var if_res1050 = table_16;}var if_res1051 = if_res1050;} else {var if_res1051 = table_15;}var if_res1052 = if_res1051;} else {var if_res1052 = table_15;}return if_res1052;};var table_13 = for_loop_11(table_14,init_10);if (all_cont_p_by_pos_6!==false) {var if_res1053 = all_cont_p_by_pos_6(pos_28);} else {var if_res1053 = true;}if (if_res1053!==false) {var if_res1054 = M0.not(false);} else {var if_res1054 = false;}if (if_res1054!==false) {var if_res1055 = for_loop_10(table_13,pos_next_9(pos_28));} else {var if_res1055 = table_13;}var if_res1056 = if_res1055;} else {var if_res1056 = table_12;}var if_res1057 = if_res1056;} else {var if_res1057 = table_12;}return if_res1057;};var bindings_times__1 = hash_union(bindings_0,for_loop_10($rjs_core.Hash.makeEqual([],false),init_9));var let_result1058 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_4);var pos__gt_vals_10 = let_result1058.getAt(0);var pos_pre_inc_8 = let_result1058.getAt(1);var pos_next_11 = let_result1058.getAt(2);var init_11 = let_result1058.getAt(3);var pos_cont_p_11 = let_result1058.getAt(4);var val_cont_p_10 = let_result1058.getAt(5);var all_cont_p_10 = let_result1058.getAt(6);var let_result1059 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),es_8);var pos__gt_vals_11 = let_result1059.getAt(0);var pos_pre_inc_9 = let_result1059.getAt(1);var pos_next_12 = let_result1059.getAt(2);var init_12 = let_result1059.getAt(3);var pos_cont_p_12 = let_result1059.getAt(4);var val_cont_p_11 = let_result1059.getAt(5);var all_cont_p_11 = let_result1059.getAt(6);M0.rvoid();M0.rvoid();var for_loop_12 = function(fold_var_4, pos_32, pos_33) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_11!==false) {var if_res1060 = pos_cont_p_11(pos_32);} else {var if_res1060 = true;}if (if_res1060!==false) {if (pos_cont_p_12!==false) {var if_res1061 = pos_cont_p_12(pos_33);} else {var if_res1061 = true;}var if_res1062 = if_res1061;} else {var if_res1062 = false;}if (if_res1062!==false) {var x_35 = pos__gt_vals_10(pos_32);if (all_cont_p_10!==false) {var if_res1063 = function(pos_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_10(pos_34,x_35);};} else {var if_res1063 = false;}var let_result1064 = M0.values(x_35,if_res1063);var x_34 = let_result1064.getAt(0);var all_cont_p_by_pos_8 = let_result1064.getAt(1);if (pos_pre_inc_8!==false) {var if_res1065 = pos_pre_inc_8(pos_32);} else {var if_res1065 = pos_32;}var pos_35 = if_res1065;var e_10 = pos__gt_vals_11(pos_33);if (all_cont_p_11!==false) {var if_res1066 = function(pos_36) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_11(pos_36,e_10);};} else {var if_res1066 = false;}var let_result1067 = M0.values(e_10,if_res1066);var e_9 = let_result1067.getAt(0);var all_cont_p_by_pos_9 = let_result1067.getAt(1);if (pos_pre_inc_9!==false) {var if_res1068 = pos_pre_inc_9(pos_33);} else {var if_res1068 = pos_33;}var pos_37 = if_res1068;if (val_cont_p_10!==false) {var if_res1069 = val_cont_p_10(x_34);} else {var if_res1069 = true;}if (if_res1069!==false) {if (val_cont_p_11!==false) {var if_res1070 = val_cont_p_11(e_9);} else {var if_res1070 = true;}var if_res1071 = if_res1070;} else {var if_res1071 = false;}if (if_res1071!==false) {var fold_var_6 = fold_var_4;var fold_var_7 = M0.cons(M0.cons(x_34,t_1(e_9)),fold_var_6);var fold_var_5 = M0.values(fold_var_7);if (all_cont_p_by_pos_8!==false) {var if_res1072 = all_cont_p_by_pos_8(pos_35);} else {var if_res1072 = true;}if (if_res1072!==false) {if (all_cont_p_by_pos_9!==false) {var if_res1073 = all_cont_p_by_pos_9(pos_37);} else {var if_res1073 = true;}if (if_res1073!==false) {var if_res1074 = M0.not(false);} else {var if_res1074 = false;}var if_res1075 = if_res1074;} else {var if_res1075 = false;}if (if_res1075!==false) {var if_res1076 = for_loop_12(fold_var_5,pos_next_11(pos_35),pos_next_12(pos_37));} else {var if_res1076 = fold_var_5;}var if_res1077 = if_res1076;} else {var if_res1077 = fold_var_4;}var if_res1078 = if_res1077;} else {var if_res1078 = fold_var_4;}return if_res1078;};var if_res1079 = LetValues13_dot_1(reverse$1(for_loop_12(M0.rnull,init_11,init_12)),M0.list(t_1(b_13,bindings_times__1)));} else {var if_res1079 = alt_9();}return if_res1079;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("if"),hd_0)!==false) {var a_136 = M0.cdr(v_50);var p_74 = a_136;if (M0.pair_p(p_74)!==false) {var a_137 = M0.cdr(p_74);var p_75 = a_137;if (M0.pair_p(p_75)!==false) {var a_138 = M0.cdr(p_75);var p_76 = a_138;if (M0.pair_p(p_76)!==false) {var a_139 = M0.cdr(p_76);var if_res1080 = M0.eq_p($rjs_core.Pair.makeList(),a_139);} else {var if_res1080 = false;}var if_res1081 = if_res1080;} else {var if_res1081 = false;}var if_res1082 = if_res1081;} else {var if_res1082 = false;}var if_res1083 = if_res1082;} else {var if_res1083 = false;}if (if_res1083!==false) {var d_34 = M0.cdr(v_50);var p_77 = d_34;var a_140 = M0.car(p_77);var e0_1 = a_140;var d_35 = M0.cdr(p_77);var p_78 = d_35;var a_141 = M0.car(p_78);var e1_2 = a_141;var d_36 = M0.cdr(p_78);var a_142 = M0.car(d_36);var e2_2 = a_142;var let_result1084 = M0.values(e1_2,e2_2);var e1_1 = let_result1084.getAt(0);var e2_1 = let_result1084.getAt(1);var let_result1085 = M0.values(e0_1,e1_1,e2_1);var e0_0 = let_result1085.getAt(0);var e1_0 = let_result1085.getAt(1);var e2_0 = let_result1085.getAt(2);var if_res1086 = If12_dot_1(t_1(e0_0),t_1(e1_0),t_1(e2_0));} else {var if_res1086 = alt_8();}return if_res1086;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("begin"),hd_0)!==false) {var a_143 = M0.cdr(v_50);var if_res1087 = M0.list_p(a_143);} else {var if_res1087 = false;}if (if_res1087!==false) {var d_37 = M0.cdr(v_50);var e_11 = d_37;var if_res1088 = map2(t_1,e_11);} else {var if_res1088 = alt_7();}return if_res1088;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("begin0"),hd_0)!==false) {var a_144 = M0.cdr(v_50);var p_79 = a_144;if (M0.pair_p(p_79)!==false) {var a_145 = M0.cdr(p_79);var if_res1089 = M0.list_p(a_145);} else {var if_res1089 = false;}var if_res1090 = if_res1089;} else {var if_res1090 = false;}if (if_res1090!==false) {var d_38 = M0.cdr(v_50);var p_80 = d_38;var a_146 = M0.car(p_80);var e0_3 = a_146;var d_39 = M0.cdr(p_80);var e1_4 = d_39;var let_result1091 = M0.values(e0_3,e1_4);var e0_2 = let_result1091.getAt(0);var e1_3 = let_result1091.getAt(1);var if_res1092 = Begin08_dot_1(t_1(e0_2),map2(t_1,e1_3));} else {var if_res1092 = alt_6();}return if_res1092;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),hd_0)!==false) {var a_147 = M0.cdr(v_50);var p_81 = a_147;if (M0.pair_p(p_81)!==false) {var a_148 = M0.cdr(p_81);var if_res1093 = M0.eq_p($rjs_core.Pair.makeList(),a_148);} else {var if_res1093 = false;}var if_res1094 = if_res1093;} else {var if_res1094 = false;}if (if_res1094!==false) {var d_40 = M0.cdr(v_50);var a_149 = M0.car(d_40);var v_56 = a_149;var if_res1095 = Quote7_dot_1(v_56);} else {var if_res1095 = alt_5();}return if_res1095;};var or_part_67 = M0.string_p(v_46);if (or_part_67!==false) {var if_res1098 = or_part_67;} else {var or_part_68 = M0.number_p(v_46);if (or_part_68!==false) {var if_res1097 = or_part_68;} else {var or_part_69 = M0.boolean_p(v_46);if (or_part_69!==false) {var if_res1096 = or_part_69;} else {var if_res1096 = M0.bytes_p(v_46);}var if_res1097 = if_res1096;}var if_res1098 = if_res1097;}if (if_res1098!==false) {var if_res1099 = Quote7_dot_1(v_46);} else {var if_res1099 = alt_4();}return if_res1099;};var parse_linklet = function(v_57, path_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_58 = v_57;var p_82 = v_58;if (M0.pair_p(p_82)!==false) {var if_res1100 = M0.car(p_82);} else {var if_res1100 = false;}var hd_1 = if_res1100;var alt_23 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_58);};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("linklet"),hd_1)!==false) {var a_150 = M0.cdr(v_58);var p_83 = a_150;if (M0.pair_p(p_83)!==false) {var a_151 = M0.cdr(p_83);var p_84 = a_151;if (M0.pair_p(p_84)!==false) {var if_res1101 = true;} else {var if_res1101 = false;}var if_res1102 = if_res1101;} else {var if_res1102 = false;}var if_res1103 = if_res1102;} else {var if_res1103 = false;}if (if_res1103!==false) {var d_41 = M0.cdr(v_58);var p_85 = d_41;var a_152 = M0.car(p_85);var imports_1 = a_152;var d_42 = M0.cdr(p_85);var p_86 = d_42;var a_153 = M0.car(p_86);var exports_2 = a_153;var d_43 = M0.cdr(p_86);var body_6 = d_43;var let_result1104 = M0.values(exports_2,body_6);var exports_1 = let_result1104.getAt(0);var body_5 = let_result1104.getAt(1);var let_result1105 = M0.values(imports_1,exports_1,body_5);var imports_0 = let_result1105.getAt(0);var exports_0 = let_result1105.getAt(1);var body_4 = let_result1105.getAt(2);var let_result1106 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("j")),imports_0);var pos__gt_vals_12 = let_result1106.getAt(0);var pos_pre_inc_10 = let_result1106.getAt(1);var pos_next_13 = let_result1106.getAt(2);var init_13 = let_result1106.getAt(3);var pos_cont_p_13 = let_result1106.getAt(4);var val_cont_p_12 = let_result1106.getAt(5);var all_cont_p_12 = let_result1106.getAt(6);var start_9 = 0;if (M0.rvoid()!==false) {if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1107 = M0.rvoid();} else {var if_res1107 = check_naturals(start_9);}var if_res1108 = if_res1107;} else {var if_res1108 = false;}if_res1108;var for_loop_13 = function(table_20, pos_38, pos_39) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_13!==false) {var if_res1109 = pos_cont_p_13(pos_38);} else {var if_res1109 = true;}if (if_res1109!==false) {var if_res1110 = true;} else {var if_res1110 = false;}if (if_res1110!==false) {var j_4 = pos__gt_vals_12(pos_38);if (all_cont_p_12!==false) {var if_res1111 = function(pos_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_12(pos_40,j_4);};} else {var if_res1111 = false;}var let_result1112 = M0.values(j_4,if_res1111);var j_3 = let_result1112.getAt(0);var all_cont_p_by_pos_10 = let_result1112.getAt(1);if (pos_pre_inc_10!==false) {var if_res1113 = pos_pre_inc_10(pos_38);} else {var if_res1113 = pos_38;}var pos_41 = if_res1113;var import_0 = pos_39;if (val_cont_p_12!==false) {var if_res1114 = val_cont_p_12(j_3);} else {var if_res1114 = true;}if (if_res1114!==false) {var if_res1115 = true;} else {var if_res1115 = false;}if (if_res1115!==false) {var table_22 = table_20;var let_result1116 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),import_0);var pos__gt_vals_13 = let_result1116.getAt(0);var pos_pre_inc_11 = let_result1116.getAt(1);var pos_next_14 = let_result1116.getAt(2);var init_14 = let_result1116.getAt(3);var pos_cont_p_14 = let_result1116.getAt(4);var val_cont_p_13 = let_result1116.getAt(5);var all_cont_p_13 = let_result1116.getAt(6);M0.rvoid();var for_loop_14 = function(table_23, pos_42) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_14!==false) {var if_res1117 = pos_cont_p_14(pos_42);} else {var if_res1117 = true;}if (if_res1117!==false) {var i_49 = pos__gt_vals_13(pos_42);if (all_cont_p_13!==false) {var if_res1118 = function(pos_43) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_13(pos_43,i_49);};} else {var if_res1118 = false;}var let_result1119 = M0.values(i_49,if_res1118);var i_48 = let_result1119.getAt(0);var all_cont_p_by_pos_11 = let_result1119.getAt(1);if (pos_pre_inc_11!==false) {var if_res1120 = pos_pre_inc_11(pos_42);} else {var if_res1120 = pos_42;}var pos_44 = if_res1120;if (val_cont_p_13!==false) {var if_res1121 = val_cont_p_13(i_48);} else {var if_res1121 = true;}if (if_res1121!==false) {var table_25 = table_23;var table_26 = table_25;var let_result1122 = M0.values(i_48,j_3);var key_7 = let_result1122.getAt(0);var val_3 = let_result1122.getAt(1);var table_27 = M0.hash_set(table_26,key_7,val_3);var table_24 = M0.values(table_27);if (all_cont_p_by_pos_11!==false) {var if_res1123 = all_cont_p_by_pos_11(pos_44);} else {var if_res1123 = true;}if (if_res1123!==false) {var if_res1124 = M0.not(false);} else {var if_res1124 = false;}if (if_res1124!==false) {var if_res1125 = for_loop_14(table_24,pos_next_14(pos_44));} else {var if_res1125 = table_24;}var if_res1126 = if_res1125;} else {var if_res1126 = table_23;}var if_res1127 = if_res1126;} else {var if_res1127 = table_23;}return if_res1127;};var table_21 = for_loop_14(table_22,init_14);if (all_cont_p_by_pos_10!==false) {var if_res1128 = all_cont_p_by_pos_10(pos_41);} else {var if_res1128 = true;}if (if_res1128!==false) {var if_res1129 = true;} else {var if_res1129 = false;}if (if_res1129!==false) {var if_res1130 = M0.not(false);} else {var if_res1130 = false;}if (if_res1130!==false) {var if_res1131 = for_loop_13(table_21,pos_next_13(pos_41),pos_39+1);} else {var if_res1131 = table_21;}var if_res1132 = if_res1131;} else {var if_res1132 = table_20;}var if_res1133 = if_res1132;} else {var if_res1133 = table_20;}return if_res1133;};var imps_0 = for_loop_13($rjs_core.Hash.makeEqual([],false),init_13,start_9);var defs_0 = M0.make_hash();var let_result1134 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("b")),body_4);var pos__gt_vals_14 = let_result1134.getAt(0);var pos_pre_inc_12 = let_result1134.getAt(1);var pos_next_15 = let_result1134.getAt(2);var init_15 = let_result1134.getAt(3);var pos_cont_p_15 = let_result1134.getAt(4);var val_cont_p_14 = let_result1134.getAt(5);var all_cont_p_14 = let_result1134.getAt(6);M0.rvoid();var for_loop_15 = function(pos_45) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_15!==false) {var if_res1135 = pos_cont_p_15(pos_45);} else {var if_res1135 = true;}if (if_res1135!==false) {var b_16 = pos__gt_vals_14(pos_45);if (all_cont_p_14!==false) {var if_res1136 = function(pos_46) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_14(pos_46,b_16);};} else {var if_res1136 = false;}var let_result1137 = M0.values(b_16,if_res1136);var b_15 = let_result1137.getAt(0);var all_cont_p_by_pos_12 = let_result1137.getAt(1);if (pos_pre_inc_12!==false) {var if_res1138 = pos_pre_inc_12(pos_45);} else {var if_res1138 = pos_45;}var pos_47 = if_res1138;if (val_cont_p_14!==false) {var if_res1139 = val_cont_p_14(b_15);} else {var if_res1139 = true;}if (if_res1139!==false) {var v_59 = b_15;var p_87 = v_59;if (M0.pair_p(p_87)!==false) {var if_res1140 = M0.car(p_87);} else {var if_res1140 = false;}var hd_2 = if_res1140;var alt_24 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.rvoid();};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_2)!==false) {var a_154 = M0.cdr(v_59);var p_88 = a_154;if (M0.pair_p(p_88)!==false) {var a_155 = M0.cdr(p_88);var p_89 = a_155;if (M0.pair_p(p_89)!==false) {var a_156 = M0.cdr(p_89);var if_res1141 = M0.eq_p($rjs_core.Pair.makeList(),a_156);} else {var if_res1141 = false;}var if_res1142 = if_res1141;} else {var if_res1142 = false;}var if_res1143 = if_res1142;} else {var if_res1143 = false;}if (if_res1143!==false) {var d_44 = M0.cdr(v_59);var a_157 = M0.car(d_44);var is_0 = a_157;var let_result1144 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),is_0);var pos__gt_vals_15 = let_result1144.getAt(0);var pos_pre_inc_13 = let_result1144.getAt(1);var pos_next_16 = let_result1144.getAt(2);var init_16 = let_result1144.getAt(3);var pos_cont_p_16 = let_result1144.getAt(4);var val_cont_p_15 = let_result1144.getAt(5);var all_cont_p_15 = let_result1144.getAt(6);M0.rvoid();var for_loop_16 = function(pos_48) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_16!==false) {var if_res1145 = pos_cont_p_16(pos_48);} else {var if_res1145 = true;}if (if_res1145!==false) {var i_51 = pos__gt_vals_15(pos_48);if (all_cont_p_15!==false) {var if_res1146 = function(pos_49) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_15(pos_49,i_51);};} else {var if_res1146 = false;}var let_result1147 = M0.values(i_51,if_res1146);var i_50 = let_result1147.getAt(0);var all_cont_p_by_pos_13 = let_result1147.getAt(1);if (pos_pre_inc_13!==false) {var if_res1148 = pos_pre_inc_13(pos_48);} else {var if_res1148 = pos_48;}var pos_50 = if_res1148;if (val_cont_p_15!==false) {var if_res1149 = val_cont_p_15(i_50);} else {var if_res1149 = true;}if (if_res1149!==false) {M0.hash_set_bang_(defs_0,i_50,$rjs_core.PrimitiveSymbol.make("define"));var let_result1150 = M0.values();var let_result1151 = M0.values();if (all_cont_p_by_pos_13!==false) {var if_res1152 = all_cont_p_by_pos_13(pos_50);} else {var if_res1152 = true;}if (if_res1152!==false) {var if_res1153 = M0.not(false);} else {var if_res1153 = false;}if (if_res1153!==false) {var if_res1154 = for_loop_16(pos_next_16(pos_50));} else {var if_res1154 = M0.values();}var if_res1155 = if_res1154;} else {var if_res1155 = M0.values();}var if_res1156 = if_res1155;} else {var if_res1156 = M0.values();}return if_res1156;};for_loop_16(init_16);var if_res1157 = M0.rvoid();} else {var if_res1157 = alt_24();}if_res1157;var let_result1158 = M0.values();var let_result1159 = M0.values();if (all_cont_p_by_pos_12!==false) {var if_res1160 = all_cont_p_by_pos_12(pos_47);} else {var if_res1160 = true;}if (if_res1160!==false) {var if_res1161 = M0.not(false);} else {var if_res1161 = false;}if (if_res1161!==false) {var if_res1162 = for_loop_15(pos_next_15(pos_47));} else {var if_res1162 = M0.values();}var if_res1163 = if_res1162;} else {var if_res1163 = M0.values();}var if_res1164 = if_res1163;} else {var if_res1164 = M0.values();}return if_res1164;};for_loop_15(init_15);M0.rvoid();var if_res1165 = Linklet1_dot_1(path_0,imports_0,exports_0,map2(function(v_60) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return to_absyn(v_60,hash_union(imps_0,defs_0));},body_4));} else {var if_res1165 = alt_23();}return if_res1165;};var improper__gt_proper = function(l_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_61 = l_22;var alt_13 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_14 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.cons(l_22,$rjs_core.Pair.makeList());};if (M0.eq_p($rjs_core.Pair.makeList(),v_61)!==false) {var if_res1166 = $rjs_core.Pair.makeList();} else {var if_res1166 = alt_14();}return if_res1166;};var p_90 = v_61;if (M0.pair_p(p_90)!==false) {var if_res1167 = true;} else {var if_res1167 = false;}if (if_res1167!==false) {var p_91 = v_61;var a_160 = M0.car(p_91);var a_159 = a_160;var d_45 = M0.cdr(p_91);var b_18 = d_45;var let_result1168 = M0.values(a_159,b_18);var a_158 = let_result1168.getAt(0);var b_17 = let_result1168.getAt(1);var if_res1169 = M0.cons(a_158,improper__gt_proper(b_17));} else {var if_res1169 = alt_13();}return if_res1169;};var __times_jsident_start_letter_times_ = $rjs_core.UString.make("\\p{L}|\\p{Nl}|\\$|_");var __times_jsident_rest_letters_times_ = M0.string_append($rjs_core.UString.make("\\p{L}|\\p{Nl}|\\$|_|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}"),$rjs_core.UString.make("|\u200D|\u200C"));var __times_jsident_pattern_times_ = M0.format($rjs_core.UString.make("(~a)(~a)*"),__times_jsident_start_letter_times_,__times_jsident_rest_letters_times_);var simple_form_path = compose(M0.simplify_path,M0.path__gt_complete_path);var __a = $rjs_core.attachProcedureArity(function(...args_121170) {var args_12 = $rjs_core.Pair.listFromArray(args_121170);var fmt_lst_0 = build_list(M0.length(args_12),function(__4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return $rjs_core.UString.make("~a");});var fmt_string_0 = M0.apply(M0.string_append,fmt_lst_0);return M0.apply(M0.format,fmt_string_0,args_12);});var length_eq__p = function(lst_16, n_18) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.equal_p(M0.length(lst_16),n_18);};var append1 = function(lst_17, a_68) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.append(lst_17,M0.list(a_68));};var actual_module_path = function(in_path_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.path_p(in_path_0)!==false) {var if_res1173 = in_path_0;} else {if (M0.symbol_p(in_path_0)!==false) {var if_res1171 = primitive_module_p(in_path_0);} else {var if_res1171 = false;}if (if_res1171!==false) {var if_res1172 = M0.build_path(racketscript_runtime_dir,__a(M0.substring(M0.symbol__gt_string(in_path_0),2),$rjs_core.UString.make(".rkt")));} else {var if_res1172 = M0.error($rjs_core.PrimitiveSymbol.make("actual-module-path"),$rjs_core.UString.make("~a is not a primitive module"),in_path_0);}var if_res1173 = if_res1172;}return if_res1173;};var primitive_module_p = function(mod_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_member_p(primitive_modules,mod_4);};var get_major_version = function(str_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var vec_8 = str_3;check_string(vec_8);var let_result1174 = M0.values(vec_8,M0.unsafe_string_length(vec_8));var vec_7 = let_result1174.getAt(0);var len_1 = let_result1174.getAt(1);false;var for_loop_17 = function(res_4, pos_51) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.unsafe_fx_lt_(pos_51,len_1)!==false) {var chr_0 = M0.string_ref(vec_7,pos_51);var next_k_proc_0 = function(res_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("next-k-proc");return for_loop_17(res_5,M0.unsafe_fx_plus_(1,pos_51));};var res_6 = res_4;if (M0.eq_p(chr_0,$rjs_core.Char.charFromCodepoint(46))!==false) {var if_res1175 = res_6;} else {var res_7 = res_6;var res_8 = char__gt_number(chr_0)+(10*res_7);var if_res1175 = next_k_proc_0(res_8);}var if_res1176 = if_res1175;} else {var if_res1176 = res_4;}return if_res1176;};return for_loop_17(0,0);};var char__gt_number = function(chr_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(48))!==false) {var if_res1186 = 0;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(49))!==false) {var if_res1185 = 1;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(50))!==false) {var if_res1184 = 2;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(51))!==false) {var if_res1183 = 3;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(52))!==false) {var if_res1182 = 4;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(53))!==false) {var if_res1181 = 5;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(54))!==false) {var if_res1180 = 6;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(55))!==false) {var if_res1179 = 7;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(56))!==false) {var if_res1178 = 8;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(57))!==false) {var if_res1177 = 9;} else {var if_res1177 = M0.rvoid();}var if_res1178 = if_res1177;}var if_res1179 = if_res1178;}var if_res1180 = if_res1179;}var if_res1181 = if_res1180;}var if_res1182 = if_res1181;}var if_res1183 = if_res1182;}var if_res1184 = if_res1183;}var if_res1185 = if_res1184;}var if_res1186 = if_res1185;}return if_res1186;};var sequence_length = function(s_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (sequence_p(s_14)!==false) {var if_res1187 = M0.rvoid();} else {var if_res1187 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sequence-length"),$rjs_core.UString.make("sequence?"),s_14);}if_res1187;if (M0.exact_nonnegative_integer_p(s_14)!==false) {var if_res1206 = s_14;} else {if (M0.list_p(s_14)!==false) {var if_res1205 = M0.length(s_14);} else {if (M0.vector_p(s_14)!==false) {var if_res1204 = M0.vector_length(s_14);} else {if (M0.flvector_p(s_14)!==false) {var if_res1203 = M0.flvector_length(s_14);} else {if (M0.fxvector_p(s_14)!==false) {var if_res1202 = M0.fxvector_length(s_14);} else {if (M0.string_p(s_14)!==false) {var if_res1201 = M0.string_length(s_14);} else {if (M0.bytes_p(s_14)!==false) {var if_res1200 = M0.bytes_length(s_14);} else {if (M0.hash_p(s_14)!==false) {var if_res1199 = M0.hash_count(s_14);} else {var let_result1188 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),in_values_times__sequence(s_14));var pos__gt_vals_16 = let_result1188.getAt(0);var pos_pre_inc_14 = let_result1188.getAt(1);var pos_next_17 = let_result1188.getAt(2);var init_17 = let_result1188.getAt(3);var pos_cont_p_17 = let_result1188.getAt(4);var val_cont_p_16 = let_result1188.getAt(5);var all_cont_p_16 = let_result1188.getAt(6);M0.rvoid();var for_loop_18 = function(c_8, pos_52) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_17!==false) {var if_res1189 = pos_cont_p_17(pos_52);} else {var if_res1189 = true;}if (if_res1189!==false) {var i_53 = pos__gt_vals_16(pos_52);if (all_cont_p_16!==false) {var if_res1190 = function(pos_53) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_16(pos_53,i_53);};} else {var if_res1190 = false;}var let_result1191 = M0.values(i_53,if_res1190);var i_52 = let_result1191.getAt(0);var all_cont_p_by_pos_14 = let_result1191.getAt(1);if (pos_pre_inc_14!==false) {var if_res1192 = pos_pre_inc_14(pos_52);} else {var if_res1192 = pos_52;}var pos_54 = if_res1192;if (val_cont_p_16!==false) {var if_res1193 = val_cont_p_16(i_52);} else {var if_res1193 = true;}if (if_res1193!==false) {var c_10 = c_8;var c_11 = M0.add1(c_10);var c_9 = M0.values(c_11);if (all_cont_p_by_pos_14!==false) {var if_res1194 = all_cont_p_by_pos_14(pos_54);} else {var if_res1194 = true;}if (if_res1194!==false) {var if_res1195 = M0.not(false);} else {var if_res1195 = false;}if (if_res1195!==false) {var if_res1196 = for_loop_18(c_9,pos_next_17(pos_54));} else {var if_res1196 = c_9;}var if_res1197 = if_res1196;} else {var if_res1197 = c_8;}var if_res1198 = if_res1197;} else {var if_res1198 = c_8;}return if_res1198;};var if_res1199 = for_loop_18(0,init_17);}var if_res1200 = if_res1199;}var if_res1201 = if_res1200;}var if_res1202 = if_res1201;}var if_res1203 = if_res1202;}var if_res1204 = if_res1203;}var if_res1205 = if_res1204;}var if_res1206 = if_res1205;}return if_res1206;};var __times_quoted_binding_ident_name_times_ = $rjs_core.PrimitiveSymbol.make("__rjs_quoted__");var name_in_module = function(mod_5, name_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_62 = mod_5;var alt_25 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.UString.make("Invalid module name"));};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("core"),v_62)!==false) {var if_res1207 = M0.string__gt_symbol(__a(jsruntime_core_module(),$rjs_core.UString.make("."),name_12));} else {var if_res1207 = alt_25();}return if_res1207;};var let_result1208 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILLinklet"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILLinklet"));var struct__0 = let_result1208.getAt(0);var make__0 = let_result1208.getAt(1);var __p_1 = let_result1208.getAt(2);var __ref_1 = let_result1208.getAt(3);var __set_bang__1 = let_result1208.getAt(4);var let_result1209 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("imports")),M0.make_struct_field_accessor(__ref_1,1,$rjs_core.PrimitiveSymbol.make("exports")),M0.make_struct_field_accessor(__ref_1,2,$rjs_core.PrimitiveSymbol.make("body")));var struct_ILLinklet = let_result1209.getAt(0);var ILLinklet1_dot_1 = let_result1209.getAt(1);var ILLinklet_p = let_result1209.getAt(2);var ILLinklet_imports = let_result1209.getAt(3);var ILLinklet_exports = let_result1209.getAt(4);var ILLinklet_body = let_result1209.getAt(5);var let_result1210 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILRequire"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILRequire"));var struct__1 = let_result1210.getAt(0);var make__1 = let_result1210.getAt(1);var __p_2 = let_result1210.getAt(2);var __ref_2 = let_result1210.getAt(3);var __set_bang__2 = let_result1210.getAt(4);var let_result1211 = M0.values(struct__1,make__1,__p_2,M0.make_struct_field_accessor(__ref_2,0,$rjs_core.PrimitiveSymbol.make("mod")),M0.make_struct_field_accessor(__ref_2,1,$rjs_core.PrimitiveSymbol.make("name")),M0.make_struct_field_accessor(__ref_2,2,$rjs_core.PrimitiveSymbol.make("import-mode")));var struct_ILRequire = let_result1211.getAt(0);var ILRequire2_dot_1 = let_result1211.getAt(1);var ILRequire_p = let_result1211.getAt(2);var ILRequire_mod = let_result1211.getAt(3);var ILRequire_name = let_result1211.getAt(4);var ILRequire_import_mode = let_result1211.getAt(5);var let_result1212 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILCheckedFormals"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILCheckedFormals"));var struct__3 = let_result1212.getAt(0);var make__3 = let_result1212.getAt(1);var __p_4 = let_result1212.getAt(2);var __ref_4 = let_result1212.getAt(3);var __set_bang__4 = let_result1212.getAt(4);var let_result1213 = M0.values(struct__3,make__3,__p_4,M0.make_struct_field_accessor(__ref_4,0,$rjs_core.PrimitiveSymbol.make("formals")));var struct_ILCheckedFormals = let_result1213.getAt(0);var ILCheckedFormals4_dot_1 = let_result1213.getAt(1);var ILCheckedFormals_p = let_result1213.getAt(2);var ILCheckedFormals_formals = let_result1213.getAt(3);var let_result1214 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILLambda"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILLambda"));var struct__4 = let_result1214.getAt(0);var make__4 = let_result1214.getAt(1);var __p_5 = let_result1214.getAt(2);var __ref_5 = let_result1214.getAt(3);var __set_bang__5 = let_result1214.getAt(4);var let_result1215 = M0.values(struct__4,make__4,__p_5,M0.make_struct_field_accessor(__ref_5,0,$rjs_core.PrimitiveSymbol.make("args")),M0.make_struct_field_accessor(__ref_5,1,$rjs_core.PrimitiveSymbol.make("body")));var struct_ILLambda = let_result1215.getAt(0);var ILLambda5_dot_1 = let_result1215.getAt(1);var ILLambda_p = let_result1215.getAt(2);var ILLambda_args = let_result1215.getAt(3);var ILLambda_body = let_result1215.getAt(4);var let_result1216 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILBinaryOp"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILBinaryOp"));var struct__5 = let_result1216.getAt(0);var make__5 = let_result1216.getAt(1);var __p_6 = let_result1216.getAt(2);var __ref_6 = let_result1216.getAt(3);var __set_bang__6 = let_result1216.getAt(4);var let_result1217 = M0.values(struct__5,make__5,__p_6,M0.make_struct_field_accessor(__ref_6,0,$rjs_core.PrimitiveSymbol.make("operator")),M0.make_struct_field_accessor(__ref_6,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_ILBinaryOp = let_result1217.getAt(0);var ILBinaryOp6_dot_1 = let_result1217.getAt(1);var ILBinaryOp_p = let_result1217.getAt(2);var ILBinaryOp_operator = let_result1217.getAt(3);var ILBinaryOp_args = let_result1217.getAt(4);var let_result1218 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILApp"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILApp"));var struct__6 = let_result1218.getAt(0);var make__6 = let_result1218.getAt(1);var __p_7 = let_result1218.getAt(2);var __ref_7 = let_result1218.getAt(3);var __set_bang__7 = let_result1218.getAt(4);var let_result1219 = M0.values(struct__6,make__6,__p_7,M0.make_struct_field_accessor(__ref_7,0,$rjs_core.PrimitiveSymbol.make("lam")),M0.make_struct_field_accessor(__ref_7,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_ILApp = let_result1219.getAt(0);var ILApp7_dot_1 = let_result1219.getAt(1);var ILApp_p = let_result1219.getAt(2);var ILApp_lam = let_result1219.getAt(3);var ILApp_args = let_result1219.getAt(4);var let_result1220 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILArray"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILArray"));var struct__7 = let_result1220.getAt(0);var make__7 = let_result1220.getAt(1);var __p_8 = let_result1220.getAt(2);var __ref_8 = let_result1220.getAt(3);var __set_bang__8 = let_result1220.getAt(4);var let_result1221 = M0.values(struct__7,make__7,__p_8,M0.make_struct_field_accessor(__ref_8,0,$rjs_core.PrimitiveSymbol.make("items")));var struct_ILArray = let_result1221.getAt(0);var ILArray8_dot_1 = let_result1221.getAt(1);var ILArray_p = let_result1221.getAt(2);var ILArray_items = let_result1221.getAt(3);var let_result1222 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILObject"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILObject"));var struct__8 = let_result1222.getAt(0);var make__8 = let_result1222.getAt(1);var __p_9 = let_result1222.getAt(2);var __ref_9 = let_result1222.getAt(3);var __set_bang__9 = let_result1222.getAt(4);var let_result1223 = M0.values(struct__8,make__8,__p_9,M0.make_struct_field_accessor(__ref_9,0,$rjs_core.PrimitiveSymbol.make("items")));var struct_ILObject = let_result1223.getAt(0);var ILObject9_dot_1 = let_result1223.getAt(1);var ILObject_p = let_result1223.getAt(2);var ILObject_items = let_result1223.getAt(3);var let_result1224 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILRef"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILRef"));var struct__9 = let_result1224.getAt(0);var make__9 = let_result1224.getAt(1);var __p_10 = let_result1224.getAt(2);var __ref_10 = let_result1224.getAt(3);var __set_bang__10 = let_result1224.getAt(4);var let_result1225 = M0.values(struct__9,make__9,__p_10,M0.make_struct_field_accessor(__ref_10,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_10,1,$rjs_core.PrimitiveSymbol.make("fieldname")));var struct_ILRef = let_result1225.getAt(0);var ILRef10_dot_1 = let_result1225.getAt(1);var ILRef_p = let_result1225.getAt(2);var ILRef_expr = let_result1225.getAt(3);var ILRef_fieldname = let_result1225.getAt(4);var let_result1226 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILIndex"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILIndex"));var struct__10 = let_result1226.getAt(0);var make__10 = let_result1226.getAt(1);var __p_11 = let_result1226.getAt(2);var __ref_11 = let_result1226.getAt(3);var __set_bang__11 = let_result1226.getAt(4);var let_result1227 = M0.values(struct__10,make__10,__p_11,M0.make_struct_field_accessor(__ref_11,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_11,1,$rjs_core.PrimitiveSymbol.make("fieldexpr")));var struct_ILIndex = let_result1227.getAt(0);var ILIndex11_dot_1 = let_result1227.getAt(1);var ILIndex_p = let_result1227.getAt(2);var ILIndex_expr = let_result1227.getAt(3);var ILIndex_fieldexpr = let_result1227.getAt(4);var let_result1228 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILValue"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILValue"));var struct__11 = let_result1228.getAt(0);var make__11 = let_result1228.getAt(1);var __p_12 = let_result1228.getAt(2);var __ref_12 = let_result1228.getAt(3);var __set_bang__12 = let_result1228.getAt(4);var let_result1229 = M0.values(struct__11,make__11,__p_12,M0.make_struct_field_accessor(__ref_12,0,$rjs_core.PrimitiveSymbol.make("v")));var struct_ILValue = let_result1229.getAt(0);var ILValue12_dot_1 = let_result1229.getAt(1);var ILValue_p = let_result1229.getAt(2);var ILValue_v = let_result1229.getAt(3);var let_result1230 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILNew"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILNew"));var struct__12 = let_result1230.getAt(0);var make__12 = let_result1230.getAt(1);var __p_13 = let_result1230.getAt(2);var __ref_13 = let_result1230.getAt(3);var __set_bang__13 = let_result1230.getAt(4);var let_result1231 = M0.values(struct__12,make__12,__p_13,M0.make_struct_field_accessor(__ref_13,0,$rjs_core.PrimitiveSymbol.make("v")));var struct_ILNew = let_result1231.getAt(0);var ILNew13_dot_1 = let_result1231.getAt(1);var ILNew_p = let_result1231.getAt(2);var ILNew_v = let_result1231.getAt(3);var let_result1232 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILInstanceOf"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILInstanceOf"));var struct__13 = let_result1232.getAt(0);var make__13 = let_result1232.getAt(1);var __p_14 = let_result1232.getAt(2);var __ref_14 = let_result1232.getAt(3);var __set_bang__14 = let_result1232.getAt(4);var let_result1233 = M0.values(struct__13,make__13,__p_14,M0.make_struct_field_accessor(__ref_14,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_14,1,$rjs_core.PrimitiveSymbol.make("type")));var struct_ILInstanceOf = let_result1233.getAt(0);var ILInstanceOf14_dot_1 = let_result1233.getAt(1);var ILInstanceOf_p = let_result1233.getAt(2);var ILInstanceOf_expr = let_result1233.getAt(3);var ILInstanceOf_type = let_result1233.getAt(4);var let_result1234 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILTypeOf"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILTypeOf"));var struct__14 = let_result1234.getAt(0);var make__14 = let_result1234.getAt(1);var __p_15 = let_result1234.getAt(2);var __ref_15 = let_result1234.getAt(3);var __set_bang__15 = let_result1234.getAt(4);var let_result1235 = M0.values(struct__14,make__14,__p_15,M0.make_struct_field_accessor(__ref_15,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILTypeOf = let_result1235.getAt(0);var ILTypeOf15_dot_1 = let_result1235.getAt(1);var ILTypeOf_p = let_result1235.getAt(2);var ILTypeOf_expr = let_result1235.getAt(3);var let_result1236 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILNull"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILNull"));var struct__15 = let_result1236.getAt(0);var make__15 = let_result1236.getAt(1);var __p_16 = let_result1236.getAt(2);var __ref_16 = let_result1236.getAt(3);var __set_bang__16 = let_result1236.getAt(4);var let_result1237 = M0.values(struct__15,make__15,__p_16);var struct_ILNull = let_result1237.getAt(0);var ILNull16_dot_1 = let_result1237.getAt(1);var ILNull_p = let_result1237.getAt(2);var let_result1238 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILUndefined"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILUndefined"));var struct__16 = let_result1238.getAt(0);var make__16 = let_result1238.getAt(1);var __p_17 = let_result1238.getAt(2);var __ref_17 = let_result1238.getAt(3);var __set_bang__17 = let_result1238.getAt(4);var let_result1239 = M0.values(struct__16,make__16,__p_17);var struct_ILUndefined = let_result1239.getAt(0);var ILUndefined17_dot_1 = let_result1239.getAt(1);var ILUndefined_p = let_result1239.getAt(2);var let_result1240 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILArguments"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILArguments"));var struct__17 = let_result1240.getAt(0);var make__17 = let_result1240.getAt(1);var __p_18 = let_result1240.getAt(2);var __ref_18 = let_result1240.getAt(3);var __set_bang__18 = let_result1240.getAt(4);var let_result1241 = M0.values(struct__17,make__17,__p_18);var struct_ILArguments = let_result1241.getAt(0);var ILArguments18_dot_1 = let_result1241.getAt(1);var ILArguments_p = let_result1241.getAt(2);var let_result1242 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILThis"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILThis"));var struct__18 = let_result1242.getAt(0);var make__18 = let_result1242.getAt(1);var __p_19 = let_result1242.getAt(2);var __ref_19 = let_result1242.getAt(3);var __set_bang__19 = let_result1242.getAt(4);var let_result1243 = M0.values(struct__18,make__18,__p_19);var struct_ILThis = let_result1243.getAt(0);var ILThis19_dot_1 = let_result1243.getAt(1);var ILThis_p = let_result1243.getAt(2);var let_result1244 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILVarDec"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILVarDec"));var struct__19 = let_result1244.getAt(0);var make__19 = let_result1244.getAt(1);var __p_20 = let_result1244.getAt(2);var __ref_20 = let_result1244.getAt(3);var __set_bang__20 = let_result1244.getAt(4);var let_result1245 = M0.values(struct__19,make__19,__p_20,M0.make_struct_field_accessor(__ref_20,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_20,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILVarDec = let_result1245.getAt(0);var ILVarDec20_dot_1 = let_result1245.getAt(1);var ILVarDec_p = let_result1245.getAt(2);var ILVarDec_id = let_result1245.getAt(3);var ILVarDec_expr = let_result1245.getAt(4);var let_result1246 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILIf"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILIf"));var struct__20 = let_result1246.getAt(0);var make__20 = let_result1246.getAt(1);var __p_21 = let_result1246.getAt(2);var __ref_21 = let_result1246.getAt(3);var __set_bang__21 = let_result1246.getAt(4);var let_result1247 = M0.values(struct__20,make__20,__p_21,M0.make_struct_field_accessor(__ref_21,0,$rjs_core.PrimitiveSymbol.make("pred")),M0.make_struct_field_accessor(__ref_21,1,$rjs_core.PrimitiveSymbol.make("t-branch")),M0.make_struct_field_accessor(__ref_21,2,$rjs_core.PrimitiveSymbol.make("f-branch")));var struct_ILIf = let_result1247.getAt(0);var ILIf22_dot_1 = let_result1247.getAt(1);var ILIf_p = let_result1247.getAt(2);var ILIf_pred = let_result1247.getAt(3);var ILIf_t_branch = let_result1247.getAt(4);var ILIf_f_branch = let_result1247.getAt(5);var let_result1248 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILAssign"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILAssign"));var struct__21 = let_result1248.getAt(0);var make__21 = let_result1248.getAt(1);var __p_22 = let_result1248.getAt(2);var __ref_22 = let_result1248.getAt(3);var __set_bang__22 = let_result1248.getAt(4);var let_result1249 = M0.values(struct__21,make__21,__p_22,M0.make_struct_field_accessor(__ref_22,0,$rjs_core.PrimitiveSymbol.make("lvalue")),M0.make_struct_field_accessor(__ref_22,1,$rjs_core.PrimitiveSymbol.make("rvalue")));var struct_ILAssign = let_result1249.getAt(0);var ILAssign24_dot_1 = let_result1249.getAt(1);var ILAssign_p = let_result1249.getAt(2);var ILAssign_lvalue = let_result1249.getAt(3);var ILAssign_rvalue = let_result1249.getAt(4);var let_result1250 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILReturn"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILReturn"));var struct__22 = let_result1250.getAt(0);var make__22 = let_result1250.getAt(1);var __p_23 = let_result1250.getAt(2);var __ref_23 = let_result1250.getAt(3);var __set_bang__23 = let_result1250.getAt(4);var let_result1251 = M0.values(struct__22,make__22,__p_23,M0.make_struct_field_accessor(__ref_23,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILReturn = let_result1251.getAt(0);var ILReturn26_dot_1 = let_result1251.getAt(1);var ILReturn_p = let_result1251.getAt(2);var ILReturn_expr = let_result1251.getAt(3);var let_result1252 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILExnHandler"),false,4,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2,3),false,$rjs_core.PrimitiveSymbol.make("ILExnHandler"));var struct__23 = let_result1252.getAt(0);var make__23 = let_result1252.getAt(1);var __p_24 = let_result1252.getAt(2);var __ref_24 = let_result1252.getAt(3);var __set_bang__24 = let_result1252.getAt(4);var let_result1253 = M0.values(struct__23,make__23,__p_24,M0.make_struct_field_accessor(__ref_24,0,$rjs_core.PrimitiveSymbol.make("try")),M0.make_struct_field_accessor(__ref_24,1,$rjs_core.PrimitiveSymbol.make("error")),M0.make_struct_field_accessor(__ref_24,2,$rjs_core.PrimitiveSymbol.make("catch")),M0.make_struct_field_accessor(__ref_24,3,$rjs_core.PrimitiveSymbol.make("finally")));var struct_ILExnHandler = let_result1253.getAt(0);var ILExnHandler29_dot_1 = let_result1253.getAt(1);var ILExnHandler_p = let_result1253.getAt(2);var ILExnHandler_try = let_result1253.getAt(3);var ILExnHandler_error = let_result1253.getAt(4);var ILExnHandler_catch = let_result1253.getAt(5);var ILExnHandler_finally = let_result1253.getAt(6);var let_result1254 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILThrow"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILThrow"));var struct__24 = let_result1254.getAt(0);var make__24 = let_result1254.getAt(1);var __p_25 = let_result1254.getAt(2);var __ref_25 = let_result1254.getAt(3);var __set_bang__25 = let_result1254.getAt(4);var let_result1255 = M0.values(struct__24,make__24,__p_25,M0.make_struct_field_accessor(__ref_25,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILThrow = let_result1255.getAt(0);var ILThrow30_dot_1 = let_result1255.getAt(1);var ILThrow_p = let_result1255.getAt(2);var ILThrow_expr = let_result1255.getAt(3);var flatten_statements = function(stms_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return flatten(stms_0);};var has_application_p = function(a_161) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_63 = a_161;var vec_v_0 = M0.struct__gt_vector(v_63);var alt_26 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_1 = M0.struct__gt_vector(v_63);var alt_27 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_2 = M0.struct__gt_vector(v_63);var alt_28 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_3 = M0.struct__gt_vector(v_63);var alt_29 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_4 = M0.struct__gt_vector(v_63);var alt_30 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_5 = M0.struct__gt_vector(v_63);var alt_31 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_6 = M0.struct__gt_vector(v_63);var alt_32 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_7 = M0.struct__gt_vector(v_63);var alt_33 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_8 = M0.struct__gt_vector(v_63);var alt_34 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_9 = M0.struct__gt_vector(v_63);var alt_35 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_10 = M0.struct__gt_vector(v_63);var alt_36 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_11 = M0.struct__gt_vector(v_63);var alt_37 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_12 = M0.struct__gt_vector(v_63);var alt_38 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");if (M0.symbol_p(v_63)!==false) {var if_res1256 = false;} else {var if_res1256 = M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_63);}return if_res1256;};if (ILTypeOf_p(v_63)!==false) {var expr_0 = M0.vector__gt_values(vec_v_12,1);var if_res1257 = has_application_p(expr_0);} else {var if_res1257 = alt_38();}return if_res1257;};if (ILInstanceOf_p(v_63)!==false) {var let_result1258 = M0.vector__gt_values(vec_v_11,1);var expr_1 = let_result1258.getAt(0);var type_0 = let_result1258.getAt(1);var or_part_70 = has_application_p(expr_1);if (or_part_70!==false) {var if_res1259 = or_part_70;} else {var if_res1259 = has_application_p(type_0);}var if_res1260 = if_res1259;} else {var if_res1260 = alt_37();}return if_res1260;};if (ILNew_p(v_63)!==false) {var _fst_0 = M0.vector__gt_values(vec_v_10,1);var if_res1261 = true;} else {var if_res1261 = alt_36();}return if_res1261;};if (ILNull_p(v_63)!==false) {var let_result1262 = M0.vector__gt_values(vec_v_9,1);var if_res1263 = false;} else {var if_res1263 = alt_35();}return if_res1263;};if (ILUndefined_p(v_63)!==false) {var let_result1264 = M0.vector__gt_values(vec_v_8,1);var if_res1265 = false;} else {var if_res1265 = alt_34();}return if_res1265;};if (ILValue_p(v_63)!==false) {var _fst_1 = M0.vector__gt_values(vec_v_7,1);var if_res1266 = false;} else {var if_res1266 = alt_33();}return if_res1266;};if (ILIndex_p(v_63)!==false) {var let_result1267 = M0.vector__gt_values(vec_v_6,1);var expr_2 = let_result1267.getAt(0);var fieldexpr_0 = let_result1267.getAt(1);var or_part_71 = has_application_p(expr_2);if (or_part_71!==false) {var if_res1268 = or_part_71;} else {var if_res1268 = has_application_p(fieldexpr_0);}var if_res1269 = if_res1268;} else {var if_res1269 = alt_32();}return if_res1269;};if (ILRef_p(v_63)!==false) {var let_result1270 = M0.vector__gt_values(vec_v_5,1);var expr_3 = let_result1270.getAt(0);var _fst_2 = let_result1270.getAt(1);var if_res1271 = has_application_p(expr_3);} else {var if_res1271 = alt_31();}return if_res1271;};if (ILObject_p(v_63)!==false) {var items_0 = M0.vector__gt_values(vec_v_4,1);var if_res1272 = ormap2(function(pair_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return has_application_p(M0.cdr(pair_0));},items_0);} else {var if_res1272 = alt_30();}return if_res1272;};if (ILArray_p(v_63)!==false) {var items_1 = M0.vector__gt_values(vec_v_3,1);var if_res1273 = ormap2(has_application_p,items_1);} else {var if_res1273 = alt_29();}return if_res1273;};if (ILApp_p(v_63)!==false) {var let_result1274 = M0.vector__gt_values(vec_v_2,1);var _fst_3 = let_result1274.getAt(0);var _snd_0 = let_result1274.getAt(1);var if_res1275 = true;} else {var if_res1275 = alt_28();}return if_res1275;};if (ILBinaryOp_p(v_63)!==false) {var let_result1276 = M0.vector__gt_values(vec_v_1,1);var _fst_4 = let_result1276.getAt(0);var args_13 = let_result1276.getAt(1);var if_res1277 = ormap2(has_application_p,args_13);} else {var if_res1277 = alt_27();}return if_res1277;};if (ILLambda_p(v_63)!==false) {var let_result1278 = M0.vector__gt_values(vec_v_0,1);var _fst_5 = let_result1278.getAt(0);var _snd_1 = let_result1278.getAt(1);var if_res1279 = false;} else {var if_res1279 = alt_26();}return if_res1279;};var log_rjs_info = $rjs_core.attachProcedureArity(function(fst1_0, ...rst2_01280) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rst2_0 = $rjs_core.Pair.listFromArray(rst2_01280);if (logging_p()!==false) {M0.printf($rjs_core.UString.make("[~a]"),$rjs_core.UString.make("info"));if (M0.equal_p(M0.string_ref(fst1_0,0),$rjs_core.Char.charFromCodepoint(91))!==false) {var if_res1281 = M0.rvoid();} else {var if_res1281 = M0.printf($rjs_core.UString.make(" "));}if_res1281;M0.apply(M0.printf,fst1_0,rst2_0);var if_res1282 = M0.printf($rjs_core.UString.make("\n"));} else {var if_res1282 = M0.rvoid();}return if_res1282;});var log_rjs_warning = $rjs_core.attachProcedureArity(function(fst5_0, ...rst6_01283) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rst6_0 = $rjs_core.Pair.listFromArray(rst6_01283);if (logging_p()!==false) {M0.printf($rjs_core.UString.make("[~a]"),$rjs_core.UString.make("warning"));if (M0.equal_p(M0.string_ref(fst5_0,0),$rjs_core.Char.charFromCodepoint(91))!==false) {var if_res1284 = M0.rvoid();} else {var if_res1284 = M0.printf($rjs_core.UString.make(" "));}if_res1284;M0.apply(M0.printf,fst5_0,rst6_0);var if_res1285 = M0.printf($rjs_core.UString.make("\n"));} else {var if_res1285 = M0.rvoid();}return if_res1285;});var module_object_name_map = M0.make_parameter(M0.hash());var absyn_top_level__gt_il = function(form_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Linklet_p(form_0)!==false) {var if_res1289 = M0.error($rjs_core.PrimitiveSymbol.make("absyn-top-level->il"),$rjs_core.UString.make("Not supported. Todo."));} else {if (Expr_p(form_0)!==false) {var let_result1286 = absyn_expr__gt_il(form_0,false);var stmt_0 = let_result1286.getAt(0);var v_62 = let_result1286.getAt(1);var if_res1288 = append1(stmt_0,v_62);} else {if (Begin_p(form_0)!==false) {var if_res1287 = absyn_expr__gt_il(form_0,false);} else {var if_res1287 = M0.error($rjs_core.UString.make("only some forms supported at top level"));}var if_res1288 = if_res1287;}var if_res1289 = if_res1288;}return if_res1289;};var absyn_linklet__gt_il = function(lnk_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_43 = lnk_0;var v_1 = v_43;var vec_v_13 = M0.struct__gt_vector(v_1);var alt_39 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_1);};if (Linklet_p(v_1)!==false) {var let_result1290 = M0.vector__gt_values(vec_v_13,1);var path_2 = let_result1290.getAt(0);var imports_3 = let_result1290.getAt(1);var exports_4 = let_result1290.getAt(2);var forms_1 = let_result1290.getAt(3);var if_res1291 = M0.values(path_2,imports_3,exports_4,forms_1);} else {var if_res1291 = alt_39();}var let_result1292 = if_res1291;var path_1 = let_result1292.getAt(0);var imports_2 = let_result1292.getAt(1);var exports_3 = let_result1292.getAt(2);var forms_0 = let_result1292.getAt(3);log_rjs_info($rjs_core.UString.make("[linklet il]"));var let_result1293 = M0.values();var imported_mod_path_list_0 = flatten(imports_2);var requires_times__0 = absyn_requires__gt_il(imported_mod_path_list_0,path_1);var __context1294 = $rjs_core.Marks.getFrames();var __context1295;try {__context1295 = $rjs_core.Marks.enterFrame();$rjs_core.Marks.setMark(M0.parameterization_key,M0.extend_parameterization(M0.continuation_mark_set_first(false,M0.parameterization_key),module_object_name_map,make_module_map(requires_times__0,$rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("#%kernel")))));var __wcm_result1296 = ILLinklet1_dot_1(filter(ILRequire_p,requires_times__0),absyn_exports__gt_il(exports_3),append_map(absyn_gtl_form__gt_il,forms_0));} finally {$rjs_core.Marks.updateFrame(__context1294,__context1295);}return __wcm_result1296;};var make_module_map = function(reqs_0, imported_paths_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1298 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("req")),reqs_0);var pos__gt_vals_17 = let_result1298.getAt(0);var pos_pre_inc_15 = let_result1298.getAt(1);var pos_next_18 = let_result1298.getAt(2);var init_18 = let_result1298.getAt(3);var pos_cont_p_18 = let_result1298.getAt(4);var val_cont_p_17 = let_result1298.getAt(5);var all_cont_p_17 = let_result1298.getAt(6);var let_result1299 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("mod-path")),imported_paths_0);var pos__gt_vals_18 = let_result1299.getAt(0);var pos_pre_inc_16 = let_result1299.getAt(1);var pos_next_19 = let_result1299.getAt(2);var init_19 = let_result1299.getAt(3);var pos_cont_p_19 = let_result1299.getAt(4);var val_cont_p_18 = let_result1299.getAt(5);var all_cont_p_18 = let_result1299.getAt(6);M0.rvoid();M0.rvoid();var for_loop_19 = function(acc_1, pos_12, pos_55) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_18!==false) {var if_res1300 = pos_cont_p_18(pos_12);} else {var if_res1300 = true;}if (if_res1300!==false) {if (pos_cont_p_19!==false) {var if_res1301 = pos_cont_p_19(pos_55);} else {var if_res1301 = true;}var if_res1302 = if_res1301;} else {var if_res1302 = false;}if (if_res1302!==false) {var req_10 = pos__gt_vals_17(pos_12);if (all_cont_p_17!==false) {var if_res1303 = function(pos_56) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_17(pos_56,req_10);};} else {var if_res1303 = false;}var let_result1304 = M0.values(req_10,if_res1303);var req_9 = let_result1304.getAt(0);var all_cont_p_by_pos_15 = let_result1304.getAt(1);if (pos_pre_inc_15!==false) {var if_res1305 = pos_pre_inc_15(pos_12);} else {var if_res1305 = pos_12;}var pos_57 = if_res1305;var mod_path_1 = pos__gt_vals_18(pos_55);if (all_cont_p_18!==false) {var if_res1306 = function(pos_58) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_18(pos_58,mod_path_1);};} else {var if_res1306 = false;}var let_result1307 = M0.values(mod_path_1,if_res1306);var mod_path_0 = let_result1307.getAt(0);var all_cont_p_by_pos_16 = let_result1307.getAt(1);if (pos_pre_inc_16!==false) {var if_res1308 = pos_pre_inc_16(pos_55);} else {var if_res1308 = pos_55;}var pos_59 = if_res1308;if (val_cont_p_17!==false) {var if_res1309 = val_cont_p_17(req_9);} else {var if_res1309 = true;}if (if_res1309!==false) {if (val_cont_p_18!==false) {var if_res1310 = val_cont_p_18(mod_path_0);} else {var if_res1310 = true;}var if_res1311 = if_res1310;} else {var if_res1311 = false;}if (if_res1311!==false) {var acc_3 = acc_1;if (ILRequire_p(req_9)!==false) {var if_res1312 = M0.hash_set(acc_3,mod_path_0,ILRequire_name(req_9));} else {var if_res1312 = acc_3;}var acc_4 = if_res1312;var acc_2 = M0.values(acc_4);if (all_cont_p_by_pos_15!==false) {var if_res1313 = all_cont_p_by_pos_15(pos_57);} else {var if_res1313 = true;}if (if_res1313!==false) {if (all_cont_p_by_pos_16!==false) {var if_res1314 = all_cont_p_by_pos_16(pos_59);} else {var if_res1314 = true;}if (if_res1314!==false) {var if_res1315 = M0.not(false);} else {var if_res1315 = false;}var if_res1316 = if_res1315;} else {var if_res1316 = false;}if (if_res1316!==false) {var if_res1317 = for_loop_19(acc_2,pos_next_18(pos_57),pos_next_19(pos_59));} else {var if_res1317 = acc_2;}var if_res1318 = if_res1317;} else {var if_res1318 = acc_1;}var if_res1319 = if_res1318;} else {var if_res1319 = acc_1;}return if_res1319;};return for_loop_19(module_object_name_map(),init_18,init_19);};var absyn_exports__gt_il = function(exports_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1320 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("ex")),exports_5);var pos__gt_vals_19 = let_result1320.getAt(0);var pos_pre_inc_17 = let_result1320.getAt(1);var pos_next_20 = let_result1320.getAt(2);var init_20 = let_result1320.getAt(3);var pos_cont_p_20 = let_result1320.getAt(4);var val_cont_p_19 = let_result1320.getAt(5);var all_cont_p_19 = let_result1320.getAt(6);M0.rvoid();var for_loop_20 = function(fold_var_8, pos_60) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_20!==false) {var if_res1321 = pos_cont_p_20(pos_60);} else {var if_res1321 = true;}if (if_res1321!==false) {var ex_1 = pos__gt_vals_19(pos_60);if (all_cont_p_19!==false) {var if_res1322 = function(pos_61) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_19(pos_61,ex_1);};} else {var if_res1322 = false;}var let_result1323 = M0.values(ex_1,if_res1322);var ex_0 = let_result1323.getAt(0);var all_cont_p_by_pos_17 = let_result1323.getAt(1);if (pos_pre_inc_17!==false) {var if_res1324 = pos_pre_inc_17(pos_60);} else {var if_res1324 = pos_60;}var pos_62 = if_res1324;if (val_cont_p_19!==false) {var if_res1325 = val_cont_p_19(ex_0);} else {var if_res1325 = true;}if (if_res1325!==false) {var fold_var_10 = fold_var_8;if (M0.symbol_p(ex_0)!==false) {var if_res1327 = SimpleProvide18_dot_1(ex_0);} else {if (M0.list_p(ex_0)!==false) {var if_res1326 = RenamedProvide19_dot_1(M0.car(ex_0),M0.cadr(ex_0));} else {var if_res1326 = M0.error($rjs_core.PrimitiveSymbol.make("exports->il"),$rjs_core.UString.make("unknown export form in linklet"),ex_0);}var if_res1327 = if_res1326;}var fold_var_11 = M0.cons(if_res1327,fold_var_10);var fold_var_9 = M0.values(fold_var_11);if (all_cont_p_by_pos_17!==false) {var if_res1328 = all_cont_p_by_pos_17(pos_62);} else {var if_res1328 = true;}if (if_res1328!==false) {var if_res1329 = M0.not(false);} else {var if_res1329 = false;}if (if_res1329!==false) {var if_res1330 = for_loop_20(fold_var_9,pos_next_20(pos_62));} else {var if_res1330 = fold_var_9;}var if_res1331 = if_res1330;} else {var if_res1331 = fold_var_8;}var if_res1332 = if_res1331;} else {var if_res1332 = fold_var_8;}return if_res1332;};return reverse$1(for_loop_20(M0.rnull,init_20));};var absyn_requires__gt_il = function(import_list_0, path_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.list(ILRequire2_dot_1($rjs_core.UString.make("../runtime/kernel.rkt.js"),$rjs_core.PrimitiveSymbol.make("M0"),$rjs_core.PrimitiveSymbol.make("*")));};var absyn_gtl_form__gt_il = function(form_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Expr_p(form_1)!==false) {var let_result1333 = absyn_expr__gt_il(form_1,false);var stms_1 = let_result1333.getAt(0);var v_64 = let_result1333.getAt(1);var if_res1339 = append1(stms_1,v_64);} else {if (DefineValues_p(form_1)!==false) {var v_65 = form_1;var v_66 = v_65;var vec_v_14 = M0.struct__gt_vector(v_66);var alt_40 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_66);};if (DefineValues_p(v_66)!==false) {var let_result1334 = M0.vector__gt_values(vec_v_14,1);var ids_1 = let_result1334.getAt(0);var expr_5 = let_result1334.getAt(1);var if_res1335 = M0.values(ids_1,expr_5);} else {var if_res1335 = alt_40();}var let_result1336 = if_res1335;var ids_0 = let_result1336.getAt(0);var expr_4 = let_result1336.getAt(1);var if_res1338 = absyn_binding__gt_il(M0.cons(ids_0,expr_4));} else {if (JSRequire_p(form_1)!==false) {var if_res1337 = M0.error($rjs_core.PrimitiveSymbol.make("absyn-gtl-form->il"),$rjs_core.UString.make("Required should be hoisted"));} else {var if_res1337 = M0.rvoid();}var if_res1338 = if_res1337;}var if_res1339 = if_res1338;}return if_res1339;};var absyn_expr__gt_il = function(expr_6, overwrite_mark_frame_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_67 = expr_6;var vec_v_15 = M0.struct__gt_vector(v_67);var alt_41 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_16 = M0.struct__gt_vector(v_67);var alt_42 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_17 = M0.struct__gt_vector(v_67);var alt_43 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_18 = M0.struct__gt_vector(v_67);var alt_44 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_19 = M0.struct__gt_vector(v_67);var alt_45 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_20 = M0.struct__gt_vector(v_67);var alt_46 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_21 = M0.struct__gt_vector(v_67);var alt_47 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_22 = M0.struct__gt_vector(v_67);var alt_48 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");if (M0.pair_p(expr_6)!==false) {var if_res1340 = M0.null_p(M0.cdr(expr_6));} else {var if_res1340 = false;}if (if_res1340!==false) {var v_68 = expr_6;var v_69 = v_68;var alt_49 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_69);};var p_92 = v_69;if (M0.pair_p(p_92)!==false) {var a_162 = M0.cdr(p_92);var if_res1341 = M0.eq_p($rjs_core.Pair.makeList(),a_162);} else {var if_res1341 = false;}if (if_res1341!==false) {var a_53 = M0.car(v_69);var hd_4 = a_53;var if_res1342 = M0.values(hd_4);} else {var if_res1342 = alt_49();}var hd_3 = if_res1342;if (Expr_p(hd_3)!==false) {var if_res1343 = absyn_expr__gt_il(hd_3,overwrite_mark_frame_p_0);} else {var if_res1343 = M0.error($rjs_core.UString.make("last datum in body must be expression"));}var if_res1379 = if_res1343;} else {if (M0.pair_p(expr_6)!==false) {var v_70 = expr_6;var v_71 = v_70;var alt_50 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_71);};var p_93 = v_71;if (M0.pair_p(p_93)!==false) {var if_res1344 = true;} else {var if_res1344 = false;}if (if_res1344!==false) {var p_94 = v_71;var a_62 = M0.car(p_94);var hd_7 = a_62;var d_46 = M0.cdr(p_94);var tl_2 = d_46;var let_result1345 = M0.values(hd_7,tl_2);var hd_6 = let_result1345.getAt(0);var tl_1 = let_result1345.getAt(1);var if_res1346 = M0.values(hd_6,tl_1);} else {var if_res1346 = alt_50();}var let_result1347 = if_res1346;var hd_5 = let_result1347.getAt(0);var tl_0 = let_result1347.getAt(1);var hd_stms_0 = absyn_top_level__gt_il(hd_5);var let_result1348 = absyn_expr__gt_il(tl_0,overwrite_mark_frame_p_0);var tl_stms_0 = let_result1348.getAt(0);var v_72 = let_result1348.getAt(1);var if_res1378 = M0.values(M0.append(hd_stms_0,tl_stms_0),v_72);} else {if (M0.null_p(expr_6)!==false) {var if_res1377 = M0.values($rjs_core.Pair.makeList(),ILValue12_dot_1(M0.rvoid()));} else {var vec_v_23 = M0.struct__gt_vector(v_67);var alt_51 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_24 = M0.struct__gt_vector(v_67);var alt_52 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_25 = M0.struct__gt_vector(v_67);var alt_53 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_26 = M0.struct__gt_vector(v_67);var alt_54 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_27 = M0.struct__gt_vector(v_67);var alt_55 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_28 = M0.struct__gt_vector(v_67);var alt_56 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_29 = M0.struct__gt_vector(v_67);var alt_57 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error(__a($rjs_core.UString.make("unsupported expr "),expr_6));};if (VarRef_p(v_67)!==false) {var __5 = M0.vector__gt_values(vec_v_29,1);var if_res1349 = M0.values($rjs_core.Pair.makeList(),absyn_value__gt_il($rjs_core.PrimitiveSymbol.make("#%variable-reference")));} else {var if_res1349 = alt_57();}return if_res1349;};if (WithContinuationMark_p(v_67)!==false) {var let_result1350 = M0.vector__gt_values(vec_v_28,1);var key_8 = let_result1350.getAt(0);var value_3 = let_result1350.getAt(1);var result_10 = let_result1350.getAt(2);var let_result1351 = absyn_expr__gt_il(key_8,false);var key_stms_0 = let_result1351.getAt(0);var key_expr_0 = let_result1351.getAt(1);var let_result1352 = absyn_expr__gt_il(value_3,false);var value_stms_0 = let_result1352.getAt(0);var value_expr_0 = let_result1352.getAt(1);var let_result1353 = absyn_expr__gt_il(result_10,true);var result_stms_0 = let_result1353.getAt(0);var result_expr_0 = let_result1353.getAt(1);var old_context_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__context"));var new_context_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__context"));var result_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__wcm_result"));var exn_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("exn"));var temp1356 = ILVarDec20_dot_1(old_context_id_0,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.getFrames")),$rjs_core.Pair.makeList()));var temp1355 = ILVarDec20_dot_1(new_context_id_0,false);if (overwrite_mark_frame_p_0!==false) {var if_res1354 = ILAssign24_dot_1(new_context_id_0,old_context_id_0);} else {var if_res1354 = ILAssign24_dot_1(new_context_id_0,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.enterFrame")),$rjs_core.Pair.makeList()));}var stms_2 = M0.list(temp1356,temp1355,ILExnHandler29_dot_1(flatten_statements(M0.list(key_stms_0,value_stms_0,if_res1354,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.setMark")),M0.list(key_expr_0,value_expr_0)),result_stms_0,ILVarDec20_dot_1(result_id_0,result_expr_0))),$rjs_core.PrimitiveSymbol.make("exn"),$rjs_core.Pair.makeList(),M0.list(ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.updateFrame")),M0.list(old_context_id_0,new_context_id_0)))));var if_res1357 = M0.values(stms_2,result_id_0);} else {var if_res1357 = alt_56();}return if_res1357;};if (WithContinuationMark_p(v_67)!==false) {var let_result1358 = M0.vector__gt_values(vec_v_27,1);var key_9 = let_result1358.getAt(0);var _fst_6 = let_result1358.getAt(1);var wcm_0 = let_result1358.getAt(2);if (WithContinuationMark_p(wcm_0)!==false) {var v_73 = wcm_0;var v_74 = v_73;var vec_v_30 = M0.struct__gt_vector(v_74);var alt_58 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_74);};if (WithContinuationMark_p(v_74)!==false) {var let_result1359 = M0.vector__gt_values(vec_v_30,1);var key_11 = let_result1359.getAt(0);var _snd_3 = let_result1359.getAt(1);var _thd_1 = let_result1359.getAt(2);var if_res1360 = M0.values(key_11,_snd_3,_thd_1);} else {var if_res1360 = alt_58();}var let_result1361 = if_res1360;var key_10 = let_result1361.getAt(0);var _snd_2 = let_result1361.getAt(1);var _thd_0 = let_result1361.getAt(2);var if_res1362 = absyn_expr__gt_il(wcm_0,overwrite_mark_frame_p_0);} else {var if_res1362 = alt_55();}var if_res1363 = if_res1362;} else {var if_res1363 = alt_55();}return if_res1363;};if (ImportedIdent_p(v_67)!==false) {var let_result1364 = M0.vector__gt_values(vec_v_26,1);var id_3 = let_result1364.getAt(0);var src__0 = let_result1364.getAt(1);var reachable_p_0 = let_result1364.getAt(2);if (M0.__lt_(get_major_version(M0.substring(M0.version(),0,1)),7)!==false) {var if_res1365 = M0.equal_p(src__0,$rjs_core.PrimitiveSymbol.make("#%runtime"));} else {var if_res1365 = false;}if (if_res1365!==false) {var if_res1366 = $rjs_core.PrimitiveSymbol.make("#%kernel");} else {var if_res1366 = src__0;}var src_0 = if_res1366;if (reserved_keyword_p(id_3)!==false) {var if_res1367 = M0.string__gt_symbol(normalize_symbol(id_3));} else {var if_res1367 = id_3;}var id_times__0 = if_res1367;var or_part_72 = M0.symbol_p(current_source_file());if (or_part_72!==false) {var if_res1368 = or_part_72;} else {var if_res1368 = M0.path_p(current_source_file());}if (if_res1368!==false) {var if_res1369 = M0.equal_p(actual_module_path(current_source_file()),actual_module_path(src_0));} else {var if_res1369 = false;}if (if_res1369!==false) {var if_res1371 = absyn_expr__gt_il(LocalIdent6_dot_1(id_3),overwrite_mark_frame_p_0);} else {if (false_p(reachable_p_0)!==false) {var mod_obj_name_0 = M0.hash_ref(module_object_name_map(),src_0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}log_rjs_warning($rjs_core.UString.make("missing unreachable binding ~s ~s"),id_times__0,src_0);return src_0;});var if_res1370 = M0.values($rjs_core.Pair.makeList(),ILRef10_dot_1(ILRef10_dot_1(mod_obj_name_0,__times_quoted_binding_ident_name_times_),id_times__0));} else {var mod_obj_name_1 = M0.hash_ref(module_object_name_map(),src_0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}log_rjs_warning($rjs_core.UString.make("missing reachable binding ~s ~s"),id_times__0,src_0);return src_0;});var if_res1370 = M0.values($rjs_core.Pair.makeList(),ILRef10_dot_1(mod_obj_name_1,id_times__0));}var if_res1371 = if_res1370;}var if_res1372 = if_res1371;} else {var if_res1372 = alt_54();}return if_res1372;};if (Begin0_p(v_67)!==false) {var let_result1373 = M0.vector__gt_values(vec_v_25,1);var expr0_0 = let_result1373.getAt(0);var expr_times__0 = let_result1373.getAt(1);var expr0_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("begin-res"));var if_res1374 = absyn_expr__gt_il(LetValues13_dot_1(M0.list(M0.cons(M0.list(expr0_id_0),expr0_0)),append1(expr_times__0,LocalIdent6_dot_1(expr0_id_0))),overwrite_mark_frame_p_0);} else {var if_res1374 = alt_53();}return if_res1374;};if (TopLevelIdent_p(v_67)!==false) {var id_4 = M0.vector__gt_values(vec_v_24,1);var if_res1375 = M0.values($rjs_core.Pair.makeList(),id_4);} else {var if_res1375 = alt_52();}return if_res1375;};if (LocalIdent_p(v_67)!==false) {var id_5 = M0.vector__gt_values(vec_v_23,1);var if_res1376 = M0.values($rjs_core.Pair.makeList(),id_5);} else {var if_res1376 = alt_51();}var if_res1377 = if_res1376;}var if_res1378 = if_res1377;}var if_res1379 = if_res1378;}return if_res1379;};if (Quote_p(v_67)!==false) {var datum_0 = M0.vector__gt_values(vec_v_22,1);var if_res1380 = M0.values($rjs_core.Pair.makeList(),absyn_value__gt_il(datum_0));} else {var if_res1380 = alt_48();}return if_res1380;};if (App_p(v_67)!==false) {var let_result1381 = M0.vector__gt_values(vec_v_21,1);var lam_1 = let_result1381.getAt(0);var args_14 = let_result1381.getAt(1);var binops_0 = map2(function(b_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return ImportedIdent3_dot_1(b_19,$rjs_core.PrimitiveSymbol.make("#%kernel"),true);},$rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("+"),$rjs_core.PrimitiveSymbol.make("-"),$rjs_core.PrimitiveSymbol.make("*"),$rjs_core.PrimitiveSymbol.make("/")));var il_app_by_binop_0 = function(v_75, arg_times__0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("il-app/binop");var let_result1382 = absyn_expr__gt_il(v_75,false);var __6 = let_result1382.getAt(0);var v_76 = let_result1382.getAt(1);var v_il_0 = v_76;if (M0.equal_p(v_75,ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("-"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true))!==false) {var if_res1383 = length_eq__p(arg_times__0,1);} else {var if_res1383 = false;}if (if_res1383!==false) {var if_res1389 = ILApp7_dot_1(v_il_0,arg_times__0);} else {if (M0.equal_p(v_75,ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("/"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true))!==false) {var if_res1384 = length_eq__p(arg_times__0,1);} else {var if_res1384 = false;}if (if_res1384!==false) {var if_res1388 = ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("/"),M0.cons(ILValue12_dot_1(1),arg_times__0));} else {if (ImportedIdent_p(v_75)!==false) {if (member(v_75,binops_0)!==false) {var if_res1385 = M0.__gt__eq_(M0.length(arg_times__0),2);} else {var if_res1385 = false;}var if_res1386 = if_res1385;} else {var if_res1386 = false;}if (if_res1386!==false) {var if_res1387 = ILBinaryOp6_dot_1(ImportedIdent_id(v_75),arg_times__0);} else {var if_res1387 = ILApp7_dot_1(v_il_0,arg_times__0);}var if_res1388 = if_res1387;}var if_res1389 = if_res1388;}return if_res1389;};var temp5_0 = sequence_length(reverse$1(M0.cons(lam_1,args_14)));var let_result1390 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("arg")),reverse$1(M0.cons(lam_1,args_14)));var pos__gt_vals_20 = let_result1390.getAt(0);var pos_pre_inc_18 = let_result1390.getAt(1);var pos_next_21 = let_result1390.getAt(2);var init_21 = let_result1390.getAt(3);var pos_cont_p_21 = let_result1390.getAt(4);var val_cont_p_20 = let_result1390.getAt(5);var all_cont_p_20 = let_result1390.getAt(6);var start_10 = 0;var end_4 = temp5_0;var inc_0 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1391 = M0.rvoid();} else {var if_res1391 = check_range(start_10,end_4,inc_0);}if_res1391;var for_loop_21 = function(stms_3, vals_3, next_has_stms_p_0, pos_63, pos_64) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_21!==false) {var if_res1392 = pos_cont_p_21(pos_63);} else {var if_res1392 = true;}if (if_res1392!==false) {var if_res1393 = M0.__lt_(pos_64,end_4);} else {var if_res1393 = false;}if (if_res1393!==false) {var arg_1 = pos__gt_vals_20(pos_63);if (all_cont_p_20!==false) {var if_res1394 = function(pos_65) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_20(pos_65,arg_1);};} else {var if_res1394 = false;}var let_result1395 = M0.values(arg_1,if_res1394);var arg_0 = let_result1395.getAt(0);var all_cont_p_by_pos_18 = let_result1395.getAt(1);if (pos_pre_inc_18!==false) {var if_res1396 = pos_pre_inc_18(pos_63);} else {var if_res1396 = pos_63;}var pos_66 = if_res1396;var temp6_0 = pos_64;if (val_cont_p_20!==false) {var if_res1397 = val_cont_p_20(arg_0);} else {var if_res1397 = true;}if (if_res1397!==false) {var if_res1398 = true;} else {var if_res1398 = false;}if (if_res1398!==false) {var stms_5 = stms_3;var vals_5 = vals_3;var next_has_stms_p_2 = next_has_stms_p_0;var last_p_0 = M0.equal_p(M0.sub1(temp5_0),temp6_0);var let_result1399 = absyn_expr__gt_il(arg_0,false);var s_15 = let_result1399.getAt(0);var v_77 = let_result1399.getAt(1);if (next_has_stms_p_2!==false) {var if_res1400 = has_application_p(v_77);} else {var if_res1400 = false;}if (if_res1400!==false) {if (last_p_0!==false) {var if_res1401 = $rjs_core.PrimitiveSymbol.make("lam");} else {var if_res1401 = $rjs_core.PrimitiveSymbol.make("temp");}var temp_id_0 = fresh_id(if_res1401);var arg_stms_0 = append1(s_15,ILVarDec20_dot_1(temp_id_0,v_77));var if_res1406 = M0.values(M0.append(arg_stms_0,stms_5),M0.cons(temp_id_0,vals_5),next_has_stms_p_2);} else {if (next_has_stms_p_2!==false) {var if_res1405 = M0.values(M0.append(s_15,stms_5),M0.cons(v_77,vals_5),next_has_stms_p_2);} else {var temp1404 = M0.append(s_15,stms_5);var temp1403 = M0.cons(v_77,vals_5);var or_part_73 = next_has_stms_p_2;if (or_part_73!==false) {var if_res1402 = or_part_73;} else {var if_res1402 = cons_p(s_15);}var if_res1405 = M0.values(temp1404,temp1403,if_res1402);}var if_res1406 = if_res1405;}var let_result1407 = if_res1406;var stms_6 = let_result1407.getAt(0);var vals_6 = let_result1407.getAt(1);var next_has_stms_p_3 = let_result1407.getAt(2);var let_result1408 = M0.values(stms_6,vals_6,next_has_stms_p_3);var stms_4 = let_result1408.getAt(0);var vals_4 = let_result1408.getAt(1);var next_has_stms_p_1 = let_result1408.getAt(2);if (all_cont_p_by_pos_18!==false) {var if_res1409 = all_cont_p_by_pos_18(pos_66);} else {var if_res1409 = true;}if (if_res1409!==false) {var if_res1410 = M0.not(false);} else {var if_res1410 = false;}if (if_res1410!==false) {var if_res1411 = for_loop_21(stms_4,vals_4,next_has_stms_p_1,pos_next_21(pos_66),pos_64+inc_0);} else {var if_res1411 = M0.values(stms_4,vals_4,next_has_stms_p_1);}var if_res1412 = if_res1411;} else {var if_res1412 = M0.values(stms_3,vals_3,next_has_stms_p_0);}var if_res1413 = if_res1412;} else {var if_res1413 = M0.values(stms_3,vals_3,next_has_stms_p_0);}return if_res1413;};var let_result1414 = for_loop_21($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),false,init_21,start_10);var lam_plus_arg_stms_0 = let_result1414.getAt(0);var lam_part_vals_0 = let_result1414.getAt(1);var _rst_0 = let_result1414.getAt(2);var v_78 = lam_part_vals_0;var v_79 = v_78;var alt_59 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_79);};var p_95 = v_79;if (M0.pair_p(p_95)!==false) {var a_116 = M0.cdr(p_95);var if_res1415 = M0.list_p(a_116);} else {var if_res1415 = false;}if (if_res1415!==false) {var p_96 = v_79;var a_163 = M0.car(p_96);var lam_val_2 = a_163;var d_47 = M0.cdr(p_96);var arg_vals_2 = d_47;var let_result1416 = M0.values(lam_val_2,arg_vals_2);var lam_val_1 = let_result1416.getAt(0);var arg_vals_1 = let_result1416.getAt(1);var if_res1417 = M0.values(lam_val_1,arg_vals_1);} else {var if_res1417 = alt_59();}var let_result1418 = if_res1417;var lam_val_0 = let_result1418.getAt(0);var arg_vals_0 = let_result1418.getAt(1);if (Ident_p(lam_1)!==false) {var if_res1419 = M0.values(lam_plus_arg_stms_0,il_app_by_binop_0(lam_1,arg_vals_0));} else {var if_res1419 = M0.values(lam_plus_arg_stms_0,ILApp7_dot_1(lam_val_0,arg_vals_0));}var if_res1420 = if_res1419;} else {var if_res1420 = alt_47();}return if_res1420;};if (App_p(v_67)!==false) {var let_result1421 = M0.vector__gt_values(vec_v_20,1);var lam_2 = let_result1421.getAt(0);var args_15 = let_result1421.getAt(1);if (ImportedIdent_p(lam_2)!==false) {var if_res1422 = M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),ImportedIdent_id(lam_2));} else {var if_res1422 = false;}if (if_res1422!==false) {var v_80 = args_15;var alt_60 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_61 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_62 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_63 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_64 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_65 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_66 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_67 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_68 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_69 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_70 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_71 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_72 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_73 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_74 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_75 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("absyn-expr->il"),$rjs_core.UString.make("unknown ffi form"),args_15);};var p_97 = v_80;if (M0.pair_p(p_97)!==false) {var a_164 = M0.cdr(p_97);var if_res1423 = M0.eq_p($rjs_core.Pair.makeList(),a_164);} else {var if_res1423 = false;}if (if_res1423!==false) {var a_165 = M0.car(v_80);var fst_6 = a_165;if (Quote_p(fst_6)!==false) {var if_res1424 = M0.eq_p(Quote_datum(fst_6),$rjs_core.PrimitiveSymbol.make("this"));} else {var if_res1424 = false;}if (if_res1424!==false) {var if_res1425 = M0.values($rjs_core.Pair.makeList(),ILThis19_dot_1());} else {var if_res1425 = alt_75();}var if_res1426 = if_res1425;} else {var if_res1426 = alt_75();}return if_res1426;};var p_98 = v_80;if (M0.pair_p(p_98)!==false) {var a_166 = M0.cdr(p_98);var if_res1427 = M0.eq_p($rjs_core.Pair.makeList(),a_166);} else {var if_res1427 = false;}if (if_res1427!==false) {var a_167 = M0.car(v_80);var fst_7 = a_167;if (Quote_p(fst_7)!==false) {var if_res1428 = M0.eq_p(Quote_datum(fst_7),$rjs_core.PrimitiveSymbol.make("arguments"));} else {var if_res1428 = false;}if (if_res1428!==false) {var if_res1429 = M0.values($rjs_core.Pair.makeList(),ILArguments18_dot_1());} else {var if_res1429 = alt_74();}var if_res1430 = if_res1429;} else {var if_res1430 = alt_74();}return if_res1430;};var p_99 = v_80;if (M0.pair_p(p_99)!==false) {var a_168 = M0.cdr(p_99);var if_res1431 = M0.eq_p($rjs_core.Pair.makeList(),a_168);} else {var if_res1431 = false;}if (if_res1431!==false) {var a_169 = M0.car(v_80);var fst_8 = a_169;if (Quote_p(fst_8)!==false) {var if_res1432 = M0.eq_p(Quote_datum(fst_8),$rjs_core.PrimitiveSymbol.make("undefined"));} else {var if_res1432 = false;}if (if_res1432!==false) {var if_res1433 = M0.values($rjs_core.Pair.makeList(),ILUndefined17_dot_1());} else {var if_res1433 = alt_73();}var if_res1434 = if_res1433;} else {var if_res1434 = alt_73();}return if_res1434;};var p_100 = v_80;if (M0.pair_p(p_100)!==false) {var a_170 = M0.cdr(p_100);var if_res1435 = M0.eq_p($rjs_core.Pair.makeList(),a_170);} else {var if_res1435 = false;}if (if_res1435!==false) {var a_171 = M0.car(v_80);var fst_9 = a_171;if (Quote_p(fst_9)!==false) {var if_res1436 = M0.eq_p(Quote_datum(fst_9),$rjs_core.PrimitiveSymbol.make("null"));} else {var if_res1436 = false;}if (if_res1436!==false) {var if_res1437 = M0.values($rjs_core.Pair.makeList(),ILNull16_dot_1());} else {var if_res1437 = alt_72();}var if_res1438 = if_res1437;} else {var if_res1438 = alt_72();}return if_res1438;};var p_101 = v_80;if (M0.pair_p(p_101)!==false) {var a_172 = M0.cdr(p_101);var p_67 = a_172;if (M0.pair_p(p_67)!==false) {var a_173 = M0.cdr(p_67);var p_102 = a_173;if (M0.pair_p(p_102)!==false) {var a_123 = M0.cdr(p_102);var p_103 = a_123;if (M0.pair_p(p_103)!==false) {var a_124 = M0.cdr(p_103);var if_res1439 = M0.eq_p($rjs_core.Pair.makeList(),a_124);} else {var if_res1439 = false;}var if_res1440 = if_res1439;} else {var if_res1440 = false;}var if_res1441 = if_res1440;} else {var if_res1441 = false;}var if_res1442 = if_res1441;} else {var if_res1442 = false;}if (if_res1442!==false) {var p_104 = v_80;var a_174 = M0.car(p_104);var fst_11 = a_174;var d_48 = M0.cdr(p_104);var p_105 = d_48;var a_175 = M0.car(p_105);var snd_5 = a_175;var d_49 = M0.cdr(p_105);var p_106 = d_49;var a_176 = M0.car(p_106);var e0_7 = a_176;var d_50 = M0.cdr(p_106);var a_177 = M0.car(d_50);var e1_8 = a_177;var let_result1443 = M0.values(e0_7,e1_8);var e0_6 = let_result1443.getAt(0);var e1_7 = let_result1443.getAt(1);var let_result1444 = M0.values(snd_5,e0_6,e1_7);var snd_4 = let_result1444.getAt(0);var e0_5 = let_result1444.getAt(1);var e1_6 = let_result1444.getAt(2);var let_result1445 = M0.values(fst_11,snd_4,e0_5,e1_6);var fst_10 = let_result1445.getAt(0);var snd_3 = let_result1445.getAt(1);var e0_4 = let_result1445.getAt(2);var e1_5 = let_result1445.getAt(3);if (Quote_p(fst_10)!==false) {if (Quote_p(snd_3)!==false) {var if_res1446 = M0.eq_p(Quote_datum(fst_10),$rjs_core.PrimitiveSymbol.make("operator"));} else {var if_res1446 = false;}var if_res1447 = if_res1446;} else {var if_res1447 = false;}if (if_res1447!==false) {var v_81 = snd_3;var v_82 = v_81;var vec_v_31 = M0.struct__gt_vector(v_82);var alt_76 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_82);};if (Quote_p(v_82)!==false) {var oper_1 = M0.vector__gt_values(vec_v_31,1);var if_res1448 = M0.values(oper_1);} else {var if_res1448 = alt_76();}var oper_0 = if_res1448;var let_result1449 = absyn_expr__gt_il(e0_4,false);var stms0_0 = let_result1449.getAt(0);var val0_0 = let_result1449.getAt(1);var let_result1450 = absyn_expr__gt_il(e1_5,false);var stms1_0 = let_result1450.getAt(0);var val1_0 = let_result1450.getAt(1);var if_res1451 = M0.values(M0.append(stms0_0,stms1_0),ILBinaryOp6_dot_1(oper_0,M0.list(val0_0,val1_0)));} else {var if_res1451 = alt_71();}var if_res1452 = if_res1451;} else {var if_res1452 = alt_71();}return if_res1452;};var p_107 = v_80;if (M0.pair_p(p_107)!==false) {var a_178 = M0.cdr(p_107);var p_108 = a_178;if (M0.pair_p(p_108)!==false) {var a_179 = M0.cdr(p_108);var p_109 = a_179;if (M0.pair_p(p_109)!==false) {var a_180 = M0.cdr(p_109);var if_res1453 = M0.eq_p($rjs_core.Pair.makeList(),a_180);} else {var if_res1453 = false;}var if_res1454 = if_res1453;} else {var if_res1454 = false;}var if_res1455 = if_res1454;} else {var if_res1455 = false;}if (if_res1455!==false) {var p_110 = v_80;var a_181 = M0.car(p_110);var fst_13 = a_181;var d_51 = M0.cdr(p_110);var p_111 = d_51;var a_182 = M0.car(p_111);var e_14 = a_182;var d_52 = M0.cdr(p_111);var a_183 = M0.car(d_52);var t_5 = a_183;var let_result1456 = M0.values(e_14,t_5);var e_13 = let_result1456.getAt(0);var t_4 = let_result1456.getAt(1);var let_result1457 = M0.values(fst_13,e_13,t_4);var fst_12 = let_result1457.getAt(0);var e_12 = let_result1457.getAt(1);var t_3 = let_result1457.getAt(2);if (Quote_p(fst_12)!==false) {var if_res1458 = M0.eq_p(Quote_datum(fst_12),$rjs_core.PrimitiveSymbol.make("instanceof"));} else {var if_res1458 = false;}if (if_res1458!==false) {var let_result1459 = absyn_expr__gt_il(e_12,false);var stms_7 = let_result1459.getAt(0);var val_4 = let_result1459.getAt(1);var let_result1460 = absyn_expr__gt_il(t_3,false);var tstms_0 = let_result1460.getAt(0);var tval_0 = let_result1460.getAt(1);var if_res1461 = M0.values(M0.append(stms_7,tstms_0),ILInstanceOf14_dot_1(val_4,tval_0));} else {var if_res1461 = alt_70();}var if_res1462 = if_res1461;} else {var if_res1462 = alt_70();}return if_res1462;};var p_112 = v_80;if (M0.pair_p(p_112)!==false) {var a_184 = M0.cdr(p_112);var p_113 = a_184;if (M0.pair_p(p_113)!==false) {var a_185 = M0.cdr(p_113);var if_res1463 = M0.eq_p($rjs_core.Pair.makeList(),a_185);} else {var if_res1463 = false;}var if_res1464 = if_res1463;} else {var if_res1464 = false;}if (if_res1464!==false) {var p_114 = v_80;var a_186 = M0.car(p_114);var fst_15 = a_186;var d_53 = M0.cdr(p_114);var a_187 = M0.car(d_53);var e_16 = a_187;var let_result1465 = M0.values(fst_15,e_16);var fst_14 = let_result1465.getAt(0);var e_15 = let_result1465.getAt(1);if (Quote_p(fst_14)!==false) {var if_res1466 = M0.eq_p(Quote_datum(fst_14),$rjs_core.PrimitiveSymbol.make("typeof"));} else {var if_res1466 = false;}if (if_res1466!==false) {var let_result1467 = absyn_expr__gt_il(e_15,false);var stms_8 = let_result1467.getAt(0);var val_5 = let_result1467.getAt(1);var if_res1468 = M0.values(stms_8,ILTypeOf15_dot_1(val_5));} else {var if_res1468 = alt_69();}var if_res1469 = if_res1468;} else {var if_res1469 = alt_69();}return if_res1469;};var p_115 = v_80;if (M0.pair_p(p_115)!==false) {var a_188 = M0.cdr(p_115);var p_116 = a_188;if (M0.pair_p(p_116)!==false) {var a_189 = M0.cdr(p_116);var if_res1470 = M0.eq_p($rjs_core.Pair.makeList(),a_189);} else {var if_res1470 = false;}var if_res1471 = if_res1470;} else {var if_res1471 = false;}if (if_res1471!==false) {var p_117 = v_80;var a_190 = M0.car(p_117);var fst_17 = a_190;var d_54 = M0.cdr(p_117);var a_191 = M0.car(d_54);var e_18 = a_191;var let_result1472 = M0.values(fst_17,e_18);var fst_16 = let_result1472.getAt(0);var e_17 = let_result1472.getAt(1);if (Quote_p(fst_16)!==false) {var if_res1473 = M0.eq_p(Quote_datum(fst_16),$rjs_core.PrimitiveSymbol.make("throw"));} else {var if_res1473 = false;}if (if_res1473!==false) {var let_result1474 = absyn_expr__gt_il(e_17,false);var stms_9 = let_result1474.getAt(0);var val_6 = let_result1474.getAt(1);var if_res1475 = M0.values(append1(stms_9,ILThrow30_dot_1(val_6)),ILValue12_dot_1(M0.rvoid()));} else {var if_res1475 = alt_68();}var if_res1476 = if_res1475;} else {var if_res1476 = alt_68();}return if_res1476;};var p_70 = v_80;if (M0.pair_p(p_70)!==false) {var a_129 = M0.cdr(p_70);var if_res1477 = M0.list_p(a_129);} else {var if_res1477 = false;}if (if_res1477!==false) {var p_71 = v_80;var a_192 = M0.car(p_71);var fst_19 = a_192;var d_55 = M0.cdr(p_71);var items_3 = d_55;var let_result1478 = M0.values(fst_19,items_3);var fst_18 = let_result1478.getAt(0);var items_2 = let_result1478.getAt(1);if (Quote_p(fst_18)!==false) {var if_res1479 = M0.eq_p(Quote_datum(fst_18),$rjs_core.PrimitiveSymbol.make("object"));} else {var if_res1479 = false;}if (if_res1479!==false) {var let_result1480 = split_at(items_2,M0.length(items_2)/2);var keys_0 = let_result1480.getAt(0);var vals_7 = let_result1480.getAt(1);var let_result1481 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("k")),keys_0);var pos__gt_vals_21 = let_result1481.getAt(0);var pos_pre_inc_19 = let_result1481.getAt(1);var pos_next_22 = let_result1481.getAt(2);var init_22 = let_result1481.getAt(3);var pos_cont_p_22 = let_result1481.getAt(4);var val_cont_p_21 = let_result1481.getAt(5);var all_cont_p_21 = let_result1481.getAt(6);var let_result1482 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("v")),vals_7);var pos__gt_vals_22 = let_result1482.getAt(0);var pos_pre_inc_20 = let_result1482.getAt(1);var pos_next_23 = let_result1482.getAt(2);var init_23 = let_result1482.getAt(3);var pos_cont_p_23 = let_result1482.getAt(4);var val_cont_p_22 = let_result1482.getAt(5);var all_cont_p_22 = let_result1482.getAt(6);M0.rvoid();M0.rvoid();var for_loop_22 = function(stms_10, kvs_0, pos_67, pos_68) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_22!==false) {var if_res1483 = pos_cont_p_22(pos_67);} else {var if_res1483 = true;}if (if_res1483!==false) {if (pos_cont_p_23!==false) {var if_res1484 = pos_cont_p_23(pos_68);} else {var if_res1484 = true;}var if_res1485 = if_res1484;} else {var if_res1485 = false;}if (if_res1485!==false) {var k_2 = pos__gt_vals_21(pos_67);if (all_cont_p_21!==false) {var if_res1486 = function(pos_69) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_21(pos_69,k_2);};} else {var if_res1486 = false;}var let_result1487 = M0.values(k_2,if_res1486);var k_1 = let_result1487.getAt(0);var all_cont_p_by_pos_19 = let_result1487.getAt(1);if (pos_pre_inc_19!==false) {var if_res1488 = pos_pre_inc_19(pos_67);} else {var if_res1488 = pos_67;}var pos_70 = if_res1488;var v_84 = pos__gt_vals_22(pos_68);if (all_cont_p_22!==false) {var if_res1489 = function(pos_71) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_22(pos_71,v_84);};} else {var if_res1489 = false;}var let_result1490 = M0.values(v_84,if_res1489);var v_83 = let_result1490.getAt(0);var all_cont_p_by_pos_20 = let_result1490.getAt(1);if (pos_pre_inc_20!==false) {var if_res1491 = pos_pre_inc_20(pos_68);} else {var if_res1491 = pos_68;}var pos_72 = if_res1491;if (val_cont_p_21!==false) {var if_res1492 = val_cont_p_21(k_1);} else {var if_res1492 = true;}if (if_res1492!==false) {if (val_cont_p_22!==false) {var if_res1493 = val_cont_p_22(v_83);} else {var if_res1493 = true;}var if_res1494 = if_res1493;} else {var if_res1494 = false;}if (if_res1494!==false) {var stms_12 = stms_10;var kvs_2 = kvs_0;var let_result1495 = absyn_expr__gt_il(v_83,false);var s_times__0 = let_result1495.getAt(0);var v_times__0 = let_result1495.getAt(1);var let_result1496 = M0.values(M0.append(stms_12,s_times__0),M0.append(kvs_2,M0.list(M0.cons(Quote_datum(k_1),v_times__0))));var stms_13 = let_result1496.getAt(0);var kvs_3 = let_result1496.getAt(1);var let_result1497 = M0.values(stms_13,kvs_3);var stms_11 = let_result1497.getAt(0);var kvs_1 = let_result1497.getAt(1);if (all_cont_p_by_pos_19!==false) {var if_res1498 = all_cont_p_by_pos_19(pos_70);} else {var if_res1498 = true;}if (if_res1498!==false) {if (all_cont_p_by_pos_20!==false) {var if_res1499 = all_cont_p_by_pos_20(pos_72);} else {var if_res1499 = true;}if (if_res1499!==false) {var if_res1500 = M0.not(false);} else {var if_res1500 = false;}var if_res1501 = if_res1500;} else {var if_res1501 = false;}if (if_res1501!==false) {var if_res1502 = for_loop_22(stms_11,kvs_1,pos_next_22(pos_70),pos_next_23(pos_72));} else {var if_res1502 = M0.values(stms_11,kvs_1);}var if_res1503 = if_res1502;} else {var if_res1503 = M0.values(stms_10,kvs_0);}var if_res1504 = if_res1503;} else {var if_res1504 = M0.values(stms_10,kvs_0);}return if_res1504;};var let_result1505 = for_loop_22($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),init_22,init_23);var stms_times__0 = let_result1505.getAt(0);var items_times__0 = let_result1505.getAt(1);var if_res1506 = M0.values(stms_times__0,ILObject9_dot_1(items_times__0));} else {var if_res1506 = alt_67();}var if_res1507 = if_res1506;} else {var if_res1507 = alt_67();}return if_res1507;};var p_118 = v_80;if (M0.pair_p(p_118)!==false) {var a_193 = M0.cdr(p_118);var if_res1508 = M0.list_p(a_193);} else {var if_res1508 = false;}if (if_res1508!==false) {var p_119 = v_80;var a_194 = M0.car(p_119);var fst_21 = a_194;var d_56 = M0.cdr(p_119);var items_5 = d_56;var let_result1509 = M0.values(fst_21,items_5);var fst_20 = let_result1509.getAt(0);var items_4 = let_result1509.getAt(1);if (Quote_p(fst_20)!==false) {var if_res1510 = M0.eq_p(Quote_datum(fst_20),$rjs_core.PrimitiveSymbol.make("array"));} else {var if_res1510 = false;}if (if_res1510!==false) {var let_result1511 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("item")),items_4);var pos__gt_vals_23 = let_result1511.getAt(0);var pos_pre_inc_21 = let_result1511.getAt(1);var pos_next_24 = let_result1511.getAt(2);var init_24 = let_result1511.getAt(3);var pos_cont_p_24 = let_result1511.getAt(4);var val_cont_p_23 = let_result1511.getAt(5);var all_cont_p_23 = let_result1511.getAt(6);M0.rvoid();var for_loop_23 = function(stms_14, vals_8, pos_73) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_24!==false) {var if_res1512 = pos_cont_p_24(pos_73);} else {var if_res1512 = true;}if (if_res1512!==false) {var item_1 = pos__gt_vals_23(pos_73);if (all_cont_p_23!==false) {var if_res1513 = function(pos_74) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_23(pos_74,item_1);};} else {var if_res1513 = false;}var let_result1514 = M0.values(item_1,if_res1513);var item_0 = let_result1514.getAt(0);var all_cont_p_by_pos_21 = let_result1514.getAt(1);if (pos_pre_inc_21!==false) {var if_res1515 = pos_pre_inc_21(pos_73);} else {var if_res1515 = pos_73;}var pos_75 = if_res1515;if (val_cont_p_23!==false) {var if_res1516 = val_cont_p_23(item_0);} else {var if_res1516 = true;}if (if_res1516!==false) {var stms_16 = stms_14;var vals_10 = vals_8;var let_result1517 = absyn_expr__gt_il(item_0,false);var s_times__1 = let_result1517.getAt(0);var v_times__1 = let_result1517.getAt(1);var let_result1518 = M0.values(M0.append(stms_16,s_times__1),M0.append(vals_10,M0.list(v_times__1)));var stms_17 = let_result1518.getAt(0);var vals_11 = let_result1518.getAt(1);var let_result1519 = M0.values(stms_17,vals_11);var stms_15 = let_result1519.getAt(0);var vals_9 = let_result1519.getAt(1);if (all_cont_p_by_pos_21!==false) {var if_res1520 = all_cont_p_by_pos_21(pos_75);} else {var if_res1520 = true;}if (if_res1520!==false) {var if_res1521 = M0.not(false);} else {var if_res1521 = false;}if (if_res1521!==false) {var if_res1522 = for_loop_23(stms_15,vals_9,pos_next_24(pos_75));} else {var if_res1522 = M0.values(stms_15,vals_9);}var if_res1523 = if_res1522;} else {var if_res1523 = M0.values(stms_14,vals_8);}var if_res1524 = if_res1523;} else {var if_res1524 = M0.values(stms_14,vals_8);}return if_res1524;};var let_result1525 = for_loop_23($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),init_24);var stms_times__1 = let_result1525.getAt(0);var items_times__1 = let_result1525.getAt(1);var if_res1526 = M0.values(stms_times__1,ILArray8_dot_1(items_times__1));} else {var if_res1526 = alt_66();}var if_res1527 = if_res1526;} else {var if_res1527 = alt_66();}return if_res1527;};var p_120 = v_80;if (M0.pair_p(p_120)!==false) {var a_195 = M0.cdr(p_120);var p_121 = a_195;if (M0.pair_p(p_121)!==false) {var a_196 = M0.cdr(p_121);var if_res1528 = M0.eq_p($rjs_core.Pair.makeList(),a_196);} else {var if_res1528 = false;}var if_res1529 = if_res1528;} else {var if_res1529 = false;}if (if_res1529!==false) {var p_122 = v_80;var a_197 = M0.car(p_122);var fst_23 = a_197;var d_57 = M0.cdr(p_122);var a_198 = M0.car(d_57);var lv_1 = a_198;var let_result1530 = M0.values(fst_23,lv_1);var fst_22 = let_result1530.getAt(0);var lv_0 = let_result1530.getAt(1);if (Quote_p(fst_22)!==false) {var if_res1531 = M0.eq_p(Quote_datum(fst_22),$rjs_core.PrimitiveSymbol.make("new"));} else {var if_res1531 = false;}if (if_res1531!==false) {var let_result1532 = absyn_expr__gt_il(lv_0,false);var stms_18 = let_result1532.getAt(0);var il_0 = let_result1532.getAt(1);var if_res1533 = M0.values(stms_18,ILNew13_dot_1(il_0));} else {var if_res1533 = alt_65();}var if_res1534 = if_res1533;} else {var if_res1534 = alt_65();}return if_res1534;};var p_123 = v_80;if (M0.pair_p(p_123)!==false) {var a_199 = M0.cdr(p_123);var p_124 = a_199;if (M0.pair_p(p_124)!==false) {var a_200 = M0.cdr(p_124);var p_125 = a_200;if (M0.pair_p(p_125)!==false) {var a_201 = M0.cdr(p_125);var if_res1535 = M0.eq_p($rjs_core.Pair.makeList(),a_201);} else {var if_res1535 = false;}var if_res1536 = if_res1535;} else {var if_res1536 = false;}var if_res1537 = if_res1536;} else {var if_res1537 = false;}if (if_res1537!==false) {var p_126 = v_80;var a_137 = M0.car(p_126);var fst_25 = a_137;var d_58 = M0.cdr(p_126);var p_127 = d_58;var a_202 = M0.car(p_127);var lv_4 = a_202;var d_59 = M0.cdr(p_127);var a_203 = M0.car(d_59);var rv_2 = a_203;var let_result1538 = M0.values(lv_4,rv_2);var lv_3 = let_result1538.getAt(0);var rv_1 = let_result1538.getAt(1);var let_result1539 = M0.values(fst_25,lv_3,rv_1);var fst_24 = let_result1539.getAt(0);var lv_2 = let_result1539.getAt(1);var rv_0 = let_result1539.getAt(2);if (Quote_p(fst_24)!==false) {var if_res1540 = M0.eq_p(Quote_datum(fst_24),$rjs_core.PrimitiveSymbol.make("assign"));} else {var if_res1540 = false;}if (if_res1540!==false) {var let_result1541 = absyn_expr__gt_il(lv_2,false);var lv_stms_0 = let_result1541.getAt(0);var lv_il_0 = let_result1541.getAt(1);var let_result1542 = absyn_expr__gt_il(rv_0,false);var rv_stms_0 = let_result1542.getAt(0);var rv_il_0 = let_result1542.getAt(1);var if_res1543 = M0.values(M0.append(lv_stms_0,rv_stms_0,M0.list(ILAssign24_dot_1(lv_il_0,rv_il_0))),ILValue12_dot_1(M0.rvoid()));} else {var if_res1543 = alt_64();}var if_res1544 = if_res1543;} else {var if_res1544 = alt_64();}return if_res1544;};var p_128 = v_80;if (M0.pair_p(p_128)!==false) {var a_140 = M0.cdr(p_128);var p_129 = a_140;if (M0.pair_p(p_129)!==false) {var a_204 = M0.cdr(p_129);var if_res1545 = M0.list_p(a_204);} else {var if_res1545 = false;}var if_res1546 = if_res1545;} else {var if_res1546 = false;}if (if_res1546!==false) {var p_130 = v_80;var a_205 = M0.car(p_130);var fst_27 = a_205;var d_60 = M0.cdr(p_130);var p_79 = d_60;var a_206 = M0.car(p_79);var b_22 = a_206;var d_38 = M0.cdr(p_79);var xs_22 = d_38;var let_result1547 = M0.values(b_22,xs_22);var b_21 = let_result1547.getAt(0);var xs_21 = let_result1547.getAt(1);var let_result1548 = M0.values(fst_27,b_21,xs_21);var fst_26 = let_result1548.getAt(0);var b_20 = let_result1548.getAt(1);var xs_20 = let_result1548.getAt(2);if (Quote_p(fst_26)!==false) {var if_res1549 = M0.eq_p(Quote_datum(fst_26),$rjs_core.PrimitiveSymbol.make("index"));} else {var if_res1549 = false;}if (if_res1549!==false) {var let_result1550 = absyn_expr__gt_il(b_20,false);var stms_19 = let_result1550.getAt(0);var il_1 = let_result1550.getAt(1);var let_result1551 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_20);var pos__gt_vals_24 = let_result1551.getAt(0);var pos_pre_inc_22 = let_result1551.getAt(1);var pos_next_25 = let_result1551.getAt(2);var init_25 = let_result1551.getAt(3);var pos_cont_p_25 = let_result1551.getAt(4);var val_cont_p_24 = let_result1551.getAt(5);var all_cont_p_24 = let_result1551.getAt(6);M0.rvoid();var for_loop_24 = function(stms_20, il_2, pos_76) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_25!==false) {var if_res1552 = pos_cont_p_25(pos_76);} else {var if_res1552 = true;}if (if_res1552!==false) {var x_37 = pos__gt_vals_24(pos_76);if (all_cont_p_24!==false) {var if_res1553 = function(pos_77) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_24(pos_77,x_37);};} else {var if_res1553 = false;}var let_result1554 = M0.values(x_37,if_res1553);var x_36 = let_result1554.getAt(0);var all_cont_p_by_pos_22 = let_result1554.getAt(1);if (pos_pre_inc_22!==false) {var if_res1555 = pos_pre_inc_22(pos_76);} else {var if_res1555 = pos_76;}var pos_78 = if_res1555;if (val_cont_p_24!==false) {var if_res1556 = val_cont_p_24(x_36);} else {var if_res1556 = true;}if (if_res1556!==false) {var stms_22 = stms_20;var il_4 = il_2;var let_result1557 = absyn_expr__gt_il(x_36,false);var x_stms_0 = let_result1557.getAt(0);var s_il_0 = let_result1557.getAt(1);var temp1559 = M0.append(stms_22,x_stms_0);if (ILValue_p(il_4)!==false) {var if_res1558 = ILIndex11_dot_1(ILValue_v(il_4),s_il_0);} else {var if_res1558 = ILIndex11_dot_1(il_4,s_il_0);}var let_result1560 = M0.values(temp1559,if_res1558);var stms_23 = let_result1560.getAt(0);var il_5 = let_result1560.getAt(1);var let_result1561 = M0.values(stms_23,il_5);var stms_21 = let_result1561.getAt(0);var il_3 = let_result1561.getAt(1);if (all_cont_p_by_pos_22!==false) {var if_res1562 = all_cont_p_by_pos_22(pos_78);} else {var if_res1562 = true;}if (if_res1562!==false) {var if_res1563 = M0.not(false);} else {var if_res1563 = false;}if (if_res1563!==false) {var if_res1564 = for_loop_24(stms_21,il_3,pos_next_25(pos_78));} else {var if_res1564 = M0.values(stms_21,il_3);}var if_res1565 = if_res1564;} else {var if_res1565 = M0.values(stms_20,il_2);}var if_res1566 = if_res1565;} else {var if_res1566 = M0.values(stms_20,il_2);}return if_res1566;};var if_res1567 = for_loop_24(stms_19,il_1,init_25);} else {var if_res1567 = alt_63();}var if_res1568 = if_res1567;} else {var if_res1568 = alt_63();}return if_res1568;};var p_131 = v_80;if (M0.pair_p(p_131)!==false) {var a_207 = M0.cdr(p_131);var p_85 = a_207;if (M0.pair_p(p_85)!==false) {var a_208 = M0.cdr(p_85);var if_res1569 = M0.list_p(a_208);} else {var if_res1569 = false;}var if_res1570 = if_res1569;} else {var if_res1570 = false;}if (if_res1570!==false) {var p_132 = v_80;var a_153 = M0.car(p_132);var fst_29 = a_153;var d_43 = M0.cdr(p_132);var p_133 = d_43;var a_209 = M0.car(p_133);var b_25 = a_209;var d_61 = M0.cdr(p_133);var xs_25 = d_61;var let_result1571 = M0.values(b_25,xs_25);var b_24 = let_result1571.getAt(0);var xs_24 = let_result1571.getAt(1);var let_result1572 = M0.values(fst_29,b_24,xs_24);var fst_28 = let_result1572.getAt(0);var b_23 = let_result1572.getAt(1);var xs_23 = let_result1572.getAt(2);if (Quote_p(fst_28)!==false) {var if_res1573 = M0.eq_p(Quote_datum(fst_28),$rjs_core.PrimitiveSymbol.make("ref"));} else {var if_res1573 = false;}if (if_res1573!==false) {var let_result1574 = absyn_expr__gt_il(b_23,false);var stms_24 = let_result1574.getAt(0);var il_6 = let_result1574.getAt(1);var let_result1575 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_23);var pos__gt_vals_25 = let_result1575.getAt(0);var pos_pre_inc_23 = let_result1575.getAt(1);var pos_next_26 = let_result1575.getAt(2);var init_26 = let_result1575.getAt(3);var pos_cont_p_26 = let_result1575.getAt(4);var val_cont_p_25 = let_result1575.getAt(5);var all_cont_p_25 = let_result1575.getAt(6);M0.rvoid();var for_loop_25 = function(il_7, pos_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_26!==false) {var if_res1576 = pos_cont_p_26(pos_41);} else {var if_res1576 = true;}if (if_res1576!==false) {var x_39 = pos__gt_vals_25(pos_41);if (all_cont_p_25!==false) {var if_res1577 = function(pos_79) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_25(pos_79,x_39);};} else {var if_res1577 = false;}var let_result1578 = M0.values(x_39,if_res1577);var x_38 = let_result1578.getAt(0);var all_cont_p_by_pos_23 = let_result1578.getAt(1);if (pos_pre_inc_23!==false) {var if_res1579 = pos_pre_inc_23(pos_41);} else {var if_res1579 = pos_41;}var pos_40 = if_res1579;if (val_cont_p_25!==false) {var if_res1580 = val_cont_p_25(x_38);} else {var if_res1580 = true;}if (if_res1580!==false) {var il_9 = il_7;var v_85 = x_38;var v_86 = v_85;var vec_v_32 = M0.struct__gt_vector(v_86);var alt_77 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_86);};if (Quote_p(v_86)!==false) {var s_17 = M0.vector__gt_values(vec_v_32,1);var if_res1581 = M0.values(s_17);} else {var if_res1581 = alt_77();}var s_16 = if_res1581;if (ILValue_p(il_9)!==false) {var if_res1582 = ILRef10_dot_1(ILValue_v(il_9),s_16);} else {var if_res1582 = ILRef10_dot_1(il_9,s_16);}var il_10 = if_res1582;var il_8 = M0.values(il_10);if (all_cont_p_by_pos_23!==false) {var if_res1583 = all_cont_p_by_pos_23(pos_40);} else {var if_res1583 = true;}if (if_res1583!==false) {var if_res1584 = M0.not(false);} else {var if_res1584 = false;}if (if_res1584!==false) {var if_res1585 = for_loop_25(il_8,pos_next_26(pos_40));} else {var if_res1585 = il_8;}var if_res1586 = if_res1585;} else {var if_res1586 = il_7;}var if_res1587 = if_res1586;} else {var if_res1587 = il_7;}return if_res1587;};var if_res1588 = M0.values(stms_24,for_loop_25(il_6,init_26));} else {var if_res1588 = alt_62();}var if_res1589 = if_res1588;} else {var if_res1589 = alt_62();}return if_res1589;};var p_134 = v_80;if (M0.pair_p(p_134)!==false) {var a_210 = M0.cdr(p_134);var p_135 = a_210;if (M0.pair_p(p_135)!==false) {var a_211 = M0.cdr(p_135);var if_res1590 = M0.eq_p($rjs_core.Pair.makeList(),a_211);} else {var if_res1590 = false;}var if_res1591 = if_res1590;} else {var if_res1591 = false;}if (if_res1591!==false) {var p_136 = v_80;var a_212 = M0.car(p_136);var fst_31 = a_212;var d_62 = M0.cdr(p_136);var a_213 = M0.car(d_62);var snd_7 = a_213;var let_result1592 = M0.values(fst_31,snd_7);var fst_30 = let_result1592.getAt(0);var snd_6 = let_result1592.getAt(1);if (Quote_p(fst_30)!==false) {if (Quote_p(snd_6)!==false) {var if_res1593 = M0.eq_p(Quote_datum(fst_30),$rjs_core.PrimitiveSymbol.make("string"));} else {var if_res1593 = false;}var if_res1594 = if_res1593;} else {var if_res1594 = false;}if (if_res1594!==false) {var if_res1595 = M0.values($rjs_core.Pair.makeList(),ILValue12_dot_1(Quote_datum(snd_6)));} else {var if_res1595 = alt_61();}var if_res1596 = if_res1595;} else {var if_res1596 = alt_61();}return if_res1596;};var p_137 = v_80;if (M0.pair_p(p_137)!==false) {var a_214 = M0.cdr(p_137);var p_138 = a_214;if (M0.pair_p(p_138)!==false) {var a_215 = M0.cdr(p_138);var if_res1597 = M0.eq_p($rjs_core.Pair.makeList(),a_215);} else {var if_res1597 = false;}var if_res1598 = if_res1597;} else {var if_res1598 = false;}if (if_res1598!==false) {var p_139 = v_80;var a_216 = M0.car(p_139);var fst_33 = a_216;var d_63 = M0.cdr(p_139);var a_217 = M0.car(d_63);var snd_9 = a_217;var let_result1599 = M0.values(fst_33,snd_9);var fst_32 = let_result1599.getAt(0);var snd_8 = let_result1599.getAt(1);if (Quote_p(fst_32)!==false) {if (Quote_p(snd_8)!==false) {var if_res1600 = M0.eq_p(Quote_datum(fst_32),$rjs_core.PrimitiveSymbol.make("var"));} else {var if_res1600 = false;}var if_res1601 = if_res1600;} else {var if_res1601 = false;}if (if_res1601!==false) {var if_res1602 = M0.values($rjs_core.Pair.makeList(),Quote_datum(snd_8));} else {var if_res1602 = alt_60();}var if_res1603 = if_res1602;} else {var if_res1603 = alt_60();}var if_res1604 = if_res1603;} else {var if_res1604 = alt_46();}var if_res1605 = if_res1604;} else {var if_res1605 = alt_46();}return if_res1605;};if (Set_bang__p(v_67)!==false) {var let_result1606 = M0.vector__gt_values(vec_v_19,1);var id_6 = let_result1606.getAt(0);var e_19 = let_result1606.getAt(1);var let_result1607 = absyn_expr__gt_il(e_19,false);var stms_25 = let_result1607.getAt(0);var v_87 = let_result1607.getAt(1);var if_res1608 = M0.values(append1(stms_25,ILAssign24_dot_1(id_6,v_87)),ILValue12_dot_1(M0.rvoid()));} else {var if_res1608 = alt_45();}return if_res1608;};if (LetValues_p(v_67)!==false) {var let_result1609 = M0.vector__gt_values(vec_v_18,1);var bindings_1 = let_result1609.getAt(0);var body_7 = let_result1609.getAt(1);var let_result1610 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("b")),bindings_1);var pos__gt_vals_26 = let_result1610.getAt(0);var pos_pre_inc_24 = let_result1610.getAt(1);var pos_next_27 = let_result1610.getAt(2);var init_27 = let_result1610.getAt(3);var pos_cont_p_27 = let_result1610.getAt(4);var val_cont_p_26 = let_result1610.getAt(5);var all_cont_p_26 = let_result1610.getAt(6);M0.rvoid();var for_loop_26 = function(stms_26, pos_80) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_27!==false) {var if_res1611 = pos_cont_p_27(pos_80);} else {var if_res1611 = true;}if (if_res1611!==false) {var b_27 = pos__gt_vals_26(pos_80);if (all_cont_p_26!==false) {var if_res1612 = function(pos_81) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_26(pos_81,b_27);};} else {var if_res1612 = false;}var let_result1613 = M0.values(b_27,if_res1612);var b_26 = let_result1613.getAt(0);var all_cont_p_by_pos_24 = let_result1613.getAt(1);if (pos_pre_inc_24!==false) {var if_res1614 = pos_pre_inc_24(pos_80);} else {var if_res1614 = pos_80;}var pos_82 = if_res1614;if (val_cont_p_26!==false) {var if_res1615 = val_cont_p_26(b_26);} else {var if_res1615 = true;}if (if_res1615!==false) {var stms_28 = stms_26;var stms_29 = M0.append(stms_28,absyn_binding__gt_il(b_26));var stms_27 = M0.values(stms_29);if (all_cont_p_by_pos_24!==false) {var if_res1616 = all_cont_p_by_pos_24(pos_82);} else {var if_res1616 = true;}if (if_res1616!==false) {var if_res1617 = M0.not(false);} else {var if_res1617 = false;}if (if_res1617!==false) {var if_res1618 = for_loop_26(stms_27,pos_next_27(pos_82));} else {var if_res1618 = stms_27;}var if_res1619 = if_res1618;} else {var if_res1619 = stms_26;}var if_res1620 = if_res1619;} else {var if_res1620 = stms_26;}return if_res1620;};var binding_stms_0 = for_loop_26($rjs_core.Pair.makeList(),init_27);var body13_0 = sequence_length(body_7);var let_result1621 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),body_7);var pos__gt_vals_27 = let_result1621.getAt(0);var pos_pre_inc_25 = let_result1621.getAt(1);var pos_next_28 = let_result1621.getAt(2);var init_28 = let_result1621.getAt(3);var pos_cont_p_28 = let_result1621.getAt(4);var val_cont_p_27 = let_result1621.getAt(5);var all_cont_p_27 = let_result1621.getAt(6);var start_11 = 0;var end_5 = body13_0;var inc_1 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1622 = M0.rvoid();} else {var if_res1622 = check_range(start_11,end_5,inc_1);}if_res1622;var for_loop_27 = function(stms_30, rv_3, pos_83, pos_84) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_28!==false) {var if_res1623 = pos_cont_p_28(pos_83);} else {var if_res1623 = true;}if (if_res1623!==false) {var if_res1624 = M0.__lt_(pos_84,end_5);} else {var if_res1624 = false;}if (if_res1624!==false) {var e_21 = pos__gt_vals_27(pos_83);if (all_cont_p_27!==false) {var if_res1625 = function(pos_85) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_27(pos_85,e_21);};} else {var if_res1625 = false;}var let_result1626 = M0.values(e_21,if_res1625);var e_20 = let_result1626.getAt(0);var all_cont_p_by_pos_25 = let_result1626.getAt(1);if (pos_pre_inc_25!==false) {var if_res1627 = pos_pre_inc_25(pos_83);} else {var if_res1627 = pos_83;}var pos_86 = if_res1627;var body14_0 = pos_84;if (val_cont_p_27!==false) {var if_res1628 = val_cont_p_27(e_20);} else {var if_res1628 = true;}if (if_res1628!==false) {var if_res1629 = true;} else {var if_res1629 = false;}if (if_res1629!==false) {var stms_32 = stms_30;var last_p_1 = M0.equal_p(M0.sub1(body13_0),body14_0);if (last_p_1!==false) {var if_res1630 = overwrite_mark_frame_p_0;} else {var if_res1630 = false;}var let_result1631 = absyn_expr__gt_il(e_20,if_res1630);var s_18 = let_result1631.getAt(0);var nv_0 = let_result1631.getAt(1);if (last_p_1!==false) {var if_res1632 = M0.values(M0.append(stms_32,s_18),nv_0);} else {var if_res1632 = M0.values(M0.append(stms_32,s_18,M0.list(nv_0)),nv_0);}var let_result1633 = if_res1632;var stms_33 = let_result1633.getAt(0);var rv_5 = let_result1633.getAt(1);var let_result1634 = M0.values(stms_33,rv_5);var stms_31 = let_result1634.getAt(0);var rv_4 = let_result1634.getAt(1);if (all_cont_p_by_pos_25!==false) {var if_res1635 = all_cont_p_by_pos_25(pos_86);} else {var if_res1635 = true;}if (if_res1635!==false) {var if_res1636 = M0.not(false);} else {var if_res1636 = false;}if (if_res1636!==false) {var if_res1637 = for_loop_27(stms_31,rv_4,pos_next_28(pos_86),pos_84+inc_1);} else {var if_res1637 = M0.values(stms_31,rv_4);}var if_res1638 = if_res1637;} else {var if_res1638 = M0.values(stms_30,rv_3);}var if_res1639 = if_res1638;} else {var if_res1639 = M0.values(stms_30,rv_3);}return if_res1639;};var if_res1640 = for_loop_27(binding_stms_0,ILValue12_dot_1(M0.rvoid()),init_28,start_11);} else {var if_res1640 = alt_44();}return if_res1640;};if (If_p(v_67)!==false) {var let_result1641 = M0.vector__gt_values(vec_v_17,1);var pred_e_0 = let_result1641.getAt(0);var t_branch_0 = let_result1641.getAt(1);var f_branch_0 = let_result1641.getAt(2);var let_result1642 = absyn_expr__gt_il(pred_e_0,false);var ps_0 = let_result1642.getAt(0);var pe_0 = let_result1642.getAt(1);var let_result1643 = absyn_expr__gt_il(t_branch_0,overwrite_mark_frame_p_0);var ts_0 = let_result1643.getAt(0);var te_0 = let_result1643.getAt(1);var let_result1644 = absyn_expr__gt_il(f_branch_0,overwrite_mark_frame_p_0);var fs_2 = let_result1644.getAt(0);var fe_0 = let_result1644.getAt(1);var result_id_1 = fresh_id($rjs_core.PrimitiveSymbol.make("if_res"));var if_res1645 = M0.values(M0.append(ps_0,M0.list(ILIf22_dot_1(ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("!=="),M0.list(pe_0,ILValue12_dot_1(false))),append1(ts_0,ILVarDec20_dot_1(result_id_1,te_0)),append1(fs_2,ILVarDec20_dot_1(result_id_1,fe_0))))),result_id_1);} else {var if_res1645 = alt_43();}return if_res1645;};if (CaseLambda_p(v_67)!==false) {var clauses_1 = M0.vector__gt_values(vec_v_16,1);if (case_lambda_has_dead_clause_p(expr_6)!==false) {log_rjs_warning($rjs_core.UString.make("found a case-lambda with dead-clause"));var if_res1646 = M0.values($rjs_core.Pair.makeList(),clauses_1);} else {var if_res1646 = M0.values(filter(function(l_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.number_p(lambda_arity(l_23));},clauses_1),filter(function(l_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.number_p(lambda_arity(l_24)));},clauses_1));}var let_result1647 = if_res1646;var fixed_lams_0 = let_result1647.getAt(0);var rest_lams_0 = let_result1647.getAt(1);var let_result1648 = expand_normal_case_lambda(fixed_lams_0,rest_lams_0);var stms_34 = let_result1648.getAt(0);var val_7 = let_result1648.getAt(1);var let_result1649 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("c")),resolve_procedure_arities(map2(lambda_arity,clauses_1)));var pos__gt_vals_28 = let_result1649.getAt(0);var pos_pre_inc_26 = let_result1649.getAt(1);var pos_next_29 = let_result1649.getAt(2);var init_29 = let_result1649.getAt(3);var pos_cont_p_29 = let_result1649.getAt(4);var val_cont_p_28 = let_result1649.getAt(5);var all_cont_p_28 = let_result1649.getAt(6);M0.rvoid();var for_loop_28 = function(fold_var_12, pos_87) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_29!==false) {var if_res1650 = pos_cont_p_29(pos_87);} else {var if_res1650 = true;}if (if_res1650!==false) {var c_13 = pos__gt_vals_28(pos_87);if (all_cont_p_28!==false) {var if_res1651 = function(pos_88) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_28(pos_88,c_13);};} else {var if_res1651 = false;}var let_result1652 = M0.values(c_13,if_res1651);var c_12 = let_result1652.getAt(0);var all_cont_p_by_pos_26 = let_result1652.getAt(1);if (pos_pre_inc_26!==false) {var if_res1653 = pos_pre_inc_26(pos_87);} else {var if_res1653 = pos_87;}var pos_89 = if_res1653;if (val_cont_p_28!==false) {var if_res1654 = val_cont_p_28(c_12);} else {var if_res1654 = true;}if (if_res1654!==false) {var fold_var_14 = fold_var_12;if (M0.arity_at_least_p(c_12)!==false) {var let_result1655 = absyn_expr__gt_il(App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("make-arity-at-least"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1(M0.arity_at_least_value(c_12)))),false);var __7 = let_result1655.getAt(0);var val_8 = let_result1655.getAt(1);var if_res1657 = val_8;} else {if (M0.number_p(c_12)!==false) {var if_res1656 = ILValue12_dot_1(c_12);} else {var if_res1656 = M0.rvoid();}var if_res1657 = if_res1656;}var fold_var_15 = M0.cons(if_res1657,fold_var_14);var fold_var_13 = M0.values(fold_var_15);if (all_cont_p_by_pos_26!==false) {var if_res1658 = all_cont_p_by_pos_26(pos_89);} else {var if_res1658 = true;}if (if_res1658!==false) {var if_res1659 = M0.not(false);} else {var if_res1659 = false;}if (if_res1659!==false) {var if_res1660 = for_loop_28(fold_var_13,pos_next_29(pos_89));} else {var if_res1660 = fold_var_13;}var if_res1661 = if_res1660;} else {var if_res1661 = fold_var_12;}var if_res1662 = if_res1661;} else {var if_res1662 = fold_var_12;}return if_res1662;};var arities_0 = ILArray8_dot_1(reverse$1(for_loop_28(M0.rnull,init_29)));var if_res1663 = M0.values(stms_34,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("attachProcedureArity")),M0.list(val_7,arities_0)));} else {var if_res1663 = alt_42();}return if_res1663;};if (Lambda_p(v_67)!==false) {var let_result1664 = M0.vector__gt_values(vec_v_15,1);var formals_7 = let_result1664.getAt(0);var body_8 = let_result1664.getAt(1);var unchecked_p_0 = let_result1664.getAt(2);var ___gt_jslist_0 = function(f_31) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("->jslist");return ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.listFromArray")),M0.list(f_31));};var maybe_make_checked_formals_0 = function(formals_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("maybe-make-checked-formals");var or_part_74 = unchecked_p_0;if (or_part_74!==false) {var if_res1665 = or_part_74;} else {var if_res1665 = skip_arity_checks_p();}if (if_res1665!==false) {var if_res1666 = formals_8;} else {var if_res1666 = ILCheckedFormals4_dot_1(formals_8);}return if_res1666;};if (M0.symbol_p(formals_7)!==false) {var in_formals_1 = fresh_id(formals_7);var if_res1669 = M0.values(in_formals_1,M0.list(ILVarDec20_dot_1(formals_7,___gt_jslist_0(in_formals_1))));} else {if (M0.list_p(formals_7)!==false) {var if_res1668 = M0.values(formals_7,$rjs_core.Pair.makeList());} else {if (cons_p(formals_7)!==false) {var fi_0 = M0.car(formals_7);var fp_0 = M0.cdr(formals_7);var in_fp_0 = fresh_id(fp_0);var if_res1667 = M0.values(M0.cons(fi_0,in_fp_0),M0.list(ILVarDec20_dot_1(fp_0,___gt_jslist_0(in_fp_0))));} else {var if_res1667 = M0.rvoid();}var if_res1668 = if_res1667;}var if_res1669 = if_res1668;}var let_result1670 = if_res1669;var in_formals_0 = let_result1670.getAt(0);var stms_formals_init_0 = let_result1670.getAt(1);var body18_0 = sequence_length(body_8);var let_result1671 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),body_8);var pos__gt_vals_29 = let_result1671.getAt(0);var pos_pre_inc_27 = let_result1671.getAt(1);var pos_next_30 = let_result1671.getAt(2);var init_30 = let_result1671.getAt(3);var pos_cont_p_30 = let_result1671.getAt(4);var val_cont_p_29 = let_result1671.getAt(5);var all_cont_p_29 = let_result1671.getAt(6);var start_12 = 0;var end_6 = body18_0;var inc_2 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1672 = M0.rvoid();} else {var if_res1672 = check_range(start_12,end_6,inc_2);}if_res1672;var for_loop_29 = function(stms_35, rv_6, pos_90, pos_91) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_30!==false) {var if_res1673 = pos_cont_p_30(pos_90);} else {var if_res1673 = true;}if (if_res1673!==false) {var if_res1674 = M0.__lt_(pos_91,end_6);} else {var if_res1674 = false;}if (if_res1674!==false) {var e_23 = pos__gt_vals_29(pos_90);if (all_cont_p_29!==false) {var if_res1675 = function(pos_92) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_29(pos_92,e_23);};} else {var if_res1675 = false;}var let_result1676 = M0.values(e_23,if_res1675);var e_22 = let_result1676.getAt(0);var all_cont_p_by_pos_27 = let_result1676.getAt(1);if (pos_pre_inc_27!==false) {var if_res1677 = pos_pre_inc_27(pos_90);} else {var if_res1677 = pos_90;}var pos_93 = if_res1677;var body19_0 = pos_91;if (val_cont_p_29!==false) {var if_res1678 = val_cont_p_29(e_22);} else {var if_res1678 = true;}if (if_res1678!==false) {var if_res1679 = true;} else {var if_res1679 = false;}if (if_res1679!==false) {var stms_37 = stms_35;var last_p_2 = M0.equal_p(M0.sub1(body18_0),body19_0);if (last_p_2!==false) {var if_res1680 = overwrite_mark_frame_p_0;} else {var if_res1680 = false;}var let_result1681 = absyn_expr__gt_il(e_22,if_res1680);var s_19 = let_result1681.getAt(0);var v_88 = let_result1681.getAt(1);if (last_p_2!==false) {var if_res1682 = M0.values(M0.append(stms_37,s_19),v_88);} else {var if_res1682 = M0.values(M0.append(stms_37,s_19,M0.list(v_88)),v_88);}var let_result1683 = if_res1682;var stms_38 = let_result1683.getAt(0);var rv_8 = let_result1683.getAt(1);var let_result1684 = M0.values(stms_38,rv_8);var stms_36 = let_result1684.getAt(0);var rv_7 = let_result1684.getAt(1);if (all_cont_p_by_pos_27!==false) {var if_res1685 = all_cont_p_by_pos_27(pos_93);} else {var if_res1685 = true;}if (if_res1685!==false) {var if_res1686 = M0.not(false);} else {var if_res1686 = false;}if (if_res1686!==false) {var if_res1687 = for_loop_29(stms_36,rv_7,pos_next_30(pos_93),pos_91+inc_2);} else {var if_res1687 = M0.values(stms_36,rv_7);}var if_res1688 = if_res1687;} else {var if_res1688 = M0.values(stms_35,rv_6);}var if_res1689 = if_res1688;} else {var if_res1689 = M0.values(stms_35,rv_6);}return if_res1689;};var let_result1690 = for_loop_29($rjs_core.Pair.makeList(),ILValue12_dot_1(M0.rvoid()),init_30,start_12);var body_stms_0 = let_result1690.getAt(0);var body_value_0 = let_result1690.getAt(1);var lambda_expr_0 = ILLambda5_dot_1(maybe_make_checked_formals_0(in_formals_0),M0.append(stms_formals_init_0,body_stms_0,M0.list(ILReturn26_dot_1(body_value_0))));var temp1692 = $rjs_core.Pair.makeList();if (variadic_lambda_p(expr_6)!==false) {var if_res1691 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("attachProcedureArity")),M0.list(lambda_expr_0));} else {var if_res1691 = lambda_expr_0;}var if_res1693 = M0.values(temp1692,if_res1691);} else {var if_res1693 = alt_41();}return if_res1693;};var absyn_binding__gt_il = function(b_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_89 = b_28;var v_90 = v_89;var alt_78 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_90);};var p_140 = v_90;if (M0.pair_p(p_140)!==false) {var if_res1694 = true;} else {var if_res1694 = false;}if (if_res1694!==false) {var p_141 = v_90;var a_218 = M0.car(p_141);var args_18 = a_218;var d_64 = M0.cdr(p_141);var expr_9 = d_64;var let_result1695 = M0.values(args_18,expr_9);var args_17 = let_result1695.getAt(0);var expr_8 = let_result1695.getAt(1);var if_res1696 = M0.values(args_17,expr_8);} else {var if_res1696 = alt_78();}var let_result1697 = if_res1696;var args_16 = let_result1697.getAt(0);var expr_7 = let_result1697.getAt(1);var let_result1698 = absyn_expr__gt_il(expr_7,false);var stms_39 = let_result1698.getAt(0);var v_91 = let_result1698.getAt(1);var v_92 = args_16;var alt_79 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var result_id_2 = fresh_id($rjs_core.PrimitiveSymbol.make("let_result"));var start_13 = 0;var end_7 = M0.length(args_16);var inc_3 = 1;var let_result1699 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("arg")),args_16);var pos__gt_vals_30 = let_result1699.getAt(0);var pos_pre_inc_28 = let_result1699.getAt(1);var pos_next_31 = let_result1699.getAt(2);var init_31 = let_result1699.getAt(3);var pos_cont_p_31 = let_result1699.getAt(4);var val_cont_p_30 = let_result1699.getAt(5);var all_cont_p_30 = let_result1699.getAt(6);if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1700 = M0.rvoid();} else {var if_res1700 = check_range(start_13,end_7,inc_3);}if_res1700;M0.rvoid();var for_loop_30 = function(fold_var_16, pos_94, pos_95) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.__lt_(pos_94,end_7)!==false) {if (pos_cont_p_31!==false) {var if_res1701 = pos_cont_p_31(pos_95);} else {var if_res1701 = true;}var if_res1702 = if_res1701;} else {var if_res1702 = false;}if (if_res1702!==false) {var i_54 = pos_94;var arg_3 = pos__gt_vals_30(pos_95);if (all_cont_p_30!==false) {var if_res1703 = function(pos_96) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_30(pos_96,arg_3);};} else {var if_res1703 = false;}var let_result1704 = M0.values(arg_3,if_res1703);var arg_2 = let_result1704.getAt(0);var all_cont_p_by_pos_28 = let_result1704.getAt(1);if (pos_pre_inc_28!==false) {var if_res1705 = pos_pre_inc_28(pos_95);} else {var if_res1705 = pos_95;}var pos_97 = if_res1705;if (val_cont_p_30!==false) {var if_res1706 = val_cont_p_30(arg_2);} else {var if_res1706 = true;}if (if_res1706!==false) {var fold_var_18 = fold_var_16;var fold_var_19 = M0.cons(ILVarDec20_dot_1(arg_2,ILApp7_dot_1(ILRef10_dot_1(result_id_2,$rjs_core.PrimitiveSymbol.make("getAt")),M0.list(ILValue12_dot_1(i_54)))),fold_var_18);var fold_var_17 = M0.values(fold_var_19);if (all_cont_p_by_pos_28!==false) {var if_res1707 = all_cont_p_by_pos_28(pos_97);} else {var if_res1707 = true;}if (if_res1707!==false) {var if_res1708 = M0.not(false);} else {var if_res1708 = false;}if (if_res1708!==false) {var if_res1709 = for_loop_30(fold_var_17,pos_94+inc_3,pos_next_31(pos_97));} else {var if_res1709 = fold_var_17;}var if_res1710 = if_res1709;} else {var if_res1710 = fold_var_16;}var if_res1711 = if_res1710;} else {var if_res1711 = fold_var_16;}return if_res1711;};var binding_stms_1 = reverse$1(for_loop_30(M0.rnull,start_13,init_31));return M0.append(stms_39,M0.cons(ILVarDec20_dot_1(result_id_2,v_91),binding_stms_1));};var p_142 = v_92;if (M0.pair_p(p_142)!==false) {var a_219 = M0.cdr(p_142);var if_res1712 = M0.eq_p($rjs_core.Pair.makeList(),a_219);} else {var if_res1712 = false;}if (if_res1712!==false) {var a_221 = M0.car(v_92);var a_220 = a_221;var if_res1713 = append1(stms_39,ILVarDec20_dot_1(a_220,v_91));} else {var if_res1713 = alt_79();}return if_res1713;};var absyn_value__gt_il = function(d_65) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Quote_p(d_65)!==false) {var if_res1741 = absyn_value__gt_il(Quote_datum(d_65));} else {if (M0.string_p(d_65)!==false) {var if_res1740 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("UString.make")),M0.list(ILValue12_dot_1(d_65)));} else {if (M0.symbol_p(d_65)!==false) {var if_res1739 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("PrimitiveSymbol.make")),M0.list(ILValue12_dot_1(M0.symbol__gt_string(d_65))));} else {if (M0.keyword_p(d_65)!==false) {var if_res1738 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Keyword.make")),M0.list(ILValue12_dot_1(M0.keyword__gt_string(d_65))));} else {if (M0.list_p(d_65)!==false) {var if_res1737 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.makeList")),map2(absyn_value__gt_il,d_65));} else {if (empty_p(d_65)!==false) {var if_res1736 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.EMPTY"));} else {if (cons_p(d_65)!==false) {var if_res1735 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.make")),M0.list(absyn_value__gt_il(M0.car(d_65)),absyn_value__gt_il(M0.cdr(d_65))));} else {if (M0.vector_p(d_65)!==false) {var if_res1734 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Vector.make")),M0.list(ILArray8_dot_1(map2(absyn_value__gt_il,M0.vector__gt_list(d_65)))));} else {if (M0.hash_p(d_65)!==false) {if (M0.hash_eq_p(d_65)!==false) {var if_res1716 = $rjs_core.PrimitiveSymbol.make("Hash.makeEq");} else {if (M0.hash_eqv_p(d_65)!==false) {var if_res1715 = $rjs_core.PrimitiveSymbol.make("Hash.makeEqv");} else {if (M0.hash_equal_p(d_65)!==false) {var if_res1714 = $rjs_core.PrimitiveSymbol.make("Hash.makeEqual");} else {var if_res1714 = M0.error($rjs_core.PrimitiveSymbol.make("assemble-value"),$rjs_core.UString.make("unknown hash type"));}var if_res1715 = if_res1714;}var if_res1716 = if_res1715;}var maker_0 = if_res1716;var mutable_0 = M0.not(M0.immutable_p(d_65));var temp1721 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),maker_0);var ht_7 = d_65;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1717 = M0.rvoid();} else {var if_res1717 = check_in_hash(ht_7);}if_res1717;var for_loop_31 = function(fold_var_20, i_55) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_55!==false) {var let_result1718 = M0.hash_iterate_key_plus_value(ht_7,i_55);var key_12 = let_result1718.getAt(0);var value_4 = let_result1718.getAt(1);var fold_var_22 = fold_var_20;var fold_var_23 = M0.cons(ILArray8_dot_1(M0.list(absyn_value__gt_il(key_12),absyn_value__gt_il(value_4))),fold_var_22);var fold_var_21 = M0.values(fold_var_23);if (M0.not(false)!==false) {var if_res1719 = for_loop_31(fold_var_21,M0.hash_iterate_next(ht_7,i_55));} else {var if_res1719 = fold_var_21;}var if_res1720 = if_res1719;} else {var if_res1720 = fold_var_20;}return if_res1720;};var if_res1733 = ILApp7_dot_1(temp1721,M0.list(ILArray8_dot_1(reverse$1(for_loop_31(M0.rnull,M0.hash_iterate_first(ht_7)))),ILValue12_dot_1(mutable_0)));} else {if (M0.bytes_p(d_65)!==false) {var if_res1732 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Bytes.fromIntArray")),M0.list(ILArray8_dot_1(map2(ILValue12_dot_1,M0.bytes__gt_list(d_65)))));} else {if (M0.box_p(d_65)!==false) {var if_res1731 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Box.make")),M0.list(absyn_value__gt_il(M0.unbox(d_65))));} else {if (M0.char_p(d_65)!==false) {var if_res1730 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Char.charFromCodepoint")),M0.list(absyn_value__gt_il(M0.char__gt_integer(d_65))));} else {var or_part_75 = M0.regexp_p(d_65);if (or_part_75!==false) {var if_res1722 = or_part_75;} else {var if_res1722 = M0.byte_regexp_p(d_65);}if (if_res1722!==false) {var v_93 = M0.object_name(d_65);var temp1724 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Regexp.fromString"));if (M0.bytes_p(v_93)!==false) {var if_res1723 = M0.bytes__gt_string_by_utf_8(v_93);} else {var if_res1723 = v_93;}var if_res1729 = ILApp7_dot_1(temp1724,M0.list(ILValue12_dot_1(if_res1723)));} else {var or_part_76 = M0.integer_p(d_65);if (or_part_76!==false) {var if_res1727 = or_part_76;} else {var or_part_77 = M0.boolean_p(d_65);if (or_part_77!==false) {var if_res1726 = or_part_77;} else {var or_part_78 = M0.void_p(d_65);if (or_part_78!==false) {var if_res1725 = or_part_78;} else {var if_res1725 = M0.real_p(d_65);}var if_res1726 = if_res1725;}var if_res1727 = if_res1726;}if (if_res1727!==false) {var if_res1728 = ILValue12_dot_1(d_65);} else {var if_res1728 = M0.error(__a($rjs_core.UString.make("unsupported value"),d_65));}var if_res1729 = if_res1728;}var if_res1730 = if_res1729;}var if_res1731 = if_res1730;}var if_res1732 = if_res1731;}var if_res1733 = if_res1732;}var if_res1734 = if_res1733;}var if_res1735 = if_res1734;}var if_res1736 = if_res1735;}var if_res1737 = if_res1736;}var if_res1738 = if_res1737;}var if_res1739 = if_res1738;}var if_res1740 = if_res1739;}var if_res1741 = if_res1740;}return if_res1741;};var expand_normal_case_lambda = function(fixed_lams_1, rest_lams_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fixed_lam_names_0 = build_list(M0.length(fixed_lams_1),function(__8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fresh_id($rjs_core.PrimitiveSymbol.make("cl"));});var rest_lam_names_0 = build_list(M0.length(rest_lams_1),function(__9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fresh_id($rjs_core.PrimitiveSymbol.make("cl"));});var fixed_lam_name_0 = fresh_id($rjs_core.PrimitiveSymbol.make("fixed-lam"));var fixed_lam_map_0 = ILObject9_dot_1(map2(function(id_7, lam_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_4 = lambda_arity(lam_3);if (M0.number_p(arity_4)!==false) {var if_res1742 = M0.cons(M0.string__gt_symbol(__a(arity_4)),id_7);} else {var if_res1742 = M0.error($rjs_core.PrimitiveSymbol.make("expand-normal-case-lambda"),$rjs_core.UString.make("assertion failed"));}return if_res1742;},fixed_lam_names_0,fixed_lams_1));var __times_null_times__0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("null"))));var __times_arguments_times__0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("arguments"))));var loop_55 = function(lams_times__0, names_times__0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_94 = M0.list(lams_times__0,names_times__0);var alt_80 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_81 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_94);};var p_143 = v_94;if (M0.pair_p(p_143)!==false) {var a_222 = M0.car(p_143);var p_144 = a_222;if (M0.pair_p(p_144)!==false) {var if_res1743 = true;} else {var if_res1743 = false;}if (if_res1743!==false) {var a_223 = M0.cdr(p_143);var p_145 = a_223;if (M0.pair_p(p_145)!==false) {var a_224 = M0.car(p_145);var p_146 = a_224;if (M0.pair_p(p_146)!==false) {var if_res1744 = true;} else {var if_res1744 = false;}if (if_res1744!==false) {var a_225 = M0.cdr(p_145);var if_res1745 = M0.eq_p($rjs_core.Pair.makeList(),a_225);} else {var if_res1745 = false;}var if_res1746 = if_res1745;} else {var if_res1746 = false;}var if_res1747 = if_res1746;} else {var if_res1747 = false;}var if_res1748 = if_res1747;} else {var if_res1748 = false;}if (if_res1748!==false) {var p_147 = v_94;var a_226 = M0.car(p_147);var p_148 = a_226;var a_227 = M0.car(p_148);var lh_2 = a_227;var d_66 = M0.cdr(p_148);var lt_2 = d_66;var let_result1749 = M0.values(lh_2,lt_2);var lh_1 = let_result1749.getAt(0);var lt_1 = let_result1749.getAt(1);var d_67 = M0.cdr(p_147);var a_228 = M0.car(d_67);var p_149 = a_228;var a_229 = M0.car(p_149);var nh_2 = a_229;var d_68 = M0.cdr(p_149);var nt_2 = d_68;var let_result1750 = M0.values(nh_2,nt_2);var nh_1 = let_result1750.getAt(0);var nt_1 = let_result1750.getAt(1);var let_result1751 = M0.values(lh_1,lt_1,nh_1,nt_1);var lh_0 = let_result1751.getAt(0);var lt_0 = let_result1751.getAt(1);var nh_0 = let_result1751.getAt(2);var nt_0 = let_result1751.getAt(3);var arguments_length_0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("ref")),LocalIdent6_dot_1(nh_0),Quote7_dot_1($rjs_core.PrimitiveSymbol.make("length"))));var if_res1752 = If12_dot_1(get_formals_predicate(lh_0)(arguments_length_0),App9_dot_1(App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("ref")),LocalIdent6_dot_1(nh_0),Quote7_dot_1($rjs_core.PrimitiveSymbol.make("apply")))),M0.list(__times_null_times__0,__times_arguments_times__0)),loop_55(lt_0,nt_0));} else {var if_res1752 = alt_81();}return if_res1752;};var p_150 = v_94;if (M0.pair_p(p_150)!==false) {var a_230 = M0.car(p_150);if (M0.eq_p($rjs_core.Pair.makeList(),a_230)!==false) {var a_231 = M0.cdr(p_150);var p_151 = a_231;if (M0.pair_p(p_151)!==false) {var a_232 = M0.car(p_151);if (M0.eq_p($rjs_core.Pair.makeList(),a_232)!==false) {var a_233 = M0.cdr(p_151);var if_res1753 = M0.eq_p($rjs_core.Pair.makeList(),a_233);} else {var if_res1753 = false;}var if_res1754 = if_res1753;} else {var if_res1754 = false;}var if_res1755 = if_res1754;} else {var if_res1755 = false;}var if_res1756 = if_res1755;} else {var if_res1756 = false;}if (if_res1756!==false) {var if_res1757 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("error"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.UString.make("case-lambda: invalid case"))));} else {var if_res1757 = alt_80();}return if_res1757;};var let_result1758 = absyn_expr__gt_il(loop_55(rest_lams_1,rest_lam_names_0),false);var var_lam_stms_0 = let_result1758.getAt(0);var var_lam_val_0 = let_result1758.getAt(1);var dispatch_stms_0 = M0.list(ILVarDec20_dot_1(fixed_lam_name_0,ILIndex11_dot_1(fixed_lam_map_0,ILRef10_dot_1(ILArguments18_dot_1(),$rjs_core.PrimitiveSymbol.make("length")))),ILIf22_dot_1(ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("!=="),M0.list(fixed_lam_name_0,ILUndefined17_dot_1())),M0.list(ILReturn26_dot_1(ILApp7_dot_1(ILRef10_dot_1(fixed_lam_name_0,$rjs_core.PrimitiveSymbol.make("apply")),M0.list(ILNull16_dot_1(),ILArguments18_dot_1())))),append1(var_lam_stms_0,ILReturn26_dot_1(var_lam_val_0))));var make_lam_0 = function(id_8, lam_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-lam");var let_result1759 = absyn_expr__gt_il(lam_4,false);var stms_40 = let_result1759.getAt(0);var lam_expr_0 = let_result1759.getAt(1);stms_40;return ILVarDec20_dot_1(id_8,lam_expr_0);};return M0.values(M0.append(map2(make_lam_0,fixed_lam_names_0,fixed_lams_1),map2(make_lam_0,rest_lam_names_0,rest_lams_1)),ILLambda5_dot_1($rjs_core.Pair.makeList(),dispatch_stms_0));};var case_lambda_has_dead_clause_p = function(clam_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1760 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("lam")),CaseLambda_clauses(clam_0));var pos__gt_vals_31 = let_result1760.getAt(0);var pos_pre_inc_29 = let_result1760.getAt(1);var pos_next_32 = let_result1760.getAt(2);var init_32 = let_result1760.getAt(3);var pos_cont_p_32 = let_result1760.getAt(4);var val_cont_p_31 = let_result1760.getAt(5);var all_cont_p_31 = let_result1760.getAt(6);M0.rvoid();var for_loop_32 = function(res_9, least_var_arity_0, pos_98) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_32!==false) {var if_res1761 = pos_cont_p_32(pos_98);} else {var if_res1761 = true;}if (if_res1761!==false) {var lam_6 = pos__gt_vals_31(pos_98);if (all_cont_p_31!==false) {var if_res1762 = function(pos_99) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_31(pos_99,lam_6);};} else {var if_res1762 = false;}var let_result1763 = M0.values(lam_6,if_res1762);var lam_5 = let_result1763.getAt(0);var all_cont_p_by_pos_29 = let_result1763.getAt(1);if (pos_pre_inc_29!==false) {var if_res1764 = pos_pre_inc_29(pos_98);} else {var if_res1764 = pos_98;}var pos_100 = if_res1764;if (val_cont_p_31!==false) {var if_res1765 = val_cont_p_31(lam_5);} else {var if_res1765 = true;}if (if_res1765!==false) {var res_11 = res_9;var least_var_arity_2 = least_var_arity_0;var arity_5 = lambda_arity(lam_5);if (M0.number_p(arity_5)!==false) {var if_res1766 = M0.__lt_(arity_5,least_var_arity_2);} else {var if_res1766 = false;}if (if_res1766!==false) {var if_res1771 = M0.values(res_11,least_var_arity_2);} else {if (M0.number_p(arity_5)!==false) {var if_res1770 = M0.values(true,least_var_arity_2);} else {if (M0.arity_at_least_p(arity_5)!==false) {var if_res1767 = M0.__lt_(M0.arity_at_least_value(arity_5),least_var_arity_2);} else {var if_res1767 = false;}if (if_res1767!==false) {var if_res1769 = M0.values(res_11,M0.arity_at_least_value(arity_5));} else {if (M0.arity_at_least_p(arity_5)!==false) {var if_res1768 = M0.values(true,least_var_arity_2);} else {var if_res1768 = M0.rvoid();}var if_res1769 = if_res1768;}var if_res1770 = if_res1769;}var if_res1771 = if_res1770;}var let_result1772 = if_res1771;var res_12 = let_result1772.getAt(0);var least_var_arity_3 = let_result1772.getAt(1);var let_result1773 = M0.values(res_12,least_var_arity_3);var res_10 = let_result1773.getAt(0);var least_var_arity_1 = let_result1773.getAt(1);if (all_cont_p_by_pos_29!==false) {var if_res1774 = all_cont_p_by_pos_29(pos_100);} else {var if_res1774 = true;}if (if_res1774!==false) {var if_res1775 = M0.not(false);} else {var if_res1775 = false;}if (if_res1775!==false) {var if_res1776 = for_loop_32(res_10,least_var_arity_1,pos_next_32(pos_100));} else {var if_res1776 = M0.values(res_10,least_var_arity_1);}var if_res1777 = if_res1776;} else {var if_res1777 = M0.values(res_9,least_var_arity_0);}var if_res1778 = if_res1777;} else {var if_res1778 = M0.values(res_9,least_var_arity_0);}return if_res1778;};var let_result1779 = for_loop_32(false,Infinity,init_32);var result_11 = let_result1779.getAt(0);var __10 = let_result1779.getAt(1);return result_11;};var get_formals_predicate = function(c_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var frmls_1 = Lambda_formals(c_14);if (M0.symbol_p(frmls_1)!==false) {var if_res1782 = function(__11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return Quote7_dot_1(true);};} else {if (M0.list_p(frmls_1)!==false) {var if_res1781 = function(v_95) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("equal?"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(v_95,Quote7_dot_1(M0.length(frmls_1))));};} else {if (cons_p(frmls_1)!==false) {var if_res1780 = function(v_96) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make(">="),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(v_96,Quote7_dot_1(M0.sub1(M0.length(improper__gt_proper(frmls_1))))));};} else {var if_res1780 = M0.rvoid();}var if_res1781 = if_res1780;}var if_res1782 = if_res1781;}return if_res1782;};var resolve_procedure_arities = function(arities_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_lt__0 = function(a_234, b_29) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity<");if (M0.arity_at_least_p(a_234)!==false) {var if_res1784 = M0.arity_at_least_value(a_234);} else {var if_res1784 = a_234;}if (M0.arity_at_least_p(b_29)!==false) {var if_res1783 = M0.arity_at_least_value(b_29);} else {var if_res1783 = b_29;}return M0.__lt_(if_res1784,if_res1783);};var arity_equal_p_0 = function(a_235, b_30) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity-equal?");if (M0.not(arity_lt__0(a_235,b_30))!==false) {var if_res1785 = M0.not(arity_lt__0(b_30,a_235));} else {var if_res1785 = false;}return if_res1785;};var loop_56 = function(arities_times__0, result_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_97 = arities_times__0;var alt_82 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_83 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_84 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_97);};var p_152 = v_97;if (M0.pair_p(p_152)!==false) {var if_res1786 = true;} else {var if_res1786 = false;}if (if_res1786!==false) {var p_153 = v_97;var a_236 = M0.car(p_153);var hd_9 = a_236;var d_69 = M0.cdr(p_153);var tl_4 = d_69;var let_result1787 = M0.values(hd_9,tl_4);var hd_8 = let_result1787.getAt(0);var tl_3 = let_result1787.getAt(1);if (cons_p(result_12)!==false) {var if_res1788 = arity_equal_p_0(M0.car(result_12),hd_8);} else {var if_res1788 = false;}if (if_res1788!==false) {var if_res1789 = result_12;} else {var if_res1789 = M0.cons(hd_8,result_12);}var if_res1790 = loop_56(tl_3,if_res1789);} else {var if_res1790 = alt_84();}return if_res1790;};var p_154 = v_97;if (M0.pair_p(p_154)!==false) {var if_res1791 = true;} else {var if_res1791 = false;}if (if_res1791!==false) {var p_155 = v_97;var a_237 = M0.car(p_155);var hd_11 = a_237;var d_70 = M0.cdr(p_155);var tl_6 = d_70;var let_result1792 = M0.values(hd_11,tl_6);var hd_10 = let_result1792.getAt(0);var tl_5 = let_result1792.getAt(1);if (M0.arity_at_least_p(hd_10)!==false) {if (cons_p(result_12)!==false) {var if_res1793 = arity_equal_p_0(M0.car(result_12),hd_10);} else {var if_res1793 = false;}if (if_res1793!==false) {var if_res1794 = M0.cons(hd_10,M0.cdr(result_12));} else {var if_res1794 = M0.cons(hd_10,result_12);}var if_res1795 = reverse$1(if_res1794);} else {var if_res1795 = alt_83();}var if_res1796 = if_res1795;} else {var if_res1796 = alt_83();}return if_res1796;};if (M0.eq_p($rjs_core.Pair.makeList(),v_97)!==false) {var if_res1797 = reverse$1(result_12);} else {var if_res1797 = alt_82();}return if_res1797;};var arities23_0 = arities_1;var arity_lt_24_0 = arity_lt__0;return loop_56(sort_dot_1(false,false,arities23_0,arity_lt_24_0),$rjs_core.Pair.makeList());};var make_curry = function(right_p_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_upper_bound_0 = function(mask_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity-upper-bound");if (M0.eqv_p(mask_10,0)!==false) {var if_res1799 = false;} else {if (M0.negative_p(mask_10)!==false) {var if_res1798 = Infinity;} else {var if_res1798 = M0.sub1(M0.integer_length(mask_10));}var if_res1799 = if_res1798;}return if_res1799;};var partially_applied_procedure_arity_mask_0 = function(mask_11, num_args_so_far_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("partially-applied-procedure-arity-mask");if (M0.negative_p(mask_11)!==false) {var if_res1800 = -1;} else {var if_res1800 = M0.sub1(M0.arithmetic_shift(1,M0.integer_length(mask_11)-num_args_so_far_0));}return if_res1800;};if (right_p_0!==false) {var if_res1801 = $rjs_core.PrimitiveSymbol.make("curryr");} else {var if_res1801 = $rjs_core.PrimitiveSymbol.make("curry");}var who_7 = if_res1801;if (right_p_0!==false) {var if_res1802 = function(pos_args_so_far_0, new_pos_args_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-pos-args");return M0.append(new_pos_args_0,pos_args_so_far_0);};} else {var if_res1802 = function(pos_args_so_far_1, new_pos_args_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-pos-args");return M0.append(pos_args_so_far_1,new_pos_args_1);};}var incorporate_new_pos_args_0 = if_res1802;var do_curry_0 = function(f_32) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("do-curry");if (M0.procedure_p(f_32)!==false) {var if_res1803 = M0.rvoid();} else {var if_res1803 = M0.raise_argument_error(who_7,$rjs_core.UString.make("procedure?"),f_32);}if_res1803;var name_13 = M0.object_name(f_32);if (M0.symbol_p(name_13)!==false) {var if_res1804 = M0.string__gt_symbol(M0.string_append($rjs_core.UString.make("curried:"),M0.symbol__gt_string(name_13)));} else {var if_res1804 = $rjs_core.PrimitiveSymbol.make("curried");}var curried_name_0 = if_res1804;var arity_mask_1 = M0.procedure_arity_mask(f_32);var max_arity_0 = arity_upper_bound_0(arity_mask_1);var let_result1805 = procedure_keywords(f_32);var required_kws_0 = let_result1805.getAt(0);var allowed_kws_2 = let_result1805.getAt(1);if (M0.null_p(allowed_kws_2)!==false) {var reduce_arity_by_rename_0 = function(proc_17, num_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reduce-arity/rename");return new_procedure_reduce_arity_mask(proc_17,partially_applied_procedure_arity_mask_0(arity_mask_1,num_args_so_far_1),curried_name_0);};var make_curried_0 = function(args_so_far_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-curried");return reduce_arity_by_rename_0($rjs_core.attachProcedureArity(function(...new_args_01806) {var new_args_0 = $rjs_core.Pair.listFromArray(new_args_01806);var args_19 = incorporate_new_pos_args_0(args_so_far_0,new_args_0);if (M0.procedure_arity_includes_p(f_32,M0.length(args_19))!==false) {var if_res1807 = M0.apply(f_32,args_19);} else {var if_res1807 = make_curried_0(args_19);}return if_res1807;}),M0.length(args_so_far_0));};var if_res1832 = reduce_arity_by_rename_0($rjs_core.attachProcedureArity(function(...args_201808) {var args_20 = $rjs_core.Pair.listFromArray(args_201808);if (M0.__eq_(M0.length(args_20),max_arity_0)!==false) {var if_res1809 = M0.apply(f_32,args_20);} else {var if_res1809 = make_curried_0(args_20);}return if_res1809;}),0);} else {var incorporate_new_kws_plus_args_0 = function(kws_plus_args_so_far_0, new_kws_plus_args_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-kws+args");var ht_8 = new_kws_plus_args_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1810 = M0.rvoid();} else {var if_res1810 = check_in_hash(ht_8);}if_res1810;var for_loop_33 = function(kws_plus_args_0, i_56) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_56!==false) {var let_result1811 = M0.hash_iterate_key_plus_value(ht_8,i_56);var kw_1 = let_result1811.getAt(0);var arg_4 = let_result1811.getAt(1);var kws_plus_args_2 = kws_plus_args_0;if (hash_has_key_p(kws_plus_args_2,kw_1)!==false) {var if_res1812 = M0.raise_arguments_error(curried_name_0,$rjs_core.UString.make("duplicate keyword for procedure"),$rjs_core.UString.make("keyword"),kw_1,$rjs_core.UString.make("first value"),M0.hash_ref(kws_plus_args_2,kw_1),$rjs_core.UString.make("second value"),arg_4);} else {var if_res1812 = M0.hash_set(kws_plus_args_2,kw_1,arg_4);}var kws_plus_args_3 = if_res1812;var kws_plus_args_1 = M0.values(kws_plus_args_3);if (M0.not(false)!==false) {var if_res1813 = for_loop_33(kws_plus_args_1,M0.hash_iterate_next(ht_8,i_56));} else {var if_res1813 = kws_plus_args_1;}var if_res1814 = if_res1813;} else {var if_res1814 = kws_plus_args_0;}return if_res1814;};return for_loop_33(kws_plus_args_so_far_0,M0.hash_iterate_first(ht_8));};var reduce_arity_by_rename_1 = function(proc_18, num_args_so_far_2, kw_plus_args_so_far_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reduce-arity/rename");var temp1817 = partially_applied_procedure_arity_mask_0(arity_mask_1,num_args_so_far_2);var temp1816 = $rjs_core.Pair.makeList();if (allowed_kws_2!==false) {var if_res1815 = filter(function(kw_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(hash_has_key_p(kw_plus_args_so_far_0,kw_2));},allowed_kws_2);} else {var if_res1815 = false;}return procedure_reduce_keyword_arity_mask(proc_18,temp1817,temp1816,if_res1815,curried_name_0);};var make_curried_1 = function(pos_args_so_far_2, kws_plus_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-curried");return reduce_arity_by_rename_1(make_keyword_procedure($rjs_core.attachProcedureArity(function(new_kws_0, new_kw_args_0, ...new_pos_args_21819) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var new_pos_args_2 = $rjs_core.Pair.listFromArray(new_pos_args_21819);return step_7(incorporate_new_pos_args_0(pos_args_so_far_2,new_pos_args_2),incorporate_new_kws_plus_args_0(kws_plus_args_so_far_1,M0.make_immutable_hasheq(map2(M0.cons,new_kws_0,new_kw_args_0))));}),$rjs_core.attachProcedureArity(function(...new_pos_args_31818) {var new_pos_args_3 = $rjs_core.Pair.listFromArray(new_pos_args_31818);return step_7(incorporate_new_pos_args_0(pos_args_so_far_2,new_pos_args_3),kws_plus_args_so_far_1);})),M0.length(pos_args_so_far_2),kws_plus_args_so_far_1);};var step_7 = function(pos_args_so_far_3, kw_plus_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("step");if (M0.procedure_arity_includes_p(f_32,M0.length(pos_args_so_far_3),true)!==false) {var lst_18 = required_kws_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1820 = M0.rvoid();} else {var if_res1820 = check_list(lst_18);}if_res1820;var for_loop_34 = function(result_13, lst_19) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_19)!==false) {var required_kw_0 = M0.unsafe_car(lst_19);var rest_5 = M0.unsafe_cdr(lst_19);var result_15 = hash_has_key_p(kw_plus_args_so_far_1,required_kw_0);var result_14 = M0.values(result_15);if (M0.not($rjs_core.attachProcedureArity(function(...x_21821) {var x_2 = $rjs_core.Pair.listFromArray(x_21821);return M0.not(result_14);})(required_kw_0))!==false) {var if_res1822 = M0.not(false);} else {var if_res1822 = false;}if (if_res1822!==false) {var if_res1823 = for_loop_34(result_14,rest_5);} else {var if_res1823 = result_14;}var if_res1824 = if_res1823;} else {var if_res1824 = result_13;}return if_res1824;};var if_res1825 = for_loop_34(true,lst_18);} else {var if_res1825 = false;}if (if_res1825!==false) {var temp1_0 = hash__gt_list(kw_plus_args_so_far_1);var keyword_lt__p2_0 = M0.keyword_lt__p;var car3_0 = M0.car;var sorted_kw_plus_args_0 = sort_dot_1(false,car3_0,temp1_0,keyword_lt__p2_0);var kws_23 = map2(M0.car,sorted_kw_plus_args_0);var kw_args_9 = map2(M0.cdr,sorted_kw_plus_args_0);var if_res1826 = new_keyword_apply(f_32,kws_23,kw_args_9,pos_args_so_far_3);} else {var if_res1826 = make_curried_1(pos_args_so_far_3,kw_plus_args_so_far_1);}return if_res1826;};var if_res1832 = reduce_arity_by_rename_1(make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_24, kw_args_10, ...pos_args_01828) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var pos_args_0 = $rjs_core.Pair.listFromArray(pos_args_01828);if (M0.__eq_(M0.length(pos_args_0),max_arity_0)!==false) {if (allowed_kws_2!==false) {var if_res1829 = M0.__eq_(M0.length(kws_24),M0.length(allowed_kws_2));} else {var if_res1829 = false;}var if_res1830 = if_res1829;} else {var if_res1830 = false;}if (if_res1830!==false) {var if_res1831 = new_keyword_apply(f_32,kws_24,kw_args_10,pos_args_0);} else {var if_res1831 = make_curried_1(pos_args_0,M0.make_immutable_hasheq(map2(M0.cons,kws_24,kw_args_10)));}return if_res1831;}),$rjs_core.attachProcedureArity(function(...pos_args_11827) {var pos_args_1 = $rjs_core.Pair.listFromArray(pos_args_11827);return make_curried_1(pos_args_1,$rjs_core.Hash.makeEq([],false));})),0,$rjs_core.Hash.makeEq([],false));}return if_res1832;};var temp1841 = $rjs_core.attachProcedureArity(function(kws_25, kw_args_11, f_33, ...args_211838) {if (arguments.length<3) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_21 = $rjs_core.Pair.listFromArray(args_211838);var curried_0 = do_curry_0(f_33);if (M0.null_p(kws_25)!==false) {if (M0.null_p(args_21)!==false) {var if_res1839 = curried_0;} else {var if_res1839 = M0.apply(curried_0,args_21);}var if_res1840 = if_res1839;} else {var if_res1840 = new_keyword_apply(curried_0,kws_25,kw_args_11,args_21);}return if_res1840;});var cl1833 = function(f_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_curry_0(f_34);};var cl1834 = $rjs_core.attachProcedureArity(function(f_35, ...args_221837) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_22 = $rjs_core.Pair.listFromArray(args_221837);return M0.apply(do_curry_0(f_35),args_22);});return new_procedure_rename(make_keyword_procedure(temp1841,$rjs_core.attachProcedureArity(function() {var fixed_lam1835 = {'1':cl1833}[arguments.length];if (fixed_lam1835!==undefined) {return fixed_lam1835.apply(null,arguments);} else {if (M0.__gt__eq_(cl1834.length,1)!==false) {var if_res1836 = cl1834.apply(null,arguments);} else {var if_res1836 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res1836;}},[M0.make_arity_at_least(1)])),who_7);};var curry = make_curry(false);var curryr = make_curry(true);var _1_by_compile_linklet = function(sexp_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compile-linklet");return absyn_linklet__gt_il(parse_linklet(sexp_1,$rjs_core.UString.make("/home/gamburgm/racketscript/racketscript.rkt")));};var _1_by_linklet_import_variables = function(lnk_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("linklet-import-variables");return Linklet_imports(lnk_1);};export { _1_by_compile_linklet as compile_linklet,_1_by_linklet_import_variables as linklet_import_variables }; \ No newline at end of file From 1947bead87d15112e5b44b8bff93afc707e7313b Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 22:22:32 -0400 Subject: [PATCH 167/170] capture more behavior with script --- flash-runtime.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flash-runtime.sh b/flash-runtime.sh index 7808cbdd..d20dde91 100755 --- a/flash-runtime.sh +++ b/flash-runtime.sh @@ -1,13 +1,13 @@ #!/usr/bin/env bash rm -rf ~/rs-orig/racketscript-compiler/racketscript/compiler/runtime/ -rm -rf js-build/runtime/ +rm -rf js-build/ -cp -r racketscript-compiler/racketscript/compiler/runtime/ ~/rs-orig/racketscript-compiler/racketscript/compiler/ +cp -r racketscript-compiler/racketscript/compiler/runtime/ ~/rs-orig/racketscript-compiler/racketscript/compiler/runtime/ pushd ~/rs-orig/ ./racketscript-compiler/bin/racks foobar.rkt -cp -r js-build/runtime/ ~/racketscript/js-build/ +cp -r js-build/ ~/racketscript/js-build/ popd From 199e65aded8edc4195b2599509936c4964e0d064 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Tue, 16 Aug 2022 22:22:58 -0400 Subject: [PATCH 168/170] try to directly overwrite the linklet primitive table -- doesn't work --- main.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/main.js b/main.js index 5f3c4a72..71c4f887 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,22 @@ -import * as Expander from './foo.js'; +import * as Expander from './expander.js'; +import * as Linklet from './racketscript.js'; import * as CORE from '../runtime/core.js'; -import { displayln as print } from '../runtime/kernel.rkt.js'; +import * as Kernel from '../runtime/kernel.rkt.js'; + +const { displayln } = Kernel; +const print = displayln; + +const sym = CORE.PrimitiveSymbol.make; + +const currPrimitiveTable = Kernel.primitiveTable; + +Kernel.primitiveTable = (symbol) => { + if (symbol.equals(sym('#%linklet'))) { + return Linklet; + } else { + return currPrimitiveTable; + } +}; const demoNamespace = Expander.make_namespace(); const KERNEL_IMPORT = CORE.Pair.makeList( @@ -55,4 +71,4 @@ const compileExpr = (e) => { return Expander.compile(e, demoNamespace); }; -print(Expander.syntax__gt_datum(expandExpr(DEFINE_EX))); +print(compileExpr(DEFINE_EX)); From c4c447194fc9d6533005b571f830bfb6cc98f8a1 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 17 Aug 2022 21:13:17 -0400 Subject: [PATCH 169/170] handle primitive-table differently, to bootstrap linklets --- .../racketscript/compiler/linklet-api.rkt | 20 +- .../racketscript/compiler/sexp-to-ast.rkt | 9 +- .../racketscript/compiler/transform.rkt | 5 +- racketscript.rktl | 1674 +++++++++-------- 4 files changed, 892 insertions(+), 816 deletions(-) diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index f4b7e286..894067fa 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -15,14 +15,14 @@ (Linklet-imports lnk)) ;; TODO temporary, for debugging/checking purposes -(define (everything) - (define sexp (read (open-input-file "../../../expander.rktl"))) +;; (define (everything) +;; (define sexp (read (open-input-file "../../../racketscript.rktl"))) - (call-with-output-file - "../../../js-build/modules/expander.js" - (λ (out) - (assemble-linklet - (insert-arity-checks - (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) - out)) - #:exists 'replace)) +;; (call-with-output-file +;; "../../../js-build/modules/racketscript.js" +;; (λ (out) +;; (assemble-linklet +;; (insert-arity-checks +;; (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) +;; out)) +;; #:exists 'replace)) diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index 2ed612df..ca390299 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -103,6 +103,8 @@ [(eq? 'lexical (hash-ref bindings v #f)) (LocalIdent v)] ;; FIXME not really always '#%kernel + [(eq? v 'primitive-table) + (ImportedIdent v '#%linklet #t)] [else (ImportedIdent v '#%kernel #t)])] [`(set! ,s ,e) (Set! s (t e))] @@ -118,7 +120,7 @@ (error 'linklet-expand)])) -(define (parse-linklet v path) +(define (parse-linklet v path [expander? #f]) (match v [`(linklet ,imports ,exports . ,body) (define imps (for*/hash ([(j import) (in-indexed imports)] @@ -130,5 +132,8 @@ [`(define-values ,is ,_) (for ([i is]) (hash-set! defs i 'define))] [`,_ (void)])) - (Linklet path imports exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) + ;; FIXME kludge to deal with `primitive-table` without producing circular dependency + ;; racketscript.js -> kernel.rkt.js -> racketscript.js (for linklet api) ... + (define final-imports (if expander? (cons '#%linklet imports) imports)) + (Linklet path final-imports exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index 09075a8c..e35eea08 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -71,7 +71,10 @@ ;; TODO not using a lot of the code here, eventually should be able to delete (define (absyn-requires->il import-list path) - (list (ILRequire "../runtime/kernel.rkt.js" 'M0 '*))) + (cons (ILRequire "../runtime/kernel.rkt.js" 'M0 '*) + (if (member '#%linklet import-list) + (list (ILRequire "./racketscript.js" 'M1 '*)) + '()))) ;; (for/list ([mod-path import-list] diff --git a/racketscript.rktl b/racketscript.rktl index 583dc302..79bf5b64 100644 --- a/racketscript.rktl +++ b/racketscript.rktl @@ -3985,13 +3985,13 @@ (begin (let-values (((t_1) (let-values (((t_2) - (lambda (v3_0 b2_4) + (lambda (v6_0 b5_0) (begin 't - (let-values (((v_47) v3_0)) - (let-values (((b_8) (if (eq? b2_4 unsafe-undefined) bindings_0 b2_4))) + (let-values (((v_47) v6_0)) + (let-values (((b_8) (if (eq? b5_0 unsafe-undefined) bindings_0 b5_0))) (let-values () (to-absyn v_47 b_8)))))))) - (case-lambda ((v_48) (begin 't (t_2 v_48 unsafe-undefined))) ((v_49 b2_5) (t_2 v_49 b2_5)))))) + (case-lambda ((v_48) (begin 't (t_2 v_48 unsafe-undefined))) ((v_49 b5_1) (t_2 v_49 b5_1)))))) (let-values (((v_50) v_46)) (let-values (((hd_0) (let-values (((p_17) v_50)) (if (pair? p_17) (car p_17) #f)))) (let-values () @@ -4297,11 +4297,19 @@ (let-values () (LocalIdent6.1 v_46)) - (let-values () - (ImportedIdent3.1 - v_46 - '#%kernel - #t)))))) + (if (eq? + v_46 + 'primitive-table) + (let-values () + (ImportedIdent3.1 + v_46 + '#%linklet + #t)) + (let-values () + (ImportedIdent3.1 + v_46 + '#%kernel + #t))))))) (alt_18))))))))) (if (if (eq? '#%variable-reference @@ -5130,8 +5138,8 @@ (let-values (((xs_11 es_6) (let-values () - (let-values (((xs4_0 - es5_0) + (let-values (((xs7_0 + es8_0) (let-values () (let-values (((p_67) v_53)) @@ -5153,10 +5161,10 @@ es_7)))))) (values (cons - xs4_0 + xs7_0 xs_10) (cons - es5_0 + es8_0 es_5)))))) (values xs_11 @@ -5614,8 +5622,8 @@ (let-values (((xs_18 es_14) (let-values () - (let-values (((xs10_0 - es11_0) + (let-values (((xs13_0 + es14_0) (let-values () (let-values (((p_73) v_55)) @@ -5637,10 +5645,10 @@ es_15)))))) (values (cons - xs10_0 + xs13_0 xs_17) (cons - es11_0 + es14_0 es_13)))))) (values xs_18 @@ -6084,348 +6092,404 @@ (alt_4))))))))))) (define-values (parse-linklet) - (lambda (v_57 path_0) - (begin - (let-values (((v_58) v_57)) - (let-values (((hd_1) (let-values (((p_82) v_58)) (if (pair? p_82) (car p_82) #f)))) - (let-values () - (let-values (((alt_23) (lambda () (begin 'alt (error 'match "failed ~e" v_58))))) - (if (if (eq? 'linklet hd_1) - (let-values (((a_150) (cdr v_58))) - (let-values (((p_83) a_150)) - (if (pair? p_83) - (let-values (((a_151) (cdr p_83))) (let-values (((p_84) a_151)) (if (pair? p_84) #t #f))) - #f))) - #f) - (let-values (((imports_0 exports_0 body_4) - (let-values (((d_41) (cdr v_58))) - (let-values (((p_85) d_41)) - (let-values (((imports_1) (let-values (((a_152) (car p_85))) a_152)) - ((exports_1 body_5) - (let-values (((d_42) (cdr p_85))) - (let-values (((p_86) d_42)) - (let-values (((exports_2) (let-values (((a_153) (car p_86))) a_153)) - ((body_6) (let-values (((d_43) (cdr p_86))) d_43))) - (values exports_2 body_6)))))) - (values imports_1 exports_1 body_5)))))) - (let-values () - (let-values (((imps_0) - (let-values (((pos->vals_12 - pos-pre-inc_10 - pos-next_13 - init_13 - pos-cont?_13 - val-cont?_12 - all-cont?_12) - (make-sequence '(j) imports_0)) - ((start_9) 0)) - (begin - (if (void) - (if (variable-reference-from-unsafe? (#%variable-reference)) - (void) - (let-values () (check-naturals start_9))) - #f) - ((letrec-values (((for-loop_13) - (lambda (table_20 pos_38 pos_39) + (let-values (((parse-linklet_0) + (lambda (v2_1 path3_0 expander?1_0) + (begin + 'parse-linklet + (let-values (((v_57) v2_1)) + (let-values (((path_0) path3_0)) + (let-values (((expander?_0) expander?1_0)) + (let-values () + (let-values (((v_58) v_57)) + (let-values (((hd_1) (let-values (((p_82) v_58)) (if (pair? p_82) (car p_82) #f)))) + (let-values () + (let-values (((alt_23) (lambda () (begin 'alt (error 'match "failed ~e" v_58))))) + (if (if (eq? 'linklet hd_1) + (let-values (((a_150) (cdr v_58))) + (let-values (((p_83) a_150)) + (if (pair? p_83) + (let-values (((a_151) (cdr p_83))) + (let-values (((p_84) a_151)) (if (pair? p_84) #t #f))) + #f))) + #f) + (let-values (((imports_0 exports_0 body_4) + (let-values (((d_41) (cdr v_58))) + (let-values (((p_85) d_41)) + (let-values (((imports_1) + (let-values (((a_152) (car p_85))) a_152)) + ((exports_1 body_5) + (let-values (((d_42) (cdr p_85))) + (let-values (((p_86) d_42)) + (let-values (((exports_2) + (let-values (((a_153) + (car p_86))) + a_153)) + ((body_6) + (let-values (((d_43) + (cdr p_86))) + d_43))) + (values exports_2 body_6)))))) + (values imports_1 exports_1 body_5)))))) + (let-values () + (let-values (((imps_0) + (let-values (((pos->vals_12 + pos-pre-inc_10 + pos-next_13 + init_13 + pos-cont?_13 + val-cont?_12 + all-cont?_12) + (make-sequence '(j) imports_0)) + ((start_9) 0)) (begin - 'for-loop - (if (if (if pos-cont?_13 (pos-cont?_13 pos_38) #t) #t #f) - (let-values (((j_3 all-cont?/pos_10) - (let-values (((j_4) (pos->vals_12 pos_38))) - (values - j_4 - (if all-cont?_12 - (lambda (pos_40) - (all-cont?_12 pos_40 j_4)) - #f)))) - ((pos_41) - (if pos-pre-inc_10 - (pos-pre-inc_10 pos_38) - pos_38)) - ((import_0) pos_39)) - (if (if (if val-cont?_12 (val-cont?_12 j_3) #t) #t #f) - (let-values (((table_21) - (let-values (((table_22) table_20)) - (let-values (((pos->vals_13 - pos-pre-inc_11 - pos-next_14 - init_14 - pos-cont?_14 - val-cont?_13 - all-cont?_13) - (make-sequence - '(i) - import_0))) - (begin - (void) - ((letrec-values (((for-loop_14) - (lambda (table_23 - pos_42) + (if (void) + (if (variable-reference-from-unsafe? + (#%variable-reference)) + (void) + (let-values () (check-naturals start_9))) + #f) + ((letrec-values (((for-loop_13) + (lambda (table_20 pos_38 pos_39) + (begin + 'for-loop + (if (if (if pos-cont?_13 + (pos-cont?_13 pos_38) + #t) + #t + #f) + (let-values (((j_3 all-cont?/pos_10) + (let-values (((j_4) + (pos->vals_12 + pos_38))) + (values + j_4 + (if all-cont?_12 + (lambda (pos_40) + (all-cont?_12 + pos_40 + j_4)) + #f)))) + ((pos_41) + (if pos-pre-inc_10 + (pos-pre-inc_10 + pos_38) + pos_38)) + ((import_0) pos_39)) + (if (if (if val-cont?_12 + (val-cont?_12 j_3) + #t) + #t + #f) + (let-values (((table_21) + (let-values (((table_22) + table_20)) + (let-values (((pos->vals_13 + pos-pre-inc_11 + pos-next_14 + init_14 + pos-cont?_14 + val-cont?_13 + all-cont?_13) + (make-sequence + '(i) + import_0))) (begin - 'for-loop - (if (if pos-cont?_14 - (pos-cont?_14 - pos_42) - #t) - (let-values (((i_48 - all-cont?/pos_11) - (let-values (((i_49) - (pos->vals_13 - pos_42))) - (values - i_49 - (if all-cont?_13 - (lambda (pos_43) - (all-cont?_13 - pos_43 - i_49)) - #f)))) - ((pos_44) - (if pos-pre-inc_11 - (pos-pre-inc_11 - pos_42) - pos_42))) - (if (if val-cont?_13 - (val-cont?_13 - i_48) - #t) - (let-values (((table_24) - (let-values (((table_25) - table_23)) - (let-values (((table_26) - table_25)) - (let-values (((table_27) - (let-values () - (let-values (((key_7 - val_3) - (let-values () - (values - i_48 - j_3)))) - (hash-set - table_26 - key_7 - val_3))))) - (values - table_27)))))) - (if (if (if all-cont?/pos_11 - (all-cont?/pos_11 - pos_44) - #t) - (not - #f) - #f) - (for-loop_14 - table_24 - (pos-next_14 - pos_44)) - table_24)) - table_23)) - table_23))))) - for-loop_14) - table_22 - init_14)))))) - (if (if (if (if all-cont?/pos_10 - (all-cont?/pos_10 pos_41) - #t) - #t - #f) - (not #f) - #f) - (for-loop_13 - table_21 - (pos-next_13 pos_41) - (+ pos_39 1)) - table_21)) - table_20)) - table_20))))) - for-loop_13) - '#hash() - init_13 - start_9))))) - (let-values (((defs_0) (make-hash))) - (begin - (let-values (((pos->vals_14 - pos-pre-inc_12 - pos-next_15 - init_15 - pos-cont?_15 - val-cont?_14 - all-cont?_14) - (make-sequence '(b) body_4))) - (begin - (void) - ((letrec-values (((for-loop_15) - (lambda (pos_45) - (begin - 'for-loop - (if (if pos-cont?_15 (pos-cont?_15 pos_45) #t) - (let-values (((b_15 all-cont?/pos_12) - (let-values (((b_16) (pos->vals_14 pos_45))) - (values - b_16 - (if all-cont?_14 - (lambda (pos_46) (all-cont?_14 pos_46 b_16)) - #f)))) - ((pos_47) - (if pos-pre-inc_12 (pos-pre-inc_12 pos_45) pos_45))) - (if (if val-cont?_14 (val-cont?_14 b_15) #t) - (let-values ((() - (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (let-values (((v_59) - b_15)) - (let-values (((hd_2) - (let-values (((p_87) - v_59)) - (if (pair? - p_87) - (car - p_87) - #f)))) - (let-values () - (let-values (((alt_24) - (lambda () - (begin - 'alt - (let-values () - (let-values () - (let-values () + (void) + ((letrec-values (((for-loop_14) + (lambda (table_23 + pos_42) + (begin + 'for-loop + (if (if pos-cont?_14 + (pos-cont?_14 + pos_42) + #t) + (let-values (((i_48 + all-cont?/pos_11) + (let-values (((i_49) + (pos->vals_13 + pos_42))) + (values + i_49 + (if all-cont?_13 + (lambda (pos_43) + (all-cont?_13 + pos_43 + i_49)) + #f)))) + ((pos_44) + (if pos-pre-inc_11 + (pos-pre-inc_11 + pos_42) + pos_42))) + (if (if val-cont?_13 + (val-cont?_13 + i_48) + #t) + (let-values (((table_24) + (let-values (((table_25) + table_23)) + (let-values (((table_26) + table_25)) + (let-values (((table_27) + (let-values () + (let-values (((key_7 + val_3) + (let-values () + (values + i_48 + j_3)))) + (hash-set + table_26 + key_7 + val_3))))) + (values + table_27)))))) + (if (if (if all-cont?/pos_11 + (all-cont?/pos_11 + pos_44) + #t) + (not + #f) + #f) + (for-loop_14 + table_24 + (pos-next_14 + pos_44)) + table_24)) + table_23)) + table_23))))) + for-loop_14) + table_22 + init_14)))))) + (if (if (if (if all-cont?/pos_10 + (all-cont?/pos_10 + pos_41) + #t) + #t + #f) + (not #f) + #f) + (for-loop_13 + table_21 + (pos-next_13 pos_41) + (+ pos_39 1)) + table_21)) + table_20)) + table_20))))) + for-loop_13) + '#hash() + init_13 + start_9))))) + (let-values (((defs_0) (make-hash))) + (let-values ((() + (begin + (let-values (((pos->vals_14 + pos-pre-inc_12 + pos-next_15 + init_15 + pos-cont?_15 + val-cont?_14 + all-cont?_14) + (make-sequence '(b) body_4))) + (begin + (void) + ((letrec-values (((for-loop_15) + (lambda (pos_45) + (begin + 'for-loop + (if (if pos-cont?_15 + (pos-cont?_15 pos_45) + #t) + (let-values (((b_15 + all-cont?/pos_12) + (let-values (((b_16) + (pos->vals_14 + pos_45))) + (values + b_16 + (if all-cont?_14 + (lambda (pos_46) + (all-cont?_14 + pos_46 + b_16)) + #f)))) + ((pos_47) + (if pos-pre-inc_12 + (pos-pre-inc_12 + pos_45) + pos_45))) + (if (if val-cont?_14 + (val-cont?_14 b_15) + #t) + (let-values ((() + (let-values () + (let-values ((() (let-values () - (void))))))))) - (if (if (eq? - 'define-values - hd_2) - (let-values (((a_154) - (cdr - v_59))) - (let-values (((p_88) - a_154)) - (if (pair? - p_88) - (let-values (((a_155) - (cdr - p_88))) - (let-values (((p_89) - a_155)) - (if (pair? - p_89) - (let-values (((a_156) - (cdr - p_89))) - (eq? - '() - a_156)) - #f))) - #f))) - #f) - (let-values (((is_0) - (let-values (((d_44) - (cdr - v_59))) - (let-values (((a_157) - (car - d_44))) - a_157)))) - (let-values () - (begin - (let-values (((pos->vals_15 - pos-pre-inc_13 - pos-next_16 - init_16 - pos-cont?_16 - val-cont?_15 - all-cont?_15) - (make-sequence - '(i) - is_0))) - (begin - (void) - ((letrec-values (((for-loop_16) - (lambda (pos_48) - (begin - 'for-loop - (if (if pos-cont?_16 - (pos-cont?_16 - pos_48) - #t) - (let-values (((i_50 - all-cont?/pos_13) - (let-values (((i_51) - (pos->vals_15 - pos_48))) - (values - i_51 - (if all-cont?_15 - (lambda (pos_49) - (all-cont?_15 - pos_49 - i_51)) - #f)))) - ((pos_50) - (if pos-pre-inc_13 - (pos-pre-inc_13 - pos_48) - pos_48))) - (if (if val-cont?_15 - (val-cont?_15 - i_50) - #t) - (let-values ((() + (begin + (let-values () + (let-values (((v_59) + b_15)) + (let-values (((hd_2) + (let-values (((p_87) + v_59)) + (if (pair? + p_87) + (car + p_87) + #f)))) + (let-values () + (let-values (((alt_24) + (lambda () + (begin + 'alt + (let-values () (let-values () - (let-values ((() - (let-values () - (begin - (let-values () - (hash-set! - defs_0 - i_50 - 'define)) - (values))))) - (values))))) - (if (if (if all-cont?/pos_13 - (all-cont?/pos_13 - pos_50) - #t) - (not - #f) - #f) - (for-loop_16 - (pos-next_16 - pos_50)) - (values))) - (values))) - (values)))))) - for-loop_16) - init_16))) - (void)))) - (alt_24))))))) - (values))))) - (values))))) - (if (if (if all-cont?/pos_12 (all-cont?/pos_12 pos_47) #t) - (not #f) - #f) - (for-loop_15 (pos-next_15 pos_47)) - (values))) - (values))) - (values)))))) - for-loop_15) - init_15))) - (void) - (Linklet1.1 - path_0 - imports_0 - exports_0 - (map2 (lambda (v_60) (to-absyn v_60 (hash-union imps_0 defs_0))) body_4))))))) - (alt_23))))))))) + (let-values () + (let-values () + (void))))))))) + (if (if (eq? + 'define-values + hd_2) + (let-values (((a_154) + (cdr + v_59))) + (let-values (((p_88) + a_154)) + (if (pair? + p_88) + (let-values (((a_155) + (cdr + p_88))) + (let-values (((p_89) + a_155)) + (if (pair? + p_89) + (let-values (((a_156) + (cdr + p_89))) + (eq? + '() + a_156)) + #f))) + #f))) + #f) + (let-values (((is_0) + (let-values (((d_44) + (cdr + v_59))) + (let-values (((a_157) + (car + d_44))) + a_157)))) + (let-values () + (begin + (let-values (((pos->vals_15 + pos-pre-inc_13 + pos-next_16 + init_16 + pos-cont?_16 + val-cont?_15 + all-cont?_15) + (make-sequence + '(i) + is_0))) + (begin + (void) + ((letrec-values (((for-loop_16) + (lambda (pos_48) + (begin + 'for-loop + (if (if pos-cont?_16 + (pos-cont?_16 + pos_48) + #t) + (let-values (((i_50 + all-cont?/pos_13) + (let-values (((i_51) + (pos->vals_15 + pos_48))) + (values + i_51 + (if all-cont?_15 + (lambda (pos_49) + (all-cont?_15 + pos_49 + i_51)) + #f)))) + ((pos_50) + (if pos-pre-inc_13 + (pos-pre-inc_13 + pos_48) + pos_48))) + (if (if val-cont?_15 + (val-cont?_15 + i_50) + #t) + (let-values ((() + (let-values () + (let-values ((() + (let-values () + (begin + (let-values () + (hash-set! + defs_0 + i_50 + 'define)) + (values))))) + (values))))) + (if (if (if all-cont?/pos_13 + (all-cont?/pos_13 + pos_50) + #t) + (not + #f) + #f) + (for-loop_16 + (pos-next_16 + pos_50)) + (values))) + (values))) + (values)))))) + for-loop_16) + init_16))) + (void)))) + (alt_24))))))) + (values))))) + (values))))) + (if (if (if all-cont?/pos_12 + (all-cont?/pos_12 + pos_47) + #t) + (not #f) + #f) + (for-loop_15 + (pos-next_15 pos_47)) + (values))) + (values))) + (values)))))) + for-loop_15) + init_15))) + (values)))) + (let-values () + (let-values (((final-imports_0) + (if expander?_0 (cons '#%linklet imports_0) imports_0))) + (Linklet1.1 + path_0 + final-imports_0 + exports_0 + (map2 + (lambda (v_60) (to-absyn v_60 (hash-union imps_0 defs_0))) + body_4))))))))) + (alt_23)))))))))))))) + (case-lambda + ((v_61 path_1) (begin (parse-linklet_0 v_61 path_1 #f))) + ((v_62 path_2 expander?1_1) (parse-linklet_0 v_62 path_2 expander?1_1))))) (define-values (improper->proper) (lambda (l_22) (begin - (let-values (((v_61) l_22)) + (let-values (((v_63) l_22)) (let-values () (let-values (((alt_13) (lambda () @@ -6438,10 +6502,10 @@ 'alt (let-values () (let-values () (let-values () (let-values () (cons l_22 '()))))))))) - (if (eq? '() v_61) (let-values () (let-values () '())) (alt_14)))))))) - (if (let-values (((p_90) v_61)) (if (pair? p_90) #t #f)) + (if (eq? '() v_63) (let-values () (let-values () '())) (alt_14)))))))) + (if (let-values (((p_90) v_63)) (if (pair? p_90) #t #f)) (let-values (((a_158 b_17) - (let-values (((p_91) v_61)) + (let-values (((p_91) v_63)) (let-values (((a_159) (let-values (((a_160) (car p_91))) a_160)) ((b_18) (let-values (((d_45) (cdr p_91))) d_45))) (values a_159 b_18))))) @@ -6590,7 +6654,7 @@ (name-in-module) (lambda (mod_5 name_12) (begin - (let-values (((v_62) mod_5)) + (let-values (((v_64) mod_5)) (let-values () (let-values (((alt_25) (lambda () @@ -6598,7 +6662,7 @@ 'alt (let-values () (let-values () (let-values () (let-values () (error "Invalid module name"))))))))) - (if (eq? 'core v_62) + (if (eq? 'core v_64) (let-values () (let-values () (string->symbol (~a (jsruntime-core-module) "." name_12)))) (alt_25)))))))) (define-values @@ -6805,100 +6869,100 @@ (has-application?) (lambda (a_161) (begin - (let-values (((v_63) a_161)) - (let-values (((vec-v_0) (struct->vector v_63))) + (let-values (((v_65) a_161)) + (let-values (((vec-v_0) (struct->vector v_65))) (let-values (((alt_26) (lambda () (begin 'alt - (let-values (((vec-v_1) (struct->vector v_63))) + (let-values (((vec-v_1) (struct->vector v_65))) (let-values (((alt_27) (lambda () (begin 'alt - (let-values (((vec-v_2) (struct->vector v_63))) + (let-values (((vec-v_2) (struct->vector v_65))) (let-values (((alt_28) (lambda () (begin 'alt - (let-values (((vec-v_3) (struct->vector v_63))) + (let-values (((vec-v_3) (struct->vector v_65))) (let-values (((alt_29) (lambda () (begin 'alt (let-values (((vec-v_4) (struct->vector - v_63))) + v_65))) (let-values (((alt_30) (lambda () (begin 'alt (let-values (((vec-v_5) (struct->vector - v_63))) + v_65))) (let-values (((alt_31) (lambda () (begin 'alt (let-values (((vec-v_6) (struct->vector - v_63))) + v_65))) (let-values (((alt_32) (lambda () (begin 'alt (let-values (((vec-v_7) (struct->vector - v_63))) + v_65))) (let-values (((alt_33) (lambda () (begin 'alt (let-values (((vec-v_8) (struct->vector - v_63))) + v_65))) (let-values (((alt_34) (lambda () (begin 'alt (let-values (((vec-v_9) (struct->vector - v_63))) + v_65))) (let-values (((alt_35) (lambda () (begin 'alt (let-values (((vec-v_10) (struct->vector - v_63))) + v_65))) (let-values (((alt_36) (lambda () (begin 'alt (let-values (((vec-v_11) (struct->vector - v_63))) + v_65))) (let-values (((alt_37) (lambda () (begin 'alt (let-values (((vec-v_12) (struct->vector - v_63))) + v_65))) (let-values (((alt_38) (lambda () (begin 'alt (if (symbol? - v_63) + v_65) (let-values () #f) (error 'match "failed ~e" - v_63)))))) + v_65)))))) (if (ILTypeOf? - v_63) + v_65) (let-values () (let-values (((expr_0) (vector->values @@ -6909,7 +6973,7 @@ (let-values () (alt_38))))))))) (if (ILInstanceOf? - v_63) + v_65) (let-values () (let-values (((expr_1 type_0) @@ -6926,7 +6990,7 @@ (let-values () (alt_37))))))))) (if (ILNew? - v_63) + v_65) (let-values () (let-values (((_fst_0) (vector->values @@ -6936,7 +7000,7 @@ (let-values () (alt_36))))))))) (if (ILNull? - v_63) + v_65) (let-values () (let-values ((() (vector->values @@ -6946,7 +7010,7 @@ (let-values () (alt_35))))))))) (if (ILUndefined? - v_63) + v_65) (let-values () (let-values ((() (vector->values @@ -6956,7 +7020,7 @@ (let-values () (alt_34))))))))) (if (ILValue? - v_63) + v_65) (let-values () (let-values (((_fst_1) (vector->values @@ -6966,7 +7030,7 @@ (let-values () (alt_33))))))))) (if (ILIndex? - v_63) + v_65) (let-values () (let-values (((expr_2 fieldexpr_0) @@ -6983,7 +7047,7 @@ (let-values () (alt_32))))))))) (if (ILRef? - v_63) + v_65) (let-values () (let-values (((expr_3 _fst_2) @@ -6994,7 +7058,7 @@ expr_3))) (let-values () (alt_31))))))))) - (if (ILObject? v_63) + (if (ILObject? v_65) (let-values () (let-values (((items_0) (vector->values @@ -7007,22 +7071,22 @@ items_0))) (let-values () (alt_30))))))))) - (if (ILArray? v_63) + (if (ILArray? v_65) (let-values () (let-values (((items_1) (vector->values vec-v_3 1))) (ormap2 has-application? items_1))) (let-values () (alt_29))))))))) - (if (ILApp? v_63) + (if (ILApp? v_65) (let-values () (let-values (((_fst_3 _snd_0) (vector->values vec-v_2 1))) #t)) (let-values () (alt_28))))))))) - (if (ILBinaryOp? v_63) + (if (ILBinaryOp? v_65) (let-values () (let-values (((_fst_4 args_13) (vector->values vec-v_1 1))) (ormap2 has-application? args_13))) (let-values () (alt_27))))))))) - (if (ILLambda? v_63) + (if (ILLambda? v_65) (let-values () (let-values (((_fst_5 _snd_1) (vector->values vec-v_0 1))) #f)) (let-values () (alt_26))))))))) (define-values @@ -7057,7 +7121,7 @@ (if (Linklet? form_0) (let-values () (error 'absyn-top-level->il "Not supported. Todo.")) (if (Expr? form_0) - (let-values () (let-values (((stmt_0 v_62) (absyn-expr->il form_0 #f))) (append1 stmt_0 v_62))) + (let-values () (let-values (((stmt_0 v_64) (absyn-expr->il form_0 #f))) (append1 stmt_0 v_64))) (if (Begin? form_0) (let-values () (absyn-expr->il form_0 #f)) (let-values () (error "only some forms supported at top level")))))))) @@ -7065,19 +7129,19 @@ (absyn-linklet->il) (lambda (lnk_0) (begin - (let-values (((path_1 imports_2 exports_3 forms_0) + (let-values (((path_3 imports_2 exports_3 forms_0) (let-values (((v_43) lnk_0)) (let-values (((v_1) v_43)) (let-values (((vec-v_13) (struct->vector v_1))) (let-values (((alt_39) (lambda () (begin 'alt (error 'match "failed ~e" v_1))))) (if (Linklet? v_1) (let-values () - (let-values (((path_2 imports_3 exports_4 forms_1) (vector->values vec-v_13 1))) - (values path_2 imports_3 exports_4 forms_1))) + (let-values (((path_4 imports_3 exports_4 forms_1) (vector->values vec-v_13 1))) + (values path_4 imports_3 exports_4 forms_1))) (let-values () (alt_39))))))))) (let-values ((() (begin (log-rjs-info "[linklet il]") (values)))) (let-values (((imported-mod-path-list_0) (flatten imports_2))) - (let-values (((requires*_0) (absyn-requires->il imported-mod-path-list_0 path_1))) + (let-values (((requires*_0) (absyn-requires->il imported-mod-path-list_0 path_3))) (with-continuation-mark parameterization-key (extend-parameterization @@ -7199,21 +7263,25 @@ init_20))))))) (define-values (absyn-requires->il) - (lambda (import-list_0 path_3) (begin (list (ILRequire2.1 "../runtime/kernel.rkt.js" 'M0 '*))))) + (lambda (import-list_0 path_5) + (begin + (cons + (ILRequire2.1 "../runtime/kernel.rkt.js" 'M0 '*) + (if (member '#%linklet import-list_0) (list (ILRequire2.1 "./racketscript.js" 'M1 '*)) '()))))) (define-values (absyn-gtl-form->il) (lambda (form_1) (begin (if (Expr? form_1) - (let-values () (let-values (((stms_1 v_64) (absyn-expr->il form_1 #f))) (append1 stms_1 v_64))) + (let-values () (let-values (((stms_1 v_66) (absyn-expr->il form_1 #f))) (append1 stms_1 v_66))) (if (DefineValues? form_1) (let-values () (let-values (((ids_0 expr_4) - (let-values (((v_65) form_1)) - (let-values (((v_66) v_65)) - (let-values (((vec-v_14) (struct->vector v_66))) - (let-values (((alt_40) (lambda () (begin 'alt (error 'match "failed ~e" v_66))))) - (if (DefineValues? v_66) + (let-values (((v_67) form_1)) + (let-values (((v_68) v_67)) + (let-values (((vec-v_14) (struct->vector v_68))) + (let-values (((alt_40) (lambda () (begin 'alt (error 'match "failed ~e" v_68))))) + (if (DefineValues? v_68) (let-values () (let-values (((ids_1 expr_5) (vector->values vec-v_14 1))) (values ids_1 expr_5))) (let-values () (alt_40))))))))) @@ -7223,51 +7291,51 @@ (absyn-expr->il) (lambda (expr_6 overwrite-mark-frame?_0) (begin - (let-values (((v_67) expr_6)) - (let-values (((vec-v_15) (struct->vector v_67))) + (let-values (((v_69) expr_6)) + (let-values (((vec-v_15) (struct->vector v_69))) (let-values (((alt_41) (lambda () (begin 'alt - (let-values (((vec-v_16) (struct->vector v_67))) + (let-values (((vec-v_16) (struct->vector v_69))) (let-values (((alt_42) (lambda () (begin 'alt - (let-values (((vec-v_17) (struct->vector v_67))) + (let-values (((vec-v_17) (struct->vector v_69))) (let-values (((alt_43) (lambda () (begin 'alt - (let-values (((vec-v_18) (struct->vector v_67))) + (let-values (((vec-v_18) (struct->vector v_69))) (let-values (((alt_44) (lambda () (begin 'alt (let-values (((vec-v_19) (struct->vector - v_67))) + v_69))) (let-values (((alt_45) (lambda () (begin 'alt (let-values (((vec-v_20) (struct->vector - v_67))) + v_69))) (let-values (((alt_46) (lambda () (begin 'alt (let-values (((vec-v_21) (struct->vector - v_67))) + v_69))) (let-values (((alt_47) (lambda () (begin 'alt (let-values (((vec-v_22) (struct->vector - v_67))) + v_69))) (let-values (((alt_48) (lambda () (begin @@ -7280,10 +7348,10 @@ #f) (let-values () (let-values (((hd_3) - (let-values (((v_68) + (let-values (((v_70) expr_6)) - (let-values (((v_69) - v_68)) + (let-values (((v_71) + v_70)) (let-values () (let-values (((alt_49) (lambda () @@ -7292,9 +7360,9 @@ (error 'match "failed ~e" - v_69))))) + v_71))))) (if (let-values (((p_92) - v_69)) + v_71)) (if (pair? p_92) (let-values (((a_162) @@ -7307,7 +7375,7 @@ (let-values (((hd_4) (let-values (((a_53) (car - v_69))) + v_71))) a_53))) (let-values () (values @@ -7327,10 +7395,10 @@ (let-values () (let-values (((hd_5 tl_0) - (let-values (((v_70) + (let-values (((v_72) expr_6)) - (let-values (((v_71) - v_70)) + (let-values (((v_73) + v_72)) (let-values () (let-values (((alt_50) (lambda () @@ -7339,9 +7407,9 @@ (error 'match "failed ~e" - v_71))))) + v_73))))) (if (let-values (((p_93) - v_71)) + v_73)) (if (pair? p_93) #t @@ -7349,7 +7417,7 @@ (let-values (((hd_6 tl_1) (let-values (((p_94) - v_71)) + v_73)) (let-values (((hd_7) (let-values (((a_62) (car @@ -7372,7 +7440,7 @@ (absyn-top-level->il hd_5))) (let-values (((tl-stms_0 - v_72) + v_74) (absyn-expr->il tl_0 overwrite-mark-frame?_0))) @@ -7380,7 +7448,7 @@ (append hd-stms_0 tl-stms_0) - v_72))))) + v_74))))) (if (null? expr_6) (let-values () @@ -7390,49 +7458,49 @@ (void)))) (let-values (((vec-v_23) (struct->vector - v_67))) + v_69))) (let-values (((alt_51) (lambda () (begin 'alt (let-values (((vec-v_24) (struct->vector - v_67))) + v_69))) (let-values (((alt_52) (lambda () (begin 'alt (let-values (((vec-v_25) (struct->vector - v_67))) + v_69))) (let-values (((alt_53) (lambda () (begin 'alt (let-values (((vec-v_26) (struct->vector - v_67))) + v_69))) (let-values (((alt_54) (lambda () (begin 'alt (let-values (((vec-v_27) (struct->vector - v_67))) + v_69))) (let-values (((alt_55) (lambda () (begin 'alt (let-values (((vec-v_28) (struct->vector - v_67))) + v_69))) (let-values (((alt_56) (lambda () (begin 'alt (let-values (((vec-v_29) (struct->vector - v_67))) + v_69))) (let-values (((alt_57) (lambda () (begin @@ -7443,7 +7511,7 @@ "unsupported expr " expr_6))))))) (if (VarRef? - v_67) + v_69) (let-values () (let-values (((__5) (vector->values @@ -7456,7 +7524,7 @@ (let-values () (alt_57))))))))) (if (WithContinuationMark? - v_67) + v_69) (let-values () (let-values (((key_8 value_3 @@ -7546,7 +7614,7 @@ (let-values () (alt_56))))))))) (if (WithContinuationMark? - v_67) + v_69) (let-values () (let-values (((key_9 _fst_6 @@ -7560,13 +7628,13 @@ (let-values (((key_10 _snd_2 _thd_0) - (let-values (((v_73) + (let-values (((v_75) wcm_0)) - (let-values (((v_74) - v_73)) + (let-values (((v_76) + v_75)) (let-values (((vec-v_30) (struct->vector - v_74))) + v_76))) (let-values (((alt_58) (lambda () (begin @@ -7574,9 +7642,9 @@ (error 'match "failed ~e" - v_74))))) + v_76))))) (if (WithContinuationMark? - v_74) + v_76) (let-values () (let-values (((key_11 _snd_3 @@ -7597,7 +7665,7 @@ (let-values () (alt_55))))))))) (if (ImportedIdent? - v_67) + v_69) (let-values () (let-values (((id_3 src__0 @@ -7685,7 +7753,7 @@ (let-values () (alt_54))))))))) (if (Begin0? - v_67) + v_69) (let-values () (let-values (((expr0_0 expr*_0) @@ -7710,7 +7778,7 @@ (let-values () (alt_53))))))))) (if (TopLevelIdent? - v_67) + v_69) (let-values () (let-values (((id_4) (vector->values @@ -7722,7 +7790,7 @@ (let-values () (alt_52))))))))) (if (LocalIdent? - v_67) + v_69) (let-values () (let-values (((id_5) (vector->values @@ -7734,7 +7802,7 @@ (let-values () (alt_51)))))))))))) (if (Quote? - v_67) + v_69) (let-values () (let-values (((datum_0) (vector->values @@ -7747,7 +7815,7 @@ (let-values () (alt_48))))))))) (if (App? - v_67) + v_69) (let-values () (let-values (((lam_1 args_14) @@ -7766,19 +7834,19 @@ * /)))) (let-values (((il-app/binop_0) - (lambda (v_75 + (lambda (v_77 arg*_0) (begin 'il-app/binop (let-values (((v-il_0) (let-values (((__6 - v_76) + v_78) (absyn-expr->il - v_75 + v_77 #f))) - v_76))) + v_78))) (if (if (equal? - v_75 + v_77 (ImportedIdent3.1 '- '#%kernel @@ -7792,7 +7860,7 @@ v-il_0 arg*_0)) (if (if (equal? - v_75 + v_77 (ImportedIdent3.1 '/ '#%kernel @@ -7809,9 +7877,9 @@ 1) arg*_0))) (if (if (ImportedIdent? - v_75) + v_77) (if (member - v_75 + v_77 binops_0) (>= (length @@ -7822,7 +7890,7 @@ (let-values () (ILBinaryOp6.1 (ImportedIdent-id - v_75) + v_77) arg*_0)) (let-values () (ILApp7.1 @@ -7927,13 +7995,13 @@ temp5_0) temp6_0))) (let-values (((s_15 - v_77) + v_79) (absyn-expr->il arg_0 #f))) (if (if next-has-stms?_2 (has-application? - v_77) + v_79) #f) (let-values () (let-values (((temp-id_0) @@ -7946,7 +8014,7 @@ s_15 (ILVarDec20.1 temp-id_0 - v_77)))) + v_79)))) (values (append arg-stms_0 @@ -7962,7 +8030,7 @@ s_15 stms_5) (cons - v_77 + v_79 vals_5) next-has-stms?_2)) (let-values () @@ -7971,7 +8039,7 @@ s_15 stms_5) (cons - v_77 + v_79 vals_5) (let-values (((or-part_73) next-has-stms?_2)) @@ -8019,10 +8087,10 @@ start_10)))))) (let-values (((lam-val_0 arg-vals_0) - (let-values (((v_78) + (let-values (((v_80) lam-part-vals_0)) - (let-values (((v_79) - v_78)) + (let-values (((v_81) + v_80)) (let-values () (let-values (((alt_59) (lambda () @@ -8031,9 +8099,9 @@ (error 'match "failed ~e" - v_79))))) + v_81))))) (if (let-values (((p_95) - v_79)) + v_81)) (if (pair? p_95) (let-values (((a_116) @@ -8045,7 +8113,7 @@ (let-values (((lam-val_1 arg-vals_1) (let-values (((p_96) - v_79)) + v_81)) (let-values (((lam-val_2) (let-values (((a_163) (car @@ -8079,7 +8147,7 @@ (let-values () (alt_47))))))))) (if (App? - v_67) + v_69) (let-values () (let-values (((lam_2 args_15) @@ -8094,7 +8162,7 @@ lam_2)) #f) (let-values () - (let-values (((v_80) + (let-values (((v_82) args_15)) (let-values () (let-values (((alt_60) @@ -8185,7 +8253,7 @@ "unknown ffi form" args_15))))))))) (if (let-values (((p_97) - v_80)) + v_82)) (if (pair? p_97) (let-values (((a_164) @@ -8198,7 +8266,7 @@ (let-values (((fst_6) (let-values (((a_165) (car - v_80))) + v_82))) a_165))) (if (if (Quote? fst_6) @@ -8214,7 +8282,7 @@ (alt_75))) (alt_75)))))))) (if (let-values (((p_98) - v_80)) + v_82)) (if (pair? p_98) (let-values (((a_166) @@ -8227,7 +8295,7 @@ (let-values (((fst_7) (let-values (((a_167) (car - v_80))) + v_82))) a_167))) (if (if (Quote? fst_7) @@ -8243,7 +8311,7 @@ (alt_74))) (alt_74)))))))) (if (let-values (((p_99) - v_80)) + v_82)) (if (pair? p_99) (let-values (((a_168) @@ -8256,7 +8324,7 @@ (let-values (((fst_8) (let-values (((a_169) (car - v_80))) + v_82))) a_169))) (if (if (Quote? fst_8) @@ -8272,7 +8340,7 @@ (alt_73))) (alt_73)))))))) (if (let-values (((p_100) - v_80)) + v_82)) (if (pair? p_100) (let-values (((a_170) @@ -8285,7 +8353,7 @@ (let-values (((fst_9) (let-values (((a_171) (car - v_80))) + v_82))) a_171))) (if (if (Quote? fst_9) @@ -8301,7 +8369,7 @@ (alt_72))) (alt_72)))))))) (if (let-values (((p_101) - v_80)) + v_82)) (if (pair? p_101) (let-values (((a_172) @@ -8340,7 +8408,7 @@ e0_4 e1_5) (let-values (((p_104) - v_80)) + v_82)) (let-values (((fst_11) (let-values (((a_174) (car @@ -8403,13 +8471,13 @@ #f) (let-values () (let-values (((oper_0) - (let-values (((v_81) + (let-values (((v_83) snd_3)) - (let-values (((v_82) - v_81)) + (let-values (((v_84) + v_83)) (let-values (((vec-v_31) (struct->vector - v_82))) + v_84))) (let-values (((alt_76) (lambda () (begin @@ -8417,9 +8485,9 @@ (error 'match "failed ~e" - v_82))))) + v_84))))) (if (Quote? - v_82) + v_84) (let-values () (let-values (((oper_1) (vector->values @@ -8451,7 +8519,7 @@ (alt_71))) (alt_71)))))))) (if (let-values (((p_107) - v_80)) + v_82)) (if (pair? p_107) (let-values (((a_178) @@ -8481,7 +8549,7 @@ e_12 t_3) (let-values (((p_110) - v_80)) + v_82)) (let-values (((fst_13) (let-values (((a_181) (car @@ -8542,7 +8610,7 @@ (alt_70))) (alt_70)))))))) (if (let-values (((p_112) - v_80)) + v_82)) (if (pair? p_112) (let-values (((a_184) @@ -8563,7 +8631,7 @@ (let-values (((fst_14 e_15) (let-values (((p_114) - v_80)) + v_82)) (let-values (((fst_15) (let-values (((a_186) (car @@ -8600,7 +8668,7 @@ (alt_69))) (alt_69)))))))) (if (let-values (((p_115) - v_80)) + v_82)) (if (pair? p_115) (let-values (((a_188) @@ -8621,7 +8689,7 @@ (let-values (((fst_16 e_17) (let-values (((p_117) - v_80)) + v_82)) (let-values (((fst_17) (let-values (((a_190) (car @@ -8661,7 +8729,7 @@ (alt_68))) (alt_68)))))))) (if (let-values (((p_70) - v_80)) + v_82)) (if (pair? p_70) (let-values (((a_129) @@ -8673,7 +8741,7 @@ (let-values (((fst_18 items_2) (let-values (((p_71) - v_80)) + v_82)) (let-values (((fst_19) (let-values (((a_192) (car @@ -8762,18 +8830,18 @@ (pos-pre-inc_19 pos_67) pos_67)) - ((v_83 + ((v_85 all-cont?/pos_20) - (let-values (((v_84) + (let-values (((v_86) (pos->vals_22 pos_68))) (values - v_84 + v_86 (if all-cont?_22 (lambda (pos_71) (all-cont?_22 pos_71 - v_84)) + v_86)) #f)))) ((pos_72) (if pos-pre-inc_20 @@ -8786,7 +8854,7 @@ #t) (if val-cont?_22 (val-cont?_22 - v_83) + v_85) #t) #f) (let-values (((stms_11 @@ -8801,7 +8869,7 @@ (let-values (((s*_0 v*_0) (absyn-expr->il - v_83 + v_85 #f))) (values (append @@ -8857,7 +8925,7 @@ (alt_67))) (alt_67)))))))) (if (let-values (((p_118) - v_80)) + v_82)) (if (pair? p_118) (let-values (((a_193) @@ -8869,7 +8937,7 @@ (let-values (((fst_20 items_4) (let-values (((p_119) - v_80)) + v_82)) (let-values (((fst_21) (let-values (((a_194) (car @@ -8994,7 +9062,7 @@ (alt_66))) (alt_66)))))))) (if (let-values (((p_120) - v_80)) + v_82)) (if (pair? p_120) (let-values (((a_195) @@ -9015,7 +9083,7 @@ (let-values (((fst_22 lv_0) (let-values (((p_122) - v_80)) + v_82)) (let-values (((fst_23) (let-values (((a_197) (car @@ -9052,7 +9120,7 @@ (alt_65))) (alt_65)))))))) (if (let-values (((p_123) - v_80)) + v_82)) (if (pair? p_123) (let-values (((a_199) @@ -9082,7 +9150,7 @@ lv_2 rv_0) (let-values (((p_126) - v_80)) + v_82)) (let-values (((fst_25) (let-values (((a_137) (car @@ -9146,7 +9214,7 @@ (alt_64))) (alt_64)))))))) (if (let-values (((p_128) - v_80)) + v_82)) (if (pair? p_128) (let-values (((a_140) @@ -9167,7 +9235,7 @@ b_20 xs_20) (let-values (((p_130) - v_80)) + v_82)) (let-values (((fst_27) (let-values (((a_205) (car @@ -9311,51 +9379,51 @@ init_25))))) (alt_63))) (alt_63)))))))) - (if (let-values (((p_131) - v_80)) + (if (let-values (((p_83) + v_82)) (if (pair? - p_131) - (let-values (((a_207) + p_83) + (let-values (((a_151) (cdr - p_131))) - (let-values (((p_85) - a_207)) + p_83))) + (let-values (((p_84) + a_151)) (if (pair? - p_85) - (let-values (((a_208) + p_84) + (let-values (((a_207) (cdr - p_85))) + p_84))) (list? - a_208)) + a_207)) #f))) #f)) (let-values (((fst_28 b_23 xs_23) - (let-values (((p_132) - v_80)) + (let-values (((p_85) + v_82)) (let-values (((fst_29) - (let-values (((a_153) + (let-values (((a_152) (car - p_132))) - a_153)) + p_85))) + a_152)) ((b_24 xs_24) - (let-values (((d_43) + (let-values (((d_42) (cdr - p_132))) - (let-values (((p_133) - d_43)) + p_85))) + (let-values (((p_86) + d_42)) (let-values (((b_25) - (let-values (((a_209) + (let-values (((a_153) (car - p_133))) - a_209)) + p_86))) + a_153)) ((xs_25) - (let-values (((d_61) + (let-values (((d_43) (cdr - p_133))) - d_61))) + p_86))) + d_43))) (values b_25 xs_25)))))) @@ -9392,31 +9460,31 @@ (void) ((letrec-values (((for-loop_25) (lambda (il_7 - pos_41) + pos_79) (begin 'for-loop (if (if pos-cont?_26 (pos-cont?_26 - pos_41) + pos_79) #t) (let-values (((x_38 all-cont?/pos_23) (let-values (((x_39) (pos->vals_25 - pos_41))) + pos_79))) (values x_39 (if all-cont?_25 - (lambda (pos_79) + (lambda (pos_80) (all-cont?_25 - pos_79 + pos_80 x_39)) #f)))) - ((pos_40) + ((pos_39) (if pos-pre-inc_23 (pos-pre-inc_23 - pos_41) - pos_41))) + pos_79) + pos_79))) (if (if val-cont?_25 (val-cont?_25 x_38) @@ -9427,13 +9495,13 @@ (let-values (((il_10) (let-values () (let-values (((s_16) - (let-values (((v_85) + (let-values (((v_87) x_38)) - (let-values (((v_86) - v_85)) + (let-values (((v_88) + v_87)) (let-values (((vec-v_32) (struct->vector - v_86))) + v_88))) (let-values (((alt_77) (lambda () (begin @@ -9441,9 +9509,9 @@ (error 'match "failed ~e" - v_86))))) + v_88))))) (if (Quote? - v_86) + v_88) (let-values () (let-values (((s_17) (vector->values @@ -9466,7 +9534,7 @@ il_10))))) (if (if (if all-cont?/pos_23 (all-cont?/pos_23 - pos_40) + pos_39) #t) (not #f) @@ -9474,7 +9542,7 @@ (for-loop_25 il_8 (pos-next_26 - pos_40)) + pos_39)) il_8)) il_7)) il_7))))) @@ -9483,42 +9551,42 @@ init_26)))))) (alt_62))) (alt_62)))))))) - (if (let-values (((p_134) - v_80)) + (if (let-values (((p_131) + v_82)) (if (pair? - p_134) - (let-values (((a_210) + p_131) + (let-values (((a_208) (cdr - p_134))) - (let-values (((p_135) - a_210)) + p_131))) + (let-values (((p_132) + a_208)) (if (pair? - p_135) - (let-values (((a_211) + p_132) + (let-values (((a_209) (cdr - p_135))) + p_132))) (eq? '() - a_211)) + a_209)) #f))) #f)) (let-values (((fst_30 snd_6) - (let-values (((p_136) - v_80)) + (let-values (((p_133) + v_82)) (let-values (((fst_31) - (let-values (((a_212) + (let-values (((a_210) (car - p_136))) - a_212)) + p_133))) + a_210)) ((snd_7) - (let-values (((d_62) + (let-values (((d_61) (cdr - p_136))) - (let-values (((a_213) + p_133))) + (let-values (((a_211) (car - d_62))) - a_213)))) + d_61))) + a_211)))) (values fst_31 snd_7))))) @@ -9540,42 +9608,42 @@ snd_6)))) (alt_61))) (alt_61)))))))) - (if (let-values (((p_137) - v_80)) + (if (let-values (((p_134) + v_82)) (if (pair? - p_137) - (let-values (((a_214) + p_134) + (let-values (((a_212) (cdr - p_137))) - (let-values (((p_138) - a_214)) + p_134))) + (let-values (((p_135) + a_212)) (if (pair? - p_138) - (let-values (((a_215) + p_135) + (let-values (((a_213) (cdr - p_138))) + p_135))) (eq? '() - a_215)) + a_213)) #f))) #f)) (let-values (((fst_32 snd_8) - (let-values (((p_139) - v_80)) + (let-values (((p_136) + v_82)) (let-values (((fst_33) - (let-values (((a_216) + (let-values (((a_214) (car - p_139))) - a_216)) + p_136))) + a_214)) ((snd_9) - (let-values (((d_63) + (let-values (((d_62) (cdr - p_139))) - (let-values (((a_217) + p_136))) + (let-values (((a_215) (car - d_63))) - a_217)))) + d_62))) + a_215)))) (values fst_33 snd_9))))) @@ -9599,7 +9667,7 @@ (alt_46)))) (let-values () (alt_46))))))))) - (if (Set!? v_67) + (if (Set!? v_69) (let-values () (let-values (((id_6 e_19) @@ -9608,7 +9676,7 @@ 1))) (values (let-values (((stms_25 - v_87) + v_89) (absyn-expr->il e_19 #f))) @@ -9616,12 +9684,12 @@ stms_25 (ILAssign24.1 id_6 - v_87))) + v_89))) (ILValue12.1 (void))))) (let-values () (alt_45))))))))) - (if (LetValues? v_67) + (if (LetValues? v_69) (let-values () (let-values (((bindings_1 body_7) (vector->values vec-v_18 1))) @@ -9640,31 +9708,31 @@ (void) ((letrec-values (((for-loop_26) (lambda (stms_26 - pos_80) + pos_81) (begin 'for-loop (if (if pos-cont?_27 (pos-cont?_27 - pos_80) + pos_81) #t) (let-values (((b_26 all-cont?/pos_24) (let-values (((b_27) (pos->vals_26 - pos_80))) + pos_81))) (values b_27 (if all-cont?_26 - (lambda (pos_81) + (lambda (pos_82) (all-cont?_26 - pos_81 + pos_82 b_27)) #f)))) - ((pos_82) + ((pos_83) (if pos-pre-inc_24 (pos-pre-inc_24 - pos_80) - pos_80))) + pos_81) + pos_81))) (if (if val-cont?_26 (val-cont?_26 b_26) @@ -9682,7 +9750,7 @@ stms_29))))) (if (if (if all-cont?/pos_24 (all-cont?/pos_24 - pos_82) + pos_83) #t) (not #f) @@ -9690,7 +9758,7 @@ (for-loop_26 stms_27 (pos-next_27 - pos_82)) + pos_83)) stms_27)) stms_26)) stms_26))))) @@ -9725,38 +9793,38 @@ ((letrec-values (((for-loop_27) (lambda (stms_30 rv_3 - pos_83 - pos_84) + pos_84 + pos_85) (begin 'for-loop (if (if (if pos-cont?_28 (pos-cont?_28 - pos_83) + pos_84) #t) (< - pos_84 + pos_85 end_5) #f) (let-values (((e_20 all-cont?/pos_25) (let-values (((e_21) (pos->vals_27 - pos_83))) + pos_84))) (values e_21 (if all-cont?_27 - (lambda (pos_85) + (lambda (pos_86) (all-cont?_27 - pos_85 + pos_86 e_21)) #f)))) - ((pos_86) + ((pos_87) (if pos-pre-inc_25 (pos-pre-inc_25 - pos_83) - pos_83)) + pos_84) + pos_84)) ((body14_0) - pos_84)) + pos_85)) (if (if (if val-cont?_27 (val-cont?_27 e_20) @@ -9800,7 +9868,7 @@ rv_5))))) (if (if (if all-cont?/pos_25 (all-cont?/pos_25 - pos_86) + pos_87) #t) (not #f) @@ -9809,9 +9877,9 @@ stms_31 rv_4 (pos-next_28 - pos_86) + pos_87) (+ - pos_84 + pos_85 inc_1)) (values stms_31 @@ -9828,7 +9896,7 @@ init_28 start_11))))))) (let-values () (alt_44))))))))) - (if (If? v_67) + (if (If? v_69) (let-values () (let-values (((pred-e_0 t-branch_0 f-branch_0) (vector->values vec-v_17 1))) @@ -9852,7 +9920,7 @@ (append1 fs_2 (ILVarDec20.1 result-id_1 fe_0))))) result-id_1))))))) (let-values () (alt_43))))))))) - (if (CaseLambda? v_67) + (if (CaseLambda? v_69) (let-values () (let-values (((clauses_1) (vector->values vec-v_16 1))) (let-values (((fixed-lams_0 rest-lams_0) @@ -9884,30 +9952,30 @@ (begin (void) ((letrec-values (((for-loop_28) - (lambda (fold-var_12 pos_87) + (lambda (fold-var_12 pos_88) (begin 'for-loop (if (if pos-cont?_29 - (pos-cont?_29 pos_87) + (pos-cont?_29 pos_88) #t) (let-values (((c_12 all-cont?/pos_26) (let-values (((c_13) (pos->vals_28 - pos_87))) + pos_88))) (values c_13 (if all-cont?_28 - (lambda (pos_88) + (lambda (pos_89) (all-cont?_28 - pos_88 + pos_89 c_13)) #f)))) - ((pos_89) + ((pos_90) (if pos-pre-inc_26 (pos-pre-inc_26 - pos_87) - pos_87))) + pos_88) + pos_88))) (if (if val-cont?_28 (val-cont?_28 c_12) #t) @@ -9946,13 +10014,13 @@ fold-var_15))))) (if (if (if all-cont?/pos_26 (all-cont?/pos_26 - pos_89) + pos_90) #t) (not #f) #f) (for-loop_28 fold-var_13 - (pos-next_29 pos_89)) + (pos-next_29 pos_90)) fold-var_13)) fold-var_12)) fold-var_12))))) @@ -9965,7 +10033,7 @@ (name-in-module 'core 'attachProcedureArity) (list val_7 arities_0)))))))) (let-values () (alt_42))))))))) - (if (Lambda? v_67) + (if (Lambda? v_69) (let-values () (let-values (((formals_7 body_8 unchecked?_0) (vector->values vec-v_15 1))) (let-values (((->jslist_0) @@ -10016,26 +10084,26 @@ (void) (let-values () (check-range start_12 end_6 inc_2))) ((letrec-values (((for-loop_29) - (lambda (stms_35 rv_6 pos_90 pos_91) + (lambda (stms_35 rv_6 pos_91 pos_92) (begin 'for-loop - (if (if (if pos-cont?_30 (pos-cont?_30 pos_90) #t) - (< pos_91 end_6) + (if (if (if pos-cont?_30 (pos-cont?_30 pos_91) #t) + (< pos_92 end_6) #f) (let-values (((e_22 all-cont?/pos_27) (let-values (((e_23) - (pos->vals_29 pos_90))) + (pos->vals_29 pos_91))) (values e_23 (if all-cont?_29 - (lambda (pos_92) - (all-cont?_29 pos_92 e_23)) + (lambda (pos_93) + (all-cont?_29 pos_93 e_23)) #f)))) - ((pos_93) + ((pos_94) (if pos-pre-inc_27 - (pos-pre-inc_27 pos_90) - pos_90)) - ((body19_0) pos_91)) + (pos-pre-inc_27 pos_91) + pos_91)) + ((body19_0) pos_92)) (if (if (if val-cont?_29 (val-cont?_29 e_22) #t) #t #f) @@ -10049,7 +10117,7 @@ body18_0) body19_0))) (let-values (((s_19 - v_88) + v_90) (absyn-expr->il e_22 (if last?_2 @@ -10060,25 +10128,25 @@ (append stms_37 s_19) - v_88) + v_90) (values (append stms_37 s_19 (list - v_88)) - v_88))))))) + v_90)) + v_90))))))) (values stms_38 rv_8))))) (if (if (if all-cont?/pos_27 - (all-cont?/pos_27 pos_93) + (all-cont?/pos_27 pos_94) #t) (not #f) #f) (for-loop_29 stms_36 rv_7 - (pos-next_30 pos_93) - (+ pos_91 inc_2)) + (pos-next_30 pos_94) + (+ pos_92 inc_2)) (values stms_36 rv_7))) (values stms_35 rv_6))) (values stms_35 rv_6)))))) @@ -10102,20 +10170,20 @@ (lambda (b_28) (begin (let-values (((args_16 expr_7) - (let-values (((v_89) b_28)) - (let-values (((v_90) v_89)) + (let-values (((v_91) b_28)) + (let-values (((v_92) v_91)) (let-values () - (let-values (((alt_78) (lambda () (begin 'alt (error 'match "failed ~e" v_90))))) - (if (let-values (((p_140) v_90)) (if (pair? p_140) #t #f)) + (let-values (((alt_78) (lambda () (begin 'alt (error 'match "failed ~e" v_92))))) + (if (let-values (((p_137) v_92)) (if (pair? p_137) #t #f)) (let-values (((args_17 expr_8) - (let-values (((p_141) v_90)) - (let-values (((args_18) (let-values (((a_218) (car p_141))) a_218)) - ((expr_9) (let-values (((d_64) (cdr p_141))) d_64))) + (let-values (((p_138) v_92)) + (let-values (((args_18) (let-values (((a_216) (car p_138))) a_216)) + ((expr_9) (let-values (((d_63) (cdr p_138))) d_63))) (values args_18 expr_9))))) (let-values () (values args_17 expr_8))) (alt_78)))))))) - (let-values (((stms_39 v_91) (absyn-expr->il expr_7 #f))) - (let-values (((v_92) args_16)) + (let-values (((stms_39 v_93) (absyn-expr->il expr_7 #f))) + (let-values (((v_94) args_16)) (let-values () (let-values (((alt_79) (lambda () @@ -10146,33 +10214,33 @@ (let-values () (check-range start_13 end_7 inc_3))) (void) ((letrec-values (((for-loop_30) - (lambda (fold-var_16 pos_94 pos_95) + (lambda (fold-var_16 pos_95 pos_96) (begin 'for-loop - (if (if (< pos_94 end_7) + (if (if (< pos_95 end_7) (if pos-cont?_31 - (pos-cont?_31 pos_95) + (pos-cont?_31 pos_96) #t) #f) - (let-values (((i_54) pos_94) + (let-values (((i_54) pos_95) ((arg_2 all-cont?/pos_28) (let-values (((arg_3) (pos->vals_30 - pos_95))) + pos_96))) (values arg_3 (if all-cont?_30 - (lambda (pos_96) + (lambda (pos_97) (all-cont?_30 - pos_96 + pos_97 arg_3)) #f)))) - ((pos_97) + ((pos_98) (if pos-pre-inc_28 (pos-pre-inc_28 - pos_95) - pos_95))) + pos_96) + pos_96))) (if (if val-cont?_30 (val-cont?_30 arg_2) #t) @@ -10197,14 +10265,14 @@ fold-var_19))))) (if (if (if all-cont?/pos_28 (all-cont?/pos_28 - pos_97) + pos_98) #t) (not #f) #f) (for-loop_30 fold-var_17 - (+ pos_94 inc_3) - (pos-next_31 pos_97)) + (+ pos_95 inc_3) + (pos-next_31 pos_98)) fold-var_17)) fold-var_16)) fold-var_16))))) @@ -10214,57 +10282,57 @@ init_31)))))) (append stms_39 - (cons (ILVarDec20.1 result-id_2 v_91) binding-stms_1)))))))))))) - (if (let-values (((p_142) v_92)) - (if (pair? p_142) (let-values (((a_219) (cdr p_142))) (eq? '() a_219)) #f)) - (let-values (((a_220) (let-values (((a_221) (car v_92))) a_221))) - (let-values () (append1 stms_39 (ILVarDec20.1 a_220 v_91)))) + (cons (ILVarDec20.1 result-id_2 v_93) binding-stms_1)))))))))))) + (if (let-values (((p_139) v_94)) + (if (pair? p_139) (let-values (((a_217) (cdr p_139))) (eq? '() a_217)) #f)) + (let-values (((a_218) (let-values (((a_219) (car v_94))) a_219))) + (let-values () (append1 stms_39 (ILVarDec20.1 a_218 v_93)))) (alt_79)))))))))) (define-values (absyn-value->il) - (lambda (d_65) + (lambda (d_64) (begin - (if (Quote? d_65) - (let-values () (absyn-value->il (Quote-datum d_65))) - (if (string? d_65) - (let-values () (ILApp7.1 (name-in-module 'core 'UString.make) (list (ILValue12.1 d_65)))) - (if (symbol? d_65) + (if (Quote? d_64) + (let-values () (absyn-value->il (Quote-datum d_64))) + (if (string? d_64) + (let-values () (ILApp7.1 (name-in-module 'core 'UString.make) (list (ILValue12.1 d_64)))) + (if (symbol? d_64) (let-values () - (ILApp7.1 (name-in-module 'core 'PrimitiveSymbol.make) (list (ILValue12.1 (symbol->string d_65))))) - (if (keyword? d_65) + (ILApp7.1 (name-in-module 'core 'PrimitiveSymbol.make) (list (ILValue12.1 (symbol->string d_64))))) + (if (keyword? d_64) (let-values () - (ILApp7.1 (name-in-module 'core 'Keyword.make) (list (ILValue12.1 (keyword->string d_65))))) - (if (list? d_65) - (let-values () (ILApp7.1 (name-in-module 'core 'Pair.makeList) (map2 absyn-value->il d_65))) - (if (empty? d_65) + (ILApp7.1 (name-in-module 'core 'Keyword.make) (list (ILValue12.1 (keyword->string d_64))))) + (if (list? d_64) + (let-values () (ILApp7.1 (name-in-module 'core 'Pair.makeList) (map2 absyn-value->il d_64))) + (if (empty? d_64) (let-values () (name-in-module 'core 'Pair.EMPTY)) - (if (cons? d_65) + (if (cons? d_64) (let-values () (ILApp7.1 (name-in-module 'core 'Pair.make) - (list (absyn-value->il (car d_65)) (absyn-value->il (cdr d_65))))) - (if (vector? d_65) + (list (absyn-value->il (car d_64)) (absyn-value->il (cdr d_64))))) + (if (vector? d_64) (let-values () (ILApp7.1 (name-in-module 'core 'Vector.make) - (list (ILArray8.1 (map2 absyn-value->il (vector->list d_65)))))) - (if (hash? d_65) + (list (ILArray8.1 (map2 absyn-value->il (vector->list d_64)))))) + (if (hash? d_64) (let-values () (let-values (((maker_0) - (if (hash-eq? d_65) + (if (hash-eq? d_64) (let-values () 'Hash.makeEq) - (if (hash-eqv? d_65) + (if (hash-eqv? d_64) (let-values () 'Hash.makeEqv) - (if (hash-equal? d_65) + (if (hash-equal? d_64) (let-values () 'Hash.makeEqual) (let-values () (error 'assemble-value "unknown hash type"))))))) - (let-values (((mutable_0) (not (immutable? d_65)))) + (let-values (((mutable_0) (not (immutable? d_64)))) (ILApp7.1 (name-in-module 'core maker_0) (list (ILArray8.1 (reverse$1 - (let-values (((ht_7) d_65)) + (let-values (((ht_7) d_64)) (begin (if (variable-reference-from-unsafe? (#%variable-reference)) (void) @@ -10300,36 +10368,36 @@ null (hash-iterate-first ht_7)))))) (ILValue12.1 mutable_0)))))) - (if (bytes? d_65) + (if (bytes? d_64) (let-values () (ILApp7.1 (name-in-module 'core 'Bytes.fromIntArray) - (list (ILArray8.1 (map2 ILValue12.1 (bytes->list d_65)))))) - (if (box? d_65) + (list (ILArray8.1 (map2 ILValue12.1 (bytes->list d_64)))))) + (if (box? d_64) (let-values () - (ILApp7.1 (name-in-module 'core 'Box.make) (list (absyn-value->il (unbox d_65))))) - (if (char? d_65) + (ILApp7.1 (name-in-module 'core 'Box.make) (list (absyn-value->il (unbox d_64))))) + (if (char? d_64) (let-values () (ILApp7.1 (name-in-module 'core 'Char.charFromCodepoint) - (list (absyn-value->il (char->integer d_65))))) - (if (let-values (((or-part_75) (regexp? d_65))) - (if or-part_75 or-part_75 (byte-regexp? d_65))) + (list (absyn-value->il (char->integer d_64))))) + (if (let-values (((or-part_75) (regexp? d_64))) + (if or-part_75 or-part_75 (byte-regexp? d_64))) (let-values () - (let-values (((v_93) (object-name d_65))) + (let-values (((v_95) (object-name d_64))) (ILApp7.1 (name-in-module 'core 'Regexp.fromString) - (list (ILValue12.1 (if (bytes? v_93) (bytes->string/utf-8 v_93) v_93)))))) - (if (let-values (((or-part_76) (integer? d_65))) + (list (ILValue12.1 (if (bytes? v_95) (bytes->string/utf-8 v_95) v_95)))))) + (if (let-values (((or-part_76) (integer? d_64))) (if or-part_76 or-part_76 - (let-values (((or-part_77) (boolean? d_65))) + (let-values (((or-part_77) (boolean? d_64))) (if or-part_77 or-part_77 - (let-values (((or-part_78) (void? d_65))) - (if or-part_78 or-part_78 (real? d_65))))))) - (let-values () (ILValue12.1 d_65)) - (let-values () (error (~a "unsupported value" d_65)))))))))))))))))))) + (let-values (((or-part_78) (void? d_64))) + (if or-part_78 or-part_78 (real? d_64))))))) + (let-values () (ILValue12.1 d_64)) + (let-values () (error (~a "unsupported value" d_64)))))))))))))))))))) (define-values (expand-normal-case-lambda) (lambda (fixed-lams_1 rest-lams_1) @@ -10356,7 +10424,7 @@ (lambda (lams*_0 names*_0) (begin 'loop - (let-values (((v_94) (list lams*_0 names*_0))) + (let-values (((v_96) (list lams*_0 names*_0))) (let-values () (let-values (((alt_80) (lambda () @@ -10370,81 +10438,81 @@ (error 'match "failed ~e" - v_94))))) - (if (let-values (((p_143) v_94)) - (if (pair? p_143) - (if (let-values (((a_222) - (car p_143))) - (let-values (((p_144) - a_222)) - (if (pair? p_144) + v_96))))) + (if (let-values (((p_140) v_96)) + (if (pair? p_140) + (if (let-values (((a_220) + (car p_140))) + (let-values (((p_141) + a_220)) + (if (pair? p_141) #t #f))) - (let-values (((a_223) - (cdr p_143))) - (let-values (((p_145) - a_223)) - (if (pair? p_145) - (if (let-values (((a_224) + (let-values (((a_221) + (cdr p_140))) + (let-values (((p_142) + a_221)) + (if (pair? p_142) + (if (let-values (((a_222) (car - p_145))) - (let-values (((p_146) - a_224)) + p_142))) + (let-values (((p_143) + a_222)) (if (pair? - p_146) + p_143) #t #f))) - (let-values (((a_225) + (let-values (((a_223) (cdr - p_145))) - (eq? '() a_225)) + p_142))) + (eq? '() a_223)) #f) #f))) #f) #f)) (let-values (((lh_0 lt_0 nh_0 nt_0) - (let-values (((p_147) - v_94)) + (let-values (((p_144) + v_96)) (let-values (((lh_1 lt_1) - (let-values (((a_226) + (let-values (((a_224) (car - p_147))) - (let-values (((p_148) - a_226)) + p_144))) + (let-values (((p_145) + a_224)) (let-values (((lh_2) - (let-values (((a_227) + (let-values (((a_225) (car - p_148))) - a_227)) + p_145))) + a_225)) ((lt_2) - (let-values (((d_66) + (let-values (((d_65) (cdr - p_148))) - d_66))) + p_145))) + d_65))) (values lh_2 lt_2))))) ((nh_1 nt_1) - (let-values (((d_67) + (let-values (((d_66) (cdr - p_147))) - (let-values (((a_228) + p_144))) + (let-values (((a_226) (car - d_67))) - (let-values (((p_149) - a_228)) + d_66))) + (let-values (((p_146) + a_226)) (let-values (((nh_2) - (let-values (((a_229) + (let-values (((a_227) (car - p_149))) - a_229)) + p_146))) + a_227)) ((nt_2) - (let-values (((d_68) + (let-values (((d_67) (cdr - p_149))) - d_68))) + p_146))) + d_67))) (values nh_2 nt_2))))))) @@ -10484,17 +10552,17 @@ *arguments*_0)) (loop_55 lt_0 nt_0))))) (alt_81)))))))) - (if (let-values (((p_150) v_94)) - (if (pair? p_150) - (if (let-values (((a_230) (car p_150))) - (eq? '() a_230)) - (let-values (((a_231) (cdr p_150))) - (let-values (((p_151) a_231)) - (if (pair? p_151) - (if (let-values (((a_232) (car p_151))) - (eq? '() a_232)) - (let-values (((a_233) (cdr p_151))) - (eq? '() a_233)) + (if (let-values (((p_147) v_96)) + (if (pair? p_147) + (if (let-values (((a_228) (car p_147))) + (eq? '() a_228)) + (let-values (((a_229) (cdr p_147))) + (let-values (((p_148) a_229)) + (if (pair? p_148) + (if (let-values (((a_230) (car p_148))) + (eq? '() a_230)) + (let-values (((a_231) (cdr p_148))) + (eq? '() a_231)) #f) #f))) #f) @@ -10549,19 +10617,19 @@ (begin (void) ((letrec-values (((for-loop_32) - (lambda (res_9 least-var-arity_0 pos_98) + (lambda (res_9 least-var-arity_0 pos_99) (begin 'for-loop - (if (if pos-cont?_32 (pos-cont?_32 pos_98) #t) + (if (if pos-cont?_32 (pos-cont?_32 pos_99) #t) (let-values (((lam_5 all-cont?/pos_29) - (let-values (((lam_6) (pos->vals_31 pos_98))) + (let-values (((lam_6) (pos->vals_31 pos_99))) (values lam_6 (if all-cont?_31 - (lambda (pos_99) (all-cont?_31 pos_99 lam_6)) + (lambda (pos_100) (all-cont?_31 pos_100 lam_6)) #f)))) - ((pos_100) - (if pos-pre-inc_29 (pos-pre-inc_29 pos_98) pos_98))) + ((pos_101) + (if pos-pre-inc_29 (pos-pre-inc_29 pos_99) pos_99))) (if (if val-cont?_31 (val-cont?_31 lam_5) #t) (let-values (((res_10 least-var-arity_1) (let-values (((res_11) res_9) @@ -10604,10 +10672,10 @@ least-var-arity_2)) (void))))))))) (values res_12 least-var-arity_3))))) - (if (if (if all-cont?/pos_29 (all-cont?/pos_29 pos_100) #t) + (if (if (if all-cont?/pos_29 (all-cont?/pos_29 pos_101) #t) (not #f) #f) - (for-loop_32 res_10 least-var-arity_1 (pos-next_32 pos_100)) + (for-loop_32 res_10 least-var-arity_1 (pos-next_32 pos_101)) (values res_10 least-var-arity_1))) (values res_9 least-var-arity_0))) (values res_9 least-var-arity_0)))))) @@ -10626,34 +10694,34 @@ (let-values () (lambda (__11) (Quote7.1 #t))) (if (list? frmls_1) (let-values () - (lambda (v_95) - (App9.1 (ImportedIdent3.1 'equal? '#%kernel #t) (list v_95 (Quote7.1 (length frmls_1)))))) + (lambda (v_97) + (App9.1 (ImportedIdent3.1 'equal? '#%kernel #t) (list v_97 (Quote7.1 (length frmls_1)))))) (if (cons? frmls_1) (let-values () - (lambda (v_96) + (lambda (v_98) (App9.1 (ImportedIdent3.1 '>= '#%kernel #t) - (list v_96 (Quote7.1 (sub1 (length (improper->proper frmls_1)))))))) + (list v_98 (Quote7.1 (sub1 (length (improper->proper frmls_1)))))))) (void))))))))) (define-values (resolve-procedure-arities) (lambda (arities_1) (begin (let-values (((arity<_0) - (lambda (a_234 b_29) + (lambda (a_232 b_29) (begin 'arity< (< - (if (arity-at-least? a_234) (arity-at-least-value a_234) a_234) + (if (arity-at-least? a_232) (arity-at-least-value a_232) a_232) (if (arity-at-least? b_29) (arity-at-least-value b_29) b_29)))))) (let-values (((arity-equal?_0) - (lambda (a_235 b_30) - (begin 'arity-equal? (if (not (arity<_0 a_235 b_30)) (not (arity<_0 b_30 a_235)) #f))))) + (lambda (a_233 b_30) + (begin 'arity-equal? (if (not (arity<_0 a_233 b_30)) (not (arity<_0 b_30 a_233)) #f))))) ((letrec-values (((loop_56) (lambda (arities*_0 result_12) (begin 'loop - (let-values (((v_97) arities*_0)) + (let-values (((v_99) arities*_0)) (let-values () (let-values (((alt_82) (lambda () @@ -10672,22 +10740,22 @@ (error 'match "failed ~e" - v_97))))) - (if (let-values (((p_152) v_97)) - (if (pair? p_152) #t #f)) + v_99))))) + (if (let-values (((p_149) v_99)) + (if (pair? p_149) #t #f)) (let-values (((hd_8 tl_3) - (let-values (((p_153) - v_97)) + (let-values (((p_150) + v_99)) (let-values (((hd_9) - (let-values (((a_236) + (let-values (((a_234) (car - p_153))) - a_236)) + p_150))) + a_234)) ((tl_4) - (let-values (((d_69) + (let-values (((d_68) (cdr - p_153))) - d_69))) + p_150))) + d_68))) (values hd_9 tl_4))))) (let-values () (loop_56 @@ -10700,17 +10768,17 @@ result_12 (cons hd_8 result_12))))) (alt_84)))))))) - (if (let-values (((p_154) v_97)) (if (pair? p_154) #t #f)) + (if (let-values (((p_151) v_99)) (if (pair? p_151) #t #f)) (let-values (((hd_10 tl_5) - (let-values (((p_155) v_97)) + (let-values (((p_152) v_99)) (let-values (((hd_11) - (let-values (((a_237) - (car p_155))) - a_237)) + (let-values (((a_235) + (car p_152))) + a_235)) ((tl_6) - (let-values (((d_70) - (cdr p_155))) - d_70))) + (let-values (((d_69) + (cdr p_152))) + d_69))) (values hd_11 tl_6))))) (if (arity-at-least? hd_10) (let-values () @@ -10722,7 +10790,7 @@ (cons hd_10 result_12)))) (alt_83))) (alt_83)))))))) - (if (eq? '() v_97) + (if (eq? '() v_99) (let-values () (let-values () (reverse$1 result_12))) (alt_82))))))))) loop_56) From 0654457e211797e14f587a23af461f2ea055a394 Mon Sep 17 00:00:00 2001 From: gamburgm Date: Wed, 17 Aug 2022 22:42:22 -0400 Subject: [PATCH 170/170] failed attempt to bootstrap via primitive-table --- main.js | 18 +-------- .../racketscript/compiler/linklet-api.rkt | 20 +++++----- .../compiler/runtime/core/racketscript.js | 1 + .../racketscript/compiler/runtime/kernel.rkt | 3 +- .../racketscript/compiler/runtime/table.rkt | 37 +++++++++++++++++++ .../racketscript/compiler/sexp-to-ast.rkt | 7 ++-- .../racketscript/compiler/transform.rkt | 8 ++-- 7 files changed, 57 insertions(+), 37 deletions(-) create mode 100644 racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js create mode 100644 racketscript-compiler/racketscript/compiler/runtime/table.rkt diff --git a/main.js b/main.js index 71c4f887..86951c67 100644 --- a/main.js +++ b/main.js @@ -1,22 +1,6 @@ import * as Expander from './expander.js'; -import * as Linklet from './racketscript.js'; import * as CORE from '../runtime/core.js'; -import * as Kernel from '../runtime/kernel.rkt.js'; - -const { displayln } = Kernel; -const print = displayln; - -const sym = CORE.PrimitiveSymbol.make; - -const currPrimitiveTable = Kernel.primitiveTable; - -Kernel.primitiveTable = (symbol) => { - if (symbol.equals(sym('#%linklet'))) { - return Linklet; - } else { - return currPrimitiveTable; - } -}; +import { displayln as print } from '../runtime/kernel.rkt.js'; const demoNamespace = Expander.make_namespace(); const KERNEL_IMPORT = CORE.Pair.makeList( diff --git a/racketscript-compiler/racketscript/compiler/linklet-api.rkt b/racketscript-compiler/racketscript/compiler/linklet-api.rkt index 894067fa..f4b7e286 100644 --- a/racketscript-compiler/racketscript/compiler/linklet-api.rkt +++ b/racketscript-compiler/racketscript/compiler/linklet-api.rkt @@ -15,14 +15,14 @@ (Linklet-imports lnk)) ;; TODO temporary, for debugging/checking purposes -;; (define (everything) -;; (define sexp (read (open-input-file "../../../racketscript.rktl"))) +(define (everything) + (define sexp (read (open-input-file "../../../expander.rktl"))) -;; (call-with-output-file -;; "../../../js-build/modules/racketscript.js" -;; (λ (out) -;; (assemble-linklet -;; (insert-arity-checks -;; (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/racketscript.rkt"))) -;; out)) -;; #:exists 'replace)) + (call-with-output-file + "../../../js-build/modules/expander.js" + (λ (out) + (assemble-linklet + (insert-arity-checks + (absyn-linklet->il (parse-linklet sexp "/home/gamburgm/racketscript/expander.rkt"))) + out)) + #:exists 'replace)) diff --git a/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js b/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js new file mode 100644 index 00000000..1988a19c --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/core/racketscript.js @@ -0,0 +1 @@ +import * as $rjs_core from '../runtime/core.js';import * as M0 from "../runtime/kernel.rkt.js";import * as M1 from "../runtime/table.rkt.js";var bad_list$1 = function(who_0, orig_l_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("bad-list");return M0.raise_arguments_error(who_0,$rjs_core.UString.make("not a proper list"),$rjs_core.UString.make("in"),orig_l_0);};var member_0 = function(v_0, orig_l_1, eql_p_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("member");var loop_0 = function(ls_0, turtle_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_0)!==false) {var if_res7 = false;} else {if (M0.not(M0.pair_p(ls_0))!==false) {var if_res6 = bad_list$1($rjs_core.PrimitiveSymbol.make("member"),orig_l_1);} else {if (eql_p_0(v_0,M0.car(ls_0))!==false) {var if_res5 = ls_0;} else {var ls_1 = M0.cdr(ls_0);if (M0.null_p(ls_1)!==false) {var if_res4 = false;} else {var or_part_0 = M0.not(M0.pair_p(ls_1));if (or_part_0!==false) {var if_res1 = or_part_0;} else {var if_res1 = M0.eq_p(ls_1,turtle_0);}if (if_res1!==false) {var if_res3 = bad_list$1($rjs_core.PrimitiveSymbol.make("member"),orig_l_1);} else {if (eql_p_0(v_0,M0.car(ls_1))!==false) {var if_res2 = ls_1;} else {var if_res2 = loop_0(M0.cdr(ls_1),M0.cdr(turtle_0));}var if_res3 = if_res2;}var if_res4 = if_res3;}var if_res5 = if_res4;}var if_res6 = if_res5;}var if_res7 = if_res6;}return if_res7;};return loop_0(orig_l_1,orig_l_1);};var cl8 = function(v_1, ls_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return member_0(v_1,ls_2,M0.equal_p);};var cl9 = function(v_2, ls_3, eql_p_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(eql_p_1)!==false) {var if_res11 = M0.procedure_arity_includes_p(eql_p_1,2);} else {var if_res11 = false;}if (if_res11!==false) {var if_res12 = M0.rvoid();} else {var if_res12 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("member"),$rjs_core.UString.make("(procedure-arity-includes/c 2)"),M0.eq_p);}if_res12;return member_0(v_2,ls_3,eql_p_1);};var member = $rjs_core.attachProcedureArity(function() {var fixed_lam10 = {'2':cl8,'3':cl9}[arguments.length];if (fixed_lam10!==undefined) {return fixed_lam10.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var not_there = M0.gensym();var hash_has_key_p = function(ht_0, key_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(ht_0)!==false) {var if_res13 = M0.rvoid();} else {var if_res13 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash-has-key?"),$rjs_core.UString.make("hash?"),0,ht_0,key_0);}if_res13;return M0.not(M0.eq_p(not_there,M0.hash_ref(ht_0,key_0,not_there)));};var hash_ref_bang_ = function(ht_1, key_1, new_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(ht_1)!==false) {var if_res14 = M0.not(M0.immutable_p(ht_1));} else {var if_res14 = false;}if (if_res14!==false) {var if_res15 = M0.rvoid();} else {var if_res15 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash-ref!"),$rjs_core.UString.make("(and/c hash? (not/c immutable?))"),0,ht_1,key_1,new_0);}if_res15;var v_3 = M0.hash_ref(ht_1,key_1,not_there);if (M0.eq_p(not_there,v_3)!==false) {if (M0.procedure_p(new_0)!==false) {var if_res16 = new_0();} else {var if_res16 = new_0;}var n_0 = if_res16;M0.hash_set_bang_(ht_1,key_1,n_0);var if_res17 = n_0;} else {var if_res17 = v_3;}return if_res17;};var cl18 = function(v_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return displayln(v_4,M0.current_output_port());};var cl19 = function(v_5, p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.output_port_p(p_0)!==false) {var if_res21 = M0.rvoid();} else {var if_res21 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("displayln"),$rjs_core.UString.make("output-port?"),1,v_5,p_0);}if_res21;M0.display(v_5,p_0);return M0.newline(p_0);};var displayln = $rjs_core.attachProcedureArity(function() {var fixed_lam20 = {'1':cl18,'2':cl19}[arguments.length];if (fixed_lam20!==undefined) {return fixed_lam20.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var let_result22 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("keyword-impersonator"));var prop_keyword_impersonator = let_result22.getAt(0);var keyword_impersonator_p = let_result22.getAt(1);var keyword_impersonator_ref = let_result22.getAt(2);var keyword_procedure_impersonator_of = function(v_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_impersonator_p(v_6)!==false) {var if_res23 = keyword_impersonator_ref(v_6)(v_6);} else {var if_res23 = false;}return if_res23;};var let_result24 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("keyword-procedure"),false,4,0,false,M0.list(M0.cons(M0.prop_checked_procedure,true),M0.cons(M0.prop_impersonator_of,keyword_procedure_impersonator_of)),M0.current_inspector(),false,$rjs_core.Pair.makeList(0,1,2,3));var struct_keyword_procedure = let_result24.getAt(0);var mk_kw_proc = let_result24.getAt(1);var keyword_procedure_p = let_result24.getAt(2);var keyword_procedure_ref = let_result24.getAt(3);var keyword_procedure_set_bang_ = let_result24.getAt(4);var keyword_procedure_checker = M0.make_struct_field_accessor(keyword_procedure_ref,0);var keyword_procedure_proc = M0.make_struct_field_accessor(keyword_procedure_ref,1);var keyword_procedure_required = M0.make_struct_field_accessor(keyword_procedure_ref,2);var keyword_procedure_allowed = M0.make_struct_field_accessor(keyword_procedure_ref,3);var let_result25 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,0,0,false,M0.list(M0.cons(M0.prop_method_arity_error,true)));var struct_keyword_method = let_result25.getAt(0);var make_km = let_result25.getAt(1);var keyword_method_p = let_result25.getAt(2);var km_ref = let_result25.getAt(3);var km_set_bang_ = let_result25.getAt(4);var generate_arity_string = function(proc_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result26 = procedure_keywords(proc_0);var req_0 = let_result26.getAt(0);var allowed_0 = let_result26.getAt(1);var a_0 = M0.procedure_arity(proc_0);var keywords_desc_0 = function(opt_0, req_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("keywords-desc");var temp32 = $rjs_core.UString.make("~a with keyword~a~a");if (M0.null_p(M0.cdr(req_1))!==false) {var if_res31 = M0.format($rjs_core.UString.make("an ~aargument"),opt_0);} else {var if_res31 = M0.format($rjs_core.UString.make("~aarguments"),opt_0);}if (M0.null_p(M0.cdr(req_1))!==false) {var if_res30 = $rjs_core.UString.make("");} else {var if_res30 = $rjs_core.UString.make("s");}var tmp_0 = M0.length(req_1);if (M0.equal_p(tmp_0,1)!==false) {var if_res29 = M0.format($rjs_core.UString.make(" ~a"),M0.car(req_1));} else {if (M0.equal_p(tmp_0,2)!==false) {var if_res28 = M0.format($rjs_core.UString.make(" ~a and ~a"),M0.car(req_1),M0.cadr(req_1));} else {var loop_1 = function(req_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(req_2))!==false) {var if_res27 = M0.format($rjs_core.UString.make(" and ~a"),M0.car(req_2));} else {var if_res27 = M0.format($rjs_core.UString.make(" ~a,~a"),M0.car(req_2),loop_1(M0.cdr(req_2)));}return if_res27;};var if_res28 = loop_1(req_1);}var if_res29 = if_res28;}return M0.format(temp32,if_res31,if_res30,if_res29);};var method_adjust_0 = function(a_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("method-adjust");var or_part_1 = okm_p(proc_0);if (or_part_1!==false) {var if_res33 = or_part_1;} else {var if_res33 = keyword_method_p(proc_0);}if (if_res33!==false) {if (M0.zero_p(a_1)!==false) {var if_res34 = 0;} else {var if_res34 = M0.sub1(a_1);}var if_res35 = if_res34;} else {var if_res35 = a_1;}return if_res35;};if (M0.number_p(a_0)!==false) {var a_2 = method_adjust_0(a_0);var if_res42 = M0.format($rjs_core.UString.make("~a"),a_2);} else {if (M0.arity_at_least_p(a_0)!==false) {var a_3 = method_adjust_0(M0.arity_at_least_value(a_0));var if_res41 = M0.format($rjs_core.UString.make("at least ~a"),a_3);} else {var if_res41 = $rjs_core.UString.make("a different number");}var if_res42 = if_res41;}if (M0.null_p(req_0)!==false) {var if_res40 = $rjs_core.UString.make("");} else {var if_res40 = M0.format($rjs_core.UString.make(" plus ~a"),keywords_desc_0($rjs_core.UString.make(""),req_0));}if (allowed_0!==false) {var loop_2 = function(req_3, allowed_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(req_3)!==false) {var if_res37 = allowed_1;} else {if (M0.eq_p(M0.car(req_3),M0.car(allowed_1))!==false) {var if_res36 = loop_2(M0.cdr(req_3),M0.cdr(allowed_1));} else {var if_res36 = M0.cons(M0.car(allowed_1),loop_2(req_3,M0.cdr(allowed_1)));}var if_res37 = if_res36;}return if_res37;};var others_0 = loop_2(req_0,allowed_0);if (M0.null_p(others_0)!==false) {var if_res38 = $rjs_core.UString.make("");} else {var if_res38 = M0.format($rjs_core.UString.make(" plus ~a"),keywords_desc_0($rjs_core.UString.make("optional "),others_0));}var if_res39 = if_res38;} else {var if_res39 = $rjs_core.UString.make(" plus arbitrary keyword arguments");}return M0.string_append(if_res42,if_res40,if_res39);};var let_result43 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,1,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string)),M0.current_inspector(),0);var struct_okp = let_result43.getAt(0);var make_optional_keyword_procedure = let_result43.getAt(1);var okp_p = let_result43.getAt(2);var okp_ref = let_result43.getAt(3);var okp_set_bang_ = let_result43.getAt(4);var let_result44 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_okp,0,0,false,M0.list(M0.cons(M0.prop_method_arity_error,true)));var struct_okm = let_result44.getAt(0);var make_optional_keyword_method = let_result44.getAt(1);var okm_p = let_result44.getAt(2);var okm_ref = let_result44.getAt(3);var okm_set_bang_ = let_result44.getAt(4);var let_result45 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("named-keyword-procedure"));var prop_named_keyword_procedure = let_result45.getAt(0);var named_keyword_procedure_p = let_result45.getAt(1);var keyword_procedure_name_plus_fail = let_result45.getAt(2);var let_result47 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("procedure"),function(v_7, info_l_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_integer_p(v_7)!==false) {var if_res46 = M0.make_struct_field_accessor(M0.list_ref(info_l_0,3),v_7);} else {var if_res46 = false;}return if_res46;});var prop_procedure_accessor = let_result47.getAt(0);var procedure_accessor_p = let_result47.getAt(1);var procedure_accessor_ref = let_result47.getAt(2);var let_result48 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("procedure"),false,M0.list(M0.cons(M0.prop_procedure,M0.values),M0.cons(prop_procedure_accessor,M0.values)),true);var new_prop_procedure = let_result48.getAt(0);var new_procedure_p = let_result48.getAt(1);var new_procedure_ref = let_result48.getAt(2);var let_result49 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,1,0,false,M0.list(M0.cons(prop_keyword_impersonator,function(v_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return kpp_ref(v_8,0);})));var struct_keyword_procedure_impersonator = let_result49.getAt(0);var make_kpp = let_result49.getAt(1);var keyword_procedure_impersonator_p = let_result49.getAt(2);var kpp_ref = let_result49.getAt(3);var kpp_set_bang_ = let_result49.getAt(4);var let_result50 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method,1,0,false,M0.list(M0.cons(prop_keyword_impersonator,function(v_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return kmp_ref(v_9,0);})));var struct_keyword_method_impersonator = let_result50.getAt(0);var make_kmp = let_result50.getAt(1);var keyword_method_impersonator_p = let_result50.getAt(2);var kmp_ref = let_result50.getAt(3);var kmp_set_bang_ = let_result50.getAt(4);var let_result51 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_procedure_by_arity_error = let_result51.getAt(0);var make_kp_by_ae = let_result51.getAt(1);var kp_by_ae_p = let_result51.getAt(2);var kp_by_ae_ref = let_result51.getAt(3);var kp_by_ae_set_bang_ = let_result51.getAt(4);var let_result52 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_method_by_arity_error = let_result52.getAt(0);var make_km_by_ae = let_result52.getAt(1);var km_by_ae_p = let_result52.getAt(2);var km_by_ae_ref = let_result52.getAt(3);var km_by_ae_set_bang_ = let_result52.getAt(4);var let_result53 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_procedure_impersonator,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_procedure_impersonator_by_arity_error = let_result53.getAt(0);var make_kpi_by_ae = let_result53.getAt(1);var kpi_by_ae_p = let_result53.getAt(2);var kpi_by_ae_ref = let_result53.getAt(3);var kpi_by_ae_set_bang_ = let_result53.getAt(4);var let_result54 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("procedure"),struct_keyword_method_impersonator,0,0,false,M0.list(M0.cons(M0.prop_arity_string,generate_arity_string),M0.cons(M0.prop_incomplete_arity,true)));var struct_keyword_method_impersonator_by_arity_error = let_result54.getAt(0);var make_kmi_by_ae = let_result54.getAt(1);var kmi_by_ae_p = let_result54.getAt(2);var kmi_by_ae_ref = let_result54.getAt(3);var kmi_by_ae_set_bang_ = let_result54.getAt(4);var make_required = function(name_0, realm_0, fail_proc_0, method_p_0, impersonator_p_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_2 = name_0;if (or_part_2!==false) {var if_res58 = or_part_2;} else {var if_res58 = $rjs_core.PrimitiveSymbol.make("unknown");}if (impersonator_p_0!==false) {if (method_p_0!==false) {var if_res55 = struct_keyword_method_impersonator_by_arity_error;} else {var if_res55 = struct_keyword_procedure_impersonator_by_arity_error;}var if_res57 = if_res55;} else {if (method_p_0!==false) {var if_res56 = struct_keyword_method_by_arity_error;} else {var if_res56 = struct_keyword_procedure_by_arity_error;}var if_res57 = if_res56;}var let_result59 = M0.make_struct_type(if_res58,if_res57,0,0,false,M0.list(M0.cons(prop_named_keyword_procedure,M0.vector(name_0,realm_0,fail_proc_0))),M0.current_inspector(),fail_proc_0);var s__0 = let_result59.getAt(0);var mk_0 = let_result59.getAt(1);var __p_0 = let_result59.getAt(2);var __ref_0 = let_result59.getAt(3);var __set_bang__0 = let_result59.getAt(4);return mk_0;};var cl60 = function(proc_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var proc_name_0 = M0.object_name(proc_1);if (M0.procedure_p(proc_1)!==false) {var if_res63 = M0.procedure_realm(proc_1);} else {var if_res63 = false;}var proc_realm_0 = if_res63;var plain_proc_0 = $rjs_core.attachProcedureArity(function(...args_064) {var args_0 = $rjs_core.Pair.listFromArray(args_064);return M0.apply(proc_1,M0.rnull,M0.rnull,args_0);});if (M0.procedure_p(proc_1)!==false) {var if_res65 = M0.arithmetic_shift(M0.procedure_arity_mask(proc_1),-2);} else {var if_res65 = false;}var mask_0 = if_res65;if (M0.procedure_p(plain_proc_0)!==false) {if (M0.exact_integer_p(mask_0)!==false) {if (M0.symbol_p(proc_name_0)!==false) {if (M0.symbol_p(proc_realm_0)!==false) {var if_res66 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,proc_name_0,proc_realm_0);} else {var if_res66 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,false,$rjs_core.PrimitiveSymbol.make("ignored"));}var if_res67 = if_res66;} else {var if_res67 = M0.procedure_reduce_arity_mask(plain_proc_0,mask_0,false,$rjs_core.PrimitiveSymbol.make("ignored"));}var if_res68 = if_res67;} else {var if_res68 = plain_proc_0;}var if_res69 = if_res68;} else {var if_res69 = plain_proc_0;}return make_keyword_procedure(proc_1,if_res69);};var cl61 = function(proc_2, plain_proc_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(proc_2)!==false) {var if_res70 = M0.procedure_arity_mask(proc_2);} else {var if_res70 = false;}return make_optional_keyword_procedure(make_keyword_checker(M0.rnull,false,if_res70),proc_2,M0.rnull,false,plain_proc_1);};var make_keyword_procedure = $rjs_core.attachProcedureArity(function() {var fixed_lam62 = {'1':cl60,'2':cl61}[arguments.length];if (fixed_lam62!==undefined) {return fixed_lam62.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var keyword_apply = $rjs_core.attachProcedureArity(function(proc_3, kws_0, kw_vals_0, normal_args_0, ...normal_argss_071) {if (arguments.length<4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var normal_argss_0 = $rjs_core.Pair.listFromArray(normal_argss_071);var type_error_0 = function(what_0, which_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("type-error");return M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("keyword-apply"),what_0,which_0,proc_3,kws_0,kw_vals_0,normal_args_0,normal_argss_0);};if (M0.procedure_p(proc_3)!==false) {var if_res72 = M0.rvoid();} else {var if_res72 = type_error_0($rjs_core.UString.make("procedure?"),0);}if_res72;var loop_3 = function(ks_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ks_0)!==false) {var if_res79 = M0.rvoid();} else {var or_part_3 = M0.not(M0.pair_p(ks_0));if (or_part_3!==false) {var if_res73 = or_part_3;} else {var if_res73 = M0.not(M0.keyword_p(M0.car(ks_0)));}if (if_res73!==false) {var if_res78 = type_error_0($rjs_core.UString.make("(listof keyword?)"),1);} else {if (M0.null_p(M0.cdr(ks_0))!==false) {var if_res77 = M0.rvoid();} else {var or_part_4 = M0.not(M0.pair_p(M0.cdr(ks_0)));if (or_part_4!==false) {var if_res74 = or_part_4;} else {var if_res74 = M0.not(M0.keyword_p(M0.cadr(ks_0)));}if (if_res74!==false) {var if_res76 = loop_3(M0.cdr(ks_0));} else {if (M0.keyword_lt__p(M0.car(ks_0),M0.cadr(ks_0))!==false) {var if_res75 = loop_3(M0.cdr(ks_0));} else {var if_res75 = type_error_0($rjs_core.UString.make("(and/c (listof? keyword?) sorted? distinct?)"),1);}var if_res76 = if_res75;}var if_res77 = if_res76;}var if_res78 = if_res77;}var if_res79 = if_res78;}return if_res79;};loop_3(kws_0);if (M0.list_p(kw_vals_0)!==false) {var if_res80 = M0.rvoid();} else {var if_res80 = type_error_0($rjs_core.UString.make("list?"),2);}if_res80;if (M0.__eq_(M0.length(kws_0),M0.length(kw_vals_0))!==false) {var if_res81 = M0.rvoid();} else {var if_res81 = M0.raise_arguments_error_times_($rjs_core.PrimitiveSymbol.make("keyword-apply"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("keyword list length does not match value list length"),$rjs_core.UString.make("keyword list length"),M0.length(kws_0),$rjs_core.UString.make("value list length"),M0.length(kw_vals_0),$rjs_core.UString.make("keyword list"),kws_0,$rjs_core.UString.make("value list"),kw_vals_0);}if_res81;var loop_4 = function(normal_argss_1, pos_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(normal_argss_1))!==false) {var l_0 = M0.car(normal_argss_1);if (M0.list_p(l_0)!==false) {var if_res82 = l_0;} else {var if_res82 = type_error_0($rjs_core.UString.make("list?"),pos_0);}var if_res83 = if_res82;} else {var if_res83 = M0.cons(M0.car(normal_argss_1),loop_4(M0.cdr(normal_argss_1),M0.add1(pos_0)));}return if_res83;};var normal_args_1 = loop_4(M0.cons(normal_args_0,normal_argss_0),3);if (M0.null_p(kws_0)!==false) {var if_res84 = M0.apply(proc_3,normal_args_1);} else {var if_res84 = M0.apply(keyword_procedure_extract_by_method(kws_0,2+M0.length(normal_args_1),proc_3,0),kws_0,kw_vals_0,normal_args_1);}return if_res84;});var procedure_keywords = function(p_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_1)!==false) {var if_res89 = M0.values(keyword_procedure_required(p_1),keyword_procedure_allowed(p_1));} else {if (M0.procedure_p(p_1)!==false) {if (new_procedure_p(p_1)!==false) {var v_10 = new_procedure_ref(p_1);if (M0.procedure_p(v_10)!==false) {var if_res86 = procedure_keywords(v_10);} else {var a_4 = procedure_accessor_ref(p_1);if (a_4!==false) {var if_res85 = procedure_keywords(a_4(p_1));} else {var if_res85 = M0.values(M0.rnull,M0.rnull);}var if_res86 = if_res85;}var if_res87 = if_res86;} else {var if_res87 = M0.values(M0.rnull,M0.rnull);}var if_res88 = if_res87;} else {var if_res88 = M0.raise_argument_error_times_($rjs_core.PrimitiveSymbol.make("procedure-keywords"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("procedure?"),p_1);}var if_res89 = if_res88;}return if_res89;};var extract_keyword_root = function(p_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_2)!==false) {var if_res93 = p_2;} else {if (M0.procedure_p(p_2)!==false) {var v_11 = new_procedure_ref(p_2,false);if (M0.procedure_p(v_11)!==false) {var if_res91 = extract_keyword_root(v_11);} else {var a_5 = procedure_accessor_ref(p_2,false);if (a_5!==false) {var if_res90 = extract_keyword_root(a_5(p_2));} else {var if_res90 = false;}var if_res91 = if_res90;}var if_res92 = if_res91;} else {var if_res92 = false;}var if_res93 = if_res92;}return if_res93;};var missing_kw = $rjs_core.attachProcedureArity(function(proc_4, ...args_194) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_1 = $rjs_core.Pair.listFromArray(args_194);return M0.apply(keyword_procedure_extract_by_method(M0.rnull,0,proc_4,0),M0.rnull,M0.rnull,args_1);});var check_kw_args = function(p_3, kws_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_5 = function(kws_2, required_0, allowed_2) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_2)!==false) {if (M0.null_p(required_0)!==false) {var if_res95 = M0.values(false,false);} else {var if_res95 = M0.values(M0.car(required_0),false);}var if_res104 = if_res95;} else {if (M0.pair_p(required_0)!==false) {var if_res96 = M0.eq_p(M0.car(required_0),M0.car(kws_2));} else {var if_res96 = false;}if (if_res96!==false) {var temp99 = M0.cdr(kws_2);var temp98 = M0.cdr(required_0);if (allowed_2!==false) {var if_res97 = M0.cdr(allowed_2);} else {var if_res97 = false;}var if_res103 = loop_5(temp99,temp98,if_res97);} else {if (M0.not(allowed_2)!==false) {var if_res102 = loop_5(M0.cdr(kws_2),required_0,false);} else {if (M0.pair_p(allowed_2)!==false) {if (M0.eq_p(M0.car(allowed_2),M0.car(kws_2))!==false) {var if_res100 = loop_5(M0.cdr(kws_2),required_0,M0.cdr(allowed_2));} else {var if_res100 = loop_5(kws_2,required_0,M0.cdr(allowed_2));}var if_res101 = if_res100;} else {var if_res101 = M0.values(false,M0.car(kws_2));}var if_res102 = if_res101;}var if_res103 = if_res102;}var if_res104 = if_res103;}return if_res104;};return loop_5(kws_1,keyword_procedure_required(p_3),keyword_procedure_allowed(p_3));};var make_keyword_checker = function(req_kws_0, allowed_kws_0, arity_mask_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.not(allowed_kws_0)!==false) {if (M0.null_p(req_kws_0)!==false) {var if_res106 = function(kws_3, a_6) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.bitwise_bit_set_p(arity_mask_0,a_6);};} else {var if_res106 = function(kws_4, a_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subset_p(req_kws_0,kws_4)!==false) {var if_res105 = M0.bitwise_bit_set_p(arity_mask_0,a_7);} else {var if_res105 = false;}return if_res105;};}var if_res119 = if_res106;} else {if (M0.null_p(allowed_kws_0)!==false) {var if_res118 = function(kws_5, a_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(kws_5)!==false) {var if_res107 = M0.bitwise_bit_set_p(arity_mask_0,a_8);} else {var if_res107 = false;}return if_res107;};} else {if (M0.null_p(req_kws_0)!==false) {var if_res117 = function(kws_6, a_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subset_p(kws_6,allowed_kws_0)!==false) {var if_res108 = M0.bitwise_bit_set_p(arity_mask_0,a_9);} else {var if_res108 = false;}return if_res108;};} else {if (M0.list_p(req_kws_0)!==false) {if (M0.list_p(allowed_kws_0)!==false) {var if_res109 = M0.eq_p(M0.length(req_kws_0),M0.length(allowed_kws_0));} else {var if_res109 = false;}var if_res110 = if_res109;} else {var if_res110 = false;}if (if_res110!==false) {var if_res116 = function(kws_7, a_10) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_6 = function(kws_8, req_kws_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(req_kws_1)!==false) {var if_res113 = M0.null_p(kws_8);} else {if (M0.null_p(kws_8)!==false) {var if_res112 = false;} else {if (M0.eq_p(M0.car(kws_8),M0.car(req_kws_1))!==false) {var if_res111 = loop_6(M0.cdr(kws_8),M0.cdr(req_kws_1));} else {var if_res111 = false;}var if_res112 = if_res111;}var if_res113 = if_res112;}return if_res113;};if (loop_6(kws_7,req_kws_0)!==false) {var if_res114 = M0.bitwise_bit_set_p(arity_mask_0,a_10);} else {var if_res114 = false;}return if_res114;};} else {var if_res116 = function(kws_9, a_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (subsets_p(req_kws_0,kws_9,allowed_kws_0)!==false) {var if_res115 = M0.bitwise_bit_set_p(arity_mask_0,a_11);} else {var if_res115 = false;}return if_res115;};}var if_res117 = if_res116;}var if_res118 = if_res117;}var if_res119 = if_res118;}return if_res119;};var subset_p = function(l1_0, l2_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(l1_0)!==false) {var if_res122 = true;} else {if (M0.null_p(l2_0)!==false) {var if_res121 = false;} else {if (M0.eq_p(M0.car(l1_0),M0.car(l2_0))!==false) {var if_res120 = subset_p(M0.cdr(l1_0),M0.cdr(l2_0));} else {var if_res120 = subset_p(l1_0,M0.cdr(l2_0));}var if_res121 = if_res120;}var if_res122 = if_res121;}return if_res122;};var subsets_p = function(l1_1, l2_1, l3_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(l1_1)!==false) {var if_res127 = subset_p(l2_1,l3_0);} else {if (M0.null_p(l2_1)!==false) {var if_res126 = false;} else {if (M0.null_p(l3_0)!==false) {var if_res125 = false;} else {var v2_0 = M0.car(l2_1);if (M0.eq_p(M0.car(l1_1),v2_0)!==false) {var if_res124 = subsets_p(M0.cdr(l1_1),M0.cdr(l2_1),M0.cdr(l3_0));} else {if (M0.eq_p(v2_0,M0.car(l3_0))!==false) {var if_res123 = subsets_p(l1_1,M0.cdr(l2_1),M0.cdr(l3_0));} else {var if_res123 = subsets_p(l1_1,l2_1,M0.cdr(l3_0));}var if_res124 = if_res123;}var if_res125 = if_res124;}var if_res126 = if_res125;}var if_res127 = if_res126;}return if_res127;};var keyword_procedure_extract_by_method = function(kws_10, n_1, p_4, method_n_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(p_4)!==false) {var if_res128 = keyword_procedure_checker(p_4)(kws_10,n_1);} else {var if_res128 = false;}if (if_res128!==false) {var if_res158 = keyword_procedure_proc(p_4);} else {if (M0.not(keyword_procedure_p(p_4))!==false) {if (M0.procedure_p(p_4)!==false) {if (new_procedure_p(p_4)!==false) {var a_12 = procedure_accessor_ref(p_4);if (a_12!==false) {var if_res129 = a_12(p_4);} else {var if_res129 = false;}var if_res130 = if_res129;} else {var if_res130 = false;}var or_part_5 = if_res130;if (or_part_5!==false) {var if_res133 = or_part_5;} else {var or_part_6 = M0.procedure_extract_target(p_4);if (or_part_6!==false) {var if_res132 = or_part_6;} else {if (new_procedure_p(p_4)!==false) {var if_res131 = $rjs_core.PrimitiveSymbol.make("method");} else {var if_res131 = false;}var if_res132 = if_res131;}var if_res133 = if_res132;}var if_res134 = if_res133;} else {var if_res134 = false;}var if_res135 = if_res134;} else {var if_res135 = false;}var p2_0 = if_res135;if (p2_0!==false) {if (M0.eq_p(p2_0,$rjs_core.PrimitiveSymbol.make("method"))!==false) {var p3_0 = keyword_procedure_extract_by_method(kws_10,M0.add1(n_1),new_procedure_ref(p_4),M0.add1(method_n_0));var if_res137 = $rjs_core.attachProcedureArity(function(kws_11, kw_args_0, ...args_2136) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_2 = $rjs_core.Pair.listFromArray(args_2136);return M0.apply(p3_0,kws_11,kw_args_0,M0.cons(p_4,args_2));});} else {var if_res137 = keyword_procedure_extract_by_method(kws_10,n_1,p2_0,method_n_0);}var if_res157 = if_res137;} else {var if_res157 = $rjs_core.attachProcedureArity(function(kws_12, kw_args_1, ...args_3138) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_3 = $rjs_core.Pair.listFromArray(args_3138);if (keyword_procedure_p(p_4)!==false) {var if_res139 = check_kw_args(p_4,kws_12);} else {var if_res139 = M0.values(false,M0.car(kws_12));}var let_result140 = if_res139;var missing_kw_0 = let_result140.getAt(0);var extra_kw_0 = let_result140.getAt(1);var or_part_7 = keyword_method_p(p_4);if (or_part_7!==false) {var if_res141 = or_part_7;} else {var if_res141 = okm_p(p_4);}if (if_res141!==false) {var if_res142 = 1;} else {var if_res142 = 0;}var method_n_1 = method_n_0+if_res142;if (M0.__gt__eq_(n_1,method_n_1)!==false) {var if_res143 = n_1-method_n_1;} else {var if_res143 = n_1;}var n_2 = if_res143;if (M0.null_p(args_3)!==false) {var if_res144 = M0.null_p(kws_12);} else {var if_res144 = false;}if (if_res144!==false) {var if_res145 = $rjs_core.UString.make("");} else {var if_res145 = M0.apply(M0.string_append,$rjs_core.UString.make("\n arguments...:"),M0.append(M0.map(function(v_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.format($rjs_core.UString.make("\n ~e"),v_12);},args_3),M0.map(function(kw_0, kw_arg_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.format($rjs_core.UString.make("\n ~a ~e"),kw_0,kw_arg_0);},kws_12,kw_args_1)));}var args_str_0 = if_res145;var proc_name_1 = function(p_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("proc-name");if (named_keyword_procedure_p(p_5)!==false) {var if_res146 = M0.vector_ref(keyword_procedure_name_plus_fail(p_5),0);} else {var if_res146 = false;}var or_part_8 = if_res146;if (or_part_8!==false) {var if_res148 = or_part_8;} else {var or_part_9 = M0.object_name(p_5);if (or_part_9!==false) {var if_res147 = or_part_9;} else {var if_res147 = p_5;}var if_res148 = if_res147;}return if_res148;};var application_message_0 = function(str_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("application-message");return M0.error_message__gt_adjusted_string($rjs_core.PrimitiveSymbol.make("application"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),str_0,$rjs_core.PrimitiveSymbol.make("racket/primitive"));};var or_part_10 = extra_kw_0;if (or_part_10!==false) {var if_res155 = or_part_10;} else {var if_res155 = missing_kw_0;}if (if_res155!==false) {var if_res156 = M0.exn_fail_contract;} else {var if_res156 = M0.exn_fail_contract_arity;}if (extra_kw_0!==false) {if (keyword_procedure_p(p_4)!==false) {var if_res150 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("procedure does not expect an argument with given keyword\n"),$rjs_core.UString.make(" procedure: ~a\n"),$rjs_core.UString.make(" given keyword: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),extra_kw_0,args_str_0));} else {if (M0.procedure_p(p_4)!==false) {var if_res149 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("procedure does not accept keyword arguments\n"),$rjs_core.UString.make(" procedure: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),args_str_0));} else {var if_res149 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("not a procedure;\n"),$rjs_core.UString.make(" expected a procedure that can be applied to arguments\n"),$rjs_core.UString.make(" given: ~e"),$rjs_core.UString.make("~a")),p_4,args_str_0));}var if_res150 = if_res149;}var if_res154 = if_res150;} else {if (missing_kw_0!==false) {var if_res153 = application_message_0(M0.format(M0.string_append($rjs_core.UString.make("required keyword argument not supplied\n"),$rjs_core.UString.make(" procedure: ~a\n"),$rjs_core.UString.make(" required keyword: ~a"),$rjs_core.UString.make("~a")),proc_name_1(p_4),missing_kw_0,args_str_0));} else {var temp152 = M0.string_append($rjs_core.UString.make("no case matching ~a non-keyword argument~a\n"),$rjs_core.UString.make(" procedure: ~a"),$rjs_core.UString.make("~a"));if (M0.__eq_(1,n_2-2)!==false) {var if_res151 = $rjs_core.UString.make("");} else {var if_res151 = $rjs_core.UString.make("s");}var if_res153 = application_message_0(M0.format(temp152,n_2-2,if_res151,proc_name_1(p_4),args_str_0));}var if_res154 = if_res153;}return M0.raise(if_res156(if_res154,M0.current_continuation_marks()));});}var if_res158 = if_res157;}return if_res158;};var cl159 = function(proc_5, mask_1, req_kw_0, allowed_kw_0, name_1, realm_1) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_5,false,mask_1,name_1,realm_1,req_kw_0,allowed_kw_0);};var cl160 = function(proc_6, mask_2, req_kw_1, allowed_kw_1, name_2) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_6,false,mask_2,name_2,$rjs_core.PrimitiveSymbol.make("racket"),req_kw_1,allowed_kw_1);};var cl161 = function(proc_7, mask_3, req_kw_2, allowed_kw_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-reduce-keyword-arity-mask"),proc_7,false,mask_3,false,$rjs_core.PrimitiveSymbol.make("racket"),req_kw_2,allowed_kw_2);};var procedure_reduce_keyword_arity_mask = $rjs_core.attachProcedureArity(function() {var fixed_lam162 = {'6':cl159,'5':cl160,'4':cl161}[arguments.length];if (fixed_lam162!==undefined) {return fixed_lam162.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,5,6]);var do_procedure_reduce_keyword_arity = function(who_1, proc_8, arity_0, mask_4, name_3, realm_2, req_kw_3, allowed_kw_3) {if (arguments.length!==8) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (okp_p(proc_8)!==false) {var if_res163 = okp_ref(proc_8,0);} else {var if_res163 = proc_8;}var p_6 = if_res163;if (arity_0!==false) {var if_res164 = M0.procedure_reduce_arity(p_6,arity_0,name_3,realm_2);} else {var if_res164 = M0.procedure_reduce_arity_mask(p_6,mask_4,name_3,realm_2);}var plain_proc_2 = if_res164;var sorted_p_0 = function(kws_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("sorted?");var loop_7 = function(kws_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_14)!==false) {var if_res167 = true;} else {if (M0.null_p(M0.cdr(kws_14))!==false) {var if_res166 = true;} else {if (M0.keyword_lt__p(M0.car(kws_14),M0.cadr(kws_14))!==false) {var if_res165 = loop_7(M0.cdr(kws_14));} else {var if_res165 = false;}var if_res166 = if_res165;}var if_res167 = if_res166;}return if_res167;};return loop_7(kws_13);};if (M0.list_p(req_kw_3)!==false) {if (M0.andmap(M0.keyword_p,req_kw_3)!==false) {var if_res168 = sorted_p_0(req_kw_3);} else {var if_res168 = false;}var if_res169 = if_res168;} else {var if_res169 = false;}if (if_res169!==false) {var if_res173 = M0.rvoid();} else {var temp172 = $rjs_core.PrimitiveSymbol.make("racket/primitive");var temp171 = $rjs_core.UString.make("(and/c (listof? keyword?) sorted? distinct?)");var or_part_11 = arity_0;if (or_part_11!==false) {var if_res170 = or_part_11;} else {var if_res170 = mask_4;}var if_res173 = M0.raise_argument_error_times_(who_1,temp172,temp171,2,proc_8,if_res170,req_kw_3,allowed_kw_3);}if_res173;if (allowed_kw_3!==false) {if (M0.list_p(allowed_kw_3)!==false) {if (M0.andmap(M0.keyword_p,allowed_kw_3)!==false) {var if_res174 = sorted_p_0(allowed_kw_3);} else {var if_res174 = false;}var if_res175 = if_res174;} else {var if_res175 = false;}if (if_res175!==false) {var if_res179 = M0.rvoid();} else {var temp178 = $rjs_core.PrimitiveSymbol.make("racket/primitive");var temp177 = $rjs_core.UString.make("(or/c (and/c (listof? keyword?) sorted? distinct?) #f)");var or_part_12 = arity_0;if (or_part_12!==false) {var if_res176 = or_part_12;} else {var if_res176 = mask_4;}var if_res179 = M0.raise_argument_error_times_(who_1,temp178,temp177,3,proc_8,if_res176,req_kw_3,allowed_kw_3);}if_res179;if (subset_p(req_kw_3,allowed_kw_3)!==false) {var if_res180 = M0.rvoid();} else {var if_res180 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("allowed-keyword list does not include all required keywords"),$rjs_core.UString.make("allowed-keyword list"),allowed_kw_3,$rjs_core.UString.make("required keywords"),req_kw_3);}var if_res181 = if_res180;} else {var if_res181 = M0.rvoid();}if_res181;var let_result182 = procedure_keywords(proc_8);var old_req_0 = let_result182.getAt(0);var old_allowed_0 = let_result182.getAt(1);if (subset_p(old_req_0,req_kw_3)!==false) {var if_res183 = M0.rvoid();} else {var if_res183 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot reduce required keyword set"),$rjs_core.UString.make("required keywords"),old_req_0,$rjs_core.UString.make("requested required keywords"),req_kw_3);}if_res183;if (old_allowed_0!==false) {if (subset_p(req_kw_3,old_allowed_0)!==false) {var if_res184 = M0.rvoid();} else {var if_res184 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot require keywords not in original allowed set"),$rjs_core.UString.make("original allowed keywords"),old_allowed_0,$rjs_core.UString.make("requested required keywords"),req_kw_3);}if_res184;var or_part_13 = M0.not(allowed_kw_3);if (or_part_13!==false) {var if_res185 = or_part_13;} else {var if_res185 = subset_p(allowed_kw_3,old_allowed_0);}if (if_res185!==false) {var if_res186 = M0.rvoid();} else {var if_res186 = M0.raise_arguments_error_times_(who_1,$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("cannot allow keywords not in original allowed set"),$rjs_core.UString.make("original allowed keywords"),old_allowed_0,$rjs_core.UString.make("requested allowed keywords"),allowed_kw_3);}var if_res187 = if_res186;} else {var if_res187 = M0.rvoid();}if_res187;if (M0.null_p(allowed_kw_3)!==false) {var if_res201 = plain_proc_2;} else {var or_part_14 = mask_4;if (or_part_14!==false) {var if_res188 = or_part_14;} else {var if_res188 = arity__gt_mask(arity_0);}var mask_5 = if_res188;var new_mask_0 = M0.arithmetic_shift(mask_5,2);var kw_checker_0 = make_keyword_checker(req_kw_3,allowed_kw_3,new_mask_0);var proc_9 = normalize_proc(proc_8);var new_kw_proc_0 = M0.procedure_reduce_arity_mask(keyword_procedure_proc(proc_9),new_mask_0);if (M0.null_p(req_kw_3)!==false) {if (okm_p(proc_9)!==false) {var if_res189 = make_optional_keyword_method;} else {var if_res189 = make_optional_keyword_procedure;}var if_res200 = if_res189(kw_checker_0,new_kw_proc_0,req_kw_3,allowed_kw_3,plain_proc_2);} else {var or_part_15 = name_3;if (or_part_15!==false) {var if_res199 = or_part_15;} else {if (named_keyword_procedure_p(proc_9)!==false) {var if_res197 = M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),0);} else {var if_res197 = false;}var or_part_16 = if_res197;if (or_part_16!==false) {var if_res198 = or_part_16;} else {var if_res198 = M0.object_name(proc_9);}var if_res199 = if_res198;}if (name_3!==false) {var if_res192 = realm_2;} else {var if_res192 = false;}var or_part_17 = if_res192;if (or_part_17!==false) {var if_res196 = or_part_17;} else {if (named_keyword_procedure_p(proc_9)!==false) {var or_part_19 = M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),1);if (or_part_19!==false) {var if_res193 = or_part_19;} else {var if_res193 = M0.procedure_realm(M0.vector_ref(keyword_procedure_name_plus_fail(proc_9),2));}var if_res194 = if_res193;} else {var if_res194 = false;}var or_part_18 = if_res194;if (or_part_18!==false) {var if_res195 = or_part_18;} else {var if_res195 = M0.procedure_realm(proc_9);}var if_res196 = if_res195;}var temp191 = M0.procedure_reduce_arity_mask(missing_kw,M0.arithmetic_shift(mask_5,1));var or_part_20 = okm_p(proc_9);if (or_part_20!==false) {var if_res190 = or_part_20;} else {var if_res190 = keyword_method_p(proc_9);}var if_res200 = make_required(if_res199,if_res196,temp191,if_res190,false)(kw_checker_0,new_kw_proc_0,req_kw_3,allowed_kw_3);}var if_res201 = if_res200;}return if_res201;};var arity__gt_mask = function(a_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(a_13)!==false) {var if_res207 = M0.arithmetic_shift(1,a_13);} else {if (M0.arity_at_least_p(a_13)!==false) {var if_res206 = M0.bitwise_xor(-1,M0.sub1(M0.arithmetic_shift(1,M0.arity_at_least_value(a_13))));} else {if (M0.list_p(a_13)!==false) {var loop_8 = function(mask_6, l_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_1)!==false) {var if_res204 = mask_6;} else {var a_14 = M0.car(l_1);var or_part_21 = M0.exact_nonnegative_integer_p(a_14);if (or_part_21!==false) {var if_res202 = or_part_21;} else {var if_res202 = M0.arity_at_least_p(a_14);}if (if_res202!==false) {var if_res203 = loop_8(M0.bitwise_ior(mask_6,arity__gt_mask(a_14)),M0.cdr(l_1));} else {var if_res203 = false;}var if_res204 = if_res203;}return if_res204;};var if_res205 = loop_8(0,a_13);} else {var if_res205 = false;}var if_res206 = if_res205;}var if_res207 = if_res206;}return if_res207;};var cl208 = function(proc_10, mask_7, name_4, realm_3) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("procedure-reduce-arity");if (M0.procedure_p(proc_10)!==false) {var let_result212 = procedure_keywords(proc_10);var req_4 = let_result212.getAt(0);var allows_0 = let_result212.getAt(1);if (M0.pair_p(req_4)!==false) {var if_res213 = M0.not(M0.eqv_p(mask_7,0));} else {var if_res213 = false;}var if_res214 = if_res213;} else {var if_res214 = false;}if (if_res214!==false) {var if_res216 = M0.raise_arguments_error_times_($rjs_core.PrimitiveSymbol.make("procedure-reduce-arity"),$rjs_core.PrimitiveSymbol.make("racket/primitive"),$rjs_core.UString.make("procedure has required keyword arguments"),$rjs_core.UString.make("procedure"),proc_10);} else {if (okm_p(proc_10)!==false) {var if_res215 = M0.procedure__gt_method(proc_10);} else {var if_res215 = proc_10;}var if_res216 = M0.procedure_reduce_arity_mask(if_res215,mask_7,name_4,realm_3);}return if_res216;};var cl209 = function(proc_11, mask_8, name_5) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_reduce_arity_mask(proc_11,mask_8,name_5,$rjs_core.PrimitiveSymbol.make("racket"));};var cl210 = function(proc_12, mask_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_reduce_arity_mask(proc_12,mask_9,false,$rjs_core.PrimitiveSymbol.make("racket"));};var procedure_reduce_arity_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam211 = {'4':cl208,'3':cl209,'2':cl210}[arguments.length];if (fixed_lam211!==undefined) {return fixed_lam211.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3,4]);var new_procedure_reduce_arity_mask = procedure_reduce_arity_0;var cl217 = function(proc_13, name_6, realm_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("procedure-rename");if (M0.symbol_p(name_6)!==false) {var if_res220 = M0.symbol_p(realm_4);} else {var if_res220 = false;}if (M0.not(if_res220)!==false) {var if_res222 = M0.procedure_rename(proc_13,name_6,realm_4);} else {var c1_0 = extract_keyword_root(proc_13);if (c1_0!==false) {var if_res221 = (function(kw_p_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_procedure_reduce_keyword_arity($rjs_core.PrimitiveSymbol.make("procedure-rename"),proc_13,false,M0.procedure_arity_mask(proc_13),name_6,realm_4,keyword_procedure_required(kw_p_0),keyword_procedure_allowed(kw_p_0));})(c1_0);} else {var if_res221 = M0.procedure_rename(proc_13,name_6,realm_4);}var if_res222 = if_res221;}return if_res222;};var cl218 = function(proc_14, name_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_procedure_rename(proc_14,name_7,$rjs_core.PrimitiveSymbol.make("racket"));};var procedure_rename_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam219 = {'3':cl217,'2':cl218}[arguments.length];if (fixed_lam219!==undefined) {return fixed_lam219.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var new_procedure_rename = procedure_rename_0;var normalize_proc = function(proc_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (keyword_procedure_p(proc_15)!==false) {var if_res230 = proc_15;} else {if (new_procedure_p(proc_15)!==false) {var let_result223 = procedure_keywords(proc_15);var req_kws_2 = let_result223.getAt(0);var allowed_kws_1 = let_result223.getAt(1);if (M0.null_p(allowed_kws_1)!==false) {var if_res228 = proc_15;} else {var if_res228 = make_optional_keyword_procedure(function(given_kws_0, given_argc_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_arity_includes_p(proc_15,given_argc_0-2,true)!==false) {var or_part_22 = M0.not(allowed_kws_1);if (or_part_22!==false) {var if_res225 = or_part_22;} else {var if_res225 = subset_p(given_kws_0,allowed_kws_1);}if (if_res225!==false) {var if_res226 = subset_p(req_kws_2,given_kws_0);} else {var if_res226 = false;}var if_res227 = if_res226;} else {var if_res227 = false;}return if_res227;},$rjs_core.attachProcedureArity(function(kws_15, kw_args_2, ...vals_0224) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var vals_0 = $rjs_core.Pair.listFromArray(vals_0224);return keyword_apply(proc_15,kws_15,kw_args_2,vals_0);}),req_kws_2,allowed_kws_1,proc_15);}var if_res229 = if_res228;} else {var if_res229 = proc_15;}var if_res230 = if_res229;}return if_res230;};var reverse$1 = function(l_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reverse");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res232 = M0.rvoid();} else {if (M0.list_p(l_2)!==false) {var if_res231 = M0.rvoid();} else {var if_res231 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("reverse"),$rjs_core.UString.make("list?"),l_2);}var if_res232 = if_res231;}if_res232;var loop_9 = function(a_15, l_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_3)!==false) {var if_res233 = a_15;} else {var if_res233 = loop_9(M0.cons(M0.car(l_3),a_15),M0.cdr(l_3));}return if_res233;};return loop_9(M0.rnull,l_2);};var generic_sort_0 = function(A_0, less_than_p_0, n_3) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("generic-sort");var n_by_2__0 = M0.unsafe_fxrshift(n_3,1);var n_by_2_plus__0 = M0.unsafe_fx_(n_3,n_by_2__0);var copying_mergesort_0 = function(Alo_0, Blo_0, n_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("copying-mergesort");if (M0.unsafe_fx_eq_(n_4,1)!==false) {var if_res244 = M0.unsafe_vector_set_bang_(A_0,Blo_0,M0.unsafe_vector_ref(A_0,Alo_0));} else {if (M0.unsafe_fx_eq_(n_4,2)!==false) {var x_0 = M0.unsafe_vector_ref(A_0,Alo_0);var y_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_plus_(Alo_0,1));if (less_than_p_0(y_0,x_0)!==false) {M0.unsafe_vector_set_bang_(A_0,Blo_0,y_0);var if_res234 = M0.unsafe_vector_set_bang_(A_0,M0.unsafe_fx_plus_(Blo_0,1),x_0);} else {M0.unsafe_vector_set_bang_(A_0,Blo_0,x_0);var if_res234 = M0.unsafe_vector_set_bang_(A_0,M0.unsafe_fx_plus_(Blo_0,1),y_0);}var if_res243 = if_res234;} else {if (M0.unsafe_fx_lt_(n_4,16)!==false) {M0.unsafe_vector_set_bang_(A_0,Blo_0,M0.unsafe_vector_ref(A_0,Alo_0));var iloop_0 = function(i_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("iloop");if (M0.unsafe_fx_lt_(i_0,n_4)!==false) {var ref_i_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_plus_(Alo_0,i_0));var jloop_0 = function(j_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("jloop");var ref_j_1_0 = M0.unsafe_vector_ref(A_0,M0.unsafe_fx_(j_0,1));if (M0.unsafe_fx_lt_(Blo_0,j_0)!==false) {var if_res235 = less_than_p_0(ref_i_0,ref_j_1_0);} else {var if_res235 = false;}if (if_res235!==false) {M0.unsafe_vector_set_bang_(A_0,j_0,ref_j_1_0);var if_res236 = jloop_0(M0.unsafe_fx_(j_0,1));} else {M0.unsafe_vector_set_bang_(A_0,j_0,ref_i_0);var if_res236 = iloop_0(M0.unsafe_fx_plus_(i_0,1));}return if_res236;};var if_res237 = jloop_0(M0.unsafe_fx_plus_(Blo_0,i_0));} else {var if_res237 = M0.rvoid();}return if_res237;};var if_res242 = iloop_0(1);} else {var n_by_2__1 = M0.unsafe_fxrshift(n_4,1);var n_by_2_plus__1 = M0.unsafe_fx_(n_4,n_by_2__1);var Amid1_0 = M0.unsafe_fx_plus_(Alo_0,n_by_2__1);var Amid2_0 = M0.unsafe_fx_plus_(Alo_0,n_by_2_plus__1);var Bmid1_0 = M0.unsafe_fx_plus_(Blo_0,n_by_2__1);copying_mergesort_0(Amid1_0,Bmid1_0,n_by_2_plus__1);copying_mergesort_0(Alo_0,Amid2_0,n_by_2__1);var b2_0 = M0.unsafe_fx_plus_(Blo_0,n_4);var loop_10 = function(a1_0, b1_0, c1_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_1 = M0.unsafe_vector_ref(A_0,a1_0);var y_1 = M0.unsafe_vector_ref(A_0,b1_0);if (M0.not(less_than_p_0(y_1,x_1))!==false) {M0.unsafe_vector_set_bang_(A_0,c1_1,x_1);var a1_1 = M0.unsafe_fx_plus_(a1_0,1);var c1_2 = M0.unsafe_fx_plus_(c1_1,1);if (M0.unsafe_fx_lt_(c1_2,b1_0)!==false) {var if_res238 = loop_10(a1_1,b1_0,c1_2);} else {var if_res238 = M0.rvoid();}var if_res241 = if_res238;} else {M0.unsafe_vector_set_bang_(A_0,c1_1,y_1);var b1_1 = M0.unsafe_fx_plus_(b1_0,1);var c1_3 = M0.unsafe_fx_plus_(c1_1,1);if (M0.unsafe_fx_lt__eq_(b2_0,b1_1)!==false) {var loop_11 = function(a1_2, c1_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_4,b1_1)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_4,M0.unsafe_vector_ref(A_0,a1_2));var if_res239 = loop_11(M0.unsafe_fx_plus_(a1_2,1),M0.unsafe_fx_plus_(c1_4,1));} else {var if_res239 = M0.rvoid();}return if_res239;};var if_res240 = loop_11(a1_0,c1_3);} else {var if_res240 = loop_10(a1_0,b1_1,c1_3);}var if_res241 = if_res240;}return if_res241;};var if_res242 = loop_10(Amid2_0,Bmid1_0,Blo_0);}var if_res243 = if_res242;}var if_res244 = if_res243;}return if_res244;};var Alo_1 = 0;var Amid1_1 = n_by_2__0;var Amid2_1 = n_by_2_plus__0;var Ahi_0 = n_3;var B1lo_0 = n_3;copying_mergesort_0(Amid1_1,B1lo_0,n_by_2_plus__0);if (M0.zero_p(n_by_2__0)!==false) {var if_res245 = M0.rvoid();} else {var if_res245 = copying_mergesort_0(Alo_1,Amid2_1,n_by_2__0);}if_res245;var b2_1 = Ahi_0;var loop_12 = function(a1_3, b1_2, c1_5) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_2 = M0.unsafe_vector_ref(A_0,a1_3);var y_2 = M0.unsafe_vector_ref(A_0,b1_2);if (less_than_p_0(x_2,y_2)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_5,x_2);var a1_4 = M0.unsafe_fx_plus_(a1_3,1);var c1_6 = M0.unsafe_fx_plus_(c1_5,1);if (M0.unsafe_fx_lt_(c1_6,b1_2)!==false) {var if_res246 = loop_12(a1_4,b1_2,c1_6);} else {var if_res246 = M0.rvoid();}var if_res249 = if_res246;} else {M0.unsafe_vector_set_bang_(A_0,c1_5,y_2);var b1_3 = M0.unsafe_fx_plus_(b1_2,1);var c1_7 = M0.unsafe_fx_plus_(c1_5,1);if (M0.unsafe_fx_lt__eq_(b2_1,b1_3)!==false) {var loop_13 = function(a1_5, c1_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_8,b1_3)!==false) {M0.unsafe_vector_set_bang_(A_0,c1_8,M0.unsafe_vector_ref(A_0,a1_5));var if_res247 = loop_13(M0.unsafe_fx_plus_(a1_5,1),M0.unsafe_fx_plus_(c1_8,1));} else {var if_res247 = M0.rvoid();}return if_res247;};var if_res248 = loop_13(a1_3,c1_7);} else {var if_res248 = loop_12(a1_3,b1_3,c1_7);}var if_res249 = if_res248;}return if_res249;};return loop_12(B1lo_0,Amid2_1,Alo_1);};var generic_sort_by_key_0 = function(A_1, less_than_p_1, n_5, key_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("generic-sort/key");var n_by_2__2 = M0.unsafe_fxrshift(n_5,1);var n_by_2_plus__2 = M0.unsafe_fx_(n_5,n_by_2__2);var copying_mergesort_1 = function(Alo_2, Blo_1, n_6) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("copying-mergesort");if (M0.unsafe_fx_eq_(n_6,1)!==false) {var if_res263 = M0.unsafe_vector_set_bang_(A_1,Blo_1,M0.unsafe_vector_ref(A_1,Alo_2));} else {if (M0.unsafe_fx_eq_(n_6,2)!==false) {var x_3 = M0.unsafe_vector_ref(A_1,Alo_2);var y_3 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_plus_(Alo_2,1));if (key_2!==false) {var if_res250 = less_than_p_1(key_2(y_3),key_2(x_3));} else {var if_res250 = less_than_p_1(y_3,x_3);}if (if_res250!==false) {M0.unsafe_vector_set_bang_(A_1,Blo_1,y_3);var if_res251 = M0.unsafe_vector_set_bang_(A_1,M0.unsafe_fx_plus_(Blo_1,1),x_3);} else {M0.unsafe_vector_set_bang_(A_1,Blo_1,x_3);var if_res251 = M0.unsafe_vector_set_bang_(A_1,M0.unsafe_fx_plus_(Blo_1,1),y_3);}var if_res262 = if_res251;} else {if (M0.unsafe_fx_lt_(n_6,16)!==false) {M0.unsafe_vector_set_bang_(A_1,Blo_1,M0.unsafe_vector_ref(A_1,Alo_2));var iloop_1 = function(i_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("iloop");if (M0.unsafe_fx_lt_(i_1,n_6)!==false) {var ref_i_1 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_plus_(Alo_2,i_1));var jloop_1 = function(j_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("jloop");var ref_j_1_1 = M0.unsafe_vector_ref(A_1,M0.unsafe_fx_(j_1,1));if (M0.unsafe_fx_lt_(Blo_1,j_1)!==false) {if (key_2!==false) {var if_res252 = less_than_p_1(key_2(ref_i_1),key_2(ref_j_1_1));} else {var if_res252 = less_than_p_1(ref_i_1,ref_j_1_1);}var if_res253 = if_res252;} else {var if_res253 = false;}if (if_res253!==false) {M0.unsafe_vector_set_bang_(A_1,j_1,ref_j_1_1);var if_res254 = jloop_1(M0.unsafe_fx_(j_1,1));} else {M0.unsafe_vector_set_bang_(A_1,j_1,ref_i_1);var if_res254 = iloop_1(M0.unsafe_fx_plus_(i_1,1));}return if_res254;};var if_res255 = jloop_1(M0.unsafe_fx_plus_(Blo_1,i_1));} else {var if_res255 = M0.rvoid();}return if_res255;};var if_res261 = iloop_1(1);} else {var n_by_2__3 = M0.unsafe_fxrshift(n_6,1);var n_by_2_plus__3 = M0.unsafe_fx_(n_6,n_by_2__3);var Amid1_2 = M0.unsafe_fx_plus_(Alo_2,n_by_2__3);var Amid2_2 = M0.unsafe_fx_plus_(Alo_2,n_by_2_plus__3);var Bmid1_1 = M0.unsafe_fx_plus_(Blo_1,n_by_2__3);copying_mergesort_1(Amid1_2,Bmid1_1,n_by_2_plus__3);copying_mergesort_1(Alo_2,Amid2_2,n_by_2__3);var b2_2 = M0.unsafe_fx_plus_(Blo_1,n_6);var loop_14 = function(a1_6, b1_4, c1_9) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_4 = M0.unsafe_vector_ref(A_1,a1_6);var y_4 = M0.unsafe_vector_ref(A_1,b1_4);if (key_2!==false) {var if_res256 = less_than_p_1(key_2(y_4),key_2(x_4));} else {var if_res256 = less_than_p_1(y_4,x_4);}if (M0.not(if_res256)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_9,x_4);var a1_7 = M0.unsafe_fx_plus_(a1_6,1);var c1_10 = M0.unsafe_fx_plus_(c1_9,1);if (M0.unsafe_fx_lt_(c1_10,b1_4)!==false) {var if_res257 = loop_14(a1_7,b1_4,c1_10);} else {var if_res257 = M0.rvoid();}var if_res260 = if_res257;} else {M0.unsafe_vector_set_bang_(A_1,c1_9,y_4);var b1_5 = M0.unsafe_fx_plus_(b1_4,1);var c1_11 = M0.unsafe_fx_plus_(c1_9,1);if (M0.unsafe_fx_lt__eq_(b2_2,b1_5)!==false) {var loop_15 = function(a1_8, c1_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_12,b1_5)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_12,M0.unsafe_vector_ref(A_1,a1_8));var if_res258 = loop_15(M0.unsafe_fx_plus_(a1_8,1),M0.unsafe_fx_plus_(c1_12,1));} else {var if_res258 = M0.rvoid();}return if_res258;};var if_res259 = loop_15(a1_6,c1_11);} else {var if_res259 = loop_14(a1_6,b1_5,c1_11);}var if_res260 = if_res259;}return if_res260;};var if_res261 = loop_14(Amid2_2,Bmid1_1,Blo_1);}var if_res262 = if_res261;}var if_res263 = if_res262;}return if_res263;};var Alo_3 = 0;var Amid1_3 = n_by_2__2;var Amid2_3 = n_by_2_plus__2;var Ahi_1 = n_5;var B1lo_1 = n_5;copying_mergesort_1(Amid1_3,B1lo_1,n_by_2_plus__2);if (M0.zero_p(n_by_2__2)!==false) {var if_res264 = M0.rvoid();} else {var if_res264 = copying_mergesort_1(Alo_3,Amid2_3,n_by_2__2);}if_res264;var b2_3 = Ahi_1;var loop_16 = function(a1_9, b1_6, c1_13) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var x_5 = M0.unsafe_vector_ref(A_1,a1_9);var y_5 = M0.unsafe_vector_ref(A_1,b1_6);if (key_2!==false) {var if_res265 = less_than_p_1(key_2(x_5),key_2(y_5));} else {var if_res265 = less_than_p_1(x_5,y_5);}if (if_res265!==false) {M0.unsafe_vector_set_bang_(A_1,c1_13,x_5);var a1_10 = M0.unsafe_fx_plus_(a1_9,1);var c1_14 = M0.unsafe_fx_plus_(c1_13,1);if (M0.unsafe_fx_lt_(c1_14,b1_6)!==false) {var if_res266 = loop_16(a1_10,b1_6,c1_14);} else {var if_res266 = M0.rvoid();}var if_res269 = if_res266;} else {M0.unsafe_vector_set_bang_(A_1,c1_13,y_5);var b1_7 = M0.unsafe_fx_plus_(b1_6,1);var c1_15 = M0.unsafe_fx_plus_(c1_13,1);if (M0.unsafe_fx_lt__eq_(b2_3,b1_7)!==false) {var loop_17 = function(a1_11, c1_16) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(c1_16,b1_7)!==false) {M0.unsafe_vector_set_bang_(A_1,c1_16,M0.unsafe_vector_ref(A_1,a1_11));var if_res267 = loop_17(M0.unsafe_fx_plus_(a1_11,1),M0.unsafe_fx_plus_(c1_16,1));} else {var if_res267 = M0.rvoid();}return if_res267;};var if_res268 = loop_17(a1_9,c1_15);} else {var if_res268 = loop_16(a1_9,b1_7,c1_15);}var if_res269 = if_res268;}return if_res269;};return loop_16(B1lo_1,Amid2_3,Alo_3);};var cl341 = function(lst_0, less_than_p_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_7 = M0.length(lst_0);if (M0.unsafe_fx_eq_(n_7,0)!==false) {var if_res357 = lst_0;} else {var loop_18 = function(last_0, next_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_23 = M0.null_p(next_0);if (or_part_23!==false) {var if_res346 = or_part_23;} else {if (M0.not(less_than_p_2(M0.unsafe_car(next_0),last_0))!==false) {var if_res345 = loop_18(M0.unsafe_car(next_0),M0.unsafe_cdr(next_0));} else {var if_res345 = false;}var if_res346 = if_res345;}return if_res346;};if (loop_18(M0.car(lst_0),M0.cdr(lst_0))!==false) {var if_res356 = lst_0;} else {if (M0.unsafe_fx_lt__eq_(n_7,3)!==false) {if (M0.unsafe_fx_eq_(n_7,1)!==false) {var if_res352 = lst_0;} else {if (M0.unsafe_fx_eq_(n_7,2)!==false) {var if_res351 = M0.list(M0.cadr(lst_0),M0.car(lst_0));} else {var a_16 = M0.car(lst_0);var b_0 = M0.cadr(lst_0);var c_0 = M0.caddr(lst_0);if (less_than_p_2(b_0,a_16)!==false) {if (less_than_p_2(c_0,b_0)!==false) {var if_res348 = M0.list(c_0,b_0,a_16);} else {if (less_than_p_2(c_0,a_16)!==false) {var if_res347 = M0.list(b_0,c_0,a_16);} else {var if_res347 = M0.list(b_0,a_16,c_0);}var if_res348 = if_res347;}var if_res350 = if_res348;} else {if (less_than_p_2(c_0,a_16)!==false) {var if_res349 = M0.list(c_0,a_16,b_0);} else {var if_res349 = M0.list(a_16,c_0,b_0);}var if_res350 = if_res349;}var if_res351 = if_res350;}var if_res352 = if_res351;}var if_res355 = if_res352;} else {var vec_0 = M0.make_vector(n_7+M0.ceiling(n_7/2));var loop_19 = function(i_2, lst_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_1)!==false) {M0.vector_set_bang_(vec_0,i_2,M0.car(lst_1));var if_res353 = loop_19(M0.add1(i_2),M0.cdr(lst_1));} else {var if_res353 = M0.rvoid();}return if_res353;};loop_19(0,lst_0);generic_sort_0(vec_0,less_than_p_2,n_7);var loop_20 = function(i_3, r_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_4 = M0.sub1(i_3);if (M0.__lt_(i_4,0)!==false) {var if_res354 = r_0;} else {var if_res354 = loop_20(i_4,M0.cons(M0.vector_ref(vec_0,i_4),r_0));}return if_res354;};var if_res355 = loop_20(n_7,$rjs_core.Pair.makeList());}var if_res356 = if_res355;}var if_res357 = if_res356;}return if_res357;};var cl342 = function(lst_2, less_than_p_3, getkey_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_0!==false) {var if_res358 = M0.not(M0.eq_p(M0.values,getkey_0));} else {var if_res358 = false;}if (if_res358!==false) {var if_res359 = sort(lst_2,less_than_p_3,getkey_0,false);} else {var if_res359 = sort(lst_2,less_than_p_3);}return if_res359;};var cl343 = function(lst_3, less_than_p_4, getkey_1, cache_keys_p_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_1!==false) {var if_res360 = M0.not(M0.eq_p(M0.values,getkey_1));} else {var if_res360 = false;}if (if_res360!==false) {var n_8 = M0.length(lst_3);if (M0.unsafe_fx_eq_(n_8,0)!==false) {var if_res381 = lst_3;} else {if (cache_keys_p_0!==false) {var vec_1 = M0.make_vector(n_8+M0.ceiling(n_8/2));var loop_21 = function(i_5, lst_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_4)!==false) {var x_6 = M0.car(lst_4);M0.unsafe_vector_set_bang_(vec_1,i_5,M0.cons(getkey_1(x_6),x_6));var if_res361 = loop_21(M0.unsafe_fx_plus_(i_5,1),M0.cdr(lst_4));} else {var if_res361 = M0.rvoid();}return if_res361;};loop_21(0,lst_3);generic_sort_by_key_0(vec_1,less_than_p_4,n_8,M0.unsafe_car);var loop_22 = function(i_6, r_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_7 = M0.unsafe_fx_(i_6,1);if (M0.unsafe_fx_lt_(i_7,0)!==false) {var if_res362 = r_1;} else {var if_res362 = loop_22(i_7,M0.cons(M0.unsafe_cdr(M0.unsafe_vector_ref(vec_1,i_7)),r_1));}return if_res362;};var if_res380 = loop_22(n_8,$rjs_core.Pair.makeList());} else {var loop_23 = function(last_1, next_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_24 = M0.null_p(next_1);if (or_part_24!==false) {var if_res365 = or_part_24;} else {if (getkey_1!==false) {var if_res363 = less_than_p_4(getkey_1(M0.unsafe_car(next_1)),getkey_1(last_1));} else {var if_res363 = less_than_p_4(M0.unsafe_car(next_1),last_1);}if (M0.not(if_res363)!==false) {var if_res364 = loop_23(M0.unsafe_car(next_1),M0.unsafe_cdr(next_1));} else {var if_res364 = false;}var if_res365 = if_res364;}return if_res365;};if (loop_23(M0.car(lst_3),M0.cdr(lst_3))!==false) {var if_res379 = lst_3;} else {if (M0.unsafe_fx_lt__eq_(n_8,3)!==false) {if (M0.unsafe_fx_eq_(n_8,1)!==false) {var if_res375 = lst_3;} else {if (M0.unsafe_fx_eq_(n_8,2)!==false) {var if_res374 = M0.list(M0.cadr(lst_3),M0.car(lst_3));} else {var a_17 = M0.car(lst_3);var b_1 = M0.cadr(lst_3);var c_1 = M0.caddr(lst_3);if (getkey_1!==false) {var if_res366 = less_than_p_4(getkey_1(b_1),getkey_1(a_17));} else {var if_res366 = less_than_p_4(b_1,a_17);}if (if_res366!==false) {if (getkey_1!==false) {var if_res367 = less_than_p_4(getkey_1(c_1),getkey_1(b_1));} else {var if_res367 = less_than_p_4(c_1,b_1);}if (if_res367!==false) {var if_res370 = M0.list(c_1,b_1,a_17);} else {if (getkey_1!==false) {var if_res368 = less_than_p_4(getkey_1(c_1),getkey_1(a_17));} else {var if_res368 = less_than_p_4(c_1,a_17);}if (if_res368!==false) {var if_res369 = M0.list(b_1,c_1,a_17);} else {var if_res369 = M0.list(b_1,a_17,c_1);}var if_res370 = if_res369;}var if_res373 = if_res370;} else {if (getkey_1!==false) {var if_res371 = less_than_p_4(getkey_1(c_1),getkey_1(a_17));} else {var if_res371 = less_than_p_4(c_1,a_17);}if (if_res371!==false) {var if_res372 = M0.list(c_1,a_17,b_1);} else {var if_res372 = M0.list(a_17,c_1,b_1);}var if_res373 = if_res372;}var if_res374 = if_res373;}var if_res375 = if_res374;}var if_res378 = if_res375;} else {var vec_2 = M0.make_vector(n_8+M0.ceiling(n_8/2));var loop_24 = function(i_8, lst_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(lst_5)!==false) {M0.vector_set_bang_(vec_2,i_8,M0.car(lst_5));var if_res376 = loop_24(M0.add1(i_8),M0.cdr(lst_5));} else {var if_res376 = M0.rvoid();}return if_res376;};loop_24(0,lst_3);generic_sort_by_key_0(vec_2,less_than_p_4,n_8,getkey_1);var loop_25 = function(i_9, r_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var i_10 = M0.sub1(i_9);if (M0.__lt_(i_10,0)!==false) {var if_res377 = r_2;} else {var if_res377 = loop_25(i_10,M0.cons(M0.vector_ref(vec_2,i_10),r_2));}return if_res377;};var if_res378 = loop_25(n_8,$rjs_core.Pair.makeList());}var if_res379 = if_res378;}var if_res380 = if_res379;}var if_res381 = if_res380;}var if_res382 = if_res381;} else {var if_res382 = sort(lst_3,less_than_p_4);}return if_res382;};var temp383 = $rjs_core.attachProcedureArity(function() {var fixed_lam344 = {'2':cl341,'3':cl342,'4':cl343}[arguments.length];if (fixed_lam344!==undefined) {return fixed_lam344.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3,4]);var cl305 = function(vec_3, less_than_p_5, start_0, end_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_9 = end_0-start_0;var dst_vec_0 = M0.make_vector(n_9);var dst_start_0 = 0;if (M0.unsafe_fx_eq_(n_9,0)!==false) {var if_res318 = M0.rvoid();} else {var loop_26 = function(prev_val_0, next_index_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_25 = M0.unsafe_fx_eq_(next_index_0,end_0);if (or_part_25!==false) {var if_res309 = or_part_25;} else {var next_val_0 = M0.unsafe_vector_ref(vec_3,next_index_0);if (M0.not(less_than_p_5(next_val_0,prev_val_0))!==false) {var if_res308 = loop_26(next_val_0,M0.unsafe_fx_plus_(next_index_0,1));} else {var if_res308 = false;}var if_res309 = if_res308;}return if_res309;};if (loop_26(M0.unsafe_vector_ref(vec_3,start_0),M0.unsafe_fx_plus_(start_0,1))!==false) {var if_res317 = M0.vector_copy_bang_(dst_vec_0,dst_start_0,vec_3,start_0,end_0);} else {if (M0.unsafe_fx_lt__eq_(n_9,3)!==false) {M0.vector_copy_bang_(dst_vec_0,dst_start_0,vec_3,start_0,end_0);if (M0.unsafe_fx_eq_(n_9,1)!==false) {var if_res315 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_9,2)!==false) {var tmp_1 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0));M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1)));var if_res314 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),tmp_1);} else {var a_18 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0));var b_2 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1));var c_2 = M0.unsafe_vector_ref(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2));if (less_than_p_5(b_2,a_18)!==false) {if (less_than_p_5(c_2,b_2)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),c_2);var if_res311 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),a_18);} else {if (less_than_p_5(c_2,a_18)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),b_2);M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),c_2);var if_res310 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),a_18);} else {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),b_2);var if_res310 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),a_18);}var if_res311 = if_res310;}var if_res313 = if_res311;} else {if (less_than_p_5(c_2,a_18)!==false) {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,0),c_2);M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),a_18);var if_res312 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),b_2);} else {M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,1),c_2);var if_res312 = M0.unsafe_vector_set_bang_(dst_vec_0,M0.unsafe_fx_plus_(dst_start_0,2),b_2);}var if_res313 = if_res312;}var if_res314 = if_res313;}var if_res315 = if_res314;}var if_res316 = if_res315;} else {var work_vec_0 = M0.make_vector(n_9+M0.ceiling(n_9/2),false);M0.vector_copy_bang_(work_vec_0,0,vec_3,start_0,end_0);generic_sort_0(work_vec_0,less_than_p_5,n_9);var if_res316 = M0.vector_copy_bang_(dst_vec_0,dst_start_0,work_vec_0,0,n_9);}var if_res317 = if_res316;}var if_res318 = if_res317;}if_res318;return dst_vec_0;};var cl306 = function(vec_4, less_than_p_6, start_1, end_1, getkey_2, cache_keys_p_1) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_2!==false) {var if_res319 = M0.not(M0.eq_p(M0.values,getkey_2));} else {var if_res319 = false;}if (if_res319!==false) {var n_10 = end_1-start_1;var dst_vec_1 = M0.make_vector(n_10);var dst_start_1 = 0;if (M0.unsafe_fx_eq_(n_10,0)!==false) {var if_res338 = M0.rvoid();} else {if (cache_keys_p_1!==false) {var work_vec_1 = M0.make_vector(n_10+M0.ceiling(n_10/2),true);var loop_27 = function(i_11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_11,n_10)!==false) {var x_7 = M0.unsafe_vector_ref(vec_4,M0.unsafe_fx_plus_(i_11,start_1));M0.unsafe_vector_set_bang_(work_vec_1,i_11,M0.cons(getkey_2(x_7),x_7));var if_res320 = loop_27(M0.unsafe_fx_plus_(i_11,1));} else {var if_res320 = M0.rvoid();}return if_res320;};loop_27(0);generic_sort_by_key_0(work_vec_1,less_than_p_6,n_10,M0.unsafe_car);var loop_28 = function(i_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_12,n_10)!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(i_12,dst_start_1),M0.unsafe_cdr(M0.unsafe_vector_ref(work_vec_1,i_12)));var if_res321 = loop_28(M0.unsafe_fx_plus_(i_12,1));} else {var if_res321 = M0.rvoid();}return if_res321;};var if_res337 = loop_28(0);} else {var loop_29 = function(prev_val_1, next_index_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_26 = M0.unsafe_fx_eq_(next_index_1,end_1);if (or_part_26!==false) {var if_res324 = or_part_26;} else {var next_val_1 = M0.unsafe_vector_ref(vec_4,next_index_1);if (getkey_2!==false) {var if_res322 = less_than_p_6(getkey_2(next_val_1),getkey_2(prev_val_1));} else {var if_res322 = less_than_p_6(next_val_1,prev_val_1);}if (M0.not(if_res322)!==false) {var if_res323 = loop_29(next_val_1,M0.unsafe_fx_plus_(next_index_1,1));} else {var if_res323 = false;}var if_res324 = if_res323;}return if_res324;};if (loop_29(M0.unsafe_vector_ref(vec_4,start_1),M0.unsafe_fx_plus_(start_1,1))!==false) {var if_res336 = M0.vector_copy_bang_(dst_vec_1,dst_start_1,vec_4,start_1,end_1);} else {if (M0.unsafe_fx_lt__eq_(n_10,3)!==false) {M0.vector_copy_bang_(dst_vec_1,dst_start_1,vec_4,start_1,end_1);if (M0.unsafe_fx_eq_(n_10,1)!==false) {var if_res334 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_10,2)!==false) {var tmp_2 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0));M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1)));var if_res333 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),tmp_2);} else {var a_19 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0));var b_3 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1));var c_3 = M0.unsafe_vector_ref(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2));if (getkey_2!==false) {var if_res325 = less_than_p_6(getkey_2(b_3),getkey_2(a_19));} else {var if_res325 = less_than_p_6(b_3,a_19);}if (if_res325!==false) {if (getkey_2!==false) {var if_res326 = less_than_p_6(getkey_2(c_3),getkey_2(b_3));} else {var if_res326 = less_than_p_6(c_3,b_3);}if (if_res326!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),c_3);var if_res329 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),a_19);} else {if (getkey_2!==false) {var if_res327 = less_than_p_6(getkey_2(c_3),getkey_2(a_19));} else {var if_res327 = less_than_p_6(c_3,a_19);}if (if_res327!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),b_3);M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),c_3);var if_res328 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),a_19);} else {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),b_3);var if_res328 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),a_19);}var if_res329 = if_res328;}var if_res332 = if_res329;} else {if (getkey_2!==false) {var if_res330 = less_than_p_6(getkey_2(c_3),getkey_2(a_19));} else {var if_res330 = less_than_p_6(c_3,a_19);}if (if_res330!==false) {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,0),c_3);M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),a_19);var if_res331 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),b_3);} else {M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,1),c_3);var if_res331 = M0.unsafe_vector_set_bang_(dst_vec_1,M0.unsafe_fx_plus_(dst_start_1,2),b_3);}var if_res332 = if_res331;}var if_res333 = if_res332;}var if_res334 = if_res333;}var if_res335 = if_res334;} else {var work_vec_2 = M0.make_vector(n_10+M0.ceiling(n_10/2),false);M0.vector_copy_bang_(work_vec_2,0,vec_4,start_1,end_1);generic_sort_by_key_0(work_vec_2,less_than_p_6,n_10,getkey_2);var if_res335 = M0.vector_copy_bang_(dst_vec_1,dst_start_1,work_vec_2,0,n_10);}var if_res336 = if_res335;}var if_res337 = if_res336;}var if_res338 = if_res337;}if_res338;var if_res339 = dst_vec_1;} else {var if_res339 = vector_sort(vec_4,less_than_p_6,start_1,end_1);}return if_res339;};var temp340 = $rjs_core.attachProcedureArity(function() {var fixed_lam307 = {'4':cl305,'6':cl306}[arguments.length];if (fixed_lam307!==undefined) {return fixed_lam307.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,6]);var cl270 = function(vec_5, less_than_p_7, start_2, end_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}var n_11 = end_2-start_2;var dst_vec_2 = vec_5;var dst_start_2 = start_2;if (M0.unsafe_fx_eq_(n_11,0)!==false) {var if_res283 = M0.rvoid();} else {var loop_30 = function(prev_val_2, next_index_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_27 = M0.unsafe_fx_eq_(next_index_2,end_2);if (or_part_27!==false) {var if_res274 = or_part_27;} else {var next_val_2 = M0.unsafe_vector_ref(vec_5,next_index_2);if (M0.not(less_than_p_7(next_val_2,prev_val_2))!==false) {var if_res273 = loop_30(next_val_2,M0.unsafe_fx_plus_(next_index_2,1));} else {var if_res273 = false;}var if_res274 = if_res273;}return if_res274;};if (loop_30(M0.unsafe_vector_ref(vec_5,start_2),M0.unsafe_fx_plus_(start_2,1))!==false) {var if_res282 = M0.rvoid();} else {if (M0.unsafe_fx_lt__eq_(n_11,3)!==false) {M0.rvoid();if (M0.unsafe_fx_eq_(n_11,1)!==false) {var if_res280 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_11,2)!==false) {var tmp_3 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0));M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1)));var if_res279 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),tmp_3);} else {var a_20 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0));var b_4 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1));var c_4 = M0.unsafe_vector_ref(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2));if (less_than_p_7(b_4,a_20)!==false) {if (less_than_p_7(c_4,b_4)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),c_4);var if_res276 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),a_20);} else {if (less_than_p_7(c_4,a_20)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),b_4);M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),c_4);var if_res275 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),a_20);} else {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),b_4);var if_res275 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),a_20);}var if_res276 = if_res275;}var if_res278 = if_res276;} else {if (less_than_p_7(c_4,a_20)!==false) {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,0),c_4);M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),a_20);var if_res277 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),b_4);} else {M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,1),c_4);var if_res277 = M0.unsafe_vector_set_bang_(dst_vec_2,M0.unsafe_fx_plus_(dst_start_2,2),b_4);}var if_res278 = if_res277;}var if_res279 = if_res278;}var if_res280 = if_res279;}var if_res281 = if_res280;} else {var work_vec_3 = M0.make_vector(n_11+M0.ceiling(n_11/2),false);M0.vector_copy_bang_(work_vec_3,0,vec_5,start_2,end_2);generic_sort_0(work_vec_3,less_than_p_7,n_11);var if_res281 = M0.vector_copy_bang_(dst_vec_2,dst_start_2,work_vec_3,0,n_11);}var if_res282 = if_res281;}var if_res283 = if_res282;}if_res283;return M0.rvoid();};var cl271 = function(vec_6, less_than_p_8, start_3, end_3, getkey_3, cache_keys_p_2) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (getkey_3!==false) {var if_res284 = M0.not(M0.eq_p(M0.values,getkey_3));} else {var if_res284 = false;}if (if_res284!==false) {var n_12 = end_3-start_3;var dst_vec_3 = vec_6;var dst_start_3 = start_3;if (M0.unsafe_fx_eq_(n_12,0)!==false) {var if_res303 = M0.rvoid();} else {if (cache_keys_p_2!==false) {var work_vec_4 = M0.make_vector(n_12+M0.ceiling(n_12/2),true);var loop_31 = function(i_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_13,n_12)!==false) {var x_8 = M0.unsafe_vector_ref(vec_6,M0.unsafe_fx_plus_(i_13,start_3));M0.unsafe_vector_set_bang_(work_vec_4,i_13,M0.cons(getkey_3(x_8),x_8));var if_res285 = loop_31(M0.unsafe_fx_plus_(i_13,1));} else {var if_res285 = M0.rvoid();}return if_res285;};loop_31(0);generic_sort_by_key_0(work_vec_4,less_than_p_8,n_12,M0.unsafe_car);var loop_32 = function(i_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.unsafe_fx_lt_(i_14,n_12)!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(i_14,dst_start_3),M0.unsafe_cdr(M0.unsafe_vector_ref(work_vec_4,i_14)));var if_res286 = loop_32(M0.unsafe_fx_plus_(i_14,1));} else {var if_res286 = M0.rvoid();}return if_res286;};var if_res302 = loop_32(0);} else {var loop_33 = function(prev_val_3, next_index_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var or_part_28 = M0.unsafe_fx_eq_(next_index_3,end_3);if (or_part_28!==false) {var if_res289 = or_part_28;} else {var next_val_3 = M0.unsafe_vector_ref(vec_6,next_index_3);if (getkey_3!==false) {var if_res287 = less_than_p_8(getkey_3(next_val_3),getkey_3(prev_val_3));} else {var if_res287 = less_than_p_8(next_val_3,prev_val_3);}if (M0.not(if_res287)!==false) {var if_res288 = loop_33(next_val_3,M0.unsafe_fx_plus_(next_index_3,1));} else {var if_res288 = false;}var if_res289 = if_res288;}return if_res289;};if (loop_33(M0.unsafe_vector_ref(vec_6,start_3),M0.unsafe_fx_plus_(start_3,1))!==false) {var if_res301 = M0.rvoid();} else {if (M0.unsafe_fx_lt__eq_(n_12,3)!==false) {M0.rvoid();if (M0.unsafe_fx_eq_(n_12,1)!==false) {var if_res299 = M0.rvoid();} else {if (M0.unsafe_fx_eq_(n_12,2)!==false) {var tmp_4 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0));M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1)));var if_res298 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),tmp_4);} else {var a_21 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0));var b_5 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1));var c_5 = M0.unsafe_vector_ref(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2));if (getkey_3!==false) {var if_res290 = less_than_p_8(getkey_3(b_5),getkey_3(a_21));} else {var if_res290 = less_than_p_8(b_5,a_21);}if (if_res290!==false) {if (getkey_3!==false) {var if_res291 = less_than_p_8(getkey_3(c_5),getkey_3(b_5));} else {var if_res291 = less_than_p_8(c_5,b_5);}if (if_res291!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),c_5);var if_res294 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),a_21);} else {if (getkey_3!==false) {var if_res292 = less_than_p_8(getkey_3(c_5),getkey_3(a_21));} else {var if_res292 = less_than_p_8(c_5,a_21);}if (if_res292!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),b_5);M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),c_5);var if_res293 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),a_21);} else {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),b_5);var if_res293 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),a_21);}var if_res294 = if_res293;}var if_res297 = if_res294;} else {if (getkey_3!==false) {var if_res295 = less_than_p_8(getkey_3(c_5),getkey_3(a_21));} else {var if_res295 = less_than_p_8(c_5,a_21);}if (if_res295!==false) {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,0),c_5);M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),a_21);var if_res296 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),b_5);} else {M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,1),c_5);var if_res296 = M0.unsafe_vector_set_bang_(dst_vec_3,M0.unsafe_fx_plus_(dst_start_3,2),b_5);}var if_res297 = if_res296;}var if_res298 = if_res297;}var if_res299 = if_res298;}var if_res300 = if_res299;} else {var work_vec_5 = M0.make_vector(n_12+M0.ceiling(n_12/2),false);M0.vector_copy_bang_(work_vec_5,0,vec_6,start_3,end_3);generic_sort_by_key_0(work_vec_5,less_than_p_8,n_12,getkey_3);var if_res300 = M0.vector_copy_bang_(dst_vec_3,dst_start_3,work_vec_5,0,n_12);}var if_res301 = if_res300;}var if_res302 = if_res301;}var if_res303 = if_res302;}if_res303;var if_res304 = M0.rvoid();} else {var if_res304 = vector_sort_bang_(vec_6,less_than_p_8,start_3,end_3);}return if_res304;};var let_result384 = M0.values(temp383,temp340,$rjs_core.attachProcedureArity(function() {var fixed_lam272 = {'4':cl270,'6':cl271}[arguments.length];if (fixed_lam272!==undefined) {return fixed_lam272.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,6]));var sort = let_result384.getAt(0);var vector_sort = let_result384.getAt(1);var vector_sort_bang_ = let_result384.getAt(2);var let_result385 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("sequence"),false,1,0,false);var struct_do_sequence = let_result385.getAt(0);var make_do_sequence = let_result385.getAt(1);var do_sequence_p = let_result385.getAt(2);var do_sequence_ref = let_result385.getAt(3);var do_sequence_set_bang_ = let_result385.getAt(4);var let_result394 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("stream"),function(v_13, si_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.vector_p(v_13)!==false) {if (M0.__eq_(3,M0.vector_length(v_13))!==false) {if (M0.procedure_p(M0.vector_ref(v_13,0))!==false) {if (M0.procedure_arity_includes_p(M0.vector_ref(v_13,0),1)!==false) {if (M0.procedure_p(M0.vector_ref(v_13,1))!==false) {if (M0.procedure_arity_includes_p(M0.vector_ref(v_13,1),1)!==false) {if (M0.procedure_p(M0.vector_ref(v_13,2))!==false) {var if_res386 = M0.procedure_arity_includes_p(M0.vector_ref(v_13,2),1);} else {var if_res386 = false;}var if_res387 = if_res386;} else {var if_res387 = false;}var if_res388 = if_res387;} else {var if_res388 = false;}var if_res389 = if_res388;} else {var if_res389 = false;}var if_res390 = if_res389;} else {var if_res390 = false;}var if_res391 = if_res390;} else {var if_res391 = false;}var if_res392 = if_res391;} else {var if_res392 = false;}if (if_res392!==false) {var if_res393 = M0.rvoid();} else {var if_res393 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("guard-for-prop:stream"),M0.string_append($rjs_core.UString.make("(vector/c (procedure-arity-includes/c 1)\n"),$rjs_core.UString.make(" (procedure-arity-includes/c 1)\n"),$rjs_core.UString.make(" (procedure-arity-includes/c 1))")),v_13);}if_res393;return M0.vector__gt_immutable_vector(v_13);},$rjs_core.Pair.makeList(),true);var prop_stream = let_result394.getAt(0);var stream_via_prop_p = let_result394.getAt(1);var stream_ref = let_result394.getAt(2);var let_result397 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("sequence"),function(v_14, si_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(v_14)!==false) {var if_res395 = M0.procedure_arity_includes_p(v_14,1);} else {var if_res395 = false;}if (if_res395!==false) {var if_res396 = M0.rvoid();} else {var if_res396 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("guard-for-prop:sequence"),$rjs_core.UString.make("(procedure-arity-includes/c 1)"),v_14);}if_res396;return v_14;});var prop_gen_sequence = let_result397.getAt(0);var sequence_via_prop_p = let_result397.getAt(1);var sequence_ref = let_result397.getAt(2);var let_result401 = M0.make_struct_type_property($rjs_core.PrimitiveSymbol.make("sequence"),function(v_15, sinfo_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(v_15)!==false) {var if_res398 = M0.procedure_arity_includes_p(v_15,1);} else {var if_res398 = false;}if (if_res398!==false) {var if_res399 = M0.rvoid();} else {var if_res399 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sequence-property-guard"),$rjs_core.UString.make("(procedure-arity-includes/c 1)"),v_15);}if_res399;return function(self_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var s_0 = v_15(self_0);if (sequence_p(s_0)!==false) {var if_res400 = M0.rvoid();} else {var if_res400 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("sequence-generate"),$rjs_core.UString.make("procedure (value of prop:sequence) produced a non-sequence: "),s_0);}if_res400;return s_0;};});var prop_sequence = let_result401.getAt(0);var __sequence_p = let_result401.getAt(1);var __sequence_ref = let_result401.getAt(2);var stream_p = function(v_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_29 = M0.list_p(v_16);if (or_part_29!==false) {var if_res402 = or_part_29;} else {var if_res402 = stream_via_prop_p(v_16);}return if_res402;};var unsafe_stream_not_empty_p = function(v_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.null_p(v_17)!==false) {var if_res404 = false;} else {var or_part_30 = M0.pair_p(v_17);if (or_part_30!==false) {var if_res403 = or_part_30;} else {var if_res403 = M0.not(M0.unsafe_vector_ref(stream_ref(v_17),0)(v_17));}var if_res404 = if_res403;}return if_res404;};var unsafe_stream_first = function(v_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.pair_p(v_18)!==false) {var if_res405 = M0.car(v_18);} else {var if_res405 = M0.unsafe_vector_ref(stream_ref(v_18),1)(v_18);}return if_res405;};var unsafe_stream_rest = function(v_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.pair_p(v_19)!==false) {var if_res407 = M0.cdr(v_19);} else {var r_3 = M0.unsafe_vector_ref(stream_ref(v_19),2)(v_19);if (stream_p(r_3)!==false) {var if_res406 = M0.rvoid();} else {var if_res406 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("stream-rest-guard"),$rjs_core.UString.make("result is not a stream: "),r_3);}if_res406;var if_res407 = r_3;}return if_res407;};var sequence_p = function(v_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_31 = M0.exact_nonnegative_integer_p(v_20);if (or_part_31!==false) {var if_res420 = or_part_31;} else {var or_part_32 = do_sequence_p(v_20);if (or_part_32!==false) {var if_res419 = or_part_32;} else {var or_part_33 = sequence_via_prop_p(v_20);if (or_part_33!==false) {var if_res418 = or_part_33;} else {var or_part_34 = stream_p(v_20);if (or_part_34!==false) {var if_res417 = or_part_34;} else {var or_part_35 = M0.mpair_p(v_20);if (or_part_35!==false) {var if_res416 = or_part_35;} else {var or_part_36 = M0.vector_p(v_20);if (or_part_36!==false) {var if_res415 = or_part_36;} else {var or_part_37 = M0.flvector_p(v_20);if (or_part_37!==false) {var if_res414 = or_part_37;} else {var or_part_38 = M0.fxvector_p(v_20);if (or_part_38!==false) {var if_res413 = or_part_38;} else {var or_part_39 = M0.string_p(v_20);if (or_part_39!==false) {var if_res412 = or_part_39;} else {var or_part_40 = M0.bytes_p(v_20);if (or_part_40!==false) {var if_res411 = or_part_40;} else {var or_part_41 = M0.input_port_p(v_20);if (or_part_41!==false) {var if_res410 = or_part_41;} else {var or_part_42 = M0.hash_p(v_20);if (or_part_42!==false) {var if_res409 = or_part_42;} else {if (__sequence_p(v_20)!==false) {var if_res408 = M0.not(M0.struct_type_p(v_20));} else {var if_res408 = false;}var if_res409 = if_res408;}var if_res410 = if_res409;}var if_res411 = if_res410;}var if_res412 = if_res411;}var if_res413 = if_res412;}var if_res414 = if_res413;}var if_res415 = if_res414;}var if_res416 = if_res415;}var if_res417 = if_res416;}var if_res418 = if_res417;}var if_res419 = if_res418;}var if_res420 = if_res419;}return if_res420;};var make_sequence = function(who_2, v_21) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(v_21)!==false) {var if_res439 = __integer_gen(v_21);} else {if (do_sequence_p(v_21)!==false) {var cl421 = function(pos__gt_vals_0, pos_next_0, init_0, pos_cont_p_0, val_cont_p_0, all_cont_p_0) {if (arguments.length!==6) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(pos__gt_vals_0,false,pos_next_0,init_0,pos_cont_p_0,val_cont_p_0,all_cont_p_0);};var cl422 = function(pos__gt_vals_1, pre_pos_next_0, pos_next_1, init_1, pos_cont_p_1, val_cont_p_1, all_cont_p_1) {if (arguments.length!==7) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(pos__gt_vals_1,pre_pos_next_0,pos_next_1,init_1,pos_cont_p_1,val_cont_p_1,all_cont_p_1);};var if_res438 = M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_sequence_ref(v_21,0)();},$rjs_core.attachProcedureArity(function() {var fixed_lam423 = {'6':cl421,'7':cl422}[arguments.length];if (fixed_lam423!==undefined) {return fixed_lam423.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[6,7]));} else {if (M0.mpair_p(v_21)!==false) {var if_res437 = __mlist_gen(v_21);} else {if (M0.list_p(v_21)!==false) {var if_res436 = __list_gen(v_21);} else {if (M0.vector_p(v_21)!==false) {var if_res435 = __vector_gen(v_21,0,M0.vector_length(v_21),1);} else {if (M0.flvector_p(v_21)!==false) {var if_res434 = __flvector_gen(v_21,0,M0.flvector_length(v_21),1);} else {if (M0.fxvector_p(v_21)!==false) {var if_res433 = __fxvector_gen(v_21,0,M0.fxvector_length(v_21),1);} else {if (M0.string_p(v_21)!==false) {var if_res432 = __string_gen(v_21,0,M0.string_length(v_21),1);} else {if (M0.bytes_p(v_21)!==false) {var if_res431 = __bytes_gen(v_21,0,M0.bytes_length(v_21),1);} else {if (M0.input_port_p(v_21)!==false) {var if_res430 = __input_port_gen(v_21);} else {if (M0.hash_p(v_21)!==false) {var if_res429 = __hash_gen(v_21,M0.hash_iterate_key_plus_value,M0.hash_iterate_first,M0.hash_iterate_next);} else {if (sequence_via_prop_p(v_21)!==false) {var if_res428 = sequence_ref(v_21)(v_21);} else {if (__sequence_p(v_21)!==false) {var if_res427 = make_sequence(who_2,__sequence_ref(v_21)(v_21));} else {if (stream_p(v_21)!==false) {var if_res426 = __stream_gen(v_21);} else {var temp425 = $rjs_core.UString.make("for: expected a sequence for ~a, got something else: ~v");if (M0.__eq_(1,M0.length(who_2))!==false) {var if_res424 = M0.car(who_2);} else {var if_res424 = who_2;}var if_res426 = M0.raise(M0.exn_fail_contract(M0.format(temp425,if_res424,v_21),M0.current_continuation_marks()));}var if_res427 = if_res426;}var if_res428 = if_res427;}var if_res429 = if_res428;}var if_res430 = if_res429;}var if_res431 = if_res430;}var if_res432 = if_res431;}var if_res433 = if_res432;}var if_res434 = if_res433;}var if_res435 = if_res434;}var if_res436 = if_res435;}var if_res437 = if_res436;}var if_res438 = if_res437;}var if_res439 = if_res438;}return if_res439;};var let_result441 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,3,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var cont_p_0 = range_ref(v_22,2);if (cont_p_0!==false) {var if_res440 = M0.not(cont_p_0(range_ref(v_22,0)));} else {var if_res440 = false;}return if_res440;},function(v_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return range_ref(v_23,0);},function(v_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return make_range(range_ref(v_24,1)(range_ref(v_24,0)),range_ref(v_24,1),range_ref(v_24,2));})),M0.cons(prop_gen_sequence,function(v_25) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.values,false,range_ref(v_25,1),range_ref(v_25,0),range_ref(v_25,2),false,false);})));var struct_range = let_result441.getAt(0);var make_range = let_result441.getAt(1);var range_p = let_result441.getAt(2);var range_ref = let_result441.getAt(3);var range_set_bang_ = let_result441.getAt(4);var check_range = function(a_22, b_6, step_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return check_range_generic($rjs_core.PrimitiveSymbol.make("in-range"),a_22,b_6,step_0);};var check_range_generic = function(who_3, a_23, b_7, step_1) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.real_p(a_23)!==false) {var if_res442 = M0.rvoid();} else {var if_res442 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),a_23);}if_res442;if (M0.real_p(b_7)!==false) {var if_res443 = M0.rvoid();} else {var if_res443 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),b_7);}if_res443;if (M0.real_p(step_1)!==false) {var if_res444 = M0.rvoid();} else {var if_res444 = M0.raise_argument_error(who_3,$rjs_core.UString.make("real?"),step_1);}return if_res444;};var __integer_gen = function(v_26) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.values,false,M0.add1,0,function(i_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_15,v_26);},false,false);};var check_naturals = function(n_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.integer_p(n_13)!==false) {if (M0.exact_p(n_13)!==false) {var if_res445 = M0.__gt__eq_(n_13,0);} else {var if_res445 = false;}var if_res446 = if_res445;} else {var if_res446 = false;}if (if_res446!==false) {var if_res447 = M0.rvoid();} else {var if_res447 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-naturals"),$rjs_core.UString.make("exact-nonnegative-integer?"),n_13);}return if_res447;};var let_result448 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,1,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.pair_p(list_stream_ref(v_27,0)));},function(v_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.car(list_stream_ref(v_28,0));},function(v_29) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return make_list_stream(M0.cdr(list_stream_ref(v_29,0)));})),M0.cons(prop_gen_sequence,function(v_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.car,M0.cdr,M0.values,list_stream_ref(v_30,0),M0.pair_p,false,false);})));var struct_list_stream = let_result448.getAt(0);var make_list_stream = let_result448.getAt(1);var list_stream_p = let_result448.getAt(2);var list_stream_ref = let_result448.getAt(3);var list_stream_set_bang_ = let_result448.getAt(4);var check_list = function(l_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(l_4)!==false) {var if_res449 = M0.rvoid();} else {var if_res449 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-list"),$rjs_core.UString.make("list?"),l_4);}return if_res449;};var __list_gen = function(l_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.car,M0.cdr,M0.values,l_5,M0.pair_p,false,false);};var __mlist_gen = function(l_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.mcar,false,M0.mcdr,l_6,M0.mpair_p,false,false);};var __input_port_gen = function(p_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(M0.read_byte,false,M0.values,p_7,false,function(x_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.eof_object_p(x_9));},false);};var __stream_gen = function(l_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(unsafe_stream_first,unsafe_stream_rest,M0.values,l_7,unsafe_stream_not_empty_p,false,false);};var cl450 = function(ht_2, __get_0, __first_0, __next_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(function(pos_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __get_0(ht_2,pos_1);},false,function(pos_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __next_0(ht_2,pos_2);},__first_0(ht_2),function(pos_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos_3;},false,false);};var cl451 = function(ht_3, __get_1, __first_1, __next_1, bad_v_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values(function(pos_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __get_1(ht_3,pos_4,bad_v_0);},false,function(pos_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return __next_1(ht_3,pos_5);},__first_1(ht_3),function(pos_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos_6;},false,false);};var __hash_gen = $rjs_core.attachProcedureArity(function() {var fixed_lam452 = {'4':cl450,'5':cl451}[arguments.length];if (fixed_lam452!==undefined) {return fixed_lam452.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[4,5]);var check_in_hash = function(ht_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if ((function(ht_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.hash_p(ht_5);})(ht_4)!==false) {var if_res453 = M0.rvoid();} else {var if_res453 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-hash"),$rjs_core.UString.make("hash?"),ht_4);}return if_res453;};var __vector_gen = function(v_31, start_4, stop_0, step_2) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_2,1)!==false) {var if_res455 = M0.add1;} else {var if_res455 = function(i_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_17+step_2;};}if (M0.__gt_(step_2,0)!==false) {var if_res454 = function(i_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_18,stop_0);};} else {var if_res454 = function(i_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_19,stop_0);};}return M0.values(function(i_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_vector_ref(v_31,i_16);},false,if_res455,start_4,if_res454,false,false);};var __string_gen = function(v_32, start_5, stop_1, step_3) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_3,1)!==false) {var if_res457 = M0.add1;} else {var if_res457 = function(i_21) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_21+step_3;};}if (M0.__gt_(step_3,0)!==false) {var if_res456 = function(i_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_22,stop_1);};} else {var if_res456 = function(i_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_23,stop_1);};}return M0.values(function(i_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.string_ref(v_32,i_20);},false,if_res457,start_5,if_res456,false,false);};var check_string = function(v_33) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(v_33)!==false) {var if_res458 = M0.rvoid();} else {var if_res458 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-string"),$rjs_core.UString.make("string"),v_33);}return if_res458;};var __bytes_gen = function(v_34, start_6, stop_2, step_4) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_4,1)!==false) {var if_res460 = M0.add1;} else {var if_res460 = function(i_25) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_25+step_4;};}if (M0.__gt_(step_4,0)!==false) {var if_res459 = function(i_26) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_26,stop_2);};} else {var if_res459 = function(i_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_27,stop_2);};}return M0.values(function(i_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_bytes_ref(v_34,i_24);},false,if_res460,start_6,if_res459,false,false);};var __flvector_gen = function(v_35, start_7, stop_3, step_5) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_5,1)!==false) {var if_res462 = M0.add1;} else {var if_res462 = function(i_29) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_29+step_5;};}if (M0.__gt_(step_5,0)!==false) {var if_res461 = function(i_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_30,stop_3);};} else {var if_res461 = function(i_31) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_31,stop_3);};}return M0.values(function(i_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_flvector_ref(v_35,i_28);},false,if_res462,start_7,if_res461,false,false);};var __fxvector_gen = function(v_36, start_8, stop_4, step_6) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.__eq_(step_6,1)!==false) {var if_res464 = M0.add1;} else {var if_res464 = function(i_33) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return i_33+step_6;};}if (M0.__gt_(step_6,0)!==false) {var if_res463 = function(i_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__lt_(i_34,stop_4);};} else {var if_res463 = function(i_35) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.__gt_(i_35,stop_4);};}return M0.values(function(i_32) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.unsafe_fxvector_ref(v_36,i_32);},false,if_res464,start_8,if_res463,false,false);};var in_values_times__sequence = function(g_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (sequence_p(g_0)!==false) {var if_res465 = M0.rvoid();} else {var if_res465 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("in-values-sequence"),$rjs_core.UString.make("sequence?"),g_0);}if_res465;return make_do_sequence(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result466 = make_sequence(false,g_0);var pos__gt_val_0 = let_result466.getAt(0);var pre_pos_next_1 = let_result466.getAt(1);var pos_next_2 = let_result466.getAt(2);var init_2 = let_result466.getAt(3);var pos_cont_p_2 = let_result466.getAt(4);var pre_cont_p_0 = let_result466.getAt(5);var post_cont_p_0 = let_result466.getAt(6);if (pre_cont_p_0!==false) {var if_res470 = function(vals_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(vals_1)!==false) {var if_res469 = M0.apply(pre_cont_p_0,vals_1);} else {var if_res469 = pre_cont_p_0(vals_1);}return if_res469;};} else {var if_res470 = false;}if (post_cont_p_0!==false) {var if_res468 = function(pos_8, vals_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(vals_2)!==false) {var if_res467 = M0.apply(post_cont_p_0,pos_8,vals_2);} else {var if_res467 = post_cont_p_0(pos_8,vals_2);}return if_res467;};} else {var if_res468 = false;}return M0.values(function(pos_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var cl471 = function(v_37) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(v_37)!==false) {var if_res475 = M0.list(v_37);} else {var if_res475 = v_37;}return if_res475;};var cl472 = $rjs_core.attachProcedureArity(function(...vs_0476) {var vs_0 = $rjs_core.Pair.listFromArray(vs_0476);return vs_0;});return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return pos__gt_val_0(pos_7);},$rjs_core.attachProcedureArity(function() {var fixed_lam473 = {'1':cl471}[arguments.length];if (fixed_lam473!==undefined) {return fixed_lam473.apply(null,arguments);} else {if (true!==false) {var if_res474 = cl472.apply(null,arguments);} else {var if_res474 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res474;}},[M0.make_arity_at_least(0)]));},pre_pos_next_1,pos_next_2,init_2,pos_cont_p_2,if_res470,if_res468);});};var let_result477 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("stream"),false,3,0,false,M0.list(M0.cons(prop_stream,M0.vector(function(v_38) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_38,0)();},function(v_39) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_39,1)();},function(v_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_stream_ref(v_40,2)();}))));var struct_do_stream = let_result477.getAt(0);var make_do_stream = let_result477.getAt(1);var do_stream_p = let_result477.getAt(2);var do_stream_ref = let_result477.getAt(3);var do_stream_set_bang_ = let_result477.getAt(4);var empty_stream = make_do_stream(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return true;},M0.rvoid,M0.rvoid);var cl478 = function(f_0, l_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("map");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res485 = true;} else {if (M0.procedure_p(f_0)!==false) {if (M0.procedure_arity_includes_p(f_0,1)!==false) {var if_res483 = M0.list_p(l_8);} else {var if_res483 = false;}var if_res484 = if_res483;} else {var if_res484 = false;}var if_res485 = if_res484;}if (if_res485!==false) {var loop_0 = function(l_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_9)!==false) {var if_res486 = M0.rnull;} else {var r_4 = M0.cdr(l_9);var if_res486 = M0.cons(f_0(M0.car(l_9)),loop_0(r_4));}return if_res486;};var if_res487 = loop_0(l_8);} else {var if_res487 = gen_map(f_0,M0.list(l_8));}return if_res487;};var cl479 = function(f_1, l1_2, l2_2) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res492 = true;} else {if (M0.procedure_p(f_1)!==false) {if (M0.procedure_arity_includes_p(f_1,2)!==false) {if (M0.list_p(l1_2)!==false) {if (M0.list_p(l2_2)!==false) {var if_res488 = M0.__eq_(M0.length(l1_2),M0.length(l2_2));} else {var if_res488 = false;}var if_res489 = if_res488;} else {var if_res489 = false;}var if_res490 = if_res489;} else {var if_res490 = false;}var if_res491 = if_res490;} else {var if_res491 = false;}var if_res492 = if_res491;}if (if_res492!==false) {var loop_34 = function(l1_3, l2_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l1_3)!==false) {var if_res493 = M0.rnull;} else {var r1_0 = M0.cdr(l1_3);var r2_0 = M0.cdr(l2_3);var if_res493 = M0.cons(f_1(M0.car(l1_3),M0.car(l2_3)),loop_34(r1_0,r2_0));}return if_res493;};var if_res494 = loop_34(l1_2,l2_2);} else {var if_res494 = gen_map(f_1,M0.list(l1_2,l2_2));}return if_res494;};var cl480 = $rjs_core.attachProcedureArity(function(f_2, l_10, ...args_4495) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_4 = $rjs_core.Pair.listFromArray(args_4495);return gen_map(f_2,M0.cons(l_10,args_4));});var map_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam481 = {'2':cl478,'3':cl479}[arguments.length];if (fixed_lam481!==undefined) {return fixed_lam481.apply(null,arguments);} else {if (M0.__gt__eq_(cl480.length,1)!==false) {var if_res482 = cl480.apply(null,arguments);} else {var if_res482 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res482;}},[M0.make_arity_at_least(2)]);var map2 = map_0;var cl496 = function(f_3, l_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("andmap");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res503 = true;} else {if (M0.procedure_p(f_3)!==false) {if (M0.procedure_arity_includes_p(f_3,1)!==false) {var if_res501 = M0.list_p(l_11);} else {var if_res501 = false;}var if_res502 = if_res501;} else {var if_res502 = false;}var if_res503 = if_res502;}if (if_res503!==false) {if (M0.null_p(l_11)!==false) {var if_res506 = true;} else {var loop_35 = function(l_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l_12))!==false) {var if_res505 = f_3(M0.car(l_12));} else {var r_5 = M0.cdr(l_12);if (f_3(M0.car(l_12))!==false) {var if_res504 = loop_35(r_5);} else {var if_res504 = false;}var if_res505 = if_res504;}return if_res505;};var if_res506 = loop_35(l_11);}var if_res507 = if_res506;} else {var if_res507 = gen_andmap(f_3,M0.list(l_11));}return if_res507;};var cl497 = function(f_4, l1_4, l2_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res512 = true;} else {if (M0.procedure_p(f_4)!==false) {if (M0.procedure_arity_includes_p(f_4,2)!==false) {if (M0.list_p(l1_4)!==false) {if (M0.list_p(l2_4)!==false) {var if_res508 = M0.__eq_(M0.length(l1_4),M0.length(l2_4));} else {var if_res508 = false;}var if_res509 = if_res508;} else {var if_res509 = false;}var if_res510 = if_res509;} else {var if_res510 = false;}var if_res511 = if_res510;} else {var if_res511 = false;}var if_res512 = if_res511;}if (if_res512!==false) {if (M0.null_p(l1_4)!==false) {var if_res515 = true;} else {var loop_36 = function(l1_5, l2_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l1_5))!==false) {var if_res514 = f_4(M0.car(l1_5),M0.car(l2_5));} else {var r1_1 = M0.cdr(l1_5);var r2_1 = M0.cdr(l2_5);if (f_4(M0.car(l1_5),M0.car(l2_5))!==false) {var if_res513 = loop_36(r1_1,r2_1);} else {var if_res513 = false;}var if_res514 = if_res513;}return if_res514;};var if_res515 = loop_36(l1_4,l2_4);}var if_res516 = if_res515;} else {var if_res516 = gen_andmap(f_4,M0.list(l1_4,l2_4));}return if_res516;};var cl498 = $rjs_core.attachProcedureArity(function(f_5, l_13, ...args_5517) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_5 = $rjs_core.Pair.listFromArray(args_5517);return gen_andmap(f_5,M0.cons(l_13,args_5));});var andmap_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam499 = {'2':cl496,'3':cl497}[arguments.length];if (fixed_lam499!==undefined) {return fixed_lam499.apply(null,arguments);} else {if (M0.__gt__eq_(cl498.length,1)!==false) {var if_res500 = cl498.apply(null,arguments);} else {var if_res500 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res500;}},[M0.make_arity_at_least(2)]);var andmap2 = andmap_0;var cl518 = function(f_6, l_14) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("ormap");if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res525 = true;} else {if (M0.procedure_p(f_6)!==false) {if (M0.procedure_arity_includes_p(f_6,1)!==false) {var if_res523 = M0.list_p(l_14);} else {var if_res523 = false;}var if_res524 = if_res523;} else {var if_res524 = false;}var if_res525 = if_res524;}if (if_res525!==false) {if (M0.null_p(l_14)!==false) {var if_res528 = false;} else {var loop_37 = function(l_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l_15))!==false) {var if_res527 = f_6(M0.car(l_15));} else {var r_6 = M0.cdr(l_15);var or_part_43 = f_6(M0.car(l_15));if (or_part_43!==false) {var if_res526 = or_part_43;} else {var if_res526 = loop_37(r_6);}var if_res527 = if_res526;}return if_res527;};var if_res528 = loop_37(l_14);}var if_res529 = if_res528;} else {var if_res529 = gen_ormap(f_6,M0.list(l_14));}return if_res529;};var cl519 = function(f_7, l1_6, l2_6) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res534 = true;} else {if (M0.procedure_p(f_7)!==false) {if (M0.procedure_arity_includes_p(f_7,2)!==false) {if (M0.list_p(l1_6)!==false) {if (M0.list_p(l2_6)!==false) {var if_res530 = M0.__eq_(M0.length(l1_6),M0.length(l2_6));} else {var if_res530 = false;}var if_res531 = if_res530;} else {var if_res531 = false;}var if_res532 = if_res531;} else {var if_res532 = false;}var if_res533 = if_res532;} else {var if_res533 = false;}var if_res534 = if_res533;}if (if_res534!==false) {if (M0.null_p(l1_6)!==false) {var if_res537 = false;} else {var loop_38 = function(l1_7, l2_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.cdr(l1_7))!==false) {var if_res536 = f_7(M0.car(l1_7),M0.car(l2_7));} else {var r1_2 = M0.cdr(l1_7);var r2_2 = M0.cdr(l2_7);var or_part_44 = f_7(M0.car(l1_7),M0.car(l2_7));if (or_part_44!==false) {var if_res535 = or_part_44;} else {var if_res535 = loop_38(r1_2,r2_2);}var if_res536 = if_res535;}return if_res536;};var if_res537 = loop_38(l1_6,l2_6);}var if_res538 = if_res537;} else {var if_res538 = gen_ormap(f_7,M0.list(l1_6,l2_6));}return if_res538;};var cl520 = $rjs_core.attachProcedureArity(function(f_8, l_16, ...args_6539) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_6 = $rjs_core.Pair.listFromArray(args_6539);return gen_ormap(f_8,M0.cons(l_16,args_6));});var ormap_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam521 = {'2':cl518,'3':cl519}[arguments.length];if (fixed_lam521!==undefined) {return fixed_lam521.apply(null,arguments);} else {if (M0.__gt__eq_(cl520.length,1)!==false) {var if_res522 = cl520.apply(null,arguments);} else {var if_res522 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res522;}},[M0.make_arity_at_least(2)]);var ormap2 = ormap_0;var check_args = function(who_4, f_9, ls_4) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_9)!==false) {var if_res540 = M0.rvoid();} else {var if_res540 = M0.raise_argument_error(who_4,$rjs_core.UString.make("procedure?"),f_9);}if_res540;var loop_39 = function(prev_len_0, ls_5, i_36) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_5)!==false) {var if_res544 = M0.rvoid();} else {var l_17 = M0.car(ls_5);if (M0.list_p(l_17)!==false) {var if_res541 = M0.rvoid();} else {var if_res541 = M0.raise_argument_error(who_4,$rjs_core.UString.make("list?"),l_17);}if_res541;var len_0 = M0.length(l_17);if (prev_len_0!==false) {var if_res542 = M0.not(M0.__eq_(len_0,prev_len_0));} else {var if_res542 = false;}if (if_res542!==false) {var if_res543 = M0.raise_arguments_error(who_4,$rjs_core.UString.make("all lists must have same size"),$rjs_core.UString.make("first list length"),prev_len_0,$rjs_core.UString.make("other list length"),len_0,$rjs_core.UString.make("procedure"),f_9);} else {var if_res543 = M0.rvoid();}if_res543;var if_res544 = loop_39(len_0,M0.cdr(ls_5),M0.add1(i_36));}return if_res544;};loop_39(false,ls_4,1);if (M0.procedure_arity_includes_p(f_9,M0.length(ls_4))!==false) {var if_res561 = M0.rvoid();} else {var let_result545 = procedure_keywords(f_9);var required_keywords_0 = let_result545.getAt(0);var optional_keywords_0 = let_result545.getAt(1);if (M0.pair_p(required_keywords_0)!==false) {var if_res560 = M0.string_append($rjs_core.UString.make("argument mismatch;\n"),$rjs_core.UString.make(" the given procedure expects keyword arguments"));} else {var if_res560 = M0.string_append($rjs_core.UString.make("argument mismatch;\n"),$rjs_core.UString.make(" the given procedure's expected number of arguments does not match"),$rjs_core.UString.make(" the given number of lists"));}var temp559 = $rjs_core.UString.make("given procedure");var n_14 = M0.object_name(f_9);if (M0.symbol_p(n_14)!==false) {var if_res556 = M0.symbol__gt_string(n_14);} else {var if_res556 = false;}var or_part_45 = if_res556;if (or_part_45!==false) {var if_res557 = or_part_45;} else {var if_res557 = $rjs_core.UString.make("#");}var temp558 = M0.unquoted_printing_string(if_res557);var a_24 = M0.procedure_arity(f_9);if (M0.pair_p(required_keywords_0)!==false) {var if_res555 = M0.rnull;} else {if (M0.integer_p(a_24)!==false) {var if_res554 = M0.list($rjs_core.UString.make("expected"),a_24);} else {if (M0.arity_at_least_p(a_24)!==false) {var if_res553 = M0.list($rjs_core.UString.make("expected"),M0.unquoted_printing_string(M0.string_append($rjs_core.UString.make("at least "),M0.number__gt_string(M0.arity_at_least_value(a_24)))));} else {var if_res553 = M0.rnull;}var if_res554 = if_res553;}var if_res555 = if_res554;}if (M0.pair_p(required_keywords_0)!==false) {var if_res552 = M0.rnull;} else {var if_res552 = M0.list($rjs_core.UString.make("given"),M0.length(ls_4));}if (M0.pair_p(required_keywords_0)!==false) {var temp550 = $rjs_core.UString.make("required keywords");var loop_40 = function(kws_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_16)!==false) {var if_res549 = M0.rnull;} else {var if_res549 = M0.list_times_($rjs_core.UString.make(" "),M0.string_append($rjs_core.UString.make("#:"),M0.keyword__gt_string(M0.car(kws_16))),loop_40(M0.cdr(kws_16)));}return if_res549;};var if_res551 = M0.list(temp550,M0.unquoted_printing_string(M0.apply(M0.string_append,M0.cdr(loop_40(required_keywords_0)))));} else {var if_res551 = M0.rnull;}var w_0 = M0.quotient(M0.error_print_width(),M0.length(ls_4));if (M0.__gt_(w_0,10)!==false) {var temp547 = $rjs_core.UString.make("argument lists...");var loop_41 = function(ls_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(ls_6)!==false) {var if_res546 = M0.rnull;} else {var if_res546 = M0.cons(M0.string_append($rjs_core.UString.make("\n "),M0.error_value__gt_string_handler()(M0.car(ls_6),w_0)),loop_41(M0.cdr(ls_6)));}return if_res546;};var if_res548 = M0.list(temp547,M0.unquoted_printing_string(M0.apply(M0.string_append,loop_41(ls_4))));} else {var if_res548 = M0.rnull;}var if_res561 = M0.apply(M0.raise_arguments_error,who_4,if_res560,temp559,temp558,M0.append(if_res555,if_res552,if_res551,if_res548));}return if_res561;};var gen_map = function(f_10, ls_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res562 = true;} else {var if_res562 = check_args($rjs_core.PrimitiveSymbol.make("map"),f_10,ls_7);}if_res562;var loop_42 = function(ls_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_8))!==false) {var if_res563 = M0.rnull;} else {var next_ls_0 = map2(M0.cdr,ls_8);var if_res563 = M0.cons(M0.apply(f_10,map2(M0.car,ls_8)),loop_42(next_ls_0));}return if_res563;};return loop_42(ls_7);};var gen_andmap = function(f_11, ls_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res564 = true;} else {var if_res564 = check_args($rjs_core.PrimitiveSymbol.make("andmap"),f_11,ls_9);}if_res564;var loop_43 = function(ls_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_10))!==false) {var if_res567 = true;} else {if (M0.null_p(M0.cdar(ls_10))!==false) {var if_res566 = M0.apply(f_11,map2(M0.car,ls_10));} else {var next_ls_1 = map2(M0.cdr,ls_10);if (M0.apply(f_11,map2(M0.car,ls_10))!==false) {var if_res565 = loop_43(next_ls_1);} else {var if_res565 = false;}var if_res566 = if_res565;}var if_res567 = if_res566;}return if_res567;};return loop_43(ls_9);};var gen_ormap = function(f_12, ls_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res568 = true;} else {var if_res568 = check_args($rjs_core.PrimitiveSymbol.make("ormap"),f_12,ls_11);}if_res568;var loop_44 = function(ls_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(M0.car(ls_12))!==false) {var if_res571 = false;} else {if (M0.null_p(M0.cdar(ls_12))!==false) {var if_res570 = M0.apply(f_12,map2(M0.car,ls_12));} else {var next_ls_2 = map2(M0.cdr,ls_12);var or_part_46 = M0.apply(f_12,map2(M0.car,ls_12));if (or_part_46!==false) {var if_res569 = or_part_46;} else {var if_res569 = loop_44(next_ls_2);}var if_res570 = if_res569;}var if_res571 = if_res570;}return if_res571;};return loop_44(ls_11);};var new_keyword_apply = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_17, kw_args_3, proc_16, orig_kws_0, orig_kw_args_0, args_7, ...rest_0572) {if (arguments.length<6) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rest_0 = $rjs_core.Pair.listFromArray(rest_0572);var loop_45 = function(kws_19, kw_args_5, kws2_0, kw_args2_0, swapped_p_0) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(kws_19)!==false) {var if_res577 = M0.values(kws2_0,kw_args2_0);} else {if (M0.null_p(kws2_0)!==false) {var if_res576 = M0.values(kws_19,kw_args_5);} else {if (M0.keyword_lt__p(M0.car(kws_19),M0.car(kws2_0))!==false) {var let_result573 = loop_45(M0.cdr(kws_19),M0.cdr(kw_args_5),kws2_0,kw_args2_0,false);var res_kws_0 = let_result573.getAt(0);var res_kw_args_0 = let_result573.getAt(1);var if_res575 = M0.values(M0.cons(M0.car(kws_19),res_kws_0),M0.cons(M0.car(kw_args_5),res_kw_args_0));} else {if (swapped_p_0!==false) {var if_res574 = M0.raise_mismatch_error($rjs_core.PrimitiveSymbol.make("keyword-apply"),$rjs_core.UString.make("keyword duplicated in list and direct keyword arguments: "),M0.car(kws_19));} else {var if_res574 = loop_45(kws2_0,kw_args2_0,kws_19,kw_args_5,true);}var if_res575 = if_res574;}var if_res576 = if_res575;}var if_res577 = if_res576;}return if_res577;};var let_result578 = loop_45(kws_17,kw_args_3,orig_kws_0,orig_kw_args_0,false);var kws_18 = let_result578.getAt(0);var kw_args_4 = let_result578.getAt(1);return keyword_apply(proc_16,kws_18,kw_args_4,M0.apply(M0.list_times_,args_7,rest_0));}),keyword_apply);var hash__gt_list_0 = function(h_0, try_order_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("hash->list");return M0.hash_map(h_0,M0.cons,try_order_p_0);};var cl579 = function(h_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("hash->list");if (M0.hash_p(h_1)!==false) {var if_res582 = M0.rvoid();} else {var if_res582 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash->list"),$rjs_core.UString.make("hash?"),0,h_1);}if_res582;return hash__gt_list_0(h_1,false);};var cl580 = function(h_2, try_order_p_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.hash_p(h_2)!==false) {var if_res583 = M0.rvoid();} else {var if_res583 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("hash->list"),$rjs_core.UString.make("hash?"),0,h_2,try_order_p_1);}if_res583;return hash__gt_list_0(h_2,try_order_p_1);};var hash__gt_list_1 = $rjs_core.attachProcedureArity(function() {var fixed_lam581 = {'1':cl579,'2':cl580}[arguments.length];if (fixed_lam581!==undefined) {return fixed_lam581.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var hash__gt_list = hash__gt_list_1;var sort_dot_1 = function(cache_keys_p2_0, key1_0, lst5_0, less_p6_0) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("sort");var lst_6 = lst5_0;var less_p_0 = less_p6_0;var getkey_4 = key1_0;var cache_keys_p_3 = cache_keys_p2_0;if (M0.list_p(lst_6)!==false) {var if_res584 = M0.rvoid();} else {var if_res584 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("list?"),lst_6);}if_res584;if (M0.procedure_p(less_p_0)!==false) {var if_res585 = M0.procedure_arity_includes_p(less_p_0,2);} else {var if_res585 = false;}if (if_res585!==false) {var if_res586 = M0.rvoid();} else {var if_res586 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("(any/c any/c . -> . any/c)"),less_p_0);}if_res586;if (getkey_4!==false) {if (M0.procedure_p(getkey_4)!==false) {var if_res587 = M0.procedure_arity_includes_p(getkey_4,1);} else {var if_res587 = false;}var if_res588 = M0.not(if_res587);} else {var if_res588 = false;}if (if_res588!==false) {var if_res589 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sort"),$rjs_core.UString.make("(any/c . -> . any/c)"),getkey_4);} else {var if_res589 = M0.rvoid();}if_res589;if (getkey_4!==false) {var if_res590 = sort(lst_6,less_p_0,getkey_4,cache_keys_p_3);} else {var if_res590 = sort(lst_6,less_p_0);}return if_res590;};var filter = function(f_13, list_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_13)!==false) {var if_res591 = M0.procedure_arity_includes_p(f_13,1);} else {var if_res591 = false;}if (if_res591!==false) {var if_res592 = M0.rvoid();} else {var if_res592 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("filter"),$rjs_core.UString.make("(any/c . -> . any/c)"),f_13);}if_res592;if (M0.list_p(list_0)!==false) {var if_res593 = M0.rvoid();} else {var if_res593 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("filter"),$rjs_core.UString.make("list?"),list_0);}if_res593;var loop_10 = function(l_18, result_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(l_18)!==false) {var if_res596 = reverse$1(result_0);} else {var temp595 = M0.cdr(l_18);if (f_13(M0.car(l_18))!==false) {var if_res594 = M0.cons(M0.car(l_18),result_0);} else {var if_res594 = result_0;}var if_res596 = loop_10(temp595,if_res594);}return if_res596;};return loop_10(list_0,M0.rnull);};var build_list = function(n_15, fcn_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(n_15)!==false) {var if_res597 = M0.rvoid();} else {var if_res597 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("build-list"),$rjs_core.UString.make("exact-nonnegative-integer?"),n_15);}if_res597;if (M0.procedure_p(fcn_0)!==false) {var if_res598 = M0.procedure_arity_includes_p(fcn_0,1);} else {var if_res598 = false;}if (if_res598!==false) {var if_res599 = M0.rvoid();} else {var if_res599 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("build-list"),$rjs_core.UString.make("(exact-nonnegative-integer? . -> . any/c)"),fcn_0);}if_res599;var recr_0 = function(j_2, i_37) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("recr");if (M0.zero_p(i_37)!==false) {var if_res600 = M0.rnull;} else {var if_res600 = M0.cons(fcn_0(j_2),recr_0(M0.add1(j_2),M0.sub1(i_37)));}return if_res600;};return recr_0(0,n_15);};var pipeline1_0 = function(f_14, rfuns_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("pipeline1");return function(x_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_14 = function(x_11, f_15, rfuns_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(rfuns_1)!==false) {var if_res601 = f_15(x_11);} else {var if_res601 = loop_14(f_15(x_11),M0.car(rfuns_1),M0.cdr(rfuns_1));}return if_res601;};return loop_14(x_10,f_14,rfuns_0);};};var pipeline_times__0 = function(f_16, rfuns_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("pipeline*");if (M0.eqv_p(1,M0.procedure_arity(f_16))!==false) {var loop_46 = function(f_17, rfuns_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(rfuns_3)!==false) {var if_res603 = f_17;} else {var fst_0 = M0.car(rfuns_3);if (M0.eqv_p(1,M0.procedure_arity(fst_0))!==false) {var if_res602 = function(x_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fst_0(f_17(x_12));};} else {var if_res602 = function(x_13) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_17(x_13);},fst_0);};}var if_res603 = loop_46(if_res602,M0.cdr(rfuns_3));}return if_res603;};var if_res610 = loop_46(f_16,rfuns_2);} else {var funs_0 = reverse$1(M0.cons(f_16,rfuns_2));var loop_47 = function(f_18, funs_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(funs_1)!==false) {var if_res609 = f_18;} else {var fst_1 = M0.car(funs_1);if (M0.eqv_p(1,M0.procedure_arity(f_18))!==false) {if (M0.eqv_p(1,M0.procedure_arity(fst_1))!==false) {var if_res605 = function(x_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_18(fst_1(x_14));};} else {var if_res605 = $rjs_core.attachProcedureArity(function(...xs_0604) {var xs_0 = $rjs_core.Pair.listFromArray(xs_0604);return f_18(M0.apply(fst_1,xs_0));});}var if_res608 = if_res605;} else {if (M0.eqv_p(1,M0.procedure_arity(fst_1))!==false) {var if_res607 = function(x_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fst_1(x_15);},f_18);};} else {var if_res607 = $rjs_core.attachProcedureArity(function(...xs_1606) {var xs_1 = $rjs_core.Pair.listFromArray(xs_1606);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(fst_1,xs_1);},f_18);});}var if_res608 = if_res607;}var if_res609 = loop_47(if_res608,M0.cdr(funs_1));}return if_res609;};var if_res610 = loop_47(M0.car(funs_0),M0.cdr(funs_0));}return if_res610;};var simple_compose_0 = function(f_19, g_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("simple-compose");var arity_1 = M0.procedure_arity(g_1);var let_result611 = procedure_keywords(g_1);var required_kwds_0 = let_result611.getAt(0);var allowed_kwds_0 = let_result611.getAt(1);if (M0.eq_p(1,arity_1)!==false) {var if_res618 = function(x_16) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_19(g_1(x_16));};} else {var cl612 = function(x_17) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_19(g_1(x_17));};var cl613 = function(x_18, y_6) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_19(g_1(x_18,y_6));};var cl614 = $rjs_core.attachProcedureArity(function(...args_8617) {var args_8 = $rjs_core.Pair.listFromArray(args_8617);return f_19(M0.apply(g_1,args_8));});var if_res618 = $rjs_core.attachProcedureArity(function() {var fixed_lam615 = {'1':cl612,'2':cl613}[arguments.length];if (fixed_lam615!==undefined) {return fixed_lam615.apply(null,arguments);} else {if (true!==false) {var if_res616 = cl614.apply(null,arguments);} else {var if_res616 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res616;}},[M0.make_arity_at_least(0)]);}var composed_0 = if_res618;if (M0.null_p(allowed_kwds_0)!==false) {var if_res620 = composed_0;} else {var if_res620 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_20, kw_args_6, ...xs_2619) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_2 = $rjs_core.Pair.listFromArray(xs_2619);return f_19(new_keyword_apply(g_1,kws_20,kw_args_6,xs_2));}),composed_0);}return if_res620;};var cl621 = function(f_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compose1");if (M0.procedure_p(f_20)!==false) {var if_res627 = f_20;} else {var if_res627 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),0,f_20);}return if_res627;};var cl622 = function(f_21, g_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_21)!==false) {var if_res628 = M0.rvoid();} else {var if_res628 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),0,f_21,g_2);}if_res628;if (M0.procedure_p(g_2)!==false) {var if_res629 = M0.rvoid();} else {var if_res629 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),1,f_21,g_2);}if_res629;if (M0.procedure_arity_includes_p(f_21,1)!==false) {var if_res630 = M0.rvoid();} else {var if_res630 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("(any/c . -> . any/c)"),0,f_21,$rjs_core.Pair.makeList());}if_res630;var let_result631 = procedure_keywords(f_21);var req_5 = let_result631.getAt(0);var __0 = let_result631.getAt(1);if (M0.null_p(req_5)!==false) {var if_res632 = M0.rvoid();} else {var if_res632 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),0,f_21,$rjs_core.Pair.makeList());}if_res632;return simple_compose_0(f_21,g_2);};var cl623 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values;};var cl624 = $rjs_core.attachProcedureArity(function(f0_0, ...fs0_0633) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fs0_0 = $rjs_core.Pair.listFromArray(fs0_0633);var loop_48 = function(f_22, fs_0, i_38, rfuns_4) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.procedure_p(f_22)!==false) {var if_res634 = M0.rvoid();} else {var if_res634 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure?"),i_38,f0_0,fs0_0);}if_res634;if (M0.pair_p(fs_0)!==false) {if (M0.procedure_arity_includes_p(f_22,1)!==false) {var if_res635 = M0.rvoid();} else {var if_res635 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("(any/c . -> . any/c)"),i_38,f0_0,fs0_0);}if_res635;var let_result636 = procedure_keywords(f_22);var req_6 = let_result636.getAt(0);var __1 = let_result636.getAt(1);if (M0.null_p(req_6)!==false) {var if_res637 = M0.rvoid();} else {var if_res637 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose1"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),i_38,f0_0,fs0_0);}if_res637;var if_res638 = loop_48(M0.car(fs_0),M0.cdr(fs_0),M0.add1(i_38),M0.cons(f_22,rfuns_4));} else {var if_res638 = simple_compose_0(pipeline1_0(M0.car(rfuns_4),M0.cdr(rfuns_4)),f_22);}return if_res638;};return loop_48(f0_0,fs0_0,0,$rjs_core.Pair.makeList());});var compose1_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam625 = {'1':cl621,'2':cl622,'0':cl623}[arguments.length];if (fixed_lam625!==undefined) {return fixed_lam625.apply(null,arguments);} else {if (M0.__gt__eq_(cl624.length,1)!==false) {var if_res626 = cl624.apply(null,arguments);} else {var if_res626 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res626;}},[0,M0.make_arity_at_least(1)]);var simple_compose_1 = function(f_23, g_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("simple-compose");if (M0.eqv_p(1,M0.procedure_arity(f_23))!==false) {var arity_2 = M0.procedure_arity(g_3);var let_result639 = procedure_keywords(g_3);var required_kwds_1 = let_result639.getAt(0);var allowed_kwds_1 = let_result639.getAt(1);if (M0.eq_p(1,arity_2)!==false) {var if_res646 = function(x_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_23(g_3(x_19));};} else {var cl640 = function(x_20) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return f_23(g_3(x_20));};var cl641 = function(x_21, y_7) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return f_23(g_3(x_21,y_7));};var cl642 = $rjs_core.attachProcedureArity(function(...args_9645) {var args_9 = $rjs_core.Pair.listFromArray(args_9645);return f_23(M0.apply(g_3,args_9));});var if_res646 = $rjs_core.attachProcedureArity(function() {var fixed_lam643 = {'1':cl640,'2':cl641}[arguments.length];if (fixed_lam643!==undefined) {return fixed_lam643.apply(null,arguments);} else {if (true!==false) {var if_res644 = cl642.apply(null,arguments);} else {var if_res644 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res644;}},[M0.make_arity_at_least(0)]);}var composed_1 = if_res646;if (M0.null_p(allowed_kwds_1)!==false) {var if_res648 = composed_1;} else {var if_res648 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_21, kw_args_7, ...xs_3647) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_3 = $rjs_core.Pair.listFromArray(xs_3647);return f_23(new_keyword_apply(g_3,kws_21,kw_args_7,xs_3));}),composed_1);}var if_res659 = if_res648;} else {var arity_3 = M0.procedure_arity(g_3);var let_result649 = procedure_keywords(g_3);var required_kwds_2 = let_result649.getAt(0);var allowed_kwds_2 = let_result649.getAt(1);if (M0.eq_p(1,arity_3)!==false) {var if_res656 = function(x_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_22);},f_23);};} else {var cl650 = function(x_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("composed");return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_23);},f_23);};var cl651 = function(x_24, y_8) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return g_3(x_24,y_8);},f_23);};var cl652 = $rjs_core.attachProcedureArity(function(...args_10655) {var args_10 = $rjs_core.Pair.listFromArray(args_10655);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(g_3,args_10);},f_23);});var if_res656 = $rjs_core.attachProcedureArity(function() {var fixed_lam653 = {'1':cl650,'2':cl651}[arguments.length];if (fixed_lam653!==undefined) {return fixed_lam653.apply(null,arguments);} else {if (true!==false) {var if_res654 = cl652.apply(null,arguments);} else {var if_res654 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res654;}},[M0.make_arity_at_least(0)]);}var composed_2 = if_res656;if (M0.null_p(allowed_kwds_2)!==false) {var if_res658 = composed_2;} else {var if_res658 = make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_22, kw_args_8, ...xs_4657) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var xs_4 = $rjs_core.Pair.listFromArray(xs_4657);return M0.call_with_values(function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return new_keyword_apply(g_3,kws_22,kw_args_8,xs_4);},f_23);}),composed_2);}var if_res659 = if_res658;}return if_res659;};var cl660 = function(f_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compose");if (M0.procedure_p(f_24)!==false) {var if_res666 = f_24;} else {var if_res666 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),0,f_24);}return if_res666;};var cl661 = function(f_25, g_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.procedure_p(f_25)!==false) {var if_res667 = M0.rvoid();} else {var if_res667 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),0,f_25,g_4);}if_res667;if (M0.procedure_p(g_4)!==false) {var if_res668 = M0.rvoid();} else {var if_res668 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),1,f_25,g_4);}if_res668;var let_result669 = procedure_keywords(f_25);var req_7 = let_result669.getAt(0);var __2 = let_result669.getAt(1);if (M0.null_p(req_7)!==false) {var if_res670 = M0.rvoid();} else {var if_res670 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),0,f_25,$rjs_core.Pair.makeList());}if_res670;return simple_compose_1(f_25,g_4);};var cl662 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.values;};var cl663 = $rjs_core.attachProcedureArity(function(f0_1, ...fs0_1671) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fs0_1 = $rjs_core.Pair.listFromArray(fs0_1671);var loop_49 = function(f_26, fs_1, i_39, rfuns_5) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.procedure_p(f_26)!==false) {var if_res672 = M0.rvoid();} else {var if_res672 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure?"),i_39,f0_1,fs0_1);}if_res672;if (M0.pair_p(fs_1)!==false) {var let_result673 = procedure_keywords(f_26);var req_8 = let_result673.getAt(0);var __3 = let_result673.getAt(1);if (M0.null_p(req_8)!==false) {var if_res674 = M0.rvoid();} else {var if_res674 = M0.apply(M0.raise_argument_error,$rjs_core.PrimitiveSymbol.make("compose"),$rjs_core.UString.make("procedure-with-no-required-keywords?"),i_39,f0_1,fs0_1);}if_res674;var if_res675 = loop_49(M0.car(fs_1),M0.cdr(fs_1),M0.add1(i_39),M0.cons(f_26,rfuns_5));} else {var if_res675 = simple_compose_1(pipeline_times__0(M0.car(rfuns_5),M0.cdr(rfuns_5)),f_26);}return if_res675;};return loop_49(f0_1,fs0_1,0,$rjs_core.Pair.makeList());});var compose_0 = $rjs_core.attachProcedureArity(function() {var fixed_lam664 = {'1':cl660,'2':cl661,'0':cl662}[arguments.length];if (fixed_lam664!==undefined) {return fixed_lam664.apply(null,arguments);} else {if (M0.__gt__eq_(cl663.length,1)!==false) {var if_res665 = cl663.apply(null,arguments);} else {var if_res665 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res665;}},[0,M0.make_arity_at_least(1)]);var let_result676 = M0.values(compose1_0,compose_0);var compose1 = let_result676.getAt(0);var compose = let_result676.getAt(1);var regexp_quote_chars_s = $rjs_core.Regexp.fromString("[][.*?+|(){}\\$^]");var regexp_quote_chars_b = $rjs_core.Regexp.fromString("[][.*?+|(){}\\$^]");var regexp_quote_0 = function(s4_0, case_sens_p3_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("regexp-quote");var s_1 = s4_0;var case_sens_p_0 = case_sens_p3_0;if (M0.bytes_p(s_1)!==false) {var if_res678 = true;} else {if (M0.string_p(s_1)!==false) {var if_res677 = false;} else {var if_res677 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("regexp-quote"),$rjs_core.UString.make("(or/c string? bytes?)"),s_1);}var if_res678 = if_res677;}var b_p_0 = if_res678;if (b_p_0!==false) {var if_res679 = M0.regexp_replace_times_(regexp_quote_chars_b,s_1,$rjs_core.Bytes.fromIntArray([92,92,38]));} else {var if_res679 = M0.regexp_replace_times_(regexp_quote_chars_s,s_1,$rjs_core.UString.make("\\\\&"));}var s_2 = if_res679;if (case_sens_p_0!==false) {var if_res681 = s_2;} else {if (b_p_0!==false) {var if_res680 = M0.bytes_append($rjs_core.Bytes.fromIntArray([40,63,105,58]),s_2,$rjs_core.Bytes.fromIntArray([41]));} else {var if_res680 = M0.string_append($rjs_core.UString.make("(?i:"),s_2,$rjs_core.UString.make(")"));}var if_res681 = if_res680;}return if_res681;};var cl682 = function(s_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return regexp_quote_0(s_3,true);};var cl683 = function(s_4, case_sens_p3_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return regexp_quote_0(s_4,case_sens_p3_1);};var regexp_quote = $rjs_core.attachProcedureArity(function() {var fixed_lam684 = {'1':cl682,'2':cl683}[arguments.length];if (fixed_lam684!==undefined) {return fixed_lam684.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var regexp_match_exact_p = function(p_8, s_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var m_0 = M0.regexp_match_positions(p_8,s_5);if (m_0!==false) {if (M0.zero_p(M0.caar(m_0))!==false) {var temp690 = M0.cdar(m_0);if (M0.bytes_p(s_5)!==false) {var if_res689 = M0.bytes_length(s_5);} else {var or_part_47 = M0.byte_regexp_p(p_8);if (or_part_47!==false) {var if_res685 = or_part_47;} else {var if_res685 = M0.bytes_p(p_8);}if (if_res685!==false) {if (M0.path_p(s_5)!==false) {var if_res686 = M0.bytes_length(M0.path__gt_bytes(s_5));} else {var if_res686 = M0.string_utf_8_length(s_5);}var if_res688 = if_res686;} else {if (M0.path_p(s_5)!==false) {var if_res687 = M0.string_length(M0.path__gt_string(s_5));} else {var if_res687 = M0.string_length(s_5);}var if_res688 = if_res687;}var if_res689 = if_res688;}var if_res691 = M0.__eq_(temp690,if_res689);} else {var if_res691 = false;}var if_res692 = if_res691;} else {var if_res692 = false;}return if_res692;};var print_value_columns = M0.make_parameter(Infinity,function(c_6) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_48 = M0.eqv_p(c_6,Infinity);if (or_part_48!==false) {var if_res694 = or_part_48;} else {if (M0.exact_integer_p(c_6)!==false) {var if_res693 = M0.__gt_(c_6,5);} else {var if_res693 = false;}var if_res694 = if_res693;}if (if_res694!==false) {var if_res695 = c_6;} else {var if_res695 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("print-value-columns"),$rjs_core.UString.make("(or/c +inf.0 (and/c exact-integer? (>/c 5)))"),c_6);}return if_res695;},$rjs_core.PrimitiveSymbol.make("print-value-columns"));var let_result696 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("set-impl"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("set-impl"));var struct__0 = let_result696.getAt(0);var make__0 = let_result696.getAt(1);var __p_1 = let_result696.getAt(2);var __ref_1 = let_result696.getAt(3);var __set_bang__1 = let_result696.getAt(4);var let_result697 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("contents")));var struct_set_impl = let_result697.getAt(0);var set_impl1_dot_1 = let_result697.getAt(1);var set_impl_p = let_result697.getAt(2);var set_impl_contents = let_result697.getAt(3);var set = $rjs_core.attachProcedureArity(function(...args_11698) {var args_11 = $rjs_core.Pair.listFromArray(args_11698);return set_impl1_dot_1(M0.make_immutable_hash(map2(function(e_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.cons(e_0,true);},args_11)));});var set_member_p = function(st_0, v_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return hash_has_key_p(set_impl_contents(st_0),v_41);};var set_add = function(st_1, v_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_impl1_dot_1(M0.hash_set(set_impl_contents(st_1),v_1,true));};var list__gt_set = function(lst_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result699 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("elem")),lst_7);var pos__gt_vals_2 = let_result699.getAt(0);var pos_pre_inc_0 = let_result699.getAt(1);var pos_next_3 = let_result699.getAt(2);var init_3 = let_result699.getAt(3);var pos_cont_p_3 = let_result699.getAt(4);var val_cont_p_2 = let_result699.getAt(5);var all_cont_p_2 = let_result699.getAt(6);M0.rvoid();var for_loop_0 = function(st_2, pos_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_3!==false) {var if_res700 = pos_cont_p_3(pos_9);} else {var if_res700 = true;}if (if_res700!==false) {var elem_1 = pos__gt_vals_2(pos_9);if (all_cont_p_2!==false) {var if_res701 = function(pos_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_2(pos_10,elem_1);};} else {var if_res701 = false;}var let_result702 = M0.values(elem_1,if_res701);var elem_0 = let_result702.getAt(0);var all_cont_p_by_pos_0 = let_result702.getAt(1);if (pos_pre_inc_0!==false) {var if_res703 = pos_pre_inc_0(pos_9);} else {var if_res703 = pos_9;}var pos_11 = if_res703;if (val_cont_p_2!==false) {var if_res704 = val_cont_p_2(elem_0);} else {var if_res704 = true;}if (if_res704!==false) {var st_4 = st_2;var st_5 = set_add(st_4,elem_0);var st_3 = M0.values(st_5);if (all_cont_p_by_pos_0!==false) {var if_res705 = all_cont_p_by_pos_0(pos_11);} else {var if_res705 = true;}if (if_res705!==false) {var if_res706 = M0.not(false);} else {var if_res706 = false;}if (if_res706!==false) {var if_res707 = for_loop_0(st_3,pos_next_3(pos_11));} else {var if_res707 = st_3;}var if_res708 = if_res707;} else {var if_res708 = st_2;}var if_res709 = if_res708;} else {var if_res709 = st_2;}return if_res709;};return for_loop_0(set(),init_3);};var output_directory = M0.make_parameter($rjs_core.UString.make("js-build"));var current_source_file = M0.make_parameter(false);var main_source_file = M0.make_parameter(false);var racketscript_main_module = M0.path__gt_complete_path($rjs_core.UString.make("main.rkt"));var let_result710 = M0.split_path(racketscript_main_module);var dir_path_0 = let_result710.getAt(0);var _p_0 = let_result710.getAt(1);var _b_0 = let_result710.getAt(2);var racketscript_compiler_dir = dir_path_0;var racketscript_runtime_dir = M0.build_path(racketscript_compiler_dir,$rjs_core.UString.make("runtime"));var racketscript_dir = M0.simplify_path(M0.build_path(racketscript_compiler_dir,$rjs_core.UString.make("..")));var jsruntime_core_module = M0.make_parameter($rjs_core.UString.make("$rjs_core"));var test_environment_p = M0.make_parameter(false);var logging_p = M0.make_parameter(true);var ignored_module_imports_in_boot = set(M0.build_path(racketscript_dir,$rjs_core.UString.make("private"),$rjs_core.UString.make("interop.rkt")));var primitive_modules = set($rjs_core.PrimitiveSymbol.make("#%runtime"),$rjs_core.PrimitiveSymbol.make("#%core"),$rjs_core.PrimitiveSymbol.make("#%main"),$rjs_core.PrimitiveSymbol.make("#%read"),$rjs_core.PrimitiveSymbol.make("#%kernel"),$rjs_core.PrimitiveSymbol.make("#%paramz"),$rjs_core.PrimitiveSymbol.make("#%unsafe"),$rjs_core.PrimitiveSymbol.make("#%utils"),$rjs_core.PrimitiveSymbol.make("#%flfxnum"),$rjs_core.PrimitiveSymbol.make("#%futures"),$rjs_core.PrimitiveSymbol.make("#%extfl"),$rjs_core.PrimitiveSymbol.make("#%place-struct"),$rjs_core.PrimitiveSymbol.make("#%network"),$rjs_core.PrimitiveSymbol.make("#%builtin"),$rjs_core.PrimitiveSymbol.make("#%boot"),$rjs_core.PrimitiveSymbol.make("#%foreign"),$rjs_core.PrimitiveSymbol.make("#%place"),$rjs_core.PrimitiveSymbol.make("#%linklet-primitive"),M0.build_path(racketscript_runtime_dir,$rjs_core.UString.make("lib.rkt")));var skip_arity_checks_p = M0.make_parameter(false);var false_p = function(v_42) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.eq_p(v_42,false);};var empty_p = function(l_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.null_p(l_2);};var cons_p = function(l_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.pair_p(l_19);};var too_large = function(who_5, list_1, n_16) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}var proper_p_0 = M0.list_p(list_1);var temp713 = $rjs_core.UString.make("a ~alist with at least ~a ~a");if (proper_p_0!==false) {var if_res712 = $rjs_core.UString.make("");} else {var if_res712 = $rjs_core.UString.make("(possibly improper) ");}if (proper_p_0!==false) {var if_res711 = $rjs_core.UString.make("elements");} else {var if_res711 = $rjs_core.UString.make("pairs");}return M0.raise_argument_error(who_5,M0.format(temp713,if_res712,n_16,if_res711),list_1);};var split_at = function(list0_0, n0_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.exact_nonnegative_integer_p(n0_0)!==false) {var if_res714 = M0.rvoid();} else {var if_res714 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("split-at"),$rjs_core.UString.make("exact-nonnegative-integer?"),1,list0_0,n0_0);}if_res714;var loop_50 = function(list_2, n_17, pfx_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.zero_p(n_17)!==false) {var if_res716 = M0.values(reverse$1(pfx_0),list_2);} else {if (M0.pair_p(list_2)!==false) {var if_res715 = loop_50(M0.cdr(list_2),M0.sub1(n_17),M0.cons(M0.car(list_2),pfx_0));} else {var if_res715 = too_large($rjs_core.PrimitiveSymbol.make("split-at"),list0_0,n0_0);}var if_res716 = if_res715;}return if_res716;};return loop_50(list0_0,n0_0,$rjs_core.Pair.makeList());};var flatten = function(orig_sexp_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var loop_51 = function(sexp_0, acc_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.null_p(sexp_0)!==false) {var if_res718 = acc_0;} else {if (M0.pair_p(sexp_0)!==false) {var if_res717 = loop_51(M0.car(sexp_0),loop_51(M0.cdr(sexp_0),acc_0));} else {var if_res717 = M0.cons(sexp_0,acc_0);}var if_res718 = if_res717;}return if_res718;};return loop_51(orig_sexp_0,M0.rnull);};var cl719 = function(f_27, l_20) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(M0.append,map2(f_27,l_20));};var cl720 = function(f_28, l1_8, l2_8) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.apply(M0.append,map2(f_28,l1_8,l2_8));};var cl721 = $rjs_core.attachProcedureArity(function(f_29, l_21, ...ls_13724) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var ls_13 = $rjs_core.Pair.listFromArray(ls_13724);return M0.apply(M0.append,M0.apply(map2,f_29,l_21,ls_13));});var append_map = $rjs_core.attachProcedureArity(function() {var fixed_lam722 = {'2':cl719,'3':cl720}[arguments.length];if (fixed_lam722!==undefined) {return fixed_lam722.apply(null,arguments);} else {if (M0.__gt__eq_(cl721.length,1)!==false) {var if_res723 = cl721.apply(null,arguments);} else {var if_res723 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res723;}},[M0.make_arity_at_least(2)]);var immutable_cache = M0.make_weak_hasheq();var string__gt_immutable_string_by_cache = function(str_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.immutable_p(str_1)!==false) {var if_res727 = str_1;} else {var old_0 = M0.hash_ref(immutable_cache,str_1,false);if (old_0!==false) {var if_res725 = M0.string_eq__p(str_1,old_0);} else {var if_res725 = false;}if (if_res725!==false) {var if_res726 = old_0;} else {var new_1 = M0.string__gt_immutable_string(str_1);M0.hash_set_bang_(immutable_cache,str_1,new_1);var if_res726 = new_1;}var if_res727 = if_res726;}return if_res727;};var t_0 = M0.make_weak_hasheq();var t_plus__0 = M0.make_weak_hasheq();var spaces_0 = $rjs_core.Pair.makeList($rjs_core.Regexp.fromString("\\s+"),$rjs_core.Regexp.fromString("^\\s+"),$rjs_core.Regexp.fromString("\\s+$"));M0.hash_set_bang_(t_0,M0.unsafe_undefined,spaces_0);M0.hash_set_bang_(t_plus__0,M0.unsafe_undefined,spaces_0);var get_rxs = function(who_6, rx_0, __plus__p_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("get-rxs");if (M0.string_p(rx_0)!==false) {var if_res728 = string__gt_immutable_string_by_cache(rx_0);} else {var if_res728 = rx_0;}var rx_times__0 = if_res728;if (__plus__p_0!==false) {var if_res733 = t_plus__0;} else {var if_res733 = t_0;}return hash_ref_bang_(if_res733,rx_times__0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(rx_0)!==false) {var if_res730 = regexp_quote(rx_times__0);} else {if (M0.regexp_p(rx_0)!==false) {var if_res729 = M0.string_append($rjs_core.UString.make("(?:"),M0.object_name(rx_0),$rjs_core.UString.make(")"));} else {var if_res729 = M0.raise_argument_error(who_6,$rjs_core.UString.make("(or/c string? regexp?)"),rx_0);}var if_res730 = if_res729;}var s_6 = if_res730;if (__plus__p_0!==false) {var if_res731 = M0.string_append($rjs_core.UString.make("(?:"),s_6,$rjs_core.UString.make(")+"));} else {var if_res731 = s_6;}var s_7 = if_res731;var __s_0 = M0.string_append($rjs_core.UString.make("^"),s_7);var s$_0 = M0.string_append(s_7,$rjs_core.UString.make("$"));if (M0.pregexp_p(rx_0)!==false) {var if_res732 = M0.list(M0.pregexp(s_7),M0.pregexp(__s_0),M0.pregexp(s$_0));} else {var if_res732 = M0.list(M0.regexp(s_7),M0.regexp(__s_0),M0.regexp(s$_0));}return if_res732;});};var replace_cache = M0.make_weak_hasheq();var string_prefix_p = function(str_2, prefix_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.string_p(str_2)!==false) {var if_res734 = M0.rvoid();} else {var if_res734 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("string-prefix?"),$rjs_core.UString.make("string?"),str_2);}if_res734;var let_result735 = M0.values();if (M0.string_p(prefix_0)!==false) {var if_res736 = M0.rvoid();} else {var if_res736 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("string-prefix?"),$rjs_core.UString.make("string?"),prefix_0);}if_res736;var let_result737 = M0.values();var l1_9 = M0.string_length(str_2);var l2_9 = M0.string_length(prefix_0);var loop_51 = function(i_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.__eq_(l2_9,i_40)!==false) {var if_res740 = true;} else {if (M0.__eq_(l1_9,i_40)!==false) {var if_res739 = false;} else {if (M0.char_eq__p(M0.string_ref(str_2,i_40),M0.string_ref(prefix_0,i_40))!==false) {var if_res738 = loop_51(M0.add1(i_40));} else {var if_res738 = false;}var if_res739 = if_res738;}var if_res740 = if_res739;}return if_res740;};return loop_51(0);};var normalize_symbol_0 = function(s2_0, ignores1_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("normalize-symbol");var s_8 = s2_0;var ignores_0 = ignores1_0;var should_rename_p_0 = function(s_9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("should-rename?");return M0.not(string_prefix_p(s_9,jsruntime_core_module()));};var ss_0 = M0.symbol__gt_string(s_8);if (false_p(should_rename_p_0(ss_0))!==false) {var if_res758 = ss_0;} else {if (reserved_keyword_p(s_8)!==false) {var if_res757 = M0.string_append($rjs_core.UString.make("r"),ss_0);} else {var v_43 = M0.string__gt_list(ss_0);var v_1 = v_43;var alt_0 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_1);};var p_9 = v_1;if (M0.pair_p(p_9)!==false) {var if_res741 = true;} else {var if_res741 = false;}if (if_res741!==false) {var p_10 = v_1;var a_25 = M0.car(p_10);var ch_first_2 = a_25;var d_0 = M0.cdr(p_10);var ch_rest_2 = d_0;var let_result742 = M0.values(ch_first_2,ch_rest_2);var ch_first_1 = let_result742.getAt(0);var ch_rest_1 = let_result742.getAt(1);var if_res743 = M0.values(ch_first_1,ch_rest_1);} else {var if_res743 = alt_0();}var let_result744 = if_res743;var ch_first_0 = let_result744.getAt(0);var ch_rest_0 = let_result744.getAt(1);var temp756 = normalize_symbol_atom(ch_first_0,true,ignores_0);var loop_52 = function(ss_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_44 = ss_1;var alt_1 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_2 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_3 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_44);};var p_11 = v_44;if (M0.pair_p(p_11)!==false) {var if_res745 = true;} else {var if_res745 = false;}if (if_res745!==false) {var p_12 = v_44;var a_26 = M0.car(p_12);var fst_3 = a_26;var d_1 = M0.cdr(p_12);var rst_1 = d_1;var let_result746 = M0.values(fst_3,rst_1);var fst_2 = let_result746.getAt(0);var rst_0 = let_result746.getAt(1);var if_res747 = M0.cons(normalize_symbol_atom(fst_2,false,ignores_0),loop_52(rst_0));} else {var if_res747 = alt_3();}return if_res747;};var p_13 = v_44;if (M0.pair_p(p_13)!==false) {var a_27 = M0.cdr(p_13);var p_14 = a_27;if (M0.pair_p(p_14)!==false) {var if_res748 = true;} else {var if_res748 = false;}var if_res749 = if_res748;} else {var if_res749 = false;}if (if_res749!==false) {var p_15 = v_44;var a_28 = M0.car(p_15);var fst_5 = a_28;var d_2 = M0.cdr(p_15);var p_16 = d_2;var a_29 = M0.car(p_16);var snd_2 = a_29;var d_3 = M0.cdr(p_16);var rst_4 = d_3;var let_result750 = M0.values(snd_2,rst_4);var snd_1 = let_result750.getAt(0);var rst_3 = let_result750.getAt(1);var let_result751 = M0.values(fst_5,snd_1,rst_3);var fst_4 = let_result751.getAt(0);var snd_0 = let_result751.getAt(1);var rst_2 = let_result751.getAt(2);if (M0.eq_p(fst_4,$rjs_core.UString.make("-"))!==false) {var if_res752 = M0.eq_p(snd_0,$rjs_core.UString.make(">"));} else {var if_res752 = false;}if (if_res752!==false) {var if_res753 = M0.cons($rjs_core.UString.make("_to_"),loop_52(rst_2));} else {var if_res753 = alt_2();}var if_res754 = if_res753;} else {var if_res754 = alt_2();}return if_res754;};if (M0.eq_p($rjs_core.Pair.makeList(),v_44)!==false) {var if_res755 = M0.rnull;} else {var if_res755 = alt_1();}return if_res755;};var if_res757 = M0.apply(M0.string_append,M0.cons(temp756,loop_52(ch_rest_0)));}var if_res758 = if_res757;}return if_res758;};var cl759 = function(s_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_0(s_10,$rjs_core.Pair.makeList());};var cl760 = function(s_2, ignores1_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_0(s_2,ignores1_1);};var normalize_symbol = $rjs_core.attachProcedureArity(function() {var fixed_lam761 = {'1':cl759,'2':cl760}[arguments.length];if (fixed_lam761!==undefined) {return fixed_lam761.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var valid_literal_atom_p = function(ch_0, first_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (first_p_0!==false) {var if_res762 = $rjs_core.Regexp.fromString("\\$|_|\\p{L}|\\p{Nl}");} else {var if_res762 = $rjs_core.Regexp.fromString("\\$|_|\\p{L}|\\p{Nl}|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}");}var patt_0 = if_res762;return regexp_match_exact_p(patt_0,M0.string(ch_0));};var reserved_keyword_p = function(s_11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_member_p(es6_reserved_keywords,s_11);};var normalize_symbol_atom_0 = function(ch4_0, first_p5_0, ignores3_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("normalize-symbol-atom");var ch_1 = ch4_0;var first_p_1 = first_p5_0;var ignores_1 = ignores3_0;var char_map_0 = $rjs_core.Hash.makeEqual([[$rjs_core.UString.make("&"),$rjs_core.UString.make("_and_")],[$rjs_core.UString.make("'"),$rjs_core.UString.make("_prime_")],[$rjs_core.UString.make("!"),$rjs_core.UString.make("_bang_")],[$rjs_core.UString.make("<"),$rjs_core.UString.make("_lt_")],[$rjs_core.UString.make("*"),$rjs_core.UString.make("_times_")],[$rjs_core.UString.make("+"),$rjs_core.UString.make("_plus_")],[$rjs_core.UString.make(">"),$rjs_core.UString.make("_gt_")],[$rjs_core.UString.make("."),$rjs_core.UString.make("_dot_")],[$rjs_core.UString.make("?"),$rjs_core.UString.make("_p")],[$rjs_core.UString.make("/"),$rjs_core.UString.make("_by_")],[$rjs_core.UString.make("="),$rjs_core.UString.make("_eq_")],[$rjs_core.UString.make("-"),$rjs_core.UString.make("_")]],false);var sch_0 = M0.string(ch_1);var or_part_49 = member(sch_0,ignores_1);if (or_part_49!==false) {var if_res763 = or_part_49;} else {var if_res763 = valid_literal_atom_p(ch_1,first_p_1);}if (if_res763!==false) {var if_res766 = sch_0;} else {if (first_p_1!==false) {var if_res765 = M0.string_append($rjs_core.UString.make("_"),normalize_symbol_atom(ch_1,false));} else {if (hash_has_key_p(char_map_0,sch_0)!==false) {var if_res764 = M0.hash_ref(char_map_0,sch_0);} else {var if_res764 = $rjs_core.UString.make("_");}var if_res765 = if_res764;}var if_res766 = if_res765;}return if_res766;};var cl767 = function(ch_2, first_p_2) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_atom_0(ch_2,first_p_2,$rjs_core.Pair.makeList());};var cl768 = function(ch_3, first_p_3, ignores3_1) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}return normalize_symbol_atom_0(ch_3,first_p_3,ignores3_1);};var normalize_symbol_atom = $rjs_core.attachProcedureArity(function() {var fixed_lam769 = {'2':cl767,'3':cl768}[arguments.length];if (fixed_lam769!==undefined) {return fixed_lam769.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[2,3]);var fresh_id_counter = M0.make_parameter(0);if (test_environment_p()!==false) {var if_res770 = M0.gensym;} else {var if_res770 = function(id_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}fresh_id_counter(M0.add1(fresh_id_counter()));return M0.string__gt_symbol(M0.format($rjs_core.UString.make("~a~a"),id_0,fresh_id_counter()));};}var fresh_id = if_res770;var es6_reserved_keywords = list__gt_set($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("abstract"),$rjs_core.PrimitiveSymbol.make("arguments"),$rjs_core.PrimitiveSymbol.make("await*"),$rjs_core.PrimitiveSymbol.make("boolean"),$rjs_core.PrimitiveSymbol.make("break"),$rjs_core.PrimitiveSymbol.make("byte"),$rjs_core.PrimitiveSymbol.make("case"),$rjs_core.PrimitiveSymbol.make("catch"),$rjs_core.PrimitiveSymbol.make("char"),$rjs_core.PrimitiveSymbol.make("class*"),$rjs_core.PrimitiveSymbol.make("const"),$rjs_core.PrimitiveSymbol.make("continue"),$rjs_core.PrimitiveSymbol.make("debugger"),$rjs_core.PrimitiveSymbol.make("default"),$rjs_core.PrimitiveSymbol.make("delete"),$rjs_core.PrimitiveSymbol.make("do"),$rjs_core.PrimitiveSymbol.make("double"),$rjs_core.PrimitiveSymbol.make("else"),$rjs_core.PrimitiveSymbol.make("enum*"),$rjs_core.PrimitiveSymbol.make("eval"),$rjs_core.PrimitiveSymbol.make("export*"),$rjs_core.PrimitiveSymbol.make("extends*"),$rjs_core.PrimitiveSymbol.make("false"),$rjs_core.PrimitiveSymbol.make("final"),$rjs_core.PrimitiveSymbol.make("finally"),$rjs_core.PrimitiveSymbol.make("float"),$rjs_core.PrimitiveSymbol.make("for"),$rjs_core.PrimitiveSymbol.make("function"),$rjs_core.PrimitiveSymbol.make("goto"),$rjs_core.PrimitiveSymbol.make("if"),$rjs_core.PrimitiveSymbol.make("implements"),$rjs_core.PrimitiveSymbol.make("import*"),$rjs_core.PrimitiveSymbol.make("in"),$rjs_core.PrimitiveSymbol.make("instanceof"),$rjs_core.PrimitiveSymbol.make("int"),$rjs_core.PrimitiveSymbol.make("interface"),$rjs_core.PrimitiveSymbol.make("let*"),$rjs_core.PrimitiveSymbol.make("long"),$rjs_core.PrimitiveSymbol.make("native"),$rjs_core.PrimitiveSymbol.make("new"),$rjs_core.PrimitiveSymbol.make("null"),$rjs_core.PrimitiveSymbol.make("package"),$rjs_core.PrimitiveSymbol.make("private"),$rjs_core.PrimitiveSymbol.make("protected"),$rjs_core.PrimitiveSymbol.make("public"),$rjs_core.PrimitiveSymbol.make("return"),$rjs_core.PrimitiveSymbol.make("short"),$rjs_core.PrimitiveSymbol.make("static"),$rjs_core.PrimitiveSymbol.make("super*"),$rjs_core.PrimitiveSymbol.make("switch"),$rjs_core.PrimitiveSymbol.make("synchronized"),$rjs_core.PrimitiveSymbol.make("this"),$rjs_core.PrimitiveSymbol.make("throw"),$rjs_core.PrimitiveSymbol.make("throws"),$rjs_core.PrimitiveSymbol.make("transient"),$rjs_core.PrimitiveSymbol.make("true"),$rjs_core.PrimitiveSymbol.make("try"),$rjs_core.PrimitiveSymbol.make("typeof"),$rjs_core.PrimitiveSymbol.make("var"),$rjs_core.PrimitiveSymbol.make("void"),$rjs_core.PrimitiveSymbol.make("volatile"),$rjs_core.PrimitiveSymbol.make("while"),$rjs_core.PrimitiveSymbol.make("with"),$rjs_core.PrimitiveSymbol.make("yield")));var let_result771 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Linklet"),false,4,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2,3),false,$rjs_core.PrimitiveSymbol.make("Linklet"));var struct__0 = let_result771.getAt(0);var make__0 = let_result771.getAt(1);var __p_1 = let_result771.getAt(2);var __ref_1 = let_result771.getAt(3);var __set_bang__1 = let_result771.getAt(4);var let_result772 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("path")),M0.make_struct_field_accessor(__ref_1,1,$rjs_core.PrimitiveSymbol.make("imports")),M0.make_struct_field_accessor(__ref_1,2,$rjs_core.PrimitiveSymbol.make("exports")),M0.make_struct_field_accessor(__ref_1,3,$rjs_core.PrimitiveSymbol.make("forms")));var struct_Linklet = let_result772.getAt(0);var Linklet1_dot_1 = let_result772.getAt(1);var Linklet_p = let_result772.getAt(2);var Linklet_path = let_result772.getAt(3);var Linklet_imports = let_result772.getAt(4);var Linklet_exports = let_result772.getAt(5);var Linklet_forms = let_result772.getAt(6);var let_result773 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("DefineValues"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("DefineValues"));var struct__1 = let_result773.getAt(0);var make__1 = let_result773.getAt(1);var __p_2 = let_result773.getAt(2);var __ref_2 = let_result773.getAt(3);var __set_bang__2 = let_result773.getAt(4);var let_result774 = M0.values(struct__1,make__1,__p_2,M0.make_struct_field_accessor(__ref_2,0,$rjs_core.PrimitiveSymbol.make("ids")),M0.make_struct_field_accessor(__ref_2,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_DefineValues = let_result774.getAt(0);var DefineValues2_dot_1 = let_result774.getAt(1);var DefineValues_p = let_result774.getAt(2);var DefineValues_ids = let_result774.getAt(3);var DefineValues_expr = let_result774.getAt(4);var let_result775 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ImportedIdent"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ImportedIdent"));var struct__2 = let_result775.getAt(0);var make__2 = let_result775.getAt(1);var __p_3 = let_result775.getAt(2);var __ref_3 = let_result775.getAt(3);var __set_bang__3 = let_result775.getAt(4);var let_result776 = M0.values(struct__2,make__2,__p_3,M0.make_struct_field_accessor(__ref_3,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_3,1,$rjs_core.PrimitiveSymbol.make("src-mod")),M0.make_struct_field_accessor(__ref_3,2,$rjs_core.PrimitiveSymbol.make("reachable?")));var struct_ImportedIdent = let_result776.getAt(0);var ImportedIdent3_dot_1 = let_result776.getAt(1);var ImportedIdent_p = let_result776.getAt(2);var ImportedIdent_id = let_result776.getAt(3);var ImportedIdent_src_mod = let_result776.getAt(4);var ImportedIdent_reachable_p = let_result776.getAt(5);var let_result777 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("TopLevelIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("TopLevelIdent"));var struct__3 = let_result777.getAt(0);var make__3 = let_result777.getAt(1);var __p_4 = let_result777.getAt(2);var __ref_4 = let_result777.getAt(3);var __set_bang__4 = let_result777.getAt(4);var let_result778 = M0.values(struct__3,make__3,__p_4,M0.make_struct_field_accessor(__ref_4,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_TopLevelIdent = let_result778.getAt(0);var TopLevelIdent4_dot_1 = let_result778.getAt(1);var TopLevelIdent_p = let_result778.getAt(2);var TopLevelIdent_id = let_result778.getAt(3);var let_result779 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LinkletImportIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("LinkletImportIdent"));var struct__4 = let_result779.getAt(0);var make__4 = let_result779.getAt(1);var __p_5 = let_result779.getAt(2);var __ref_5 = let_result779.getAt(3);var __set_bang__5 = let_result779.getAt(4);var let_result780 = M0.values(struct__4,make__4,__p_5,M0.make_struct_field_accessor(__ref_5,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_LinkletImportIdent = let_result780.getAt(0);var LinkletImportIdent5_dot_1 = let_result780.getAt(1);var LinkletImportIdent_p = let_result780.getAt(2);var LinkletImportIdent_id = let_result780.getAt(3);var let_result781 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LocalIdent"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("LocalIdent"));var struct__5 = let_result781.getAt(0);var make__5 = let_result781.getAt(1);var __p_6 = let_result781.getAt(2);var __ref_6 = let_result781.getAt(3);var __set_bang__6 = let_result781.getAt(4);var let_result782 = M0.values(struct__5,make__5,__p_6,M0.make_struct_field_accessor(__ref_6,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_LocalIdent = let_result782.getAt(0);var LocalIdent6_dot_1 = let_result782.getAt(1);var LocalIdent_p = let_result782.getAt(2);var LocalIdent_id = let_result782.getAt(3);var let_result783 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Quote"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("Quote"));var struct__6 = let_result783.getAt(0);var make__6 = let_result783.getAt(1);var __p_7 = let_result783.getAt(2);var __ref_7 = let_result783.getAt(3);var __set_bang__7 = let_result783.getAt(4);var let_result784 = M0.values(struct__6,make__6,__p_7,M0.make_struct_field_accessor(__ref_7,0,$rjs_core.PrimitiveSymbol.make("datum")));var struct_Quote = let_result784.getAt(0);var Quote7_dot_1 = let_result784.getAt(1);var Quote_p = let_result784.getAt(2);var Quote_datum = let_result784.getAt(3);var let_result785 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Begin0"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("Begin0"));var struct__7 = let_result785.getAt(0);var make__7 = let_result785.getAt(1);var __p_8 = let_result785.getAt(2);var __ref_8 = let_result785.getAt(3);var __set_bang__8 = let_result785.getAt(4);var let_result786 = M0.values(struct__7,make__7,__p_8,M0.make_struct_field_accessor(__ref_8,0,$rjs_core.PrimitiveSymbol.make("expr0")),M0.make_struct_field_accessor(__ref_8,1,$rjs_core.PrimitiveSymbol.make("exprs")));var struct_Begin0 = let_result786.getAt(0);var Begin08_dot_1 = let_result786.getAt(1);var Begin0_p = let_result786.getAt(2);var Begin0_expr0 = let_result786.getAt(3);var Begin0_exprs = let_result786.getAt(4);var let_result787 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("App"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("App"));var struct__8 = let_result787.getAt(0);var make__8 = let_result787.getAt(1);var __p_9 = let_result787.getAt(2);var __ref_9 = let_result787.getAt(3);var __set_bang__9 = let_result787.getAt(4);var let_result788 = M0.values(struct__8,make__8,__p_9,M0.make_struct_field_accessor(__ref_9,0,$rjs_core.PrimitiveSymbol.make("lam")),M0.make_struct_field_accessor(__ref_9,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_App = let_result788.getAt(0);var App9_dot_1 = let_result788.getAt(1);var App_p = let_result788.getAt(2);var App_lam = let_result788.getAt(3);var App_args = let_result788.getAt(4);var let_result789 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Lambda"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("Lambda"));var struct__9 = let_result789.getAt(0);var make__9 = let_result789.getAt(1);var __p_10 = let_result789.getAt(2);var __ref_10 = let_result789.getAt(3);var __set_bang__10 = let_result789.getAt(4);var let_result790 = M0.values(struct__9,make__9,__p_10,M0.make_struct_field_accessor(__ref_10,0,$rjs_core.PrimitiveSymbol.make("formals")),M0.make_struct_field_accessor(__ref_10,1,$rjs_core.PrimitiveSymbol.make("exprs")),M0.make_struct_field_accessor(__ref_10,2,$rjs_core.PrimitiveSymbol.make("unchecked?")));var struct_Lambda = let_result790.getAt(0);var Lambda10_dot_1 = let_result790.getAt(1);var Lambda_p = let_result790.getAt(2);var Lambda_formals = let_result790.getAt(3);var Lambda_exprs = let_result790.getAt(4);var Lambda_unchecked_p = let_result790.getAt(5);var let_result791 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("CaseLambda"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("CaseLambda"));var struct__10 = let_result791.getAt(0);var make__10 = let_result791.getAt(1);var __p_11 = let_result791.getAt(2);var __ref_11 = let_result791.getAt(3);var __set_bang__11 = let_result791.getAt(4);var let_result792 = M0.values(struct__10,make__10,__p_11,M0.make_struct_field_accessor(__ref_11,0,$rjs_core.PrimitiveSymbol.make("clauses")));var struct_CaseLambda = let_result792.getAt(0);var CaseLambda11_dot_1 = let_result792.getAt(1);var CaseLambda_p = let_result792.getAt(2);var CaseLambda_clauses = let_result792.getAt(3);var let_result793 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("If"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("If"));var struct__11 = let_result793.getAt(0);var make__11 = let_result793.getAt(1);var __p_12 = let_result793.getAt(2);var __ref_12 = let_result793.getAt(3);var __set_bang__12 = let_result793.getAt(4);var let_result794 = M0.values(struct__11,make__11,__p_12,M0.make_struct_field_accessor(__ref_12,0,$rjs_core.PrimitiveSymbol.make("pred")),M0.make_struct_field_accessor(__ref_12,1,$rjs_core.PrimitiveSymbol.make("t-branch")),M0.make_struct_field_accessor(__ref_12,2,$rjs_core.PrimitiveSymbol.make("f-branch")));var struct_If = let_result794.getAt(0);var If12_dot_1 = let_result794.getAt(1);var If_p = let_result794.getAt(2);var If_pred = let_result794.getAt(3);var If_t_branch = let_result794.getAt(4);var If_f_branch = let_result794.getAt(5);var let_result795 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("LetValues"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("LetValues"));var struct__12 = let_result795.getAt(0);var make__12 = let_result795.getAt(1);var __p_13 = let_result795.getAt(2);var __ref_13 = let_result795.getAt(3);var __set_bang__13 = let_result795.getAt(4);var let_result796 = M0.values(struct__12,make__12,__p_13,M0.make_struct_field_accessor(__ref_13,0,$rjs_core.PrimitiveSymbol.make("bindings")),M0.make_struct_field_accessor(__ref_13,1,$rjs_core.PrimitiveSymbol.make("body")));var struct_LetValues = let_result796.getAt(0);var LetValues13_dot_1 = let_result796.getAt(1);var LetValues_p = let_result796.getAt(2);var LetValues_bindings = let_result796.getAt(3);var LetValues_body = let_result796.getAt(4);var let_result797 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("Set!"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("Set!"));var struct__13 = let_result797.getAt(0);var make__13 = let_result797.getAt(1);var __p_14 = let_result797.getAt(2);var __ref_14 = let_result797.getAt(3);var __set_bang__14 = let_result797.getAt(4);var let_result798 = M0.values(struct__13,make__13,__p_14,M0.make_struct_field_accessor(__ref_14,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_14,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_Set_bang_ = let_result798.getAt(0);var Set_bang_14_dot_1 = let_result798.getAt(1);var Set_bang__p = let_result798.getAt(2);var Set_bang__id = let_result798.getAt(3);var Set_bang__expr = let_result798.getAt(4);var let_result799 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("WithContinuationMark"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("WithContinuationMark"));var struct__14 = let_result799.getAt(0);var make__14 = let_result799.getAt(1);var __p_15 = let_result799.getAt(2);var __ref_15 = let_result799.getAt(3);var __set_bang__15 = let_result799.getAt(4);var let_result800 = M0.values(struct__14,make__14,__p_15,M0.make_struct_field_accessor(__ref_15,0,$rjs_core.PrimitiveSymbol.make("key")),M0.make_struct_field_accessor(__ref_15,1,$rjs_core.PrimitiveSymbol.make("value")),M0.make_struct_field_accessor(__ref_15,2,$rjs_core.PrimitiveSymbol.make("result")));var struct_WithContinuationMark = let_result800.getAt(0);var WithContinuationMark15_dot_1 = let_result800.getAt(1);var WithContinuationMark_p = let_result800.getAt(2);var WithContinuationMark_key = let_result800.getAt(3);var WithContinuationMark_value = let_result800.getAt(4);var WithContinuationMark_result = let_result800.getAt(5);var let_result801 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("VarRef"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("VarRef"));var struct__15 = let_result801.getAt(0);var make__15 = let_result801.getAt(1);var __p_16 = let_result801.getAt(2);var __ref_16 = let_result801.getAt(3);var __set_bang__16 = let_result801.getAt(4);var let_result802 = M0.values(struct__15,make__15,__p_16,M0.make_struct_field_accessor(__ref_16,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_VarRef = let_result802.getAt(0);var VarRef16_dot_1 = let_result802.getAt(1);var VarRef_p = let_result802.getAt(2);var VarRef_id = let_result802.getAt(3);var let_result803 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("JSRequire"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("JSRequire"));var struct__16 = let_result803.getAt(0);var make__16 = let_result803.getAt(1);var __p_17 = let_result803.getAt(2);var __ref_17 = let_result803.getAt(3);var __set_bang__17 = let_result803.getAt(4);var let_result804 = M0.values(struct__16,make__16,__p_17,M0.make_struct_field_accessor(__ref_17,0,$rjs_core.PrimitiveSymbol.make("alias")),M0.make_struct_field_accessor(__ref_17,1,$rjs_core.PrimitiveSymbol.make("path")),M0.make_struct_field_accessor(__ref_17,2,$rjs_core.PrimitiveSymbol.make("mode")));var struct_JSRequire = let_result804.getAt(0);var JSRequire17_dot_1 = let_result804.getAt(1);var JSRequire_p = let_result804.getAt(2);var JSRequire_alias = let_result804.getAt(3);var JSRequire_path = let_result804.getAt(4);var JSRequire_mode = let_result804.getAt(5);var let_result805 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("SimpleProvide"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("SimpleProvide"));var struct__17 = let_result805.getAt(0);var make__17 = let_result805.getAt(1);var __p_18 = let_result805.getAt(2);var __ref_18 = let_result805.getAt(3);var __set_bang__18 = let_result805.getAt(4);var let_result806 = M0.values(struct__17,make__17,__p_18,M0.make_struct_field_accessor(__ref_18,0,$rjs_core.PrimitiveSymbol.make("id")));var struct_SimpleProvide = let_result806.getAt(0);var SimpleProvide18_dot_1 = let_result806.getAt(1);var SimpleProvide_p = let_result806.getAt(2);var SimpleProvide_id = let_result806.getAt(3);var let_result807 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("RenamedProvide"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("RenamedProvide"));var struct__18 = let_result807.getAt(0);var make__18 = let_result807.getAt(1);var __p_19 = let_result807.getAt(2);var __ref_19 = let_result807.getAt(3);var __set_bang__19 = let_result807.getAt(4);var let_result808 = M0.values(struct__18,make__18,__p_19,M0.make_struct_field_accessor(__ref_19,0,$rjs_core.PrimitiveSymbol.make("local-id")),M0.make_struct_field_accessor(__ref_19,1,$rjs_core.PrimitiveSymbol.make("exported-id")));var struct_RenamedProvide = let_result808.getAt(0);var RenamedProvide19_dot_1 = let_result808.getAt(1);var RenamedProvide_p = let_result808.getAt(2);var RenamedProvide_local_id = let_result808.getAt(3);var RenamedProvide_exported_id = let_result808.getAt(4);var Ident_p = function(e_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_50 = ImportedIdent_p(e_1);if (or_part_50!==false) {var if_res811 = or_part_50;} else {var or_part_51 = TopLevelIdent_p(e_1);if (or_part_51!==false) {var if_res810 = or_part_51;} else {var or_part_52 = LinkletImportIdent_p(e_1);if (or_part_52!==false) {var if_res809 = or_part_52;} else {var if_res809 = LocalIdent_p(e_1);}var if_res810 = if_res809;}var if_res811 = if_res810;}return if_res811;};var TopLevelForm_p = function(e_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_53 = Expr_p(e_2);if (or_part_53!==false) {var if_res813 = or_part_53;} else {var or_part_54 = DefineValues_p(e_2);if (or_part_54!==false) {var if_res812 = or_part_54;} else {var if_res812 = JSRequire_p(e_2);}var if_res813 = if_res812;}return if_res813;};var Begin_p = function(e_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.list_p(e_3)!==false) {var if_res814 = andmap2(TopLevelForm_p,e_3);} else {var if_res814 = false;}return if_res814;};var Expr_p = function(e_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_55 = Ident_p(e_4);if (or_part_55!==false) {var if_res825 = or_part_55;} else {var or_part_56 = VarRef_p(e_4);if (or_part_56!==false) {var if_res824 = or_part_56;} else {var or_part_57 = Quote_p(e_4);if (or_part_57!==false) {var if_res823 = or_part_57;} else {var or_part_58 = Begin_p(e_4);if (or_part_58!==false) {var if_res822 = or_part_58;} else {var or_part_59 = Begin0_p(e_4);if (or_part_59!==false) {var if_res821 = or_part_59;} else {var or_part_60 = App_p(e_4);if (or_part_60!==false) {var if_res820 = or_part_60;} else {var or_part_61 = Lambda_p(e_4);if (or_part_61!==false) {var if_res819 = or_part_61;} else {var or_part_62 = CaseLambda_p(e_4);if (or_part_62!==false) {var if_res818 = or_part_62;} else {var or_part_63 = If_p(e_4);if (or_part_63!==false) {var if_res817 = or_part_63;} else {var or_part_64 = LetValues_p(e_4);if (or_part_64!==false) {var if_res816 = or_part_64;} else {var or_part_65 = Set_bang__p(e_4);if (or_part_65!==false) {var if_res815 = or_part_65;} else {var if_res815 = WithContinuationMark_p(e_4);}var if_res816 = if_res815;}var if_res817 = if_res816;}var if_res818 = if_res817;}var if_res819 = if_res818;}var if_res820 = if_res819;}var if_res821 = if_res820;}var if_res822 = if_res821;}var if_res823 = if_res822;}var if_res824 = if_res823;}var if_res825 = if_res824;}return if_res825;};var lambda_arity = function(f_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var frmls_0 = Lambda_formals(f_30);if (M0.symbol_p(frmls_0)!==false) {var if_res828 = M0.arity_at_least(0);} else {if (M0.list_p(frmls_0)!==false) {var if_res827 = M0.length(frmls_0);} else {if (M0.pair_p(frmls_0)!==false) {var if_res826 = M0.arity_at_least(M0.length(M0.car(frmls_0)));} else {var if_res826 = M0.rvoid();}var if_res827 = if_res826;}var if_res828 = if_res827;}return if_res828;};var variadic_lambda_p = function(lam_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.list_p(Lambda_formals(lam_0)));};var hash_union = function(h1_0, h2_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var ht_6 = h2_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res829 = M0.rvoid();} else {var if_res829 = check_in_hash(ht_6);}if_res829;var for_loop_1 = function(res_0, i_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_41!==false) {var let_result830 = M0.hash_iterate_key_plus_value(ht_6,i_41);var k_0 = let_result830.getAt(0);var v_45 = let_result830.getAt(1);var res_2 = res_0;if (hash_has_key_p(res_2,k_0)!==false) {var if_res831 = M0.error($rjs_core.PrimitiveSymbol.make("hash-union"));} else {var if_res831 = M0.hash_set(res_2,k_0,v_45);}var res_3 = if_res831;var res_1 = M0.values(res_3);if (M0.not(false)!==false) {var if_res832 = for_loop_1(res_1,M0.hash_iterate_next(ht_6,i_41));} else {var if_res832 = res_1;}var if_res833 = if_res832;} else {var if_res833 = res_0;}return if_res833;};return for_loop_1(h1_0,M0.hash_iterate_first(ht_6));};var formals__gt_absyn = function(formals_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var or_part_66 = M0.symbol_p(formals_0);if (or_part_66!==false) {var if_res834 = or_part_66;} else {var if_res834 = M0.list_p(formals_0);}if (if_res834!==false) {var if_res837 = formals_0;} else {if (M0.pair_p(formals_0)!==false) {var loop_53 = function(rev_elms_0, rem_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(rem_0)!==false) {var if_res835 = loop_53(M0.cons(M0.car(rem_0),rev_elms_0),M0.cdr(rem_0));} else {var if_res835 = M0.cons(reverse$1(rev_elms_0),rem_0);}return if_res835;};var if_res836 = loop_53($rjs_core.Pair.makeList(),formals_0);} else {var if_res836 = M0.rvoid();}var if_res837 = if_res836;}return if_res837;};var formals__gt_bindings = function(formals_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var get_formals_0 = function(formals_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("get-formals");if (M0.symbol_p(formals_2)!==false) {var if_res841 = M0.list(formals_2);} else {if (M0.list_p(formals_2)!==false) {var if_res840 = formals_2;} else {if (M0.pair_p(formals_2)!==false) {var loop_54 = function(rev_elms_1, rem_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");if (M0.pair_p(rem_1)!==false) {var if_res838 = loop_54(M0.cons(M0.car(rem_1),rev_elms_1),M0.cdr(rem_1));} else {var if_res838 = M0.cons(rem_1,reverse$1(rev_elms_1));}return if_res838;};var if_res839 = loop_54($rjs_core.Pair.makeList(),formals_2);} else {var if_res839 = M0.rvoid();}var if_res840 = if_res839;}var if_res841 = if_res840;}return if_res841;};var let_result842 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),get_formals_0(formals_1));var pos__gt_vals_3 = let_result842.getAt(0);var pos_pre_inc_1 = let_result842.getAt(1);var pos_next_4 = let_result842.getAt(2);var init_4 = let_result842.getAt(3);var pos_cont_p_4 = let_result842.getAt(4);var val_cont_p_3 = let_result842.getAt(5);var all_cont_p_3 = let_result842.getAt(6);M0.rvoid();var for_loop_2 = function(table_0, pos_11) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_4!==false) {var if_res843 = pos_cont_p_4(pos_11);} else {var if_res843 = true;}if (if_res843!==false) {var i_43 = pos__gt_vals_3(pos_11);if (all_cont_p_3!==false) {var if_res844 = function(pos_12) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_3(pos_12,i_43);};} else {var if_res844 = false;}var let_result845 = M0.values(i_43,if_res844);var i_42 = let_result845.getAt(0);var all_cont_p_by_pos_1 = let_result845.getAt(1);if (pos_pre_inc_1!==false) {var if_res846 = pos_pre_inc_1(pos_11);} else {var if_res846 = pos_11;}var pos_13 = if_res846;if (val_cont_p_3!==false) {var if_res847 = val_cont_p_3(i_42);} else {var if_res847 = true;}if (if_res847!==false) {var table_2 = table_0;var let_result848 = M0.values(i_42,$rjs_core.PrimitiveSymbol.make("lexical"));var key_3 = let_result848.getAt(0);var val_0 = let_result848.getAt(1);var table_3 = M0.hash_set(table_2,key_3,val_0);var table_1 = M0.values(table_3);if (all_cont_p_by_pos_1!==false) {var if_res849 = all_cont_p_by_pos_1(pos_13);} else {var if_res849 = true;}if (if_res849!==false) {var if_res850 = M0.not(false);} else {var if_res850 = false;}if (if_res850!==false) {var if_res851 = for_loop_2(table_1,pos_next_4(pos_13));} else {var if_res851 = table_1;}var if_res852 = if_res851;} else {var if_res852 = table_0;}var if_res853 = if_res852;} else {var if_res853 = table_0;}return if_res853;};return for_loop_2($rjs_core.Hash.makeEqual([],false),init_4);};var to_absyn = function(v_46, bindings_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var t_2 = function(v3_0, b2_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("t");var v_47 = v3_0;if (M0.eq_p(b2_4,M0.unsafe_undefined)!==false) {var if_res854 = bindings_0;} else {var if_res854 = b2_4;}var b_8 = if_res854;return to_absyn(v_47,b_8);};var cl855 = function(v_48) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("t");return t_2(v_48,M0.unsafe_undefined);};var cl856 = function(v_49, b2_5) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return t_2(v_49,b2_5);};var t_1 = $rjs_core.attachProcedureArity(function() {var fixed_lam857 = {'1':cl855,'2':cl856}[arguments.length];if (fixed_lam857!==undefined) {return fixed_lam857.apply(null,arguments);} else {return M0.error($rjs_core.UString.make("case-lambda: invalid case"));}},[1,2]);var v_50 = v_46;var p_17 = v_50;if (M0.pair_p(p_17)!==false) {var if_res858 = M0.car(p_17);} else {var if_res858 = false;}var hd_0 = if_res858;var alt_4 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_5 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_6 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_7 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_8 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_9 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_10 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_11 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_12 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_13 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_14 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_15 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_16 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_17 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_18 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_19 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_20 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_21 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");displayln($rjs_core.UString.make("unsupported form =>"));displayln(v_46);return M0.error($rjs_core.PrimitiveSymbol.make("linklet-expand"));};var p_18 = v_50;if (M0.pair_p(p_18)!==false) {var if_res859 = true;} else {var if_res859 = false;}if (if_res859!==false) {var p_19 = v_50;var a_30 = M0.car(p_19);var rator_1 = a_30;var d_4 = M0.cdr(p_19);var rands_1 = d_4;var let_result860 = M0.values(rator_1,rands_1);var rator_0 = let_result860.getAt(0);var rands_0 = let_result860.getAt(1);var if_res861 = App9_dot_1(t_1(rator_0),map2(t_1,rands_0));} else {var if_res861 = alt_21();}return if_res861;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("with-continuation-mark"),hd_0)!==false) {var a_31 = M0.cdr(v_50);var p_20 = a_31;if (M0.pair_p(p_20)!==false) {var a_32 = M0.cdr(p_20);var p_21 = a_32;if (M0.pair_p(p_21)!==false) {var a_33 = M0.cdr(p_21);var p_22 = a_33;if (M0.pair_p(p_22)!==false) {var a_34 = M0.cdr(p_22);var if_res862 = M0.eq_p($rjs_core.Pair.makeList(),a_34);} else {var if_res862 = false;}var if_res863 = if_res862;} else {var if_res863 = false;}var if_res864 = if_res863;} else {var if_res864 = false;}var if_res865 = if_res864;} else {var if_res865 = false;}if (if_res865!==false) {var d_5 = M0.cdr(v_50);var p_23 = d_5;var a_35 = M0.car(p_23);var key_5 = a_35;var d_6 = M0.cdr(p_23);var p_0 = d_6;var a_36 = M0.car(p_0);var value_2 = a_36;var d_7 = M0.cdr(p_0);var a_37 = M0.car(d_7);var result_3 = a_37;var let_result866 = M0.values(value_2,result_3);var value_1 = let_result866.getAt(0);var result_2 = let_result866.getAt(1);var let_result867 = M0.values(key_5,value_1,result_2);var key_4 = let_result867.getAt(0);var value_0 = let_result867.getAt(1);var result_1 = let_result867.getAt(2);var if_res868 = WithContinuationMark15_dot_1(t_1(key_4),t_1(value_0),t_1(result_1));} else {var if_res868 = alt_20();}return if_res868;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("set!"),hd_0)!==false) {var a_38 = M0.cdr(v_50);var p_24 = a_38;if (M0.pair_p(p_24)!==false) {var a_39 = M0.cdr(p_24);var p_25 = a_39;if (M0.pair_p(p_25)!==false) {var a_40 = M0.cdr(p_25);var if_res869 = M0.eq_p($rjs_core.Pair.makeList(),a_40);} else {var if_res869 = false;}var if_res870 = if_res869;} else {var if_res870 = false;}var if_res871 = if_res870;} else {var if_res871 = false;}if (if_res871!==false) {var d_8 = M0.cdr(v_50);var p_26 = d_8;var a_41 = M0.car(p_26);var s_13 = a_41;var d_9 = M0.cdr(p_26);var a_42 = M0.car(d_9);var e_6 = a_42;var let_result872 = M0.values(s_13,e_6);var s_12 = let_result872.getAt(0);var e_5 = let_result872.getAt(1);var if_res873 = Set_bang_14_dot_1(s_12,t_1(e_5));} else {var if_res873 = alt_19();}return if_res873;};if (M0.symbol_p(v_46)!==false) {if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define"),M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res877 = TopLevelIdent4_dot_1(v_46);} else {if (M0.number_p(M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res876 = LinkletImportIdent5_dot_1(v_46,M0.hash_ref(bindings_0,v_46));} else {if (M0.eq_p($rjs_core.PrimitiveSymbol.make("lexical"),M0.hash_ref(bindings_0,v_46,false))!==false) {var if_res875 = LocalIdent6_dot_1(v_46);} else {if (M0.eq_p(v_46,$rjs_core.PrimitiveSymbol.make("primitive-table"))!==false) {var if_res874 = ImportedIdent3_dot_1(v_46,$rjs_core.PrimitiveSymbol.make("#%primitive-table"),true);} else {var if_res874 = ImportedIdent3_dot_1(v_46,$rjs_core.PrimitiveSymbol.make("#%kernel"),true);}var if_res875 = if_res874;}var if_res876 = if_res875;}var if_res877 = if_res876;}var if_res878 = if_res877;} else {var if_res878 = alt_18();}return if_res878;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"),hd_0)!==false) {var a_43 = M0.cdr(v_50);var if_res879 = M0.eq_p($rjs_core.Pair.makeList(),a_43);} else {var if_res879 = false;}if (if_res879!==false) {var if_res880 = VarRef16_dot_1(false);} else {var if_res880 = alt_17();}return if_res880;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"),hd_0)!==false) {var a_44 = M0.cdr(v_50);var p_27 = a_44;if (M0.pair_p(p_27)!==false) {var a_45 = M0.cdr(p_27);var if_res881 = M0.eq_p($rjs_core.Pair.makeList(),a_45);} else {var if_res881 = false;}var if_res882 = if_res881;} else {var if_res882 = false;}if (if_res882!==false) {var d_10 = M0.cdr(v_50);var a_46 = M0.car(d_10);var x_25 = a_46;var if_res883 = VarRef16_dot_1(x_25);} else {var if_res883 = alt_16();}return if_res883;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_47 = M0.cdr(v_50);var p_28 = a_47;if (M0.pair_p(p_28)!==false) {var a_48 = M0.car(p_28);if (M0.list_p(a_48)!==false) {var a_49 = M0.cdr(p_28);var p_29 = a_49;if (M0.pair_p(p_29)!==false) {var a_50 = M0.cdr(p_29);var if_res884 = M0.eq_p($rjs_core.Pair.makeList(),a_50);} else {var if_res884 = false;}var if_res885 = if_res884;} else {var if_res885 = false;}var if_res886 = if_res885;} else {var if_res886 = false;}var if_res887 = if_res886;} else {var if_res887 = false;}if (if_res887!==false) {var d_11 = M0.cdr(v_50);var p_30 = d_11;var a_51 = M0.car(p_30);var id_2 = a_51;var d_12 = M0.cdr(p_30);var a_52 = M0.car(d_12);var b_10 = a_52;var let_result888 = M0.values(id_2,b_10);var id_1 = let_result888.getAt(0);var b_9 = let_result888.getAt(1);var if_res889 = DefineValues2_dot_1(id_1,t_1(b_9));} else {var if_res889 = alt_15();}return if_res889;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_53 = M0.cdr(v_50);var p_31 = a_53;if (M0.pair_p(p_31)!==false) {var a_54 = M0.car(p_31);var p_32 = a_54;if (M0.pair_p(p_32)!==false) {var a_55 = M0.cdr(p_32);var if_res890 = M0.eq_p($rjs_core.Pair.makeList(),a_55);} else {var if_res890 = false;}if (if_res890!==false) {var a_56 = M0.cdr(p_31);var p_33 = a_56;if (M0.pair_p(p_33)!==false) {var a_57 = M0.car(p_33);var p_34 = a_57;if (M0.pair_p(p_34)!==false) {var a_58 = M0.car(p_34);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),a_58)!==false) {var a_59 = M0.cdr(p_34);var p_35 = a_59;if (M0.pair_p(p_35)!==false) {var a_60 = M0.car(p_35);var p_36 = a_60;if (M0.pair_p(p_36)!==false) {var a_61 = M0.car(p_36);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_61)!==false) {var a_62 = M0.cdr(p_36);var p_37 = a_62;if (M0.pair_p(p_37)!==false) {var a_63 = M0.car(p_37);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("require"),a_63)!==false) {var a_64 = M0.cdr(p_37);var if_res891 = M0.eq_p($rjs_core.Pair.makeList(),a_64);} else {var if_res891 = false;}var if_res892 = if_res891;} else {var if_res892 = false;}var if_res893 = if_res892;} else {var if_res893 = false;}var if_res894 = if_res893;} else {var if_res894 = false;}if (if_res894!==false) {var a_65 = M0.cdr(p_35);var p_38 = a_65;if (M0.pair_p(p_38)!==false) {var a_66 = M0.car(p_38);var p_39 = a_66;if (M0.pair_p(p_39)!==false) {var a_67 = M0.car(p_39);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_67)!==false) {var a_68 = M0.cdr(p_39);var p_40 = a_68;if (M0.pair_p(p_40)!==false) {var a_69 = M0.car(p_40);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("*"),a_69)!==false) {var a_70 = M0.cdr(p_40);var if_res895 = M0.eq_p($rjs_core.Pair.makeList(),a_70);} else {var if_res895 = false;}var if_res896 = if_res895;} else {var if_res896 = false;}var if_res897 = if_res896;} else {var if_res897 = false;}var if_res898 = if_res897;} else {var if_res898 = false;}if (if_res898!==false) {var a_71 = M0.cdr(p_38);var p_41 = a_71;if (M0.pair_p(p_41)!==false) {var a_72 = M0.car(p_41);var p_42 = a_72;if (M0.pair_p(p_42)!==false) {var a_73 = M0.car(p_42);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_73)!==false) {var a_74 = M0.cdr(p_42);var p_43 = a_74;if (M0.pair_p(p_43)!==false) {var a_75 = M0.cdr(p_43);var if_res899 = M0.eq_p($rjs_core.Pair.makeList(),a_75);} else {var if_res899 = false;}var if_res900 = if_res899;} else {var if_res900 = false;}var if_res901 = if_res900;} else {var if_res901 = false;}if (if_res901!==false) {var a_76 = M0.cdr(p_41);var if_res902 = M0.eq_p($rjs_core.Pair.makeList(),a_76);} else {var if_res902 = false;}var if_res903 = if_res902;} else {var if_res903 = false;}var if_res904 = if_res903;} else {var if_res904 = false;}var if_res905 = if_res904;} else {var if_res905 = false;}var if_res906 = if_res905;} else {var if_res906 = false;}var if_res907 = if_res906;} else {var if_res907 = false;}var if_res908 = if_res907;} else {var if_res908 = false;}var if_res909 = if_res908;} else {var if_res909 = false;}if (if_res909!==false) {var a_77 = M0.cdr(p_33);var if_res910 = M0.eq_p($rjs_core.Pair.makeList(),a_77);} else {var if_res910 = false;}var if_res911 = if_res910;} else {var if_res911 = false;}var if_res912 = if_res911;} else {var if_res912 = false;}var if_res913 = if_res912;} else {var if_res913 = false;}var if_res914 = if_res913;} else {var if_res914 = false;}if (if_res914!==false) {var d_13 = M0.cdr(v_50);var p_44 = d_13;var a_78 = M0.car(p_44);var a_79 = M0.car(a_78);var name_9 = a_79;var d_14 = M0.cdr(p_44);var a_80 = M0.car(d_14);var d_15 = M0.cdr(a_80);var d_16 = M0.cdr(d_15);var d_17 = M0.cdr(d_16);var a_81 = M0.car(d_17);var d_18 = M0.cdr(a_81);var a_82 = M0.car(d_18);var mod_1 = a_82;var let_result915 = M0.values(name_9,mod_1);var name_8 = let_result915.getAt(0);var mod_0 = let_result915.getAt(1);var if_res916 = JSRequire17_dot_1(name_8,mod_0,$rjs_core.PrimitiveSymbol.make("*"));} else {var if_res916 = alt_14();}return if_res916;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_0)!==false) {var a_83 = M0.cdr(v_50);var p_45 = a_83;if (M0.pair_p(p_45)!==false) {var a_84 = M0.car(p_45);var p_46 = a_84;if (M0.pair_p(p_46)!==false) {var a_85 = M0.cdr(p_46);var if_res917 = M0.eq_p($rjs_core.Pair.makeList(),a_85);} else {var if_res917 = false;}if (if_res917!==false) {var a_86 = M0.cdr(p_45);var p_47 = a_86;if (M0.pair_p(p_47)!==false) {var a_87 = M0.car(p_47);var p_48 = a_87;if (M0.pair_p(p_48)!==false) {var a_88 = M0.car(p_48);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),a_88)!==false) {var a_89 = M0.cdr(p_48);var p_49 = a_89;if (M0.pair_p(p_49)!==false) {var a_90 = M0.car(p_49);var p_50 = a_90;if (M0.pair_p(p_50)!==false) {var a_91 = M0.car(p_50);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_91)!==false) {var a_92 = M0.cdr(p_50);var p_51 = a_92;if (M0.pair_p(p_51)!==false) {var a_93 = M0.car(p_51);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("require"),a_93)!==false) {var a_94 = M0.cdr(p_51);var if_res918 = M0.eq_p($rjs_core.Pair.makeList(),a_94);} else {var if_res918 = false;}var if_res919 = if_res918;} else {var if_res919 = false;}var if_res920 = if_res919;} else {var if_res920 = false;}var if_res921 = if_res920;} else {var if_res921 = false;}if (if_res921!==false) {var a_95 = M0.cdr(p_49);var p_52 = a_95;if (M0.pair_p(p_52)!==false) {var a_96 = M0.car(p_52);var p_53 = a_96;if (M0.pair_p(p_53)!==false) {var a_97 = M0.car(p_53);if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),a_97)!==false) {var a_98 = M0.cdr(p_53);var p_54 = a_98;if (M0.pair_p(p_54)!==false) {var a_99 = M0.cdr(p_54);var if_res922 = M0.eq_p($rjs_core.Pair.makeList(),a_99);} else {var if_res922 = false;}var if_res923 = if_res922;} else {var if_res923 = false;}var if_res924 = if_res923;} else {var if_res924 = false;}if (if_res924!==false) {var a_100 = M0.cdr(p_52);var if_res925 = M0.eq_p($rjs_core.Pair.makeList(),a_100);} else {var if_res925 = false;}var if_res926 = if_res925;} else {var if_res926 = false;}var if_res927 = if_res926;} else {var if_res927 = false;}var if_res928 = if_res927;} else {var if_res928 = false;}var if_res929 = if_res928;} else {var if_res929 = false;}var if_res930 = if_res929;} else {var if_res930 = false;}if (if_res930!==false) {var a_101 = M0.cdr(p_47);var if_res931 = M0.eq_p($rjs_core.Pair.makeList(),a_101);} else {var if_res931 = false;}var if_res932 = if_res931;} else {var if_res932 = false;}var if_res933 = if_res932;} else {var if_res933 = false;}var if_res934 = if_res933;} else {var if_res934 = false;}var if_res935 = if_res934;} else {var if_res935 = false;}if (if_res935!==false) {var d_19 = M0.cdr(v_50);var p_55 = d_19;var a_102 = M0.car(p_55);var a_103 = M0.car(a_102);var name_11 = a_103;var d_20 = M0.cdr(p_55);var a_104 = M0.car(d_20);var d_21 = M0.cdr(a_104);var d_22 = M0.cdr(d_21);var a_105 = M0.car(d_22);var d_23 = M0.cdr(a_105);var a_106 = M0.car(d_23);var mod_3 = a_106;var let_result936 = M0.values(name_11,mod_3);var name_10 = let_result936.getAt(0);var mod_2 = let_result936.getAt(1);var if_res937 = JSRequire17_dot_1(name_10,mod_2,$rjs_core.PrimitiveSymbol.make("default"));} else {var if_res937 = alt_13();}return if_res937;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("lambda"),hd_0)!==false) {var a_107 = M0.cdr(v_50);var p_56 = a_107;if (M0.pair_p(p_56)!==false) {var a_108 = M0.cdr(p_56);var p_57 = a_108;if (M0.pair_p(p_57)!==false) {var a_109 = M0.cdr(p_57);var if_res938 = M0.eq_p($rjs_core.Pair.makeList(),a_109);} else {var if_res938 = false;}var if_res939 = if_res938;} else {var if_res939 = false;}var if_res940 = if_res939;} else {var if_res940 = false;}if (if_res940!==false) {var d_24 = M0.cdr(v_50);var p_58 = d_24;var a_110 = M0.car(p_58);var formals_4 = a_110;var d_25 = M0.cdr(p_58);var a_111 = M0.car(d_25);var body_1 = a_111;var let_result941 = M0.values(formals_4,body_1);var formals_3 = let_result941.getAt(0);var body_0 = let_result941.getAt(1);var fabsyn_0 = formals__gt_absyn(formals_3);var if_res942 = Lambda10_dot_1(fabsyn_0,M0.list(t_1(body_0,hash_union(bindings_0,formals__gt_bindings(formals_3)))),false);} else {var if_res942 = alt_12();}return if_res942;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("case-lambda"),hd_0)!==false) {var if_res943 = true;} else {var if_res943 = false;}if (if_res943!==false) {var d_26 = M0.cdr(v_50);var clauses_0 = d_26;var if_res948 = CaseLambda11_dot_1(map2(function(c_7) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_51 = c_7;var alt_22 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_51);};var p_59 = v_51;if (M0.pair_p(p_59)!==false) {var a_112 = M0.cdr(p_59);var p_60 = a_112;if (M0.pair_p(p_60)!==false) {var a_113 = M0.cdr(p_60);var if_res944 = M0.eq_p($rjs_core.Pair.makeList(),a_113);} else {var if_res944 = false;}var if_res945 = if_res944;} else {var if_res945 = false;}if (if_res945!==false) {var p_61 = v_51;var a_114 = M0.car(p_61);var formals_6 = a_114;var d_27 = M0.cdr(p_61);var a_115 = M0.car(d_27);var body_3 = a_115;var let_result946 = M0.values(formals_6,body_3);var formals_5 = let_result946.getAt(0);var body_2 = let_result946.getAt(1);var if_res947 = Lambda10_dot_1(formals__gt_absyn(formals_5),M0.list(t_1(body_2,hash_union(bindings_0,formals__gt_bindings(formals_5)))),false);} else {var if_res947 = alt_22();}return if_res947;},clauses_0));} else {var if_res948 = alt_11();}return if_res948;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("letrec-values"),hd_0)!==false) {var a_116 = M0.cdr(v_50);var p_62 = a_116;if (M0.pair_p(p_62)!==false) {var a_117 = M0.car(p_62);if (M0.list_p(a_117)!==false) {var lst_8 = a_117;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res949 = M0.rvoid();} else {var if_res949 = check_list(lst_8);}if_res949;var for_loop_3 = function(result_4, lst_9) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_9)!==false) {var v_52 = M0.unsafe_car(lst_9);var rest_1 = M0.unsafe_cdr(lst_9);var p_63 = v_52;if (M0.pair_p(p_63)!==false) {var a_118 = M0.cdr(p_63);var p_64 = a_118;if (M0.pair_p(p_64)!==false) {var a_119 = M0.cdr(p_64);var if_res950 = M0.eq_p($rjs_core.Pair.makeList(),a_119);} else {var if_res950 = false;}var if_res951 = if_res950;} else {var if_res951 = false;}var result_6 = if_res951;var result_5 = M0.values(result_6);if (M0.not($rjs_core.attachProcedureArity(function(...x_26952) {var x_26 = $rjs_core.Pair.listFromArray(x_26952);return M0.not(result_5);})(v_52))!==false) {var if_res953 = M0.not(false);} else {var if_res953 = false;}if (if_res953!==false) {var if_res954 = for_loop_3(result_5,rest_1);} else {var if_res954 = result_5;}var if_res955 = if_res954;} else {var if_res955 = result_4;}return if_res955;};var if_res956 = for_loop_3(true,lst_8);} else {var if_res956 = false;}if (if_res956!==false) {var a_120 = M0.cdr(p_62);var p_65 = a_120;if (M0.pair_p(p_65)!==false) {var a_121 = M0.cdr(p_65);var if_res957 = M0.eq_p($rjs_core.Pair.makeList(),a_121);} else {var if_res957 = false;}var if_res958 = if_res957;} else {var if_res958 = false;}var if_res959 = if_res958;} else {var if_res959 = false;}var if_res960 = if_res959;} else {var if_res960 = false;}if (if_res960!==false) {var d_28 = M0.cdr(v_50);var p_66 = d_28;var a_122 = M0.car(p_66);var lst_10 = a_122;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res961 = M0.rvoid();} else {var if_res961 = check_list(lst_10);}if_res961;var for_loop_4 = function(xs_8, es_3, lst_11) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_11)!==false) {var v_53 = M0.unsafe_car(lst_11);var rest_2 = M0.unsafe_cdr(lst_11);var xs_10 = xs_8;var es_5 = es_3;var p_67 = v_53;var a_123 = M0.car(p_67);var xs_12 = a_123;var d_29 = M0.cdr(p_67);var a_124 = M0.car(d_29);var es_7 = a_124;var let_result962 = M0.values(xs_12,es_7);var xs4_0 = let_result962.getAt(0);var es5_0 = let_result962.getAt(1);var let_result963 = M0.values(M0.cons(xs4_0,xs_10),M0.cons(es5_0,es_5));var xs_11 = let_result963.getAt(0);var es_6 = let_result963.getAt(1);var let_result964 = M0.values(xs_11,es_6);var xs_9 = let_result964.getAt(0);var es_4 = let_result964.getAt(1);if (M0.not(false)!==false) {var if_res965 = for_loop_4(xs_9,es_4,rest_2);} else {var if_res965 = M0.values(xs_9,es_4);}var if_res966 = if_res965;} else {var if_res966 = M0.values(xs_8,es_3);}return if_res966;};var let_result967 = for_loop_4(M0.rnull,M0.rnull,lst_10);var xs_7 = let_result967.getAt(0);var es_2 = let_result967.getAt(1);var let_result968 = M0.values(reverse$1(xs_7),reverse$1(es_2));var xs_6 = let_result968.getAt(0);var es_1 = let_result968.getAt(1);var d_30 = M0.cdr(p_66);var a_125 = M0.car(d_30);var b_12 = a_125;var let_result969 = M0.values(xs_6,es_1,b_12);var xs_5 = let_result969.getAt(0);var es_0 = let_result969.getAt(1);var b_11 = let_result969.getAt(2);var let_result970 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_5);var pos__gt_vals_4 = let_result970.getAt(0);var pos_pre_inc_2 = let_result970.getAt(1);var pos_next_5 = let_result970.getAt(2);var init_5 = let_result970.getAt(3);var pos_cont_p_5 = let_result970.getAt(4);var val_cont_p_4 = let_result970.getAt(5);var all_cont_p_4 = let_result970.getAt(6);M0.rvoid();var for_loop_5 = function(table_4, pos_14) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_5!==false) {var if_res971 = pos_cont_p_5(pos_14);} else {var if_res971 = true;}if (if_res971!==false) {var x_28 = pos__gt_vals_4(pos_14);if (all_cont_p_4!==false) {var if_res972 = function(pos_15) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_4(pos_15,x_28);};} else {var if_res972 = false;}var let_result973 = M0.values(x_28,if_res972);var x_27 = let_result973.getAt(0);var all_cont_p_by_pos_2 = let_result973.getAt(1);if (pos_pre_inc_2!==false) {var if_res974 = pos_pre_inc_2(pos_14);} else {var if_res974 = pos_14;}var pos_16 = if_res974;if (val_cont_p_4!==false) {var if_res975 = val_cont_p_4(x_27);} else {var if_res975 = true;}if (if_res975!==false) {var table_6 = table_4;var let_result976 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),x_27);var pos__gt_vals_5 = let_result976.getAt(0);var pos_pre_inc_3 = let_result976.getAt(1);var pos_next_6 = let_result976.getAt(2);var init_6 = let_result976.getAt(3);var pos_cont_p_6 = let_result976.getAt(4);var val_cont_p_5 = let_result976.getAt(5);var all_cont_p_5 = let_result976.getAt(6);M0.rvoid();var for_loop_6 = function(table_7, pos_17) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_6!==false) {var if_res977 = pos_cont_p_6(pos_17);} else {var if_res977 = true;}if (if_res977!==false) {var i_45 = pos__gt_vals_5(pos_17);if (all_cont_p_5!==false) {var if_res978 = function(pos_18) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_5(pos_18,i_45);};} else {var if_res978 = false;}var let_result979 = M0.values(i_45,if_res978);var i_44 = let_result979.getAt(0);var all_cont_p_by_pos_3 = let_result979.getAt(1);if (pos_pre_inc_3!==false) {var if_res980 = pos_pre_inc_3(pos_17);} else {var if_res980 = pos_17;}var pos_19 = if_res980;if (val_cont_p_5!==false) {var if_res981 = val_cont_p_5(i_44);} else {var if_res981 = true;}if (if_res981!==false) {var table_9 = table_7;var table_10 = table_9;var let_result982 = M0.values(i_44,$rjs_core.PrimitiveSymbol.make("lexical"));var key_6 = let_result982.getAt(0);var val_1 = let_result982.getAt(1);var table_11 = M0.hash_set(table_10,key_6,val_1);var table_8 = M0.values(table_11);if (all_cont_p_by_pos_3!==false) {var if_res983 = all_cont_p_by_pos_3(pos_19);} else {var if_res983 = true;}if (if_res983!==false) {var if_res984 = M0.not(false);} else {var if_res984 = false;}if (if_res984!==false) {var if_res985 = for_loop_6(table_8,pos_next_6(pos_19));} else {var if_res985 = table_8;}var if_res986 = if_res985;} else {var if_res986 = table_7;}var if_res987 = if_res986;} else {var if_res987 = table_7;}return if_res987;};var table_5 = for_loop_6(table_6,init_6);if (all_cont_p_by_pos_2!==false) {var if_res988 = all_cont_p_by_pos_2(pos_16);} else {var if_res988 = true;}if (if_res988!==false) {var if_res989 = M0.not(false);} else {var if_res989 = false;}if (if_res989!==false) {var if_res990 = for_loop_5(table_5,pos_next_5(pos_16));} else {var if_res990 = table_5;}var if_res991 = if_res990;} else {var if_res991 = table_4;}var if_res992 = if_res991;} else {var if_res992 = table_4;}return if_res992;};var bindings_times__0 = hash_union(bindings_0,for_loop_5($rjs_core.Hash.makeEqual([],false),init_5));var let_result993 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_5);var pos__gt_vals_6 = let_result993.getAt(0);var pos_pre_inc_4 = let_result993.getAt(1);var pos_next_7 = let_result993.getAt(2);var init_7 = let_result993.getAt(3);var pos_cont_p_7 = let_result993.getAt(4);var val_cont_p_6 = let_result993.getAt(5);var all_cont_p_6 = let_result993.getAt(6);var let_result994 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),es_0);var pos__gt_vals_7 = let_result994.getAt(0);var pos_pre_inc_5 = let_result994.getAt(1);var pos_next_8 = let_result994.getAt(2);var init_8 = let_result994.getAt(3);var pos_cont_p_8 = let_result994.getAt(4);var val_cont_p_7 = let_result994.getAt(5);var all_cont_p_7 = let_result994.getAt(6);M0.rvoid();M0.rvoid();var for_loop_7 = function(fold_var_0, pos_20, pos_21) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_7!==false) {var if_res995 = pos_cont_p_7(pos_20);} else {var if_res995 = true;}if (if_res995!==false) {if (pos_cont_p_8!==false) {var if_res996 = pos_cont_p_8(pos_21);} else {var if_res996 = true;}var if_res997 = if_res996;} else {var if_res997 = false;}if (if_res997!==false) {var x_30 = pos__gt_vals_6(pos_20);if (all_cont_p_6!==false) {var if_res998 = function(pos_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_6(pos_22,x_30);};} else {var if_res998 = false;}var let_result999 = M0.values(x_30,if_res998);var x_29 = let_result999.getAt(0);var all_cont_p_by_pos_4 = let_result999.getAt(1);if (pos_pre_inc_4!==false) {var if_res1000 = pos_pre_inc_4(pos_20);} else {var if_res1000 = pos_20;}var pos_23 = if_res1000;var e_8 = pos__gt_vals_7(pos_21);if (all_cont_p_7!==false) {var if_res1001 = function(pos_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_7(pos_24,e_8);};} else {var if_res1001 = false;}var let_result1002 = M0.values(e_8,if_res1001);var e_7 = let_result1002.getAt(0);var all_cont_p_by_pos_5 = let_result1002.getAt(1);if (pos_pre_inc_5!==false) {var if_res1003 = pos_pre_inc_5(pos_21);} else {var if_res1003 = pos_21;}var pos_25 = if_res1003;if (val_cont_p_6!==false) {var if_res1004 = val_cont_p_6(x_29);} else {var if_res1004 = true;}if (if_res1004!==false) {if (val_cont_p_7!==false) {var if_res1005 = val_cont_p_7(e_7);} else {var if_res1005 = true;}var if_res1006 = if_res1005;} else {var if_res1006 = false;}if (if_res1006!==false) {var fold_var_2 = fold_var_0;var fold_var_3 = M0.cons(M0.cons(x_29,t_1(e_7,bindings_times__0)),fold_var_2);var fold_var_1 = M0.values(fold_var_3);if (all_cont_p_by_pos_4!==false) {var if_res1007 = all_cont_p_by_pos_4(pos_23);} else {var if_res1007 = true;}if (if_res1007!==false) {if (all_cont_p_by_pos_5!==false) {var if_res1008 = all_cont_p_by_pos_5(pos_25);} else {var if_res1008 = true;}if (if_res1008!==false) {var if_res1009 = M0.not(false);} else {var if_res1009 = false;}var if_res1010 = if_res1009;} else {var if_res1010 = false;}if (if_res1010!==false) {var if_res1011 = for_loop_7(fold_var_1,pos_next_7(pos_23),pos_next_8(pos_25));} else {var if_res1011 = fold_var_1;}var if_res1012 = if_res1011;} else {var if_res1012 = fold_var_0;}var if_res1013 = if_res1012;} else {var if_res1013 = fold_var_0;}return if_res1013;};var if_res1014 = LetValues13_dot_1(reverse$1(for_loop_7(M0.rnull,init_7,init_8)),M0.list(t_1(b_11,bindings_times__0)));} else {var if_res1014 = alt_10();}return if_res1014;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("let-values"),hd_0)!==false) {var a_126 = M0.cdr(v_50);var p_68 = a_126;if (M0.pair_p(p_68)!==false) {var a_127 = M0.car(p_68);if (M0.list_p(a_127)!==false) {var lst_12 = a_127;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1015 = M0.rvoid();} else {var if_res1015 = check_list(lst_12);}if_res1015;var for_loop_8 = function(result_7, lst_13) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_13)!==false) {var v_54 = M0.unsafe_car(lst_13);var rest_3 = M0.unsafe_cdr(lst_13);var p_69 = v_54;if (M0.pair_p(p_69)!==false) {var a_128 = M0.cdr(p_69);var p_70 = a_128;if (M0.pair_p(p_70)!==false) {var a_129 = M0.cdr(p_70);var if_res1016 = M0.eq_p($rjs_core.Pair.makeList(),a_129);} else {var if_res1016 = false;}var if_res1017 = if_res1016;} else {var if_res1017 = false;}var result_9 = if_res1017;var result_8 = M0.values(result_9);if (M0.not($rjs_core.attachProcedureArity(function(...x_311018) {var x_31 = $rjs_core.Pair.listFromArray(x_311018);return M0.not(result_8);})(v_54))!==false) {var if_res1019 = M0.not(false);} else {var if_res1019 = false;}if (if_res1019!==false) {var if_res1020 = for_loop_8(result_8,rest_3);} else {var if_res1020 = result_8;}var if_res1021 = if_res1020;} else {var if_res1021 = result_7;}return if_res1021;};var if_res1022 = for_loop_8(true,lst_12);} else {var if_res1022 = false;}if (if_res1022!==false) {var a_130 = M0.cdr(p_68);var p_71 = a_130;if (M0.pair_p(p_71)!==false) {var a_131 = M0.cdr(p_71);var if_res1023 = M0.eq_p($rjs_core.Pair.makeList(),a_131);} else {var if_res1023 = false;}var if_res1024 = if_res1023;} else {var if_res1024 = false;}var if_res1025 = if_res1024;} else {var if_res1025 = false;}var if_res1026 = if_res1025;} else {var if_res1026 = false;}if (if_res1026!==false) {var d_31 = M0.cdr(v_50);var p_72 = d_31;var a_132 = M0.car(p_72);var lst_14 = a_132;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1027 = M0.rvoid();} else {var if_res1027 = check_list(lst_14);}if_res1027;var for_loop_9 = function(xs_15, es_11, lst_15) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_15)!==false) {var v_55 = M0.unsafe_car(lst_15);var rest_4 = M0.unsafe_cdr(lst_15);var xs_17 = xs_15;var es_13 = es_11;var p_73 = v_55;var a_133 = M0.car(p_73);var xs_19 = a_133;var d_32 = M0.cdr(p_73);var a_134 = M0.car(d_32);var es_15 = a_134;var let_result1028 = M0.values(xs_19,es_15);var xs10_0 = let_result1028.getAt(0);var es11_0 = let_result1028.getAt(1);var let_result1029 = M0.values(M0.cons(xs10_0,xs_17),M0.cons(es11_0,es_13));var xs_18 = let_result1029.getAt(0);var es_14 = let_result1029.getAt(1);var let_result1030 = M0.values(xs_18,es_14);var xs_16 = let_result1030.getAt(0);var es_12 = let_result1030.getAt(1);if (M0.not(false)!==false) {var if_res1031 = for_loop_9(xs_16,es_12,rest_4);} else {var if_res1031 = M0.values(xs_16,es_12);}var if_res1032 = if_res1031;} else {var if_res1032 = M0.values(xs_15,es_11);}return if_res1032;};var let_result1033 = for_loop_9(M0.rnull,M0.rnull,lst_14);var xs_14 = let_result1033.getAt(0);var es_10 = let_result1033.getAt(1);var let_result1034 = M0.values(reverse$1(xs_14),reverse$1(es_10));var xs_13 = let_result1034.getAt(0);var es_9 = let_result1034.getAt(1);var d_33 = M0.cdr(p_72);var a_135 = M0.car(d_33);var b_14 = a_135;var let_result1035 = M0.values(xs_13,es_9,b_14);var xs_4 = let_result1035.getAt(0);var es_8 = let_result1035.getAt(1);var b_13 = let_result1035.getAt(2);var let_result1036 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_4);var pos__gt_vals_8 = let_result1036.getAt(0);var pos_pre_inc_6 = let_result1036.getAt(1);var pos_next_9 = let_result1036.getAt(2);var init_9 = let_result1036.getAt(3);var pos_cont_p_9 = let_result1036.getAt(4);var val_cont_p_8 = let_result1036.getAt(5);var all_cont_p_8 = let_result1036.getAt(6);M0.rvoid();var for_loop_10 = function(table_12, pos_26) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_9!==false) {var if_res1037 = pos_cont_p_9(pos_26);} else {var if_res1037 = true;}if (if_res1037!==false) {var x_33 = pos__gt_vals_8(pos_26);if (all_cont_p_8!==false) {var if_res1038 = function(pos_27) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_8(pos_27,x_33);};} else {var if_res1038 = false;}var let_result1039 = M0.values(x_33,if_res1038);var x_32 = let_result1039.getAt(0);var all_cont_p_by_pos_6 = let_result1039.getAt(1);if (pos_pre_inc_6!==false) {var if_res1040 = pos_pre_inc_6(pos_26);} else {var if_res1040 = pos_26;}var pos_28 = if_res1040;if (val_cont_p_8!==false) {var if_res1041 = val_cont_p_8(x_32);} else {var if_res1041 = true;}if (if_res1041!==false) {var table_14 = table_12;var let_result1042 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),x_32);var pos__gt_vals_9 = let_result1042.getAt(0);var pos_pre_inc_7 = let_result1042.getAt(1);var pos_next_10 = let_result1042.getAt(2);var init_10 = let_result1042.getAt(3);var pos_cont_p_10 = let_result1042.getAt(4);var val_cont_p_9 = let_result1042.getAt(5);var all_cont_p_9 = let_result1042.getAt(6);M0.rvoid();var for_loop_11 = function(table_15, pos_29) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_10!==false) {var if_res1043 = pos_cont_p_10(pos_29);} else {var if_res1043 = true;}if (if_res1043!==false) {var i_47 = pos__gt_vals_9(pos_29);if (all_cont_p_9!==false) {var if_res1044 = function(pos_30) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_9(pos_30,i_47);};} else {var if_res1044 = false;}var let_result1045 = M0.values(i_47,if_res1044);var i_46 = let_result1045.getAt(0);var all_cont_p_by_pos_7 = let_result1045.getAt(1);if (pos_pre_inc_7!==false) {var if_res1046 = pos_pre_inc_7(pos_29);} else {var if_res1046 = pos_29;}var pos_31 = if_res1046;if (val_cont_p_9!==false) {var if_res1047 = val_cont_p_9(i_46);} else {var if_res1047 = true;}if (if_res1047!==false) {var table_17 = table_15;var table_18 = table_17;var let_result1048 = M0.values(i_46,$rjs_core.PrimitiveSymbol.make("lexical"));var key_1 = let_result1048.getAt(0);var val_2 = let_result1048.getAt(1);var table_19 = M0.hash_set(table_18,key_1,val_2);var table_16 = M0.values(table_19);if (all_cont_p_by_pos_7!==false) {var if_res1049 = all_cont_p_by_pos_7(pos_31);} else {var if_res1049 = true;}if (if_res1049!==false) {var if_res1050 = M0.not(false);} else {var if_res1050 = false;}if (if_res1050!==false) {var if_res1051 = for_loop_11(table_16,pos_next_10(pos_31));} else {var if_res1051 = table_16;}var if_res1052 = if_res1051;} else {var if_res1052 = table_15;}var if_res1053 = if_res1052;} else {var if_res1053 = table_15;}return if_res1053;};var table_13 = for_loop_11(table_14,init_10);if (all_cont_p_by_pos_6!==false) {var if_res1054 = all_cont_p_by_pos_6(pos_28);} else {var if_res1054 = true;}if (if_res1054!==false) {var if_res1055 = M0.not(false);} else {var if_res1055 = false;}if (if_res1055!==false) {var if_res1056 = for_loop_10(table_13,pos_next_9(pos_28));} else {var if_res1056 = table_13;}var if_res1057 = if_res1056;} else {var if_res1057 = table_12;}var if_res1058 = if_res1057;} else {var if_res1058 = table_12;}return if_res1058;};var bindings_times__1 = hash_union(bindings_0,for_loop_10($rjs_core.Hash.makeEqual([],false),init_9));var let_result1059 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_4);var pos__gt_vals_10 = let_result1059.getAt(0);var pos_pre_inc_8 = let_result1059.getAt(1);var pos_next_11 = let_result1059.getAt(2);var init_11 = let_result1059.getAt(3);var pos_cont_p_11 = let_result1059.getAt(4);var val_cont_p_10 = let_result1059.getAt(5);var all_cont_p_10 = let_result1059.getAt(6);var let_result1060 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),es_8);var pos__gt_vals_11 = let_result1060.getAt(0);var pos_pre_inc_9 = let_result1060.getAt(1);var pos_next_12 = let_result1060.getAt(2);var init_12 = let_result1060.getAt(3);var pos_cont_p_12 = let_result1060.getAt(4);var val_cont_p_11 = let_result1060.getAt(5);var all_cont_p_11 = let_result1060.getAt(6);M0.rvoid();M0.rvoid();var for_loop_12 = function(fold_var_4, pos_32, pos_33) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_11!==false) {var if_res1061 = pos_cont_p_11(pos_32);} else {var if_res1061 = true;}if (if_res1061!==false) {if (pos_cont_p_12!==false) {var if_res1062 = pos_cont_p_12(pos_33);} else {var if_res1062 = true;}var if_res1063 = if_res1062;} else {var if_res1063 = false;}if (if_res1063!==false) {var x_35 = pos__gt_vals_10(pos_32);if (all_cont_p_10!==false) {var if_res1064 = function(pos_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_10(pos_34,x_35);};} else {var if_res1064 = false;}var let_result1065 = M0.values(x_35,if_res1064);var x_34 = let_result1065.getAt(0);var all_cont_p_by_pos_8 = let_result1065.getAt(1);if (pos_pre_inc_8!==false) {var if_res1066 = pos_pre_inc_8(pos_32);} else {var if_res1066 = pos_32;}var pos_35 = if_res1066;var e_10 = pos__gt_vals_11(pos_33);if (all_cont_p_11!==false) {var if_res1067 = function(pos_36) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_11(pos_36,e_10);};} else {var if_res1067 = false;}var let_result1068 = M0.values(e_10,if_res1067);var e_9 = let_result1068.getAt(0);var all_cont_p_by_pos_9 = let_result1068.getAt(1);if (pos_pre_inc_9!==false) {var if_res1069 = pos_pre_inc_9(pos_33);} else {var if_res1069 = pos_33;}var pos_37 = if_res1069;if (val_cont_p_10!==false) {var if_res1070 = val_cont_p_10(x_34);} else {var if_res1070 = true;}if (if_res1070!==false) {if (val_cont_p_11!==false) {var if_res1071 = val_cont_p_11(e_9);} else {var if_res1071 = true;}var if_res1072 = if_res1071;} else {var if_res1072 = false;}if (if_res1072!==false) {var fold_var_6 = fold_var_4;var fold_var_7 = M0.cons(M0.cons(x_34,t_1(e_9)),fold_var_6);var fold_var_5 = M0.values(fold_var_7);if (all_cont_p_by_pos_8!==false) {var if_res1073 = all_cont_p_by_pos_8(pos_35);} else {var if_res1073 = true;}if (if_res1073!==false) {if (all_cont_p_by_pos_9!==false) {var if_res1074 = all_cont_p_by_pos_9(pos_37);} else {var if_res1074 = true;}if (if_res1074!==false) {var if_res1075 = M0.not(false);} else {var if_res1075 = false;}var if_res1076 = if_res1075;} else {var if_res1076 = false;}if (if_res1076!==false) {var if_res1077 = for_loop_12(fold_var_5,pos_next_11(pos_35),pos_next_12(pos_37));} else {var if_res1077 = fold_var_5;}var if_res1078 = if_res1077;} else {var if_res1078 = fold_var_4;}var if_res1079 = if_res1078;} else {var if_res1079 = fold_var_4;}return if_res1079;};var if_res1080 = LetValues13_dot_1(reverse$1(for_loop_12(M0.rnull,init_11,init_12)),M0.list(t_1(b_13,bindings_times__1)));} else {var if_res1080 = alt_9();}return if_res1080;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("if"),hd_0)!==false) {var a_136 = M0.cdr(v_50);var p_74 = a_136;if (M0.pair_p(p_74)!==false) {var a_137 = M0.cdr(p_74);var p_75 = a_137;if (M0.pair_p(p_75)!==false) {var a_138 = M0.cdr(p_75);var p_76 = a_138;if (M0.pair_p(p_76)!==false) {var a_139 = M0.cdr(p_76);var if_res1081 = M0.eq_p($rjs_core.Pair.makeList(),a_139);} else {var if_res1081 = false;}var if_res1082 = if_res1081;} else {var if_res1082 = false;}var if_res1083 = if_res1082;} else {var if_res1083 = false;}var if_res1084 = if_res1083;} else {var if_res1084 = false;}if (if_res1084!==false) {var d_34 = M0.cdr(v_50);var p_77 = d_34;var a_140 = M0.car(p_77);var e0_1 = a_140;var d_35 = M0.cdr(p_77);var p_78 = d_35;var a_141 = M0.car(p_78);var e1_2 = a_141;var d_36 = M0.cdr(p_78);var a_142 = M0.car(d_36);var e2_2 = a_142;var let_result1085 = M0.values(e1_2,e2_2);var e1_1 = let_result1085.getAt(0);var e2_1 = let_result1085.getAt(1);var let_result1086 = M0.values(e0_1,e1_1,e2_1);var e0_0 = let_result1086.getAt(0);var e1_0 = let_result1086.getAt(1);var e2_0 = let_result1086.getAt(2);var if_res1087 = If12_dot_1(t_1(e0_0),t_1(e1_0),t_1(e2_0));} else {var if_res1087 = alt_8();}return if_res1087;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("begin"),hd_0)!==false) {var a_143 = M0.cdr(v_50);var if_res1088 = M0.list_p(a_143);} else {var if_res1088 = false;}if (if_res1088!==false) {var d_37 = M0.cdr(v_50);var e_11 = d_37;var if_res1089 = map2(t_1,e_11);} else {var if_res1089 = alt_7();}return if_res1089;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("begin0"),hd_0)!==false) {var a_144 = M0.cdr(v_50);var p_79 = a_144;if (M0.pair_p(p_79)!==false) {var a_145 = M0.cdr(p_79);var if_res1090 = M0.list_p(a_145);} else {var if_res1090 = false;}var if_res1091 = if_res1090;} else {var if_res1091 = false;}if (if_res1091!==false) {var d_38 = M0.cdr(v_50);var p_80 = d_38;var a_146 = M0.car(p_80);var e0_3 = a_146;var d_39 = M0.cdr(p_80);var e1_4 = d_39;var let_result1092 = M0.values(e0_3,e1_4);var e0_2 = let_result1092.getAt(0);var e1_3 = let_result1092.getAt(1);var if_res1093 = Begin08_dot_1(t_1(e0_2),map2(t_1,e1_3));} else {var if_res1093 = alt_6();}return if_res1093;};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("quote"),hd_0)!==false) {var a_147 = M0.cdr(v_50);var p_81 = a_147;if (M0.pair_p(p_81)!==false) {var a_148 = M0.cdr(p_81);var if_res1094 = M0.eq_p($rjs_core.Pair.makeList(),a_148);} else {var if_res1094 = false;}var if_res1095 = if_res1094;} else {var if_res1095 = false;}if (if_res1095!==false) {var d_40 = M0.cdr(v_50);var a_149 = M0.car(d_40);var v_56 = a_149;var if_res1096 = Quote7_dot_1(v_56);} else {var if_res1096 = alt_5();}return if_res1096;};var or_part_67 = M0.string_p(v_46);if (or_part_67!==false) {var if_res1099 = or_part_67;} else {var or_part_68 = M0.number_p(v_46);if (or_part_68!==false) {var if_res1098 = or_part_68;} else {var or_part_69 = M0.boolean_p(v_46);if (or_part_69!==false) {var if_res1097 = or_part_69;} else {var if_res1097 = M0.bytes_p(v_46);}var if_res1098 = if_res1097;}var if_res1099 = if_res1098;}if (if_res1099!==false) {var if_res1100 = Quote7_dot_1(v_46);} else {var if_res1100 = alt_4();}return if_res1100;};var parse_linklet = function(v_57, path_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_58 = v_57;var p_82 = v_58;if (M0.pair_p(p_82)!==false) {var if_res1101 = M0.car(p_82);} else {var if_res1101 = false;}var hd_1 = if_res1101;var alt_23 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_58);};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("linklet"),hd_1)!==false) {var a_150 = M0.cdr(v_58);var p_83 = a_150;if (M0.pair_p(p_83)!==false) {var a_151 = M0.cdr(p_83);var p_84 = a_151;if (M0.pair_p(p_84)!==false) {var if_res1102 = true;} else {var if_res1102 = false;}var if_res1103 = if_res1102;} else {var if_res1103 = false;}var if_res1104 = if_res1103;} else {var if_res1104 = false;}if (if_res1104!==false) {var d_41 = M0.cdr(v_58);var p_85 = d_41;var a_152 = M0.car(p_85);var imports_1 = a_152;var d_42 = M0.cdr(p_85);var p_86 = d_42;var a_153 = M0.car(p_86);var exports_2 = a_153;var d_43 = M0.cdr(p_86);var body_6 = d_43;var let_result1105 = M0.values(exports_2,body_6);var exports_1 = let_result1105.getAt(0);var body_5 = let_result1105.getAt(1);var let_result1106 = M0.values(imports_1,exports_1,body_5);var imports_0 = let_result1106.getAt(0);var exports_0 = let_result1106.getAt(1);var body_4 = let_result1106.getAt(2);var let_result1107 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("j")),imports_0);var pos__gt_vals_12 = let_result1107.getAt(0);var pos_pre_inc_10 = let_result1107.getAt(1);var pos_next_13 = let_result1107.getAt(2);var init_13 = let_result1107.getAt(3);var pos_cont_p_13 = let_result1107.getAt(4);var val_cont_p_12 = let_result1107.getAt(5);var all_cont_p_12 = let_result1107.getAt(6);var start_9 = 0;if (M0.rvoid()!==false) {if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1108 = M0.rvoid();} else {var if_res1108 = check_naturals(start_9);}var if_res1109 = if_res1108;} else {var if_res1109 = false;}if_res1109;var for_loop_13 = function(table_20, pos_38, pos_39) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_13!==false) {var if_res1110 = pos_cont_p_13(pos_38);} else {var if_res1110 = true;}if (if_res1110!==false) {var if_res1111 = true;} else {var if_res1111 = false;}if (if_res1111!==false) {var j_4 = pos__gt_vals_12(pos_38);if (all_cont_p_12!==false) {var if_res1112 = function(pos_40) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_12(pos_40,j_4);};} else {var if_res1112 = false;}var let_result1113 = M0.values(j_4,if_res1112);var j_3 = let_result1113.getAt(0);var all_cont_p_by_pos_10 = let_result1113.getAt(1);if (pos_pre_inc_10!==false) {var if_res1114 = pos_pre_inc_10(pos_38);} else {var if_res1114 = pos_38;}var pos_41 = if_res1114;var import_0 = pos_39;if (val_cont_p_12!==false) {var if_res1115 = val_cont_p_12(j_3);} else {var if_res1115 = true;}if (if_res1115!==false) {var if_res1116 = true;} else {var if_res1116 = false;}if (if_res1116!==false) {var table_22 = table_20;var let_result1117 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),import_0);var pos__gt_vals_13 = let_result1117.getAt(0);var pos_pre_inc_11 = let_result1117.getAt(1);var pos_next_14 = let_result1117.getAt(2);var init_14 = let_result1117.getAt(3);var pos_cont_p_14 = let_result1117.getAt(4);var val_cont_p_13 = let_result1117.getAt(5);var all_cont_p_13 = let_result1117.getAt(6);M0.rvoid();var for_loop_14 = function(table_23, pos_42) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_14!==false) {var if_res1118 = pos_cont_p_14(pos_42);} else {var if_res1118 = true;}if (if_res1118!==false) {var i_49 = pos__gt_vals_13(pos_42);if (all_cont_p_13!==false) {var if_res1119 = function(pos_43) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_13(pos_43,i_49);};} else {var if_res1119 = false;}var let_result1120 = M0.values(i_49,if_res1119);var i_48 = let_result1120.getAt(0);var all_cont_p_by_pos_11 = let_result1120.getAt(1);if (pos_pre_inc_11!==false) {var if_res1121 = pos_pre_inc_11(pos_42);} else {var if_res1121 = pos_42;}var pos_44 = if_res1121;if (val_cont_p_13!==false) {var if_res1122 = val_cont_p_13(i_48);} else {var if_res1122 = true;}if (if_res1122!==false) {var table_25 = table_23;var table_26 = table_25;var let_result1123 = M0.values(i_48,j_3);var key_7 = let_result1123.getAt(0);var val_3 = let_result1123.getAt(1);var table_27 = M0.hash_set(table_26,key_7,val_3);var table_24 = M0.values(table_27);if (all_cont_p_by_pos_11!==false) {var if_res1124 = all_cont_p_by_pos_11(pos_44);} else {var if_res1124 = true;}if (if_res1124!==false) {var if_res1125 = M0.not(false);} else {var if_res1125 = false;}if (if_res1125!==false) {var if_res1126 = for_loop_14(table_24,pos_next_14(pos_44));} else {var if_res1126 = table_24;}var if_res1127 = if_res1126;} else {var if_res1127 = table_23;}var if_res1128 = if_res1127;} else {var if_res1128 = table_23;}return if_res1128;};var table_21 = for_loop_14(table_22,init_14);if (all_cont_p_by_pos_10!==false) {var if_res1129 = all_cont_p_by_pos_10(pos_41);} else {var if_res1129 = true;}if (if_res1129!==false) {var if_res1130 = true;} else {var if_res1130 = false;}if (if_res1130!==false) {var if_res1131 = M0.not(false);} else {var if_res1131 = false;}if (if_res1131!==false) {var if_res1132 = for_loop_13(table_21,pos_next_13(pos_41),pos_39+1);} else {var if_res1132 = table_21;}var if_res1133 = if_res1132;} else {var if_res1133 = table_20;}var if_res1134 = if_res1133;} else {var if_res1134 = table_20;}return if_res1134;};var imps_0 = for_loop_13($rjs_core.Hash.makeEqual([],false),init_13,start_9);var defs_0 = M0.make_hash();var let_result1135 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("b")),body_4);var pos__gt_vals_14 = let_result1135.getAt(0);var pos_pre_inc_12 = let_result1135.getAt(1);var pos_next_15 = let_result1135.getAt(2);var init_15 = let_result1135.getAt(3);var pos_cont_p_15 = let_result1135.getAt(4);var val_cont_p_14 = let_result1135.getAt(5);var all_cont_p_14 = let_result1135.getAt(6);M0.rvoid();var for_loop_15 = function(pos_45) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_15!==false) {var if_res1136 = pos_cont_p_15(pos_45);} else {var if_res1136 = true;}if (if_res1136!==false) {var b_16 = pos__gt_vals_14(pos_45);if (all_cont_p_14!==false) {var if_res1137 = function(pos_46) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_14(pos_46,b_16);};} else {var if_res1137 = false;}var let_result1138 = M0.values(b_16,if_res1137);var b_15 = let_result1138.getAt(0);var all_cont_p_by_pos_12 = let_result1138.getAt(1);if (pos_pre_inc_12!==false) {var if_res1139 = pos_pre_inc_12(pos_45);} else {var if_res1139 = pos_45;}var pos_47 = if_res1139;if (val_cont_p_14!==false) {var if_res1140 = val_cont_p_14(b_15);} else {var if_res1140 = true;}if (if_res1140!==false) {var v_59 = b_15;var p_87 = v_59;if (M0.pair_p(p_87)!==false) {var if_res1141 = M0.car(p_87);} else {var if_res1141 = false;}var hd_2 = if_res1141;var alt_24 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.rvoid();};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("define-values"),hd_2)!==false) {var a_154 = M0.cdr(v_59);var p_88 = a_154;if (M0.pair_p(p_88)!==false) {var a_155 = M0.cdr(p_88);var p_89 = a_155;if (M0.pair_p(p_89)!==false) {var a_156 = M0.cdr(p_89);var if_res1142 = M0.eq_p($rjs_core.Pair.makeList(),a_156);} else {var if_res1142 = false;}var if_res1143 = if_res1142;} else {var if_res1143 = false;}var if_res1144 = if_res1143;} else {var if_res1144 = false;}if (if_res1144!==false) {var d_44 = M0.cdr(v_59);var a_157 = M0.car(d_44);var is_0 = a_157;var let_result1145 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),is_0);var pos__gt_vals_15 = let_result1145.getAt(0);var pos_pre_inc_13 = let_result1145.getAt(1);var pos_next_16 = let_result1145.getAt(2);var init_16 = let_result1145.getAt(3);var pos_cont_p_16 = let_result1145.getAt(4);var val_cont_p_15 = let_result1145.getAt(5);var all_cont_p_15 = let_result1145.getAt(6);M0.rvoid();var for_loop_16 = function(pos_48) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_16!==false) {var if_res1146 = pos_cont_p_16(pos_48);} else {var if_res1146 = true;}if (if_res1146!==false) {var i_51 = pos__gt_vals_15(pos_48);if (all_cont_p_15!==false) {var if_res1147 = function(pos_49) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_15(pos_49,i_51);};} else {var if_res1147 = false;}var let_result1148 = M0.values(i_51,if_res1147);var i_50 = let_result1148.getAt(0);var all_cont_p_by_pos_13 = let_result1148.getAt(1);if (pos_pre_inc_13!==false) {var if_res1149 = pos_pre_inc_13(pos_48);} else {var if_res1149 = pos_48;}var pos_50 = if_res1149;if (val_cont_p_15!==false) {var if_res1150 = val_cont_p_15(i_50);} else {var if_res1150 = true;}if (if_res1150!==false) {M0.hash_set_bang_(defs_0,i_50,$rjs_core.PrimitiveSymbol.make("define"));var let_result1151 = M0.values();var let_result1152 = M0.values();if (all_cont_p_by_pos_13!==false) {var if_res1153 = all_cont_p_by_pos_13(pos_50);} else {var if_res1153 = true;}if (if_res1153!==false) {var if_res1154 = M0.not(false);} else {var if_res1154 = false;}if (if_res1154!==false) {var if_res1155 = for_loop_16(pos_next_16(pos_50));} else {var if_res1155 = M0.values();}var if_res1156 = if_res1155;} else {var if_res1156 = M0.values();}var if_res1157 = if_res1156;} else {var if_res1157 = M0.values();}return if_res1157;};for_loop_16(init_16);var if_res1158 = M0.rvoid();} else {var if_res1158 = alt_24();}if_res1158;var let_result1159 = M0.values();var let_result1160 = M0.values();if (all_cont_p_by_pos_12!==false) {var if_res1161 = all_cont_p_by_pos_12(pos_47);} else {var if_res1161 = true;}if (if_res1161!==false) {var if_res1162 = M0.not(false);} else {var if_res1162 = false;}if (if_res1162!==false) {var if_res1163 = for_loop_15(pos_next_15(pos_47));} else {var if_res1163 = M0.values();}var if_res1164 = if_res1163;} else {var if_res1164 = M0.values();}var if_res1165 = if_res1164;} else {var if_res1165 = M0.values();}return if_res1165;};for_loop_15(init_15);M0.rvoid();var if_res1166 = Linklet1_dot_1(path_0,imports_0,exports_0,map2(function(v_60) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return to_absyn(v_60,hash_union(imps_0,defs_0));},body_4));} else {var if_res1166 = alt_23();}return if_res1166;};var improper__gt_proper = function(l_22) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_61 = l_22;var alt_13 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_14 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.cons(l_22,$rjs_core.Pair.makeList());};if (M0.eq_p($rjs_core.Pair.makeList(),v_61)!==false) {var if_res1167 = $rjs_core.Pair.makeList();} else {var if_res1167 = alt_14();}return if_res1167;};var p_90 = v_61;if (M0.pair_p(p_90)!==false) {var if_res1168 = true;} else {var if_res1168 = false;}if (if_res1168!==false) {var p_91 = v_61;var a_160 = M0.car(p_91);var a_159 = a_160;var d_45 = M0.cdr(p_91);var b_18 = d_45;var let_result1169 = M0.values(a_159,b_18);var a_158 = let_result1169.getAt(0);var b_17 = let_result1169.getAt(1);var if_res1170 = M0.cons(a_158,improper__gt_proper(b_17));} else {var if_res1170 = alt_13();}return if_res1170;};var __times_jsident_start_letter_times_ = $rjs_core.UString.make("\\p{L}|\\p{Nl}|\\$|_");var __times_jsident_rest_letters_times_ = M0.string_append($rjs_core.UString.make("\\p{L}|\\p{Nl}|\\$|_|\\p{Mn}|\\p{Mc}|\\p{Nd}|\\p{Pc}"),$rjs_core.UString.make("|\u200D|\u200C"));var __times_jsident_pattern_times_ = M0.format($rjs_core.UString.make("(~a)(~a)*"),__times_jsident_start_letter_times_,__times_jsident_rest_letters_times_);var simple_form_path = compose(M0.simplify_path,M0.path__gt_complete_path);var __a = $rjs_core.attachProcedureArity(function(...args_121171) {var args_12 = $rjs_core.Pair.listFromArray(args_121171);var fmt_lst_0 = build_list(M0.length(args_12),function(__4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return $rjs_core.UString.make("~a");});var fmt_string_0 = M0.apply(M0.string_append,fmt_lst_0);return M0.apply(M0.format,fmt_string_0,args_12);});var length_eq__p = function(lst_16, n_18) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.equal_p(M0.length(lst_16),n_18);};var append1 = function(lst_17, a_68) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.append(lst_17,M0.list(a_68));};var actual_module_path = function(in_path_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.path_p(in_path_0)!==false) {var if_res1174 = in_path_0;} else {if (M0.symbol_p(in_path_0)!==false) {var if_res1172 = primitive_module_p(in_path_0);} else {var if_res1172 = false;}if (if_res1172!==false) {var if_res1173 = M0.build_path(racketscript_runtime_dir,__a(M0.substring(M0.symbol__gt_string(in_path_0),2),$rjs_core.UString.make(".rkt")));} else {var if_res1173 = M0.error($rjs_core.PrimitiveSymbol.make("actual-module-path"),$rjs_core.UString.make("~a is not a primitive module"),in_path_0);}var if_res1174 = if_res1173;}return if_res1174;};var primitive_module_p = function(mod_4) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return set_member_p(primitive_modules,mod_4);};var get_major_version = function(str_3) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var vec_8 = str_3;check_string(vec_8);var let_result1175 = M0.values(vec_8,M0.unsafe_string_length(vec_8));var vec_7 = let_result1175.getAt(0);var len_1 = let_result1175.getAt(1);false;var for_loop_17 = function(res_4, pos_51) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.unsafe_fx_lt_(pos_51,len_1)!==false) {var chr_0 = M0.string_ref(vec_7,pos_51);var next_k_proc_0 = function(res_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("next-k-proc");return for_loop_17(res_5,M0.unsafe_fx_plus_(1,pos_51));};var res_6 = res_4;if (M0.eq_p(chr_0,$rjs_core.Char.charFromCodepoint(46))!==false) {var if_res1176 = res_6;} else {var res_7 = res_6;var res_8 = char__gt_number(chr_0)+(10*res_7);var if_res1176 = next_k_proc_0(res_8);}var if_res1177 = if_res1176;} else {var if_res1177 = res_4;}return if_res1177;};return for_loop_17(0,0);};var char__gt_number = function(chr_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(48))!==false) {var if_res1187 = 0;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(49))!==false) {var if_res1186 = 1;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(50))!==false) {var if_res1185 = 2;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(51))!==false) {var if_res1184 = 3;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(52))!==false) {var if_res1183 = 4;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(53))!==false) {var if_res1182 = 5;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(54))!==false) {var if_res1181 = 6;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(55))!==false) {var if_res1180 = 7;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(56))!==false) {var if_res1179 = 8;} else {if (M0.eq_p(chr_1,$rjs_core.Char.charFromCodepoint(57))!==false) {var if_res1178 = 9;} else {var if_res1178 = M0.rvoid();}var if_res1179 = if_res1178;}var if_res1180 = if_res1179;}var if_res1181 = if_res1180;}var if_res1182 = if_res1181;}var if_res1183 = if_res1182;}var if_res1184 = if_res1183;}var if_res1185 = if_res1184;}var if_res1186 = if_res1185;}var if_res1187 = if_res1186;}return if_res1187;};var sequence_length = function(s_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (sequence_p(s_14)!==false) {var if_res1188 = M0.rvoid();} else {var if_res1188 = M0.raise_argument_error($rjs_core.PrimitiveSymbol.make("sequence-length"),$rjs_core.UString.make("sequence?"),s_14);}if_res1188;if (M0.exact_nonnegative_integer_p(s_14)!==false) {var if_res1207 = s_14;} else {if (M0.list_p(s_14)!==false) {var if_res1206 = M0.length(s_14);} else {if (M0.vector_p(s_14)!==false) {var if_res1205 = M0.vector_length(s_14);} else {if (M0.flvector_p(s_14)!==false) {var if_res1204 = M0.flvector_length(s_14);} else {if (M0.fxvector_p(s_14)!==false) {var if_res1203 = M0.fxvector_length(s_14);} else {if (M0.string_p(s_14)!==false) {var if_res1202 = M0.string_length(s_14);} else {if (M0.bytes_p(s_14)!==false) {var if_res1201 = M0.bytes_length(s_14);} else {if (M0.hash_p(s_14)!==false) {var if_res1200 = M0.hash_count(s_14);} else {var let_result1189 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("i")),in_values_times__sequence(s_14));var pos__gt_vals_16 = let_result1189.getAt(0);var pos_pre_inc_14 = let_result1189.getAt(1);var pos_next_17 = let_result1189.getAt(2);var init_17 = let_result1189.getAt(3);var pos_cont_p_17 = let_result1189.getAt(4);var val_cont_p_16 = let_result1189.getAt(5);var all_cont_p_16 = let_result1189.getAt(6);M0.rvoid();var for_loop_18 = function(c_8, pos_52) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_17!==false) {var if_res1190 = pos_cont_p_17(pos_52);} else {var if_res1190 = true;}if (if_res1190!==false) {var i_53 = pos__gt_vals_16(pos_52);if (all_cont_p_16!==false) {var if_res1191 = function(pos_53) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_16(pos_53,i_53);};} else {var if_res1191 = false;}var let_result1192 = M0.values(i_53,if_res1191);var i_52 = let_result1192.getAt(0);var all_cont_p_by_pos_14 = let_result1192.getAt(1);if (pos_pre_inc_14!==false) {var if_res1193 = pos_pre_inc_14(pos_52);} else {var if_res1193 = pos_52;}var pos_54 = if_res1193;if (val_cont_p_16!==false) {var if_res1194 = val_cont_p_16(i_52);} else {var if_res1194 = true;}if (if_res1194!==false) {var c_10 = c_8;var c_11 = M0.add1(c_10);var c_9 = M0.values(c_11);if (all_cont_p_by_pos_14!==false) {var if_res1195 = all_cont_p_by_pos_14(pos_54);} else {var if_res1195 = true;}if (if_res1195!==false) {var if_res1196 = M0.not(false);} else {var if_res1196 = false;}if (if_res1196!==false) {var if_res1197 = for_loop_18(c_9,pos_next_17(pos_54));} else {var if_res1197 = c_9;}var if_res1198 = if_res1197;} else {var if_res1198 = c_8;}var if_res1199 = if_res1198;} else {var if_res1199 = c_8;}return if_res1199;};var if_res1200 = for_loop_18(0,init_17);}var if_res1201 = if_res1200;}var if_res1202 = if_res1201;}var if_res1203 = if_res1202;}var if_res1204 = if_res1203;}var if_res1205 = if_res1204;}var if_res1206 = if_res1205;}var if_res1207 = if_res1206;}return if_res1207;};var __times_quoted_binding_ident_name_times_ = $rjs_core.PrimitiveSymbol.make("__rjs_quoted__");var name_in_module = function(mod_5, name_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_62 = mod_5;var alt_25 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.UString.make("Invalid module name"));};if (M0.eq_p($rjs_core.PrimitiveSymbol.make("core"),v_62)!==false) {var if_res1208 = M0.string__gt_symbol(__a(jsruntime_core_module(),$rjs_core.UString.make("."),name_12));} else {var if_res1208 = alt_25();}return if_res1208;};var let_result1209 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILLinklet"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILLinklet"));var struct__0 = let_result1209.getAt(0);var make__0 = let_result1209.getAt(1);var __p_1 = let_result1209.getAt(2);var __ref_1 = let_result1209.getAt(3);var __set_bang__1 = let_result1209.getAt(4);var let_result1210 = M0.values(struct__0,make__0,__p_1,M0.make_struct_field_accessor(__ref_1,0,$rjs_core.PrimitiveSymbol.make("imports")),M0.make_struct_field_accessor(__ref_1,1,$rjs_core.PrimitiveSymbol.make("exports")),M0.make_struct_field_accessor(__ref_1,2,$rjs_core.PrimitiveSymbol.make("body")));var struct_ILLinklet = let_result1210.getAt(0);var ILLinklet1_dot_1 = let_result1210.getAt(1);var ILLinklet_p = let_result1210.getAt(2);var ILLinklet_imports = let_result1210.getAt(3);var ILLinklet_exports = let_result1210.getAt(4);var ILLinklet_body = let_result1210.getAt(5);var let_result1211 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILRequire"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILRequire"));var struct__1 = let_result1211.getAt(0);var make__1 = let_result1211.getAt(1);var __p_2 = let_result1211.getAt(2);var __ref_2 = let_result1211.getAt(3);var __set_bang__2 = let_result1211.getAt(4);var let_result1212 = M0.values(struct__1,make__1,__p_2,M0.make_struct_field_accessor(__ref_2,0,$rjs_core.PrimitiveSymbol.make("mod")),M0.make_struct_field_accessor(__ref_2,1,$rjs_core.PrimitiveSymbol.make("name")),M0.make_struct_field_accessor(__ref_2,2,$rjs_core.PrimitiveSymbol.make("import-mode")));var struct_ILRequire = let_result1212.getAt(0);var ILRequire2_dot_1 = let_result1212.getAt(1);var ILRequire_p = let_result1212.getAt(2);var ILRequire_mod = let_result1212.getAt(3);var ILRequire_name = let_result1212.getAt(4);var ILRequire_import_mode = let_result1212.getAt(5);var let_result1213 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILCheckedFormals"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILCheckedFormals"));var struct__3 = let_result1213.getAt(0);var make__3 = let_result1213.getAt(1);var __p_4 = let_result1213.getAt(2);var __ref_4 = let_result1213.getAt(3);var __set_bang__4 = let_result1213.getAt(4);var let_result1214 = M0.values(struct__3,make__3,__p_4,M0.make_struct_field_accessor(__ref_4,0,$rjs_core.PrimitiveSymbol.make("formals")));var struct_ILCheckedFormals = let_result1214.getAt(0);var ILCheckedFormals4_dot_1 = let_result1214.getAt(1);var ILCheckedFormals_p = let_result1214.getAt(2);var ILCheckedFormals_formals = let_result1214.getAt(3);var let_result1215 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILLambda"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILLambda"));var struct__4 = let_result1215.getAt(0);var make__4 = let_result1215.getAt(1);var __p_5 = let_result1215.getAt(2);var __ref_5 = let_result1215.getAt(3);var __set_bang__5 = let_result1215.getAt(4);var let_result1216 = M0.values(struct__4,make__4,__p_5,M0.make_struct_field_accessor(__ref_5,0,$rjs_core.PrimitiveSymbol.make("args")),M0.make_struct_field_accessor(__ref_5,1,$rjs_core.PrimitiveSymbol.make("body")));var struct_ILLambda = let_result1216.getAt(0);var ILLambda5_dot_1 = let_result1216.getAt(1);var ILLambda_p = let_result1216.getAt(2);var ILLambda_args = let_result1216.getAt(3);var ILLambda_body = let_result1216.getAt(4);var let_result1217 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILBinaryOp"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILBinaryOp"));var struct__5 = let_result1217.getAt(0);var make__5 = let_result1217.getAt(1);var __p_6 = let_result1217.getAt(2);var __ref_6 = let_result1217.getAt(3);var __set_bang__6 = let_result1217.getAt(4);var let_result1218 = M0.values(struct__5,make__5,__p_6,M0.make_struct_field_accessor(__ref_6,0,$rjs_core.PrimitiveSymbol.make("operator")),M0.make_struct_field_accessor(__ref_6,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_ILBinaryOp = let_result1218.getAt(0);var ILBinaryOp6_dot_1 = let_result1218.getAt(1);var ILBinaryOp_p = let_result1218.getAt(2);var ILBinaryOp_operator = let_result1218.getAt(3);var ILBinaryOp_args = let_result1218.getAt(4);var let_result1219 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILApp"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILApp"));var struct__6 = let_result1219.getAt(0);var make__6 = let_result1219.getAt(1);var __p_7 = let_result1219.getAt(2);var __ref_7 = let_result1219.getAt(3);var __set_bang__7 = let_result1219.getAt(4);var let_result1220 = M0.values(struct__6,make__6,__p_7,M0.make_struct_field_accessor(__ref_7,0,$rjs_core.PrimitiveSymbol.make("lam")),M0.make_struct_field_accessor(__ref_7,1,$rjs_core.PrimitiveSymbol.make("args")));var struct_ILApp = let_result1220.getAt(0);var ILApp7_dot_1 = let_result1220.getAt(1);var ILApp_p = let_result1220.getAt(2);var ILApp_lam = let_result1220.getAt(3);var ILApp_args = let_result1220.getAt(4);var let_result1221 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILArray"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILArray"));var struct__7 = let_result1221.getAt(0);var make__7 = let_result1221.getAt(1);var __p_8 = let_result1221.getAt(2);var __ref_8 = let_result1221.getAt(3);var __set_bang__8 = let_result1221.getAt(4);var let_result1222 = M0.values(struct__7,make__7,__p_8,M0.make_struct_field_accessor(__ref_8,0,$rjs_core.PrimitiveSymbol.make("items")));var struct_ILArray = let_result1222.getAt(0);var ILArray8_dot_1 = let_result1222.getAt(1);var ILArray_p = let_result1222.getAt(2);var ILArray_items = let_result1222.getAt(3);var let_result1223 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILObject"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILObject"));var struct__8 = let_result1223.getAt(0);var make__8 = let_result1223.getAt(1);var __p_9 = let_result1223.getAt(2);var __ref_9 = let_result1223.getAt(3);var __set_bang__9 = let_result1223.getAt(4);var let_result1224 = M0.values(struct__8,make__8,__p_9,M0.make_struct_field_accessor(__ref_9,0,$rjs_core.PrimitiveSymbol.make("items")));var struct_ILObject = let_result1224.getAt(0);var ILObject9_dot_1 = let_result1224.getAt(1);var ILObject_p = let_result1224.getAt(2);var ILObject_items = let_result1224.getAt(3);var let_result1225 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILRef"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILRef"));var struct__9 = let_result1225.getAt(0);var make__9 = let_result1225.getAt(1);var __p_10 = let_result1225.getAt(2);var __ref_10 = let_result1225.getAt(3);var __set_bang__10 = let_result1225.getAt(4);var let_result1226 = M0.values(struct__9,make__9,__p_10,M0.make_struct_field_accessor(__ref_10,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_10,1,$rjs_core.PrimitiveSymbol.make("fieldname")));var struct_ILRef = let_result1226.getAt(0);var ILRef10_dot_1 = let_result1226.getAt(1);var ILRef_p = let_result1226.getAt(2);var ILRef_expr = let_result1226.getAt(3);var ILRef_fieldname = let_result1226.getAt(4);var let_result1227 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILIndex"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILIndex"));var struct__10 = let_result1227.getAt(0);var make__10 = let_result1227.getAt(1);var __p_11 = let_result1227.getAt(2);var __ref_11 = let_result1227.getAt(3);var __set_bang__11 = let_result1227.getAt(4);var let_result1228 = M0.values(struct__10,make__10,__p_11,M0.make_struct_field_accessor(__ref_11,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_11,1,$rjs_core.PrimitiveSymbol.make("fieldexpr")));var struct_ILIndex = let_result1228.getAt(0);var ILIndex11_dot_1 = let_result1228.getAt(1);var ILIndex_p = let_result1228.getAt(2);var ILIndex_expr = let_result1228.getAt(3);var ILIndex_fieldexpr = let_result1228.getAt(4);var let_result1229 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILValue"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILValue"));var struct__11 = let_result1229.getAt(0);var make__11 = let_result1229.getAt(1);var __p_12 = let_result1229.getAt(2);var __ref_12 = let_result1229.getAt(3);var __set_bang__12 = let_result1229.getAt(4);var let_result1230 = M0.values(struct__11,make__11,__p_12,M0.make_struct_field_accessor(__ref_12,0,$rjs_core.PrimitiveSymbol.make("v")));var struct_ILValue = let_result1230.getAt(0);var ILValue12_dot_1 = let_result1230.getAt(1);var ILValue_p = let_result1230.getAt(2);var ILValue_v = let_result1230.getAt(3);var let_result1231 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILNew"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILNew"));var struct__12 = let_result1231.getAt(0);var make__12 = let_result1231.getAt(1);var __p_13 = let_result1231.getAt(2);var __ref_13 = let_result1231.getAt(3);var __set_bang__13 = let_result1231.getAt(4);var let_result1232 = M0.values(struct__12,make__12,__p_13,M0.make_struct_field_accessor(__ref_13,0,$rjs_core.PrimitiveSymbol.make("v")));var struct_ILNew = let_result1232.getAt(0);var ILNew13_dot_1 = let_result1232.getAt(1);var ILNew_p = let_result1232.getAt(2);var ILNew_v = let_result1232.getAt(3);var let_result1233 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILInstanceOf"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILInstanceOf"));var struct__13 = let_result1233.getAt(0);var make__13 = let_result1233.getAt(1);var __p_14 = let_result1233.getAt(2);var __ref_14 = let_result1233.getAt(3);var __set_bang__14 = let_result1233.getAt(4);var let_result1234 = M0.values(struct__13,make__13,__p_14,M0.make_struct_field_accessor(__ref_14,0,$rjs_core.PrimitiveSymbol.make("expr")),M0.make_struct_field_accessor(__ref_14,1,$rjs_core.PrimitiveSymbol.make("type")));var struct_ILInstanceOf = let_result1234.getAt(0);var ILInstanceOf14_dot_1 = let_result1234.getAt(1);var ILInstanceOf_p = let_result1234.getAt(2);var ILInstanceOf_expr = let_result1234.getAt(3);var ILInstanceOf_type = let_result1234.getAt(4);var let_result1235 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILTypeOf"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILTypeOf"));var struct__14 = let_result1235.getAt(0);var make__14 = let_result1235.getAt(1);var __p_15 = let_result1235.getAt(2);var __ref_15 = let_result1235.getAt(3);var __set_bang__15 = let_result1235.getAt(4);var let_result1236 = M0.values(struct__14,make__14,__p_15,M0.make_struct_field_accessor(__ref_15,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILTypeOf = let_result1236.getAt(0);var ILTypeOf15_dot_1 = let_result1236.getAt(1);var ILTypeOf_p = let_result1236.getAt(2);var ILTypeOf_expr = let_result1236.getAt(3);var let_result1237 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILNull"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILNull"));var struct__15 = let_result1237.getAt(0);var make__15 = let_result1237.getAt(1);var __p_16 = let_result1237.getAt(2);var __ref_16 = let_result1237.getAt(3);var __set_bang__16 = let_result1237.getAt(4);var let_result1238 = M0.values(struct__15,make__15,__p_16);var struct_ILNull = let_result1238.getAt(0);var ILNull16_dot_1 = let_result1238.getAt(1);var ILNull_p = let_result1238.getAt(2);var let_result1239 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILUndefined"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILUndefined"));var struct__16 = let_result1239.getAt(0);var make__16 = let_result1239.getAt(1);var __p_17 = let_result1239.getAt(2);var __ref_17 = let_result1239.getAt(3);var __set_bang__17 = let_result1239.getAt(4);var let_result1240 = M0.values(struct__16,make__16,__p_17);var struct_ILUndefined = let_result1240.getAt(0);var ILUndefined17_dot_1 = let_result1240.getAt(1);var ILUndefined_p = let_result1240.getAt(2);var let_result1241 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILArguments"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILArguments"));var struct__17 = let_result1241.getAt(0);var make__17 = let_result1241.getAt(1);var __p_18 = let_result1241.getAt(2);var __ref_18 = let_result1241.getAt(3);var __set_bang__18 = let_result1241.getAt(4);var let_result1242 = M0.values(struct__17,make__17,__p_18);var struct_ILArguments = let_result1242.getAt(0);var ILArguments18_dot_1 = let_result1242.getAt(1);var ILArguments_p = let_result1242.getAt(2);var let_result1243 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILThis"),false,0,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(),false,$rjs_core.PrimitiveSymbol.make("ILThis"));var struct__18 = let_result1243.getAt(0);var make__18 = let_result1243.getAt(1);var __p_19 = let_result1243.getAt(2);var __ref_19 = let_result1243.getAt(3);var __set_bang__19 = let_result1243.getAt(4);var let_result1244 = M0.values(struct__18,make__18,__p_19);var struct_ILThis = let_result1244.getAt(0);var ILThis19_dot_1 = let_result1244.getAt(1);var ILThis_p = let_result1244.getAt(2);var let_result1245 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILVarDec"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILVarDec"));var struct__19 = let_result1245.getAt(0);var make__19 = let_result1245.getAt(1);var __p_20 = let_result1245.getAt(2);var __ref_20 = let_result1245.getAt(3);var __set_bang__20 = let_result1245.getAt(4);var let_result1246 = M0.values(struct__19,make__19,__p_20,M0.make_struct_field_accessor(__ref_20,0,$rjs_core.PrimitiveSymbol.make("id")),M0.make_struct_field_accessor(__ref_20,1,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILVarDec = let_result1246.getAt(0);var ILVarDec20_dot_1 = let_result1246.getAt(1);var ILVarDec_p = let_result1246.getAt(2);var ILVarDec_id = let_result1246.getAt(3);var ILVarDec_expr = let_result1246.getAt(4);var let_result1247 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILIf"),false,3,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2),false,$rjs_core.PrimitiveSymbol.make("ILIf"));var struct__20 = let_result1247.getAt(0);var make__20 = let_result1247.getAt(1);var __p_21 = let_result1247.getAt(2);var __ref_21 = let_result1247.getAt(3);var __set_bang__21 = let_result1247.getAt(4);var let_result1248 = M0.values(struct__20,make__20,__p_21,M0.make_struct_field_accessor(__ref_21,0,$rjs_core.PrimitiveSymbol.make("pred")),M0.make_struct_field_accessor(__ref_21,1,$rjs_core.PrimitiveSymbol.make("t-branch")),M0.make_struct_field_accessor(__ref_21,2,$rjs_core.PrimitiveSymbol.make("f-branch")));var struct_ILIf = let_result1248.getAt(0);var ILIf22_dot_1 = let_result1248.getAt(1);var ILIf_p = let_result1248.getAt(2);var ILIf_pred = let_result1248.getAt(3);var ILIf_t_branch = let_result1248.getAt(4);var ILIf_f_branch = let_result1248.getAt(5);var let_result1249 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILAssign"),false,2,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1),false,$rjs_core.PrimitiveSymbol.make("ILAssign"));var struct__21 = let_result1249.getAt(0);var make__21 = let_result1249.getAt(1);var __p_22 = let_result1249.getAt(2);var __ref_22 = let_result1249.getAt(3);var __set_bang__22 = let_result1249.getAt(4);var let_result1250 = M0.values(struct__21,make__21,__p_22,M0.make_struct_field_accessor(__ref_22,0,$rjs_core.PrimitiveSymbol.make("lvalue")),M0.make_struct_field_accessor(__ref_22,1,$rjs_core.PrimitiveSymbol.make("rvalue")));var struct_ILAssign = let_result1250.getAt(0);var ILAssign24_dot_1 = let_result1250.getAt(1);var ILAssign_p = let_result1250.getAt(2);var ILAssign_lvalue = let_result1250.getAt(3);var ILAssign_rvalue = let_result1250.getAt(4);var let_result1251 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILReturn"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILReturn"));var struct__22 = let_result1251.getAt(0);var make__22 = let_result1251.getAt(1);var __p_23 = let_result1251.getAt(2);var __ref_23 = let_result1251.getAt(3);var __set_bang__23 = let_result1251.getAt(4);var let_result1252 = M0.values(struct__22,make__22,__p_23,M0.make_struct_field_accessor(__ref_23,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILReturn = let_result1252.getAt(0);var ILReturn26_dot_1 = let_result1252.getAt(1);var ILReturn_p = let_result1252.getAt(2);var ILReturn_expr = let_result1252.getAt(3);var let_result1253 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILExnHandler"),false,4,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0,1,2,3),false,$rjs_core.PrimitiveSymbol.make("ILExnHandler"));var struct__23 = let_result1253.getAt(0);var make__23 = let_result1253.getAt(1);var __p_24 = let_result1253.getAt(2);var __ref_24 = let_result1253.getAt(3);var __set_bang__24 = let_result1253.getAt(4);var let_result1254 = M0.values(struct__23,make__23,__p_24,M0.make_struct_field_accessor(__ref_24,0,$rjs_core.PrimitiveSymbol.make("try")),M0.make_struct_field_accessor(__ref_24,1,$rjs_core.PrimitiveSymbol.make("error")),M0.make_struct_field_accessor(__ref_24,2,$rjs_core.PrimitiveSymbol.make("catch")),M0.make_struct_field_accessor(__ref_24,3,$rjs_core.PrimitiveSymbol.make("finally")));var struct_ILExnHandler = let_result1254.getAt(0);var ILExnHandler29_dot_1 = let_result1254.getAt(1);var ILExnHandler_p = let_result1254.getAt(2);var ILExnHandler_try = let_result1254.getAt(3);var ILExnHandler_error = let_result1254.getAt(4);var ILExnHandler_catch = let_result1254.getAt(5);var ILExnHandler_finally = let_result1254.getAt(6);var let_result1255 = M0.make_struct_type($rjs_core.PrimitiveSymbol.make("ILThrow"),false,1,0,false,M0.rnull,false,false,$rjs_core.Pair.makeList(0),false,$rjs_core.PrimitiveSymbol.make("ILThrow"));var struct__24 = let_result1255.getAt(0);var make__24 = let_result1255.getAt(1);var __p_25 = let_result1255.getAt(2);var __ref_25 = let_result1255.getAt(3);var __set_bang__25 = let_result1255.getAt(4);var let_result1256 = M0.values(struct__24,make__24,__p_25,M0.make_struct_field_accessor(__ref_25,0,$rjs_core.PrimitiveSymbol.make("expr")));var struct_ILThrow = let_result1256.getAt(0);var ILThrow30_dot_1 = let_result1256.getAt(1);var ILThrow_p = let_result1256.getAt(2);var ILThrow_expr = let_result1256.getAt(3);var flatten_statements = function(stms_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return flatten(stms_0);};var has_application_p = function(a_161) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_63 = a_161;var vec_v_0 = M0.struct__gt_vector(v_63);var alt_26 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_1 = M0.struct__gt_vector(v_63);var alt_27 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_2 = M0.struct__gt_vector(v_63);var alt_28 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_3 = M0.struct__gt_vector(v_63);var alt_29 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_4 = M0.struct__gt_vector(v_63);var alt_30 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_5 = M0.struct__gt_vector(v_63);var alt_31 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_6 = M0.struct__gt_vector(v_63);var alt_32 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_7 = M0.struct__gt_vector(v_63);var alt_33 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_8 = M0.struct__gt_vector(v_63);var alt_34 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_9 = M0.struct__gt_vector(v_63);var alt_35 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_10 = M0.struct__gt_vector(v_63);var alt_36 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_11 = M0.struct__gt_vector(v_63);var alt_37 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_12 = M0.struct__gt_vector(v_63);var alt_38 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");if (M0.symbol_p(v_63)!==false) {var if_res1257 = false;} else {var if_res1257 = M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_63);}return if_res1257;};if (ILTypeOf_p(v_63)!==false) {var expr_0 = M0.vector__gt_values(vec_v_12,1);var if_res1258 = has_application_p(expr_0);} else {var if_res1258 = alt_38();}return if_res1258;};if (ILInstanceOf_p(v_63)!==false) {var let_result1259 = M0.vector__gt_values(vec_v_11,1);var expr_1 = let_result1259.getAt(0);var type_0 = let_result1259.getAt(1);var or_part_70 = has_application_p(expr_1);if (or_part_70!==false) {var if_res1260 = or_part_70;} else {var if_res1260 = has_application_p(type_0);}var if_res1261 = if_res1260;} else {var if_res1261 = alt_37();}return if_res1261;};if (ILNew_p(v_63)!==false) {var _fst_0 = M0.vector__gt_values(vec_v_10,1);var if_res1262 = true;} else {var if_res1262 = alt_36();}return if_res1262;};if (ILNull_p(v_63)!==false) {var let_result1263 = M0.vector__gt_values(vec_v_9,1);var if_res1264 = false;} else {var if_res1264 = alt_35();}return if_res1264;};if (ILUndefined_p(v_63)!==false) {var let_result1265 = M0.vector__gt_values(vec_v_8,1);var if_res1266 = false;} else {var if_res1266 = alt_34();}return if_res1266;};if (ILValue_p(v_63)!==false) {var _fst_1 = M0.vector__gt_values(vec_v_7,1);var if_res1267 = false;} else {var if_res1267 = alt_33();}return if_res1267;};if (ILIndex_p(v_63)!==false) {var let_result1268 = M0.vector__gt_values(vec_v_6,1);var expr_2 = let_result1268.getAt(0);var fieldexpr_0 = let_result1268.getAt(1);var or_part_71 = has_application_p(expr_2);if (or_part_71!==false) {var if_res1269 = or_part_71;} else {var if_res1269 = has_application_p(fieldexpr_0);}var if_res1270 = if_res1269;} else {var if_res1270 = alt_32();}return if_res1270;};if (ILRef_p(v_63)!==false) {var let_result1271 = M0.vector__gt_values(vec_v_5,1);var expr_3 = let_result1271.getAt(0);var _fst_2 = let_result1271.getAt(1);var if_res1272 = has_application_p(expr_3);} else {var if_res1272 = alt_31();}return if_res1272;};if (ILObject_p(v_63)!==false) {var items_0 = M0.vector__gt_values(vec_v_4,1);var if_res1273 = ormap2(function(pair_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return has_application_p(M0.cdr(pair_0));},items_0);} else {var if_res1273 = alt_30();}return if_res1273;};if (ILArray_p(v_63)!==false) {var items_1 = M0.vector__gt_values(vec_v_3,1);var if_res1274 = ormap2(has_application_p,items_1);} else {var if_res1274 = alt_29();}return if_res1274;};if (ILApp_p(v_63)!==false) {var let_result1275 = M0.vector__gt_values(vec_v_2,1);var _fst_3 = let_result1275.getAt(0);var _snd_0 = let_result1275.getAt(1);var if_res1276 = true;} else {var if_res1276 = alt_28();}return if_res1276;};if (ILBinaryOp_p(v_63)!==false) {var let_result1277 = M0.vector__gt_values(vec_v_1,1);var _fst_4 = let_result1277.getAt(0);var args_13 = let_result1277.getAt(1);var if_res1278 = ormap2(has_application_p,args_13);} else {var if_res1278 = alt_27();}return if_res1278;};if (ILLambda_p(v_63)!==false) {var let_result1279 = M0.vector__gt_values(vec_v_0,1);var _fst_5 = let_result1279.getAt(0);var _snd_1 = let_result1279.getAt(1);var if_res1280 = false;} else {var if_res1280 = alt_26();}return if_res1280;};var log_rjs_info = $rjs_core.attachProcedureArity(function(fst1_0, ...rst2_01281) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rst2_0 = $rjs_core.Pair.listFromArray(rst2_01281);if (logging_p()!==false) {M0.printf($rjs_core.UString.make("[~a]"),$rjs_core.UString.make("info"));if (M0.equal_p(M0.string_ref(fst1_0,0),$rjs_core.Char.charFromCodepoint(91))!==false) {var if_res1282 = M0.rvoid();} else {var if_res1282 = M0.printf($rjs_core.UString.make(" "));}if_res1282;M0.apply(M0.printf,fst1_0,rst2_0);var if_res1283 = M0.printf($rjs_core.UString.make("\n"));} else {var if_res1283 = M0.rvoid();}return if_res1283;});var log_rjs_warning = $rjs_core.attachProcedureArity(function(fst5_0, ...rst6_01284) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var rst6_0 = $rjs_core.Pair.listFromArray(rst6_01284);if (logging_p()!==false) {M0.printf($rjs_core.UString.make("[~a]"),$rjs_core.UString.make("warning"));if (M0.equal_p(M0.string_ref(fst5_0,0),$rjs_core.Char.charFromCodepoint(91))!==false) {var if_res1285 = M0.rvoid();} else {var if_res1285 = M0.printf($rjs_core.UString.make(" "));}if_res1285;M0.apply(M0.printf,fst5_0,rst6_0);var if_res1286 = M0.printf($rjs_core.UString.make("\n"));} else {var if_res1286 = M0.rvoid();}return if_res1286;});var module_object_name_map = M0.make_parameter(M0.hash());var absyn_top_level__gt_il = function(form_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Linklet_p(form_0)!==false) {var if_res1290 = M0.error($rjs_core.PrimitiveSymbol.make("absyn-top-level->il"),$rjs_core.UString.make("Not supported. Todo."));} else {if (Expr_p(form_0)!==false) {var let_result1287 = absyn_expr__gt_il(form_0,false);var stmt_0 = let_result1287.getAt(0);var v_62 = let_result1287.getAt(1);var if_res1289 = append1(stmt_0,v_62);} else {if (Begin_p(form_0)!==false) {var if_res1288 = absyn_expr__gt_il(form_0,false);} else {var if_res1288 = M0.error($rjs_core.UString.make("only some forms supported at top level"));}var if_res1289 = if_res1288;}var if_res1290 = if_res1289;}return if_res1290;};var absyn_linklet__gt_il = function(lnk_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_43 = lnk_0;var v_1 = v_43;var vec_v_13 = M0.struct__gt_vector(v_1);var alt_39 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_1);};if (Linklet_p(v_1)!==false) {var let_result1291 = M0.vector__gt_values(vec_v_13,1);var path_2 = let_result1291.getAt(0);var imports_3 = let_result1291.getAt(1);var exports_4 = let_result1291.getAt(2);var forms_1 = let_result1291.getAt(3);var if_res1292 = M0.values(path_2,imports_3,exports_4,forms_1);} else {var if_res1292 = alt_39();}var let_result1293 = if_res1292;var path_1 = let_result1293.getAt(0);var imports_2 = let_result1293.getAt(1);var exports_3 = let_result1293.getAt(2);var forms_0 = let_result1293.getAt(3);log_rjs_info($rjs_core.UString.make("[linklet il]"));var let_result1294 = M0.values();var imported_mod_path_list_0 = flatten(imports_2);var requires_times__0 = absyn_requires__gt_il(imported_mod_path_list_0,path_1);var __context1295 = $rjs_core.Marks.getFrames();var __context1296;try {__context1296 = $rjs_core.Marks.enterFrame();$rjs_core.Marks.setMark(M0.parameterization_key,M0.extend_parameterization(M0.continuation_mark_set_first(false,M0.parameterization_key),module_object_name_map,make_module_map(requires_times__0,$rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("#%kernel"),$rjs_core.PrimitiveSymbol.make("#%primitive-table")))));var __wcm_result1297 = ILLinklet1_dot_1(filter(ILRequire_p,requires_times__0),absyn_exports__gt_il(exports_3),append_map(absyn_gtl_form__gt_il,forms_0));} finally {$rjs_core.Marks.updateFrame(__context1295,__context1296);}return __wcm_result1297;};var make_module_map = function(reqs_0, imported_paths_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1299 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("req")),reqs_0);var pos__gt_vals_17 = let_result1299.getAt(0);var pos_pre_inc_15 = let_result1299.getAt(1);var pos_next_18 = let_result1299.getAt(2);var init_18 = let_result1299.getAt(3);var pos_cont_p_18 = let_result1299.getAt(4);var val_cont_p_17 = let_result1299.getAt(5);var all_cont_p_17 = let_result1299.getAt(6);var let_result1300 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("mod-path")),imported_paths_0);var pos__gt_vals_18 = let_result1300.getAt(0);var pos_pre_inc_16 = let_result1300.getAt(1);var pos_next_19 = let_result1300.getAt(2);var init_19 = let_result1300.getAt(3);var pos_cont_p_19 = let_result1300.getAt(4);var val_cont_p_18 = let_result1300.getAt(5);var all_cont_p_18 = let_result1300.getAt(6);M0.rvoid();M0.rvoid();var for_loop_19 = function(acc_1, pos_12, pos_55) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_18!==false) {var if_res1301 = pos_cont_p_18(pos_12);} else {var if_res1301 = true;}if (if_res1301!==false) {if (pos_cont_p_19!==false) {var if_res1302 = pos_cont_p_19(pos_55);} else {var if_res1302 = true;}var if_res1303 = if_res1302;} else {var if_res1303 = false;}if (if_res1303!==false) {var req_10 = pos__gt_vals_17(pos_12);if (all_cont_p_17!==false) {var if_res1304 = function(pos_56) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_17(pos_56,req_10);};} else {var if_res1304 = false;}var let_result1305 = M0.values(req_10,if_res1304);var req_9 = let_result1305.getAt(0);var all_cont_p_by_pos_15 = let_result1305.getAt(1);if (pos_pre_inc_15!==false) {var if_res1306 = pos_pre_inc_15(pos_12);} else {var if_res1306 = pos_12;}var pos_57 = if_res1306;var mod_path_1 = pos__gt_vals_18(pos_55);if (all_cont_p_18!==false) {var if_res1307 = function(pos_58) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_18(pos_58,mod_path_1);};} else {var if_res1307 = false;}var let_result1308 = M0.values(mod_path_1,if_res1307);var mod_path_0 = let_result1308.getAt(0);var all_cont_p_by_pos_16 = let_result1308.getAt(1);if (pos_pre_inc_16!==false) {var if_res1309 = pos_pre_inc_16(pos_55);} else {var if_res1309 = pos_55;}var pos_59 = if_res1309;if (val_cont_p_17!==false) {var if_res1310 = val_cont_p_17(req_9);} else {var if_res1310 = true;}if (if_res1310!==false) {if (val_cont_p_18!==false) {var if_res1311 = val_cont_p_18(mod_path_0);} else {var if_res1311 = true;}var if_res1312 = if_res1311;} else {var if_res1312 = false;}if (if_res1312!==false) {var acc_3 = acc_1;if (ILRequire_p(req_9)!==false) {var if_res1313 = M0.hash_set(acc_3,mod_path_0,ILRequire_name(req_9));} else {var if_res1313 = acc_3;}var acc_4 = if_res1313;var acc_2 = M0.values(acc_4);if (all_cont_p_by_pos_15!==false) {var if_res1314 = all_cont_p_by_pos_15(pos_57);} else {var if_res1314 = true;}if (if_res1314!==false) {if (all_cont_p_by_pos_16!==false) {var if_res1315 = all_cont_p_by_pos_16(pos_59);} else {var if_res1315 = true;}if (if_res1315!==false) {var if_res1316 = M0.not(false);} else {var if_res1316 = false;}var if_res1317 = if_res1316;} else {var if_res1317 = false;}if (if_res1317!==false) {var if_res1318 = for_loop_19(acc_2,pos_next_18(pos_57),pos_next_19(pos_59));} else {var if_res1318 = acc_2;}var if_res1319 = if_res1318;} else {var if_res1319 = acc_1;}var if_res1320 = if_res1319;} else {var if_res1320 = acc_1;}return if_res1320;};return for_loop_19(module_object_name_map(),init_18,init_19);};var absyn_exports__gt_il = function(exports_5) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1321 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("ex")),exports_5);var pos__gt_vals_19 = let_result1321.getAt(0);var pos_pre_inc_17 = let_result1321.getAt(1);var pos_next_20 = let_result1321.getAt(2);var init_20 = let_result1321.getAt(3);var pos_cont_p_20 = let_result1321.getAt(4);var val_cont_p_19 = let_result1321.getAt(5);var all_cont_p_19 = let_result1321.getAt(6);M0.rvoid();var for_loop_20 = function(fold_var_8, pos_60) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_20!==false) {var if_res1322 = pos_cont_p_20(pos_60);} else {var if_res1322 = true;}if (if_res1322!==false) {var ex_1 = pos__gt_vals_19(pos_60);if (all_cont_p_19!==false) {var if_res1323 = function(pos_61) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_19(pos_61,ex_1);};} else {var if_res1323 = false;}var let_result1324 = M0.values(ex_1,if_res1323);var ex_0 = let_result1324.getAt(0);var all_cont_p_by_pos_17 = let_result1324.getAt(1);if (pos_pre_inc_17!==false) {var if_res1325 = pos_pre_inc_17(pos_60);} else {var if_res1325 = pos_60;}var pos_62 = if_res1325;if (val_cont_p_19!==false) {var if_res1326 = val_cont_p_19(ex_0);} else {var if_res1326 = true;}if (if_res1326!==false) {var fold_var_10 = fold_var_8;if (M0.symbol_p(ex_0)!==false) {var if_res1328 = SimpleProvide18_dot_1(ex_0);} else {if (M0.list_p(ex_0)!==false) {var if_res1327 = RenamedProvide19_dot_1(M0.car(ex_0),M0.cadr(ex_0));} else {var if_res1327 = M0.error($rjs_core.PrimitiveSymbol.make("exports->il"),$rjs_core.UString.make("unknown export form in linklet"),ex_0);}var if_res1328 = if_res1327;}var fold_var_11 = M0.cons(if_res1328,fold_var_10);var fold_var_9 = M0.values(fold_var_11);if (all_cont_p_by_pos_17!==false) {var if_res1329 = all_cont_p_by_pos_17(pos_62);} else {var if_res1329 = true;}if (if_res1329!==false) {var if_res1330 = M0.not(false);} else {var if_res1330 = false;}if (if_res1330!==false) {var if_res1331 = for_loop_20(fold_var_9,pos_next_20(pos_62));} else {var if_res1331 = fold_var_9;}var if_res1332 = if_res1331;} else {var if_res1332 = fold_var_8;}var if_res1333 = if_res1332;} else {var if_res1333 = fold_var_8;}return if_res1333;};return reverse$1(for_loop_20(M0.rnull,init_20));};var absyn_requires__gt_il = function(import_list_0, path_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.list(ILRequire2_dot_1($rjs_core.UString.make("../runtime/kernel.rkt.js"),$rjs_core.PrimitiveSymbol.make("M0"),$rjs_core.PrimitiveSymbol.make("*")),ILRequire2_dot_1($rjs_core.UString.make("../runtime/table.rkt.js"),$rjs_core.PrimitiveSymbol.make("M1"),$rjs_core.PrimitiveSymbol.make("*")));};var absyn_gtl_form__gt_il = function(form_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Expr_p(form_1)!==false) {var let_result1334 = absyn_expr__gt_il(form_1,false);var stms_1 = let_result1334.getAt(0);var v_64 = let_result1334.getAt(1);var if_res1340 = append1(stms_1,v_64);} else {if (DefineValues_p(form_1)!==false) {var v_65 = form_1;var v_66 = v_65;var vec_v_14 = M0.struct__gt_vector(v_66);var alt_40 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_66);};if (DefineValues_p(v_66)!==false) {var let_result1335 = M0.vector__gt_values(vec_v_14,1);var ids_1 = let_result1335.getAt(0);var expr_5 = let_result1335.getAt(1);var if_res1336 = M0.values(ids_1,expr_5);} else {var if_res1336 = alt_40();}var let_result1337 = if_res1336;var ids_0 = let_result1337.getAt(0);var expr_4 = let_result1337.getAt(1);var if_res1339 = absyn_binding__gt_il(M0.cons(ids_0,expr_4));} else {if (JSRequire_p(form_1)!==false) {var if_res1338 = M0.error($rjs_core.PrimitiveSymbol.make("absyn-gtl-form->il"),$rjs_core.UString.make("Required should be hoisted"));} else {var if_res1338 = M0.rvoid();}var if_res1339 = if_res1338;}var if_res1340 = if_res1339;}return if_res1340;};var absyn_expr__gt_il = function(expr_6, overwrite_mark_frame_p_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_67 = expr_6;var vec_v_15 = M0.struct__gt_vector(v_67);var alt_41 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_16 = M0.struct__gt_vector(v_67);var alt_42 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_17 = M0.struct__gt_vector(v_67);var alt_43 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_18 = M0.struct__gt_vector(v_67);var alt_44 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_19 = M0.struct__gt_vector(v_67);var alt_45 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_20 = M0.struct__gt_vector(v_67);var alt_46 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_21 = M0.struct__gt_vector(v_67);var alt_47 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_22 = M0.struct__gt_vector(v_67);var alt_48 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");if (M0.pair_p(expr_6)!==false) {var if_res1341 = M0.null_p(M0.cdr(expr_6));} else {var if_res1341 = false;}if (if_res1341!==false) {var v_68 = expr_6;var v_69 = v_68;var alt_49 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_69);};var p_92 = v_69;if (M0.pair_p(p_92)!==false) {var a_162 = M0.cdr(p_92);var if_res1342 = M0.eq_p($rjs_core.Pair.makeList(),a_162);} else {var if_res1342 = false;}if (if_res1342!==false) {var a_53 = M0.car(v_69);var hd_4 = a_53;var if_res1343 = M0.values(hd_4);} else {var if_res1343 = alt_49();}var hd_3 = if_res1343;if (Expr_p(hd_3)!==false) {var if_res1344 = absyn_expr__gt_il(hd_3,overwrite_mark_frame_p_0);} else {var if_res1344 = M0.error($rjs_core.UString.make("last datum in body must be expression"));}var if_res1380 = if_res1344;} else {if (M0.pair_p(expr_6)!==false) {var v_70 = expr_6;var v_71 = v_70;var alt_50 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_71);};var p_93 = v_71;if (M0.pair_p(p_93)!==false) {var if_res1345 = true;} else {var if_res1345 = false;}if (if_res1345!==false) {var p_94 = v_71;var a_62 = M0.car(p_94);var hd_7 = a_62;var d_46 = M0.cdr(p_94);var tl_2 = d_46;var let_result1346 = M0.values(hd_7,tl_2);var hd_6 = let_result1346.getAt(0);var tl_1 = let_result1346.getAt(1);var if_res1347 = M0.values(hd_6,tl_1);} else {var if_res1347 = alt_50();}var let_result1348 = if_res1347;var hd_5 = let_result1348.getAt(0);var tl_0 = let_result1348.getAt(1);var hd_stms_0 = absyn_top_level__gt_il(hd_5);var let_result1349 = absyn_expr__gt_il(tl_0,overwrite_mark_frame_p_0);var tl_stms_0 = let_result1349.getAt(0);var v_72 = let_result1349.getAt(1);var if_res1379 = M0.values(M0.append(hd_stms_0,tl_stms_0),v_72);} else {if (M0.null_p(expr_6)!==false) {var if_res1378 = M0.values($rjs_core.Pair.makeList(),ILValue12_dot_1(M0.rvoid()));} else {var vec_v_23 = M0.struct__gt_vector(v_67);var alt_51 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_24 = M0.struct__gt_vector(v_67);var alt_52 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_25 = M0.struct__gt_vector(v_67);var alt_53 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_26 = M0.struct__gt_vector(v_67);var alt_54 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_27 = M0.struct__gt_vector(v_67);var alt_55 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_28 = M0.struct__gt_vector(v_67);var alt_56 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var vec_v_29 = M0.struct__gt_vector(v_67);var alt_57 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error(__a($rjs_core.UString.make("unsupported expr "),expr_6));};if (VarRef_p(v_67)!==false) {var __5 = M0.vector__gt_values(vec_v_29,1);var if_res1350 = M0.values($rjs_core.Pair.makeList(),absyn_value__gt_il($rjs_core.PrimitiveSymbol.make("#%variable-reference")));} else {var if_res1350 = alt_57();}return if_res1350;};if (WithContinuationMark_p(v_67)!==false) {var let_result1351 = M0.vector__gt_values(vec_v_28,1);var key_8 = let_result1351.getAt(0);var value_3 = let_result1351.getAt(1);var result_10 = let_result1351.getAt(2);var let_result1352 = absyn_expr__gt_il(key_8,false);var key_stms_0 = let_result1352.getAt(0);var key_expr_0 = let_result1352.getAt(1);var let_result1353 = absyn_expr__gt_il(value_3,false);var value_stms_0 = let_result1353.getAt(0);var value_expr_0 = let_result1353.getAt(1);var let_result1354 = absyn_expr__gt_il(result_10,true);var result_stms_0 = let_result1354.getAt(0);var result_expr_0 = let_result1354.getAt(1);var old_context_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__context"));var new_context_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__context"));var result_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("__wcm_result"));var exn_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("exn"));var temp1357 = ILVarDec20_dot_1(old_context_id_0,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.getFrames")),$rjs_core.Pair.makeList()));var temp1356 = ILVarDec20_dot_1(new_context_id_0,false);if (overwrite_mark_frame_p_0!==false) {var if_res1355 = ILAssign24_dot_1(new_context_id_0,old_context_id_0);} else {var if_res1355 = ILAssign24_dot_1(new_context_id_0,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.enterFrame")),$rjs_core.Pair.makeList()));}var stms_2 = M0.list(temp1357,temp1356,ILExnHandler29_dot_1(flatten_statements(M0.list(key_stms_0,value_stms_0,if_res1355,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.setMark")),M0.list(key_expr_0,value_expr_0)),result_stms_0,ILVarDec20_dot_1(result_id_0,result_expr_0))),$rjs_core.PrimitiveSymbol.make("exn"),$rjs_core.Pair.makeList(),M0.list(ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Marks.updateFrame")),M0.list(old_context_id_0,new_context_id_0)))));var if_res1358 = M0.values(stms_2,result_id_0);} else {var if_res1358 = alt_56();}return if_res1358;};if (WithContinuationMark_p(v_67)!==false) {var let_result1359 = M0.vector__gt_values(vec_v_27,1);var key_9 = let_result1359.getAt(0);var _fst_6 = let_result1359.getAt(1);var wcm_0 = let_result1359.getAt(2);if (WithContinuationMark_p(wcm_0)!==false) {var v_73 = wcm_0;var v_74 = v_73;var vec_v_30 = M0.struct__gt_vector(v_74);var alt_58 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_74);};if (WithContinuationMark_p(v_74)!==false) {var let_result1360 = M0.vector__gt_values(vec_v_30,1);var key_11 = let_result1360.getAt(0);var _snd_3 = let_result1360.getAt(1);var _thd_1 = let_result1360.getAt(2);var if_res1361 = M0.values(key_11,_snd_3,_thd_1);} else {var if_res1361 = alt_58();}var let_result1362 = if_res1361;var key_10 = let_result1362.getAt(0);var _snd_2 = let_result1362.getAt(1);var _thd_0 = let_result1362.getAt(2);var if_res1363 = absyn_expr__gt_il(wcm_0,overwrite_mark_frame_p_0);} else {var if_res1363 = alt_55();}var if_res1364 = if_res1363;} else {var if_res1364 = alt_55();}return if_res1364;};if (ImportedIdent_p(v_67)!==false) {var let_result1365 = M0.vector__gt_values(vec_v_26,1);var id_3 = let_result1365.getAt(0);var src__0 = let_result1365.getAt(1);var reachable_p_0 = let_result1365.getAt(2);if (M0.__lt_(get_major_version(M0.substring(M0.version(),0,1)),7)!==false) {var if_res1366 = M0.equal_p(src__0,$rjs_core.PrimitiveSymbol.make("#%runtime"));} else {var if_res1366 = false;}if (if_res1366!==false) {var if_res1367 = $rjs_core.PrimitiveSymbol.make("#%kernel");} else {var if_res1367 = src__0;}var src_0 = if_res1367;if (reserved_keyword_p(id_3)!==false) {var if_res1368 = M0.string__gt_symbol(normalize_symbol(id_3));} else {var if_res1368 = id_3;}var id_times__0 = if_res1368;var or_part_72 = M0.symbol_p(current_source_file());if (or_part_72!==false) {var if_res1369 = or_part_72;} else {var if_res1369 = M0.path_p(current_source_file());}if (if_res1369!==false) {var if_res1370 = M0.equal_p(actual_module_path(current_source_file()),actual_module_path(src_0));} else {var if_res1370 = false;}if (if_res1370!==false) {var if_res1372 = absyn_expr__gt_il(LocalIdent6_dot_1(id_3),overwrite_mark_frame_p_0);} else {if (false_p(reachable_p_0)!==false) {var mod_obj_name_0 = M0.hash_ref(module_object_name_map(),src_0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}log_rjs_warning($rjs_core.UString.make("missing unreachable binding ~s ~s"),id_times__0,src_0);return src_0;});var if_res1371 = M0.values($rjs_core.Pair.makeList(),ILRef10_dot_1(ILRef10_dot_1(mod_obj_name_0,__times_quoted_binding_ident_name_times_),id_times__0));} else {var mod_obj_name_1 = M0.hash_ref(module_object_name_map(),src_0,function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}log_rjs_warning($rjs_core.UString.make("missing reachable binding ~s ~s"),id_times__0,src_0);return src_0;});var if_res1371 = M0.values($rjs_core.Pair.makeList(),ILRef10_dot_1(mod_obj_name_1,id_times__0));}var if_res1372 = if_res1371;}var if_res1373 = if_res1372;} else {var if_res1373 = alt_54();}return if_res1373;};if (Begin0_p(v_67)!==false) {var let_result1374 = M0.vector__gt_values(vec_v_25,1);var expr0_0 = let_result1374.getAt(0);var expr_times__0 = let_result1374.getAt(1);var expr0_id_0 = fresh_id($rjs_core.PrimitiveSymbol.make("begin-res"));var if_res1375 = absyn_expr__gt_il(LetValues13_dot_1(M0.list(M0.cons(M0.list(expr0_id_0),expr0_0)),append1(expr_times__0,LocalIdent6_dot_1(expr0_id_0))),overwrite_mark_frame_p_0);} else {var if_res1375 = alt_53();}return if_res1375;};if (TopLevelIdent_p(v_67)!==false) {var id_4 = M0.vector__gt_values(vec_v_24,1);var if_res1376 = M0.values($rjs_core.Pair.makeList(),id_4);} else {var if_res1376 = alt_52();}return if_res1376;};if (LocalIdent_p(v_67)!==false) {var id_5 = M0.vector__gt_values(vec_v_23,1);var if_res1377 = M0.values($rjs_core.Pair.makeList(),id_5);} else {var if_res1377 = alt_51();}var if_res1378 = if_res1377;}var if_res1379 = if_res1378;}var if_res1380 = if_res1379;}return if_res1380;};if (Quote_p(v_67)!==false) {var datum_0 = M0.vector__gt_values(vec_v_22,1);var if_res1381 = M0.values($rjs_core.Pair.makeList(),absyn_value__gt_il(datum_0));} else {var if_res1381 = alt_48();}return if_res1381;};if (App_p(v_67)!==false) {var let_result1382 = M0.vector__gt_values(vec_v_21,1);var lam_1 = let_result1382.getAt(0);var args_14 = let_result1382.getAt(1);var binops_0 = map2(function(b_19) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return ImportedIdent3_dot_1(b_19,$rjs_core.PrimitiveSymbol.make("#%kernel"),true);},$rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("+"),$rjs_core.PrimitiveSymbol.make("-"),$rjs_core.PrimitiveSymbol.make("*"),$rjs_core.PrimitiveSymbol.make("/")));var il_app_by_binop_0 = function(v_75, arg_times__0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("il-app/binop");var let_result1383 = absyn_expr__gt_il(v_75,false);var __6 = let_result1383.getAt(0);var v_76 = let_result1383.getAt(1);var v_il_0 = v_76;if (M0.equal_p(v_75,ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("-"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true))!==false) {var if_res1384 = length_eq__p(arg_times__0,1);} else {var if_res1384 = false;}if (if_res1384!==false) {var if_res1390 = ILApp7_dot_1(v_il_0,arg_times__0);} else {if (M0.equal_p(v_75,ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("/"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true))!==false) {var if_res1385 = length_eq__p(arg_times__0,1);} else {var if_res1385 = false;}if (if_res1385!==false) {var if_res1389 = ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("/"),M0.cons(ILValue12_dot_1(1),arg_times__0));} else {if (ImportedIdent_p(v_75)!==false) {if (member(v_75,binops_0)!==false) {var if_res1386 = M0.__gt__eq_(M0.length(arg_times__0),2);} else {var if_res1386 = false;}var if_res1387 = if_res1386;} else {var if_res1387 = false;}if (if_res1387!==false) {var if_res1388 = ILBinaryOp6_dot_1(ImportedIdent_id(v_75),arg_times__0);} else {var if_res1388 = ILApp7_dot_1(v_il_0,arg_times__0);}var if_res1389 = if_res1388;}var if_res1390 = if_res1389;}return if_res1390;};var temp5_0 = sequence_length(reverse$1(M0.cons(lam_1,args_14)));var let_result1391 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("arg")),reverse$1(M0.cons(lam_1,args_14)));var pos__gt_vals_20 = let_result1391.getAt(0);var pos_pre_inc_18 = let_result1391.getAt(1);var pos_next_21 = let_result1391.getAt(2);var init_21 = let_result1391.getAt(3);var pos_cont_p_21 = let_result1391.getAt(4);var val_cont_p_20 = let_result1391.getAt(5);var all_cont_p_20 = let_result1391.getAt(6);var start_10 = 0;var end_4 = temp5_0;var inc_0 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1392 = M0.rvoid();} else {var if_res1392 = check_range(start_10,end_4,inc_0);}if_res1392;var for_loop_21 = function(stms_3, vals_3, next_has_stms_p_0, pos_63, pos_64) {if (arguments.length!==5) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_21!==false) {var if_res1393 = pos_cont_p_21(pos_63);} else {var if_res1393 = true;}if (if_res1393!==false) {var if_res1394 = M0.__lt_(pos_64,end_4);} else {var if_res1394 = false;}if (if_res1394!==false) {var arg_1 = pos__gt_vals_20(pos_63);if (all_cont_p_20!==false) {var if_res1395 = function(pos_65) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_20(pos_65,arg_1);};} else {var if_res1395 = false;}var let_result1396 = M0.values(arg_1,if_res1395);var arg_0 = let_result1396.getAt(0);var all_cont_p_by_pos_18 = let_result1396.getAt(1);if (pos_pre_inc_18!==false) {var if_res1397 = pos_pre_inc_18(pos_63);} else {var if_res1397 = pos_63;}var pos_66 = if_res1397;var temp6_0 = pos_64;if (val_cont_p_20!==false) {var if_res1398 = val_cont_p_20(arg_0);} else {var if_res1398 = true;}if (if_res1398!==false) {var if_res1399 = true;} else {var if_res1399 = false;}if (if_res1399!==false) {var stms_5 = stms_3;var vals_5 = vals_3;var next_has_stms_p_2 = next_has_stms_p_0;var last_p_0 = M0.equal_p(M0.sub1(temp5_0),temp6_0);var let_result1400 = absyn_expr__gt_il(arg_0,false);var s_15 = let_result1400.getAt(0);var v_77 = let_result1400.getAt(1);if (next_has_stms_p_2!==false) {var if_res1401 = has_application_p(v_77);} else {var if_res1401 = false;}if (if_res1401!==false) {if (last_p_0!==false) {var if_res1402 = $rjs_core.PrimitiveSymbol.make("lam");} else {var if_res1402 = $rjs_core.PrimitiveSymbol.make("temp");}var temp_id_0 = fresh_id(if_res1402);var arg_stms_0 = append1(s_15,ILVarDec20_dot_1(temp_id_0,v_77));var if_res1407 = M0.values(M0.append(arg_stms_0,stms_5),M0.cons(temp_id_0,vals_5),next_has_stms_p_2);} else {if (next_has_stms_p_2!==false) {var if_res1406 = M0.values(M0.append(s_15,stms_5),M0.cons(v_77,vals_5),next_has_stms_p_2);} else {var temp1405 = M0.append(s_15,stms_5);var temp1404 = M0.cons(v_77,vals_5);var or_part_73 = next_has_stms_p_2;if (or_part_73!==false) {var if_res1403 = or_part_73;} else {var if_res1403 = cons_p(s_15);}var if_res1406 = M0.values(temp1405,temp1404,if_res1403);}var if_res1407 = if_res1406;}var let_result1408 = if_res1407;var stms_6 = let_result1408.getAt(0);var vals_6 = let_result1408.getAt(1);var next_has_stms_p_3 = let_result1408.getAt(2);var let_result1409 = M0.values(stms_6,vals_6,next_has_stms_p_3);var stms_4 = let_result1409.getAt(0);var vals_4 = let_result1409.getAt(1);var next_has_stms_p_1 = let_result1409.getAt(2);if (all_cont_p_by_pos_18!==false) {var if_res1410 = all_cont_p_by_pos_18(pos_66);} else {var if_res1410 = true;}if (if_res1410!==false) {var if_res1411 = M0.not(false);} else {var if_res1411 = false;}if (if_res1411!==false) {var if_res1412 = for_loop_21(stms_4,vals_4,next_has_stms_p_1,pos_next_21(pos_66),pos_64+inc_0);} else {var if_res1412 = M0.values(stms_4,vals_4,next_has_stms_p_1);}var if_res1413 = if_res1412;} else {var if_res1413 = M0.values(stms_3,vals_3,next_has_stms_p_0);}var if_res1414 = if_res1413;} else {var if_res1414 = M0.values(stms_3,vals_3,next_has_stms_p_0);}return if_res1414;};var let_result1415 = for_loop_21($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),false,init_21,start_10);var lam_plus_arg_stms_0 = let_result1415.getAt(0);var lam_part_vals_0 = let_result1415.getAt(1);var _rst_0 = let_result1415.getAt(2);var v_78 = lam_part_vals_0;var v_79 = v_78;var alt_59 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_79);};var p_95 = v_79;if (M0.pair_p(p_95)!==false) {var a_116 = M0.cdr(p_95);var if_res1416 = M0.list_p(a_116);} else {var if_res1416 = false;}if (if_res1416!==false) {var p_96 = v_79;var a_163 = M0.car(p_96);var lam_val_2 = a_163;var d_47 = M0.cdr(p_96);var arg_vals_2 = d_47;var let_result1417 = M0.values(lam_val_2,arg_vals_2);var lam_val_1 = let_result1417.getAt(0);var arg_vals_1 = let_result1417.getAt(1);var if_res1418 = M0.values(lam_val_1,arg_vals_1);} else {var if_res1418 = alt_59();}var let_result1419 = if_res1418;var lam_val_0 = let_result1419.getAt(0);var arg_vals_0 = let_result1419.getAt(1);if (Ident_p(lam_1)!==false) {var if_res1420 = M0.values(lam_plus_arg_stms_0,il_app_by_binop_0(lam_1,arg_vals_0));} else {var if_res1420 = M0.values(lam_plus_arg_stms_0,ILApp7_dot_1(lam_val_0,arg_vals_0));}var if_res1421 = if_res1420;} else {var if_res1421 = alt_47();}return if_res1421;};if (App_p(v_67)!==false) {var let_result1422 = M0.vector__gt_values(vec_v_20,1);var lam_2 = let_result1422.getAt(0);var args_15 = let_result1422.getAt(1);if (ImportedIdent_p(lam_2)!==false) {var if_res1423 = M0.eq_p($rjs_core.PrimitiveSymbol.make("#%js-ffi"),ImportedIdent_id(lam_2));} else {var if_res1423 = false;}if (if_res1423!==false) {var v_80 = args_15;var alt_60 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_61 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_62 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_63 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_64 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_65 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_66 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_67 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_68 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_69 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_70 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_71 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_72 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_73 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_74 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_75 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("absyn-expr->il"),$rjs_core.UString.make("unknown ffi form"),args_15);};var p_97 = v_80;if (M0.pair_p(p_97)!==false) {var a_164 = M0.cdr(p_97);var if_res1424 = M0.eq_p($rjs_core.Pair.makeList(),a_164);} else {var if_res1424 = false;}if (if_res1424!==false) {var a_165 = M0.car(v_80);var fst_6 = a_165;if (Quote_p(fst_6)!==false) {var if_res1425 = M0.eq_p(Quote_datum(fst_6),$rjs_core.PrimitiveSymbol.make("this"));} else {var if_res1425 = false;}if (if_res1425!==false) {var if_res1426 = M0.values($rjs_core.Pair.makeList(),ILThis19_dot_1());} else {var if_res1426 = alt_75();}var if_res1427 = if_res1426;} else {var if_res1427 = alt_75();}return if_res1427;};var p_98 = v_80;if (M0.pair_p(p_98)!==false) {var a_166 = M0.cdr(p_98);var if_res1428 = M0.eq_p($rjs_core.Pair.makeList(),a_166);} else {var if_res1428 = false;}if (if_res1428!==false) {var a_167 = M0.car(v_80);var fst_7 = a_167;if (Quote_p(fst_7)!==false) {var if_res1429 = M0.eq_p(Quote_datum(fst_7),$rjs_core.PrimitiveSymbol.make("arguments"));} else {var if_res1429 = false;}if (if_res1429!==false) {var if_res1430 = M0.values($rjs_core.Pair.makeList(),ILArguments18_dot_1());} else {var if_res1430 = alt_74();}var if_res1431 = if_res1430;} else {var if_res1431 = alt_74();}return if_res1431;};var p_99 = v_80;if (M0.pair_p(p_99)!==false) {var a_168 = M0.cdr(p_99);var if_res1432 = M0.eq_p($rjs_core.Pair.makeList(),a_168);} else {var if_res1432 = false;}if (if_res1432!==false) {var a_169 = M0.car(v_80);var fst_8 = a_169;if (Quote_p(fst_8)!==false) {var if_res1433 = M0.eq_p(Quote_datum(fst_8),$rjs_core.PrimitiveSymbol.make("undefined"));} else {var if_res1433 = false;}if (if_res1433!==false) {var if_res1434 = M0.values($rjs_core.Pair.makeList(),ILUndefined17_dot_1());} else {var if_res1434 = alt_73();}var if_res1435 = if_res1434;} else {var if_res1435 = alt_73();}return if_res1435;};var p_100 = v_80;if (M0.pair_p(p_100)!==false) {var a_170 = M0.cdr(p_100);var if_res1436 = M0.eq_p($rjs_core.Pair.makeList(),a_170);} else {var if_res1436 = false;}if (if_res1436!==false) {var a_171 = M0.car(v_80);var fst_9 = a_171;if (Quote_p(fst_9)!==false) {var if_res1437 = M0.eq_p(Quote_datum(fst_9),$rjs_core.PrimitiveSymbol.make("null"));} else {var if_res1437 = false;}if (if_res1437!==false) {var if_res1438 = M0.values($rjs_core.Pair.makeList(),ILNull16_dot_1());} else {var if_res1438 = alt_72();}var if_res1439 = if_res1438;} else {var if_res1439 = alt_72();}return if_res1439;};var p_101 = v_80;if (M0.pair_p(p_101)!==false) {var a_172 = M0.cdr(p_101);var p_67 = a_172;if (M0.pair_p(p_67)!==false) {var a_173 = M0.cdr(p_67);var p_102 = a_173;if (M0.pair_p(p_102)!==false) {var a_123 = M0.cdr(p_102);var p_103 = a_123;if (M0.pair_p(p_103)!==false) {var a_124 = M0.cdr(p_103);var if_res1440 = M0.eq_p($rjs_core.Pair.makeList(),a_124);} else {var if_res1440 = false;}var if_res1441 = if_res1440;} else {var if_res1441 = false;}var if_res1442 = if_res1441;} else {var if_res1442 = false;}var if_res1443 = if_res1442;} else {var if_res1443 = false;}if (if_res1443!==false) {var p_104 = v_80;var a_174 = M0.car(p_104);var fst_11 = a_174;var d_48 = M0.cdr(p_104);var p_105 = d_48;var a_175 = M0.car(p_105);var snd_5 = a_175;var d_49 = M0.cdr(p_105);var p_106 = d_49;var a_176 = M0.car(p_106);var e0_7 = a_176;var d_50 = M0.cdr(p_106);var a_177 = M0.car(d_50);var e1_8 = a_177;var let_result1444 = M0.values(e0_7,e1_8);var e0_6 = let_result1444.getAt(0);var e1_7 = let_result1444.getAt(1);var let_result1445 = M0.values(snd_5,e0_6,e1_7);var snd_4 = let_result1445.getAt(0);var e0_5 = let_result1445.getAt(1);var e1_6 = let_result1445.getAt(2);var let_result1446 = M0.values(fst_11,snd_4,e0_5,e1_6);var fst_10 = let_result1446.getAt(0);var snd_3 = let_result1446.getAt(1);var e0_4 = let_result1446.getAt(2);var e1_5 = let_result1446.getAt(3);if (Quote_p(fst_10)!==false) {if (Quote_p(snd_3)!==false) {var if_res1447 = M0.eq_p(Quote_datum(fst_10),$rjs_core.PrimitiveSymbol.make("operator"));} else {var if_res1447 = false;}var if_res1448 = if_res1447;} else {var if_res1448 = false;}if (if_res1448!==false) {var v_81 = snd_3;var v_82 = v_81;var vec_v_31 = M0.struct__gt_vector(v_82);var alt_76 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_82);};if (Quote_p(v_82)!==false) {var oper_1 = M0.vector__gt_values(vec_v_31,1);var if_res1449 = M0.values(oper_1);} else {var if_res1449 = alt_76();}var oper_0 = if_res1449;var let_result1450 = absyn_expr__gt_il(e0_4,false);var stms0_0 = let_result1450.getAt(0);var val0_0 = let_result1450.getAt(1);var let_result1451 = absyn_expr__gt_il(e1_5,false);var stms1_0 = let_result1451.getAt(0);var val1_0 = let_result1451.getAt(1);var if_res1452 = M0.values(M0.append(stms0_0,stms1_0),ILBinaryOp6_dot_1(oper_0,M0.list(val0_0,val1_0)));} else {var if_res1452 = alt_71();}var if_res1453 = if_res1452;} else {var if_res1453 = alt_71();}return if_res1453;};var p_107 = v_80;if (M0.pair_p(p_107)!==false) {var a_178 = M0.cdr(p_107);var p_108 = a_178;if (M0.pair_p(p_108)!==false) {var a_179 = M0.cdr(p_108);var p_109 = a_179;if (M0.pair_p(p_109)!==false) {var a_180 = M0.cdr(p_109);var if_res1454 = M0.eq_p($rjs_core.Pair.makeList(),a_180);} else {var if_res1454 = false;}var if_res1455 = if_res1454;} else {var if_res1455 = false;}var if_res1456 = if_res1455;} else {var if_res1456 = false;}if (if_res1456!==false) {var p_110 = v_80;var a_181 = M0.car(p_110);var fst_13 = a_181;var d_51 = M0.cdr(p_110);var p_111 = d_51;var a_182 = M0.car(p_111);var e_14 = a_182;var d_52 = M0.cdr(p_111);var a_183 = M0.car(d_52);var t_5 = a_183;var let_result1457 = M0.values(e_14,t_5);var e_13 = let_result1457.getAt(0);var t_4 = let_result1457.getAt(1);var let_result1458 = M0.values(fst_13,e_13,t_4);var fst_12 = let_result1458.getAt(0);var e_12 = let_result1458.getAt(1);var t_3 = let_result1458.getAt(2);if (Quote_p(fst_12)!==false) {var if_res1459 = M0.eq_p(Quote_datum(fst_12),$rjs_core.PrimitiveSymbol.make("instanceof"));} else {var if_res1459 = false;}if (if_res1459!==false) {var let_result1460 = absyn_expr__gt_il(e_12,false);var stms_7 = let_result1460.getAt(0);var val_4 = let_result1460.getAt(1);var let_result1461 = absyn_expr__gt_il(t_3,false);var tstms_0 = let_result1461.getAt(0);var tval_0 = let_result1461.getAt(1);var if_res1462 = M0.values(M0.append(stms_7,tstms_0),ILInstanceOf14_dot_1(val_4,tval_0));} else {var if_res1462 = alt_70();}var if_res1463 = if_res1462;} else {var if_res1463 = alt_70();}return if_res1463;};var p_112 = v_80;if (M0.pair_p(p_112)!==false) {var a_184 = M0.cdr(p_112);var p_113 = a_184;if (M0.pair_p(p_113)!==false) {var a_185 = M0.cdr(p_113);var if_res1464 = M0.eq_p($rjs_core.Pair.makeList(),a_185);} else {var if_res1464 = false;}var if_res1465 = if_res1464;} else {var if_res1465 = false;}if (if_res1465!==false) {var p_114 = v_80;var a_186 = M0.car(p_114);var fst_15 = a_186;var d_53 = M0.cdr(p_114);var a_187 = M0.car(d_53);var e_16 = a_187;var let_result1466 = M0.values(fst_15,e_16);var fst_14 = let_result1466.getAt(0);var e_15 = let_result1466.getAt(1);if (Quote_p(fst_14)!==false) {var if_res1467 = M0.eq_p(Quote_datum(fst_14),$rjs_core.PrimitiveSymbol.make("typeof"));} else {var if_res1467 = false;}if (if_res1467!==false) {var let_result1468 = absyn_expr__gt_il(e_15,false);var stms_8 = let_result1468.getAt(0);var val_5 = let_result1468.getAt(1);var if_res1469 = M0.values(stms_8,ILTypeOf15_dot_1(val_5));} else {var if_res1469 = alt_69();}var if_res1470 = if_res1469;} else {var if_res1470 = alt_69();}return if_res1470;};var p_115 = v_80;if (M0.pair_p(p_115)!==false) {var a_188 = M0.cdr(p_115);var p_116 = a_188;if (M0.pair_p(p_116)!==false) {var a_189 = M0.cdr(p_116);var if_res1471 = M0.eq_p($rjs_core.Pair.makeList(),a_189);} else {var if_res1471 = false;}var if_res1472 = if_res1471;} else {var if_res1472 = false;}if (if_res1472!==false) {var p_117 = v_80;var a_190 = M0.car(p_117);var fst_17 = a_190;var d_54 = M0.cdr(p_117);var a_191 = M0.car(d_54);var e_18 = a_191;var let_result1473 = M0.values(fst_17,e_18);var fst_16 = let_result1473.getAt(0);var e_17 = let_result1473.getAt(1);if (Quote_p(fst_16)!==false) {var if_res1474 = M0.eq_p(Quote_datum(fst_16),$rjs_core.PrimitiveSymbol.make("throw"));} else {var if_res1474 = false;}if (if_res1474!==false) {var let_result1475 = absyn_expr__gt_il(e_17,false);var stms_9 = let_result1475.getAt(0);var val_6 = let_result1475.getAt(1);var if_res1476 = M0.values(append1(stms_9,ILThrow30_dot_1(val_6)),ILValue12_dot_1(M0.rvoid()));} else {var if_res1476 = alt_68();}var if_res1477 = if_res1476;} else {var if_res1477 = alt_68();}return if_res1477;};var p_70 = v_80;if (M0.pair_p(p_70)!==false) {var a_129 = M0.cdr(p_70);var if_res1478 = M0.list_p(a_129);} else {var if_res1478 = false;}if (if_res1478!==false) {var p_71 = v_80;var a_192 = M0.car(p_71);var fst_19 = a_192;var d_55 = M0.cdr(p_71);var items_3 = d_55;var let_result1479 = M0.values(fst_19,items_3);var fst_18 = let_result1479.getAt(0);var items_2 = let_result1479.getAt(1);if (Quote_p(fst_18)!==false) {var if_res1480 = M0.eq_p(Quote_datum(fst_18),$rjs_core.PrimitiveSymbol.make("object"));} else {var if_res1480 = false;}if (if_res1480!==false) {var let_result1481 = split_at(items_2,M0.length(items_2)/2);var keys_0 = let_result1481.getAt(0);var vals_7 = let_result1481.getAt(1);var let_result1482 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("k")),keys_0);var pos__gt_vals_21 = let_result1482.getAt(0);var pos_pre_inc_19 = let_result1482.getAt(1);var pos_next_22 = let_result1482.getAt(2);var init_22 = let_result1482.getAt(3);var pos_cont_p_22 = let_result1482.getAt(4);var val_cont_p_21 = let_result1482.getAt(5);var all_cont_p_21 = let_result1482.getAt(6);var let_result1483 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("v")),vals_7);var pos__gt_vals_22 = let_result1483.getAt(0);var pos_pre_inc_20 = let_result1483.getAt(1);var pos_next_23 = let_result1483.getAt(2);var init_23 = let_result1483.getAt(3);var pos_cont_p_23 = let_result1483.getAt(4);var val_cont_p_22 = let_result1483.getAt(5);var all_cont_p_22 = let_result1483.getAt(6);M0.rvoid();M0.rvoid();var for_loop_22 = function(stms_10, kvs_0, pos_67, pos_68) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_22!==false) {var if_res1484 = pos_cont_p_22(pos_67);} else {var if_res1484 = true;}if (if_res1484!==false) {if (pos_cont_p_23!==false) {var if_res1485 = pos_cont_p_23(pos_68);} else {var if_res1485 = true;}var if_res1486 = if_res1485;} else {var if_res1486 = false;}if (if_res1486!==false) {var k_2 = pos__gt_vals_21(pos_67);if (all_cont_p_21!==false) {var if_res1487 = function(pos_69) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_21(pos_69,k_2);};} else {var if_res1487 = false;}var let_result1488 = M0.values(k_2,if_res1487);var k_1 = let_result1488.getAt(0);var all_cont_p_by_pos_19 = let_result1488.getAt(1);if (pos_pre_inc_19!==false) {var if_res1489 = pos_pre_inc_19(pos_67);} else {var if_res1489 = pos_67;}var pos_70 = if_res1489;var v_84 = pos__gt_vals_22(pos_68);if (all_cont_p_22!==false) {var if_res1490 = function(pos_71) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_22(pos_71,v_84);};} else {var if_res1490 = false;}var let_result1491 = M0.values(v_84,if_res1490);var v_83 = let_result1491.getAt(0);var all_cont_p_by_pos_20 = let_result1491.getAt(1);if (pos_pre_inc_20!==false) {var if_res1492 = pos_pre_inc_20(pos_68);} else {var if_res1492 = pos_68;}var pos_72 = if_res1492;if (val_cont_p_21!==false) {var if_res1493 = val_cont_p_21(k_1);} else {var if_res1493 = true;}if (if_res1493!==false) {if (val_cont_p_22!==false) {var if_res1494 = val_cont_p_22(v_83);} else {var if_res1494 = true;}var if_res1495 = if_res1494;} else {var if_res1495 = false;}if (if_res1495!==false) {var stms_12 = stms_10;var kvs_2 = kvs_0;var let_result1496 = absyn_expr__gt_il(v_83,false);var s_times__0 = let_result1496.getAt(0);var v_times__0 = let_result1496.getAt(1);var let_result1497 = M0.values(M0.append(stms_12,s_times__0),M0.append(kvs_2,M0.list(M0.cons(Quote_datum(k_1),v_times__0))));var stms_13 = let_result1497.getAt(0);var kvs_3 = let_result1497.getAt(1);var let_result1498 = M0.values(stms_13,kvs_3);var stms_11 = let_result1498.getAt(0);var kvs_1 = let_result1498.getAt(1);if (all_cont_p_by_pos_19!==false) {var if_res1499 = all_cont_p_by_pos_19(pos_70);} else {var if_res1499 = true;}if (if_res1499!==false) {if (all_cont_p_by_pos_20!==false) {var if_res1500 = all_cont_p_by_pos_20(pos_72);} else {var if_res1500 = true;}if (if_res1500!==false) {var if_res1501 = M0.not(false);} else {var if_res1501 = false;}var if_res1502 = if_res1501;} else {var if_res1502 = false;}if (if_res1502!==false) {var if_res1503 = for_loop_22(stms_11,kvs_1,pos_next_22(pos_70),pos_next_23(pos_72));} else {var if_res1503 = M0.values(stms_11,kvs_1);}var if_res1504 = if_res1503;} else {var if_res1504 = M0.values(stms_10,kvs_0);}var if_res1505 = if_res1504;} else {var if_res1505 = M0.values(stms_10,kvs_0);}return if_res1505;};var let_result1506 = for_loop_22($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),init_22,init_23);var stms_times__0 = let_result1506.getAt(0);var items_times__0 = let_result1506.getAt(1);var if_res1507 = M0.values(stms_times__0,ILObject9_dot_1(items_times__0));} else {var if_res1507 = alt_67();}var if_res1508 = if_res1507;} else {var if_res1508 = alt_67();}return if_res1508;};var p_118 = v_80;if (M0.pair_p(p_118)!==false) {var a_193 = M0.cdr(p_118);var if_res1509 = M0.list_p(a_193);} else {var if_res1509 = false;}if (if_res1509!==false) {var p_119 = v_80;var a_194 = M0.car(p_119);var fst_21 = a_194;var d_56 = M0.cdr(p_119);var items_5 = d_56;var let_result1510 = M0.values(fst_21,items_5);var fst_20 = let_result1510.getAt(0);var items_4 = let_result1510.getAt(1);if (Quote_p(fst_20)!==false) {var if_res1511 = M0.eq_p(Quote_datum(fst_20),$rjs_core.PrimitiveSymbol.make("array"));} else {var if_res1511 = false;}if (if_res1511!==false) {var let_result1512 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("item")),items_4);var pos__gt_vals_23 = let_result1512.getAt(0);var pos_pre_inc_21 = let_result1512.getAt(1);var pos_next_24 = let_result1512.getAt(2);var init_24 = let_result1512.getAt(3);var pos_cont_p_24 = let_result1512.getAt(4);var val_cont_p_23 = let_result1512.getAt(5);var all_cont_p_23 = let_result1512.getAt(6);M0.rvoid();var for_loop_23 = function(stms_14, vals_8, pos_73) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_24!==false) {var if_res1513 = pos_cont_p_24(pos_73);} else {var if_res1513 = true;}if (if_res1513!==false) {var item_1 = pos__gt_vals_23(pos_73);if (all_cont_p_23!==false) {var if_res1514 = function(pos_74) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_23(pos_74,item_1);};} else {var if_res1514 = false;}var let_result1515 = M0.values(item_1,if_res1514);var item_0 = let_result1515.getAt(0);var all_cont_p_by_pos_21 = let_result1515.getAt(1);if (pos_pre_inc_21!==false) {var if_res1516 = pos_pre_inc_21(pos_73);} else {var if_res1516 = pos_73;}var pos_75 = if_res1516;if (val_cont_p_23!==false) {var if_res1517 = val_cont_p_23(item_0);} else {var if_res1517 = true;}if (if_res1517!==false) {var stms_16 = stms_14;var vals_10 = vals_8;var let_result1518 = absyn_expr__gt_il(item_0,false);var s_times__1 = let_result1518.getAt(0);var v_times__1 = let_result1518.getAt(1);var let_result1519 = M0.values(M0.append(stms_16,s_times__1),M0.append(vals_10,M0.list(v_times__1)));var stms_17 = let_result1519.getAt(0);var vals_11 = let_result1519.getAt(1);var let_result1520 = M0.values(stms_17,vals_11);var stms_15 = let_result1520.getAt(0);var vals_9 = let_result1520.getAt(1);if (all_cont_p_by_pos_21!==false) {var if_res1521 = all_cont_p_by_pos_21(pos_75);} else {var if_res1521 = true;}if (if_res1521!==false) {var if_res1522 = M0.not(false);} else {var if_res1522 = false;}if (if_res1522!==false) {var if_res1523 = for_loop_23(stms_15,vals_9,pos_next_24(pos_75));} else {var if_res1523 = M0.values(stms_15,vals_9);}var if_res1524 = if_res1523;} else {var if_res1524 = M0.values(stms_14,vals_8);}var if_res1525 = if_res1524;} else {var if_res1525 = M0.values(stms_14,vals_8);}return if_res1525;};var let_result1526 = for_loop_23($rjs_core.Pair.makeList(),$rjs_core.Pair.makeList(),init_24);var stms_times__1 = let_result1526.getAt(0);var items_times__1 = let_result1526.getAt(1);var if_res1527 = M0.values(stms_times__1,ILArray8_dot_1(items_times__1));} else {var if_res1527 = alt_66();}var if_res1528 = if_res1527;} else {var if_res1528 = alt_66();}return if_res1528;};var p_120 = v_80;if (M0.pair_p(p_120)!==false) {var a_195 = M0.cdr(p_120);var p_121 = a_195;if (M0.pair_p(p_121)!==false) {var a_196 = M0.cdr(p_121);var if_res1529 = M0.eq_p($rjs_core.Pair.makeList(),a_196);} else {var if_res1529 = false;}var if_res1530 = if_res1529;} else {var if_res1530 = false;}if (if_res1530!==false) {var p_122 = v_80;var a_197 = M0.car(p_122);var fst_23 = a_197;var d_57 = M0.cdr(p_122);var a_198 = M0.car(d_57);var lv_1 = a_198;var let_result1531 = M0.values(fst_23,lv_1);var fst_22 = let_result1531.getAt(0);var lv_0 = let_result1531.getAt(1);if (Quote_p(fst_22)!==false) {var if_res1532 = M0.eq_p(Quote_datum(fst_22),$rjs_core.PrimitiveSymbol.make("new"));} else {var if_res1532 = false;}if (if_res1532!==false) {var let_result1533 = absyn_expr__gt_il(lv_0,false);var stms_18 = let_result1533.getAt(0);var il_0 = let_result1533.getAt(1);var if_res1534 = M0.values(stms_18,ILNew13_dot_1(il_0));} else {var if_res1534 = alt_65();}var if_res1535 = if_res1534;} else {var if_res1535 = alt_65();}return if_res1535;};var p_123 = v_80;if (M0.pair_p(p_123)!==false) {var a_199 = M0.cdr(p_123);var p_124 = a_199;if (M0.pair_p(p_124)!==false) {var a_200 = M0.cdr(p_124);var p_125 = a_200;if (M0.pair_p(p_125)!==false) {var a_201 = M0.cdr(p_125);var if_res1536 = M0.eq_p($rjs_core.Pair.makeList(),a_201);} else {var if_res1536 = false;}var if_res1537 = if_res1536;} else {var if_res1537 = false;}var if_res1538 = if_res1537;} else {var if_res1538 = false;}if (if_res1538!==false) {var p_126 = v_80;var a_137 = M0.car(p_126);var fst_25 = a_137;var d_58 = M0.cdr(p_126);var p_127 = d_58;var a_202 = M0.car(p_127);var lv_4 = a_202;var d_59 = M0.cdr(p_127);var a_203 = M0.car(d_59);var rv_2 = a_203;var let_result1539 = M0.values(lv_4,rv_2);var lv_3 = let_result1539.getAt(0);var rv_1 = let_result1539.getAt(1);var let_result1540 = M0.values(fst_25,lv_3,rv_1);var fst_24 = let_result1540.getAt(0);var lv_2 = let_result1540.getAt(1);var rv_0 = let_result1540.getAt(2);if (Quote_p(fst_24)!==false) {var if_res1541 = M0.eq_p(Quote_datum(fst_24),$rjs_core.PrimitiveSymbol.make("assign"));} else {var if_res1541 = false;}if (if_res1541!==false) {var let_result1542 = absyn_expr__gt_il(lv_2,false);var lv_stms_0 = let_result1542.getAt(0);var lv_il_0 = let_result1542.getAt(1);var let_result1543 = absyn_expr__gt_il(rv_0,false);var rv_stms_0 = let_result1543.getAt(0);var rv_il_0 = let_result1543.getAt(1);var if_res1544 = M0.values(M0.append(lv_stms_0,rv_stms_0,M0.list(ILAssign24_dot_1(lv_il_0,rv_il_0))),ILValue12_dot_1(M0.rvoid()));} else {var if_res1544 = alt_64();}var if_res1545 = if_res1544;} else {var if_res1545 = alt_64();}return if_res1545;};var p_128 = v_80;if (M0.pair_p(p_128)!==false) {var a_140 = M0.cdr(p_128);var p_129 = a_140;if (M0.pair_p(p_129)!==false) {var a_204 = M0.cdr(p_129);var if_res1546 = M0.list_p(a_204);} else {var if_res1546 = false;}var if_res1547 = if_res1546;} else {var if_res1547 = false;}if (if_res1547!==false) {var p_130 = v_80;var a_205 = M0.car(p_130);var fst_27 = a_205;var d_60 = M0.cdr(p_130);var p_79 = d_60;var a_206 = M0.car(p_79);var b_22 = a_206;var d_38 = M0.cdr(p_79);var xs_22 = d_38;var let_result1548 = M0.values(b_22,xs_22);var b_21 = let_result1548.getAt(0);var xs_21 = let_result1548.getAt(1);var let_result1549 = M0.values(fst_27,b_21,xs_21);var fst_26 = let_result1549.getAt(0);var b_20 = let_result1549.getAt(1);var xs_20 = let_result1549.getAt(2);if (Quote_p(fst_26)!==false) {var if_res1550 = M0.eq_p(Quote_datum(fst_26),$rjs_core.PrimitiveSymbol.make("index"));} else {var if_res1550 = false;}if (if_res1550!==false) {var let_result1551 = absyn_expr__gt_il(b_20,false);var stms_19 = let_result1551.getAt(0);var il_1 = let_result1551.getAt(1);var let_result1552 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_20);var pos__gt_vals_24 = let_result1552.getAt(0);var pos_pre_inc_22 = let_result1552.getAt(1);var pos_next_25 = let_result1552.getAt(2);var init_25 = let_result1552.getAt(3);var pos_cont_p_25 = let_result1552.getAt(4);var val_cont_p_24 = let_result1552.getAt(5);var all_cont_p_24 = let_result1552.getAt(6);M0.rvoid();var for_loop_24 = function(stms_20, il_2, pos_76) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_25!==false) {var if_res1553 = pos_cont_p_25(pos_76);} else {var if_res1553 = true;}if (if_res1553!==false) {var x_37 = pos__gt_vals_24(pos_76);if (all_cont_p_24!==false) {var if_res1554 = function(pos_77) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_24(pos_77,x_37);};} else {var if_res1554 = false;}var let_result1555 = M0.values(x_37,if_res1554);var x_36 = let_result1555.getAt(0);var all_cont_p_by_pos_22 = let_result1555.getAt(1);if (pos_pre_inc_22!==false) {var if_res1556 = pos_pre_inc_22(pos_76);} else {var if_res1556 = pos_76;}var pos_78 = if_res1556;if (val_cont_p_24!==false) {var if_res1557 = val_cont_p_24(x_36);} else {var if_res1557 = true;}if (if_res1557!==false) {var stms_22 = stms_20;var il_4 = il_2;var let_result1558 = absyn_expr__gt_il(x_36,false);var x_stms_0 = let_result1558.getAt(0);var s_il_0 = let_result1558.getAt(1);var temp1560 = M0.append(stms_22,x_stms_0);if (ILValue_p(il_4)!==false) {var if_res1559 = ILIndex11_dot_1(ILValue_v(il_4),s_il_0);} else {var if_res1559 = ILIndex11_dot_1(il_4,s_il_0);}var let_result1561 = M0.values(temp1560,if_res1559);var stms_23 = let_result1561.getAt(0);var il_5 = let_result1561.getAt(1);var let_result1562 = M0.values(stms_23,il_5);var stms_21 = let_result1562.getAt(0);var il_3 = let_result1562.getAt(1);if (all_cont_p_by_pos_22!==false) {var if_res1563 = all_cont_p_by_pos_22(pos_78);} else {var if_res1563 = true;}if (if_res1563!==false) {var if_res1564 = M0.not(false);} else {var if_res1564 = false;}if (if_res1564!==false) {var if_res1565 = for_loop_24(stms_21,il_3,pos_next_25(pos_78));} else {var if_res1565 = M0.values(stms_21,il_3);}var if_res1566 = if_res1565;} else {var if_res1566 = M0.values(stms_20,il_2);}var if_res1567 = if_res1566;} else {var if_res1567 = M0.values(stms_20,il_2);}return if_res1567;};var if_res1568 = for_loop_24(stms_19,il_1,init_25);} else {var if_res1568 = alt_63();}var if_res1569 = if_res1568;} else {var if_res1569 = alt_63();}return if_res1569;};var p_131 = v_80;if (M0.pair_p(p_131)!==false) {var a_207 = M0.cdr(p_131);var p_85 = a_207;if (M0.pair_p(p_85)!==false) {var a_208 = M0.cdr(p_85);var if_res1570 = M0.list_p(a_208);} else {var if_res1570 = false;}var if_res1571 = if_res1570;} else {var if_res1571 = false;}if (if_res1571!==false) {var p_132 = v_80;var a_153 = M0.car(p_132);var fst_29 = a_153;var d_43 = M0.cdr(p_132);var p_133 = d_43;var a_209 = M0.car(p_133);var b_25 = a_209;var d_61 = M0.cdr(p_133);var xs_25 = d_61;var let_result1572 = M0.values(b_25,xs_25);var b_24 = let_result1572.getAt(0);var xs_24 = let_result1572.getAt(1);var let_result1573 = M0.values(fst_29,b_24,xs_24);var fst_28 = let_result1573.getAt(0);var b_23 = let_result1573.getAt(1);var xs_23 = let_result1573.getAt(2);if (Quote_p(fst_28)!==false) {var if_res1574 = M0.eq_p(Quote_datum(fst_28),$rjs_core.PrimitiveSymbol.make("ref"));} else {var if_res1574 = false;}if (if_res1574!==false) {var let_result1575 = absyn_expr__gt_il(b_23,false);var stms_24 = let_result1575.getAt(0);var il_6 = let_result1575.getAt(1);var let_result1576 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("x")),xs_23);var pos__gt_vals_25 = let_result1576.getAt(0);var pos_pre_inc_23 = let_result1576.getAt(1);var pos_next_26 = let_result1576.getAt(2);var init_26 = let_result1576.getAt(3);var pos_cont_p_26 = let_result1576.getAt(4);var val_cont_p_25 = let_result1576.getAt(5);var all_cont_p_25 = let_result1576.getAt(6);M0.rvoid();var for_loop_25 = function(il_7, pos_41) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_26!==false) {var if_res1577 = pos_cont_p_26(pos_41);} else {var if_res1577 = true;}if (if_res1577!==false) {var x_39 = pos__gt_vals_25(pos_41);if (all_cont_p_25!==false) {var if_res1578 = function(pos_79) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_25(pos_79,x_39);};} else {var if_res1578 = false;}var let_result1579 = M0.values(x_39,if_res1578);var x_38 = let_result1579.getAt(0);var all_cont_p_by_pos_23 = let_result1579.getAt(1);if (pos_pre_inc_23!==false) {var if_res1580 = pos_pre_inc_23(pos_41);} else {var if_res1580 = pos_41;}var pos_40 = if_res1580;if (val_cont_p_25!==false) {var if_res1581 = val_cont_p_25(x_38);} else {var if_res1581 = true;}if (if_res1581!==false) {var il_9 = il_7;var v_85 = x_38;var v_86 = v_85;var vec_v_32 = M0.struct__gt_vector(v_86);var alt_77 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_86);};if (Quote_p(v_86)!==false) {var s_17 = M0.vector__gt_values(vec_v_32,1);var if_res1582 = M0.values(s_17);} else {var if_res1582 = alt_77();}var s_16 = if_res1582;if (ILValue_p(il_9)!==false) {var if_res1583 = ILRef10_dot_1(ILValue_v(il_9),s_16);} else {var if_res1583 = ILRef10_dot_1(il_9,s_16);}var il_10 = if_res1583;var il_8 = M0.values(il_10);if (all_cont_p_by_pos_23!==false) {var if_res1584 = all_cont_p_by_pos_23(pos_40);} else {var if_res1584 = true;}if (if_res1584!==false) {var if_res1585 = M0.not(false);} else {var if_res1585 = false;}if (if_res1585!==false) {var if_res1586 = for_loop_25(il_8,pos_next_26(pos_40));} else {var if_res1586 = il_8;}var if_res1587 = if_res1586;} else {var if_res1587 = il_7;}var if_res1588 = if_res1587;} else {var if_res1588 = il_7;}return if_res1588;};var if_res1589 = M0.values(stms_24,for_loop_25(il_6,init_26));} else {var if_res1589 = alt_62();}var if_res1590 = if_res1589;} else {var if_res1590 = alt_62();}return if_res1590;};var p_134 = v_80;if (M0.pair_p(p_134)!==false) {var a_210 = M0.cdr(p_134);var p_135 = a_210;if (M0.pair_p(p_135)!==false) {var a_211 = M0.cdr(p_135);var if_res1591 = M0.eq_p($rjs_core.Pair.makeList(),a_211);} else {var if_res1591 = false;}var if_res1592 = if_res1591;} else {var if_res1592 = false;}if (if_res1592!==false) {var p_136 = v_80;var a_212 = M0.car(p_136);var fst_31 = a_212;var d_62 = M0.cdr(p_136);var a_213 = M0.car(d_62);var snd_7 = a_213;var let_result1593 = M0.values(fst_31,snd_7);var fst_30 = let_result1593.getAt(0);var snd_6 = let_result1593.getAt(1);if (Quote_p(fst_30)!==false) {if (Quote_p(snd_6)!==false) {var if_res1594 = M0.eq_p(Quote_datum(fst_30),$rjs_core.PrimitiveSymbol.make("string"));} else {var if_res1594 = false;}var if_res1595 = if_res1594;} else {var if_res1595 = false;}if (if_res1595!==false) {var if_res1596 = M0.values($rjs_core.Pair.makeList(),ILValue12_dot_1(Quote_datum(snd_6)));} else {var if_res1596 = alt_61();}var if_res1597 = if_res1596;} else {var if_res1597 = alt_61();}return if_res1597;};var p_137 = v_80;if (M0.pair_p(p_137)!==false) {var a_214 = M0.cdr(p_137);var p_138 = a_214;if (M0.pair_p(p_138)!==false) {var a_215 = M0.cdr(p_138);var if_res1598 = M0.eq_p($rjs_core.Pair.makeList(),a_215);} else {var if_res1598 = false;}var if_res1599 = if_res1598;} else {var if_res1599 = false;}if (if_res1599!==false) {var p_139 = v_80;var a_216 = M0.car(p_139);var fst_33 = a_216;var d_63 = M0.cdr(p_139);var a_217 = M0.car(d_63);var snd_9 = a_217;var let_result1600 = M0.values(fst_33,snd_9);var fst_32 = let_result1600.getAt(0);var snd_8 = let_result1600.getAt(1);if (Quote_p(fst_32)!==false) {if (Quote_p(snd_8)!==false) {var if_res1601 = M0.eq_p(Quote_datum(fst_32),$rjs_core.PrimitiveSymbol.make("var"));} else {var if_res1601 = false;}var if_res1602 = if_res1601;} else {var if_res1602 = false;}if (if_res1602!==false) {var if_res1603 = M0.values($rjs_core.Pair.makeList(),Quote_datum(snd_8));} else {var if_res1603 = alt_60();}var if_res1604 = if_res1603;} else {var if_res1604 = alt_60();}var if_res1605 = if_res1604;} else {var if_res1605 = alt_46();}var if_res1606 = if_res1605;} else {var if_res1606 = alt_46();}return if_res1606;};if (Set_bang__p(v_67)!==false) {var let_result1607 = M0.vector__gt_values(vec_v_19,1);var id_6 = let_result1607.getAt(0);var e_19 = let_result1607.getAt(1);var let_result1608 = absyn_expr__gt_il(e_19,false);var stms_25 = let_result1608.getAt(0);var v_87 = let_result1608.getAt(1);var if_res1609 = M0.values(append1(stms_25,ILAssign24_dot_1(id_6,v_87)),ILValue12_dot_1(M0.rvoid()));} else {var if_res1609 = alt_45();}return if_res1609;};if (LetValues_p(v_67)!==false) {var let_result1610 = M0.vector__gt_values(vec_v_18,1);var bindings_1 = let_result1610.getAt(0);var body_7 = let_result1610.getAt(1);var let_result1611 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("b")),bindings_1);var pos__gt_vals_26 = let_result1611.getAt(0);var pos_pre_inc_24 = let_result1611.getAt(1);var pos_next_27 = let_result1611.getAt(2);var init_27 = let_result1611.getAt(3);var pos_cont_p_27 = let_result1611.getAt(4);var val_cont_p_26 = let_result1611.getAt(5);var all_cont_p_26 = let_result1611.getAt(6);M0.rvoid();var for_loop_26 = function(stms_26, pos_80) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_27!==false) {var if_res1612 = pos_cont_p_27(pos_80);} else {var if_res1612 = true;}if (if_res1612!==false) {var b_27 = pos__gt_vals_26(pos_80);if (all_cont_p_26!==false) {var if_res1613 = function(pos_81) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_26(pos_81,b_27);};} else {var if_res1613 = false;}var let_result1614 = M0.values(b_27,if_res1613);var b_26 = let_result1614.getAt(0);var all_cont_p_by_pos_24 = let_result1614.getAt(1);if (pos_pre_inc_24!==false) {var if_res1615 = pos_pre_inc_24(pos_80);} else {var if_res1615 = pos_80;}var pos_82 = if_res1615;if (val_cont_p_26!==false) {var if_res1616 = val_cont_p_26(b_26);} else {var if_res1616 = true;}if (if_res1616!==false) {var stms_28 = stms_26;var stms_29 = M0.append(stms_28,absyn_binding__gt_il(b_26));var stms_27 = M0.values(stms_29);if (all_cont_p_by_pos_24!==false) {var if_res1617 = all_cont_p_by_pos_24(pos_82);} else {var if_res1617 = true;}if (if_res1617!==false) {var if_res1618 = M0.not(false);} else {var if_res1618 = false;}if (if_res1618!==false) {var if_res1619 = for_loop_26(stms_27,pos_next_27(pos_82));} else {var if_res1619 = stms_27;}var if_res1620 = if_res1619;} else {var if_res1620 = stms_26;}var if_res1621 = if_res1620;} else {var if_res1621 = stms_26;}return if_res1621;};var binding_stms_0 = for_loop_26($rjs_core.Pair.makeList(),init_27);var body13_0 = sequence_length(body_7);var let_result1622 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),body_7);var pos__gt_vals_27 = let_result1622.getAt(0);var pos_pre_inc_25 = let_result1622.getAt(1);var pos_next_28 = let_result1622.getAt(2);var init_28 = let_result1622.getAt(3);var pos_cont_p_28 = let_result1622.getAt(4);var val_cont_p_27 = let_result1622.getAt(5);var all_cont_p_27 = let_result1622.getAt(6);var start_11 = 0;var end_5 = body13_0;var inc_1 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1623 = M0.rvoid();} else {var if_res1623 = check_range(start_11,end_5,inc_1);}if_res1623;var for_loop_27 = function(stms_30, rv_3, pos_83, pos_84) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_28!==false) {var if_res1624 = pos_cont_p_28(pos_83);} else {var if_res1624 = true;}if (if_res1624!==false) {var if_res1625 = M0.__lt_(pos_84,end_5);} else {var if_res1625 = false;}if (if_res1625!==false) {var e_21 = pos__gt_vals_27(pos_83);if (all_cont_p_27!==false) {var if_res1626 = function(pos_85) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_27(pos_85,e_21);};} else {var if_res1626 = false;}var let_result1627 = M0.values(e_21,if_res1626);var e_20 = let_result1627.getAt(0);var all_cont_p_by_pos_25 = let_result1627.getAt(1);if (pos_pre_inc_25!==false) {var if_res1628 = pos_pre_inc_25(pos_83);} else {var if_res1628 = pos_83;}var pos_86 = if_res1628;var body14_0 = pos_84;if (val_cont_p_27!==false) {var if_res1629 = val_cont_p_27(e_20);} else {var if_res1629 = true;}if (if_res1629!==false) {var if_res1630 = true;} else {var if_res1630 = false;}if (if_res1630!==false) {var stms_32 = stms_30;var last_p_1 = M0.equal_p(M0.sub1(body13_0),body14_0);if (last_p_1!==false) {var if_res1631 = overwrite_mark_frame_p_0;} else {var if_res1631 = false;}var let_result1632 = absyn_expr__gt_il(e_20,if_res1631);var s_18 = let_result1632.getAt(0);var nv_0 = let_result1632.getAt(1);if (last_p_1!==false) {var if_res1633 = M0.values(M0.append(stms_32,s_18),nv_0);} else {var if_res1633 = M0.values(M0.append(stms_32,s_18,M0.list(nv_0)),nv_0);}var let_result1634 = if_res1633;var stms_33 = let_result1634.getAt(0);var rv_5 = let_result1634.getAt(1);var let_result1635 = M0.values(stms_33,rv_5);var stms_31 = let_result1635.getAt(0);var rv_4 = let_result1635.getAt(1);if (all_cont_p_by_pos_25!==false) {var if_res1636 = all_cont_p_by_pos_25(pos_86);} else {var if_res1636 = true;}if (if_res1636!==false) {var if_res1637 = M0.not(false);} else {var if_res1637 = false;}if (if_res1637!==false) {var if_res1638 = for_loop_27(stms_31,rv_4,pos_next_28(pos_86),pos_84+inc_1);} else {var if_res1638 = M0.values(stms_31,rv_4);}var if_res1639 = if_res1638;} else {var if_res1639 = M0.values(stms_30,rv_3);}var if_res1640 = if_res1639;} else {var if_res1640 = M0.values(stms_30,rv_3);}return if_res1640;};var if_res1641 = for_loop_27(binding_stms_0,ILValue12_dot_1(M0.rvoid()),init_28,start_11);} else {var if_res1641 = alt_44();}return if_res1641;};if (If_p(v_67)!==false) {var let_result1642 = M0.vector__gt_values(vec_v_17,1);var pred_e_0 = let_result1642.getAt(0);var t_branch_0 = let_result1642.getAt(1);var f_branch_0 = let_result1642.getAt(2);var let_result1643 = absyn_expr__gt_il(pred_e_0,false);var ps_0 = let_result1643.getAt(0);var pe_0 = let_result1643.getAt(1);var let_result1644 = absyn_expr__gt_il(t_branch_0,overwrite_mark_frame_p_0);var ts_0 = let_result1644.getAt(0);var te_0 = let_result1644.getAt(1);var let_result1645 = absyn_expr__gt_il(f_branch_0,overwrite_mark_frame_p_0);var fs_2 = let_result1645.getAt(0);var fe_0 = let_result1645.getAt(1);var result_id_1 = fresh_id($rjs_core.PrimitiveSymbol.make("if_res"));var if_res1646 = M0.values(M0.append(ps_0,M0.list(ILIf22_dot_1(ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("!=="),M0.list(pe_0,ILValue12_dot_1(false))),append1(ts_0,ILVarDec20_dot_1(result_id_1,te_0)),append1(fs_2,ILVarDec20_dot_1(result_id_1,fe_0))))),result_id_1);} else {var if_res1646 = alt_43();}return if_res1646;};if (CaseLambda_p(v_67)!==false) {var clauses_1 = M0.vector__gt_values(vec_v_16,1);if (case_lambda_has_dead_clause_p(expr_6)!==false) {log_rjs_warning($rjs_core.UString.make("found a case-lambda with dead-clause"));var if_res1647 = M0.values($rjs_core.Pair.makeList(),clauses_1);} else {var if_res1647 = M0.values(filter(function(l_23) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.number_p(lambda_arity(l_23));},clauses_1),filter(function(l_24) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(M0.number_p(lambda_arity(l_24)));},clauses_1));}var let_result1648 = if_res1647;var fixed_lams_0 = let_result1648.getAt(0);var rest_lams_0 = let_result1648.getAt(1);var let_result1649 = expand_normal_case_lambda(fixed_lams_0,rest_lams_0);var stms_34 = let_result1649.getAt(0);var val_7 = let_result1649.getAt(1);var let_result1650 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("c")),resolve_procedure_arities(map2(lambda_arity,clauses_1)));var pos__gt_vals_28 = let_result1650.getAt(0);var pos_pre_inc_26 = let_result1650.getAt(1);var pos_next_29 = let_result1650.getAt(2);var init_29 = let_result1650.getAt(3);var pos_cont_p_29 = let_result1650.getAt(4);var val_cont_p_28 = let_result1650.getAt(5);var all_cont_p_28 = let_result1650.getAt(6);M0.rvoid();var for_loop_28 = function(fold_var_12, pos_87) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_29!==false) {var if_res1651 = pos_cont_p_29(pos_87);} else {var if_res1651 = true;}if (if_res1651!==false) {var c_13 = pos__gt_vals_28(pos_87);if (all_cont_p_28!==false) {var if_res1652 = function(pos_88) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_28(pos_88,c_13);};} else {var if_res1652 = false;}var let_result1653 = M0.values(c_13,if_res1652);var c_12 = let_result1653.getAt(0);var all_cont_p_by_pos_26 = let_result1653.getAt(1);if (pos_pre_inc_26!==false) {var if_res1654 = pos_pre_inc_26(pos_87);} else {var if_res1654 = pos_87;}var pos_89 = if_res1654;if (val_cont_p_28!==false) {var if_res1655 = val_cont_p_28(c_12);} else {var if_res1655 = true;}if (if_res1655!==false) {var fold_var_14 = fold_var_12;if (M0.arity_at_least_p(c_12)!==false) {var let_result1656 = absyn_expr__gt_il(App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("make-arity-at-least"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1(M0.arity_at_least_value(c_12)))),false);var __7 = let_result1656.getAt(0);var val_8 = let_result1656.getAt(1);var if_res1658 = val_8;} else {if (M0.number_p(c_12)!==false) {var if_res1657 = ILValue12_dot_1(c_12);} else {var if_res1657 = M0.rvoid();}var if_res1658 = if_res1657;}var fold_var_15 = M0.cons(if_res1658,fold_var_14);var fold_var_13 = M0.values(fold_var_15);if (all_cont_p_by_pos_26!==false) {var if_res1659 = all_cont_p_by_pos_26(pos_89);} else {var if_res1659 = true;}if (if_res1659!==false) {var if_res1660 = M0.not(false);} else {var if_res1660 = false;}if (if_res1660!==false) {var if_res1661 = for_loop_28(fold_var_13,pos_next_29(pos_89));} else {var if_res1661 = fold_var_13;}var if_res1662 = if_res1661;} else {var if_res1662 = fold_var_12;}var if_res1663 = if_res1662;} else {var if_res1663 = fold_var_12;}return if_res1663;};var arities_0 = ILArray8_dot_1(reverse$1(for_loop_28(M0.rnull,init_29)));var if_res1664 = M0.values(stms_34,ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("attachProcedureArity")),M0.list(val_7,arities_0)));} else {var if_res1664 = alt_42();}return if_res1664;};if (Lambda_p(v_67)!==false) {var let_result1665 = M0.vector__gt_values(vec_v_15,1);var formals_7 = let_result1665.getAt(0);var body_8 = let_result1665.getAt(1);var unchecked_p_0 = let_result1665.getAt(2);var ___gt_jslist_0 = function(f_31) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("->jslist");return ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.listFromArray")),M0.list(f_31));};var maybe_make_checked_formals_0 = function(formals_8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("maybe-make-checked-formals");var or_part_74 = unchecked_p_0;if (or_part_74!==false) {var if_res1666 = or_part_74;} else {var if_res1666 = skip_arity_checks_p();}if (if_res1666!==false) {var if_res1667 = formals_8;} else {var if_res1667 = ILCheckedFormals4_dot_1(formals_8);}return if_res1667;};if (M0.symbol_p(formals_7)!==false) {var in_formals_1 = fresh_id(formals_7);var if_res1670 = M0.values(in_formals_1,M0.list(ILVarDec20_dot_1(formals_7,___gt_jslist_0(in_formals_1))));} else {if (M0.list_p(formals_7)!==false) {var if_res1669 = M0.values(formals_7,$rjs_core.Pair.makeList());} else {if (cons_p(formals_7)!==false) {var fi_0 = M0.car(formals_7);var fp_0 = M0.cdr(formals_7);var in_fp_0 = fresh_id(fp_0);var if_res1668 = M0.values(M0.cons(fi_0,in_fp_0),M0.list(ILVarDec20_dot_1(fp_0,___gt_jslist_0(in_fp_0))));} else {var if_res1668 = M0.rvoid();}var if_res1669 = if_res1668;}var if_res1670 = if_res1669;}var let_result1671 = if_res1670;var in_formals_0 = let_result1671.getAt(0);var stms_formals_init_0 = let_result1671.getAt(1);var body18_0 = sequence_length(body_8);var let_result1672 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("e")),body_8);var pos__gt_vals_29 = let_result1672.getAt(0);var pos_pre_inc_27 = let_result1672.getAt(1);var pos_next_30 = let_result1672.getAt(2);var init_30 = let_result1672.getAt(3);var pos_cont_p_30 = let_result1672.getAt(4);var val_cont_p_29 = let_result1672.getAt(5);var all_cont_p_29 = let_result1672.getAt(6);var start_12 = 0;var end_6 = body18_0;var inc_2 = 1;M0.rvoid();if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1673 = M0.rvoid();} else {var if_res1673 = check_range(start_12,end_6,inc_2);}if_res1673;var for_loop_29 = function(stms_35, rv_6, pos_90, pos_91) {if (arguments.length!==4) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_30!==false) {var if_res1674 = pos_cont_p_30(pos_90);} else {var if_res1674 = true;}if (if_res1674!==false) {var if_res1675 = M0.__lt_(pos_91,end_6);} else {var if_res1675 = false;}if (if_res1675!==false) {var e_23 = pos__gt_vals_29(pos_90);if (all_cont_p_29!==false) {var if_res1676 = function(pos_92) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_29(pos_92,e_23);};} else {var if_res1676 = false;}var let_result1677 = M0.values(e_23,if_res1676);var e_22 = let_result1677.getAt(0);var all_cont_p_by_pos_27 = let_result1677.getAt(1);if (pos_pre_inc_27!==false) {var if_res1678 = pos_pre_inc_27(pos_90);} else {var if_res1678 = pos_90;}var pos_93 = if_res1678;var body19_0 = pos_91;if (val_cont_p_29!==false) {var if_res1679 = val_cont_p_29(e_22);} else {var if_res1679 = true;}if (if_res1679!==false) {var if_res1680 = true;} else {var if_res1680 = false;}if (if_res1680!==false) {var stms_37 = stms_35;var last_p_2 = M0.equal_p(M0.sub1(body18_0),body19_0);if (last_p_2!==false) {var if_res1681 = overwrite_mark_frame_p_0;} else {var if_res1681 = false;}var let_result1682 = absyn_expr__gt_il(e_22,if_res1681);var s_19 = let_result1682.getAt(0);var v_88 = let_result1682.getAt(1);if (last_p_2!==false) {var if_res1683 = M0.values(M0.append(stms_37,s_19),v_88);} else {var if_res1683 = M0.values(M0.append(stms_37,s_19,M0.list(v_88)),v_88);}var let_result1684 = if_res1683;var stms_38 = let_result1684.getAt(0);var rv_8 = let_result1684.getAt(1);var let_result1685 = M0.values(stms_38,rv_8);var stms_36 = let_result1685.getAt(0);var rv_7 = let_result1685.getAt(1);if (all_cont_p_by_pos_27!==false) {var if_res1686 = all_cont_p_by_pos_27(pos_93);} else {var if_res1686 = true;}if (if_res1686!==false) {var if_res1687 = M0.not(false);} else {var if_res1687 = false;}if (if_res1687!==false) {var if_res1688 = for_loop_29(stms_36,rv_7,pos_next_30(pos_93),pos_91+inc_2);} else {var if_res1688 = M0.values(stms_36,rv_7);}var if_res1689 = if_res1688;} else {var if_res1689 = M0.values(stms_35,rv_6);}var if_res1690 = if_res1689;} else {var if_res1690 = M0.values(stms_35,rv_6);}return if_res1690;};var let_result1691 = for_loop_29($rjs_core.Pair.makeList(),ILValue12_dot_1(M0.rvoid()),init_30,start_12);var body_stms_0 = let_result1691.getAt(0);var body_value_0 = let_result1691.getAt(1);var lambda_expr_0 = ILLambda5_dot_1(maybe_make_checked_formals_0(in_formals_0),M0.append(stms_formals_init_0,body_stms_0,M0.list(ILReturn26_dot_1(body_value_0))));var temp1693 = $rjs_core.Pair.makeList();if (variadic_lambda_p(expr_6)!==false) {var if_res1692 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("attachProcedureArity")),M0.list(lambda_expr_0));} else {var if_res1692 = lambda_expr_0;}var if_res1694 = M0.values(temp1693,if_res1692);} else {var if_res1694 = alt_41();}return if_res1694;};var absyn_binding__gt_il = function(b_28) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var v_89 = b_28;var v_90 = v_89;var alt_78 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_90);};var p_140 = v_90;if (M0.pair_p(p_140)!==false) {var if_res1695 = true;} else {var if_res1695 = false;}if (if_res1695!==false) {var p_141 = v_90;var a_218 = M0.car(p_141);var args_18 = a_218;var d_64 = M0.cdr(p_141);var expr_9 = d_64;var let_result1696 = M0.values(args_18,expr_9);var args_17 = let_result1696.getAt(0);var expr_8 = let_result1696.getAt(1);var if_res1697 = M0.values(args_17,expr_8);} else {var if_res1697 = alt_78();}var let_result1698 = if_res1697;var args_16 = let_result1698.getAt(0);var expr_7 = let_result1698.getAt(1);var let_result1699 = absyn_expr__gt_il(expr_7,false);var stms_39 = let_result1699.getAt(0);var v_91 = let_result1699.getAt(1);var v_92 = args_16;var alt_79 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var result_id_2 = fresh_id($rjs_core.PrimitiveSymbol.make("let_result"));var start_13 = 0;var end_7 = M0.length(args_16);var inc_3 = 1;var let_result1700 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("arg")),args_16);var pos__gt_vals_30 = let_result1700.getAt(0);var pos_pre_inc_28 = let_result1700.getAt(1);var pos_next_31 = let_result1700.getAt(2);var init_31 = let_result1700.getAt(3);var pos_cont_p_31 = let_result1700.getAt(4);var val_cont_p_30 = let_result1700.getAt(5);var all_cont_p_30 = let_result1700.getAt(6);if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1701 = M0.rvoid();} else {var if_res1701 = check_range(start_13,end_7,inc_3);}if_res1701;M0.rvoid();var for_loop_30 = function(fold_var_16, pos_94, pos_95) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.__lt_(pos_94,end_7)!==false) {if (pos_cont_p_31!==false) {var if_res1702 = pos_cont_p_31(pos_95);} else {var if_res1702 = true;}var if_res1703 = if_res1702;} else {var if_res1703 = false;}if (if_res1703!==false) {var i_54 = pos_94;var arg_3 = pos__gt_vals_30(pos_95);if (all_cont_p_30!==false) {var if_res1704 = function(pos_96) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_30(pos_96,arg_3);};} else {var if_res1704 = false;}var let_result1705 = M0.values(arg_3,if_res1704);var arg_2 = let_result1705.getAt(0);var all_cont_p_by_pos_28 = let_result1705.getAt(1);if (pos_pre_inc_28!==false) {var if_res1706 = pos_pre_inc_28(pos_95);} else {var if_res1706 = pos_95;}var pos_97 = if_res1706;if (val_cont_p_30!==false) {var if_res1707 = val_cont_p_30(arg_2);} else {var if_res1707 = true;}if (if_res1707!==false) {var fold_var_18 = fold_var_16;var fold_var_19 = M0.cons(ILVarDec20_dot_1(arg_2,ILApp7_dot_1(ILRef10_dot_1(result_id_2,$rjs_core.PrimitiveSymbol.make("getAt")),M0.list(ILValue12_dot_1(i_54)))),fold_var_18);var fold_var_17 = M0.values(fold_var_19);if (all_cont_p_by_pos_28!==false) {var if_res1708 = all_cont_p_by_pos_28(pos_97);} else {var if_res1708 = true;}if (if_res1708!==false) {var if_res1709 = M0.not(false);} else {var if_res1709 = false;}if (if_res1709!==false) {var if_res1710 = for_loop_30(fold_var_17,pos_94+inc_3,pos_next_31(pos_97));} else {var if_res1710 = fold_var_17;}var if_res1711 = if_res1710;} else {var if_res1711 = fold_var_16;}var if_res1712 = if_res1711;} else {var if_res1712 = fold_var_16;}return if_res1712;};var binding_stms_1 = reverse$1(for_loop_30(M0.rnull,start_13,init_31));return M0.append(stms_39,M0.cons(ILVarDec20_dot_1(result_id_2,v_91),binding_stms_1));};var p_142 = v_92;if (M0.pair_p(p_142)!==false) {var a_219 = M0.cdr(p_142);var if_res1713 = M0.eq_p($rjs_core.Pair.makeList(),a_219);} else {var if_res1713 = false;}if (if_res1713!==false) {var a_221 = M0.car(v_92);var a_220 = a_221;var if_res1714 = append1(stms_39,ILVarDec20_dot_1(a_220,v_91));} else {var if_res1714 = alt_79();}return if_res1714;};var absyn_value__gt_il = function(d_65) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}if (Quote_p(d_65)!==false) {var if_res1742 = absyn_value__gt_il(Quote_datum(d_65));} else {if (M0.string_p(d_65)!==false) {var if_res1741 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("UString.make")),M0.list(ILValue12_dot_1(d_65)));} else {if (M0.symbol_p(d_65)!==false) {var if_res1740 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("PrimitiveSymbol.make")),M0.list(ILValue12_dot_1(M0.symbol__gt_string(d_65))));} else {if (M0.keyword_p(d_65)!==false) {var if_res1739 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Keyword.make")),M0.list(ILValue12_dot_1(M0.keyword__gt_string(d_65))));} else {if (M0.list_p(d_65)!==false) {var if_res1738 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.makeList")),map2(absyn_value__gt_il,d_65));} else {if (empty_p(d_65)!==false) {var if_res1737 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.EMPTY"));} else {if (cons_p(d_65)!==false) {var if_res1736 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Pair.make")),M0.list(absyn_value__gt_il(M0.car(d_65)),absyn_value__gt_il(M0.cdr(d_65))));} else {if (M0.vector_p(d_65)!==false) {var if_res1735 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Vector.make")),M0.list(ILArray8_dot_1(map2(absyn_value__gt_il,M0.vector__gt_list(d_65)))));} else {if (M0.hash_p(d_65)!==false) {if (M0.hash_eq_p(d_65)!==false) {var if_res1717 = $rjs_core.PrimitiveSymbol.make("Hash.makeEq");} else {if (M0.hash_eqv_p(d_65)!==false) {var if_res1716 = $rjs_core.PrimitiveSymbol.make("Hash.makeEqv");} else {if (M0.hash_equal_p(d_65)!==false) {var if_res1715 = $rjs_core.PrimitiveSymbol.make("Hash.makeEqual");} else {var if_res1715 = M0.error($rjs_core.PrimitiveSymbol.make("assemble-value"),$rjs_core.UString.make("unknown hash type"));}var if_res1716 = if_res1715;}var if_res1717 = if_res1716;}var maker_0 = if_res1717;var mutable_0 = M0.not(M0.immutable_p(d_65));var temp1722 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),maker_0);var ht_7 = d_65;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1718 = M0.rvoid();} else {var if_res1718 = check_in_hash(ht_7);}if_res1718;var for_loop_31 = function(fold_var_20, i_55) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_55!==false) {var let_result1719 = M0.hash_iterate_key_plus_value(ht_7,i_55);var key_12 = let_result1719.getAt(0);var value_4 = let_result1719.getAt(1);var fold_var_22 = fold_var_20;var fold_var_23 = M0.cons(ILArray8_dot_1(M0.list(absyn_value__gt_il(key_12),absyn_value__gt_il(value_4))),fold_var_22);var fold_var_21 = M0.values(fold_var_23);if (M0.not(false)!==false) {var if_res1720 = for_loop_31(fold_var_21,M0.hash_iterate_next(ht_7,i_55));} else {var if_res1720 = fold_var_21;}var if_res1721 = if_res1720;} else {var if_res1721 = fold_var_20;}return if_res1721;};var if_res1734 = ILApp7_dot_1(temp1722,M0.list(ILArray8_dot_1(reverse$1(for_loop_31(M0.rnull,M0.hash_iterate_first(ht_7)))),ILValue12_dot_1(mutable_0)));} else {if (M0.bytes_p(d_65)!==false) {var if_res1733 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Bytes.fromIntArray")),M0.list(ILArray8_dot_1(map2(ILValue12_dot_1,M0.bytes__gt_list(d_65)))));} else {if (M0.box_p(d_65)!==false) {var if_res1732 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Box.make")),M0.list(absyn_value__gt_il(M0.unbox(d_65))));} else {if (M0.char_p(d_65)!==false) {var if_res1731 = ILApp7_dot_1(name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Char.charFromCodepoint")),M0.list(absyn_value__gt_il(M0.char__gt_integer(d_65))));} else {var or_part_75 = M0.regexp_p(d_65);if (or_part_75!==false) {var if_res1723 = or_part_75;} else {var if_res1723 = M0.byte_regexp_p(d_65);}if (if_res1723!==false) {var v_93 = M0.object_name(d_65);var temp1725 = name_in_module($rjs_core.PrimitiveSymbol.make("core"),$rjs_core.PrimitiveSymbol.make("Regexp.fromString"));if (M0.bytes_p(v_93)!==false) {var if_res1724 = M0.bytes__gt_string_by_utf_8(v_93);} else {var if_res1724 = v_93;}var if_res1730 = ILApp7_dot_1(temp1725,M0.list(ILValue12_dot_1(if_res1724)));} else {var or_part_76 = M0.integer_p(d_65);if (or_part_76!==false) {var if_res1728 = or_part_76;} else {var or_part_77 = M0.boolean_p(d_65);if (or_part_77!==false) {var if_res1727 = or_part_77;} else {var or_part_78 = M0.void_p(d_65);if (or_part_78!==false) {var if_res1726 = or_part_78;} else {var if_res1726 = M0.real_p(d_65);}var if_res1727 = if_res1726;}var if_res1728 = if_res1727;}if (if_res1728!==false) {var if_res1729 = ILValue12_dot_1(d_65);} else {var if_res1729 = M0.error(__a($rjs_core.UString.make("unsupported value"),d_65));}var if_res1730 = if_res1729;}var if_res1731 = if_res1730;}var if_res1732 = if_res1731;}var if_res1733 = if_res1732;}var if_res1734 = if_res1733;}var if_res1735 = if_res1734;}var if_res1736 = if_res1735;}var if_res1737 = if_res1736;}var if_res1738 = if_res1737;}var if_res1739 = if_res1738;}var if_res1740 = if_res1739;}var if_res1741 = if_res1740;}var if_res1742 = if_res1741;}return if_res1742;};var expand_normal_case_lambda = function(fixed_lams_1, rest_lams_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var fixed_lam_names_0 = build_list(M0.length(fixed_lams_1),function(__8) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fresh_id($rjs_core.PrimitiveSymbol.make("cl"));});var rest_lam_names_0 = build_list(M0.length(rest_lams_1),function(__9) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return fresh_id($rjs_core.PrimitiveSymbol.make("cl"));});var fixed_lam_name_0 = fresh_id($rjs_core.PrimitiveSymbol.make("fixed-lam"));var fixed_lam_map_0 = ILObject9_dot_1(map2(function(id_7, lam_3) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_4 = lambda_arity(lam_3);if (M0.number_p(arity_4)!==false) {var if_res1743 = M0.cons(M0.string__gt_symbol(__a(arity_4)),id_7);} else {var if_res1743 = M0.error($rjs_core.PrimitiveSymbol.make("expand-normal-case-lambda"),$rjs_core.UString.make("assertion failed"));}return if_res1743;},fixed_lam_names_0,fixed_lams_1));var __times_null_times__0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("null"))));var __times_arguments_times__0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("arguments"))));var loop_55 = function(lams_times__0, names_times__0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_94 = M0.list(lams_times__0,names_times__0);var alt_80 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_81 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_94);};var p_143 = v_94;if (M0.pair_p(p_143)!==false) {var a_222 = M0.car(p_143);var p_144 = a_222;if (M0.pair_p(p_144)!==false) {var if_res1744 = true;} else {var if_res1744 = false;}if (if_res1744!==false) {var a_223 = M0.cdr(p_143);var p_145 = a_223;if (M0.pair_p(p_145)!==false) {var a_224 = M0.car(p_145);var p_146 = a_224;if (M0.pair_p(p_146)!==false) {var if_res1745 = true;} else {var if_res1745 = false;}if (if_res1745!==false) {var a_225 = M0.cdr(p_145);var if_res1746 = M0.eq_p($rjs_core.Pair.makeList(),a_225);} else {var if_res1746 = false;}var if_res1747 = if_res1746;} else {var if_res1747 = false;}var if_res1748 = if_res1747;} else {var if_res1748 = false;}var if_res1749 = if_res1748;} else {var if_res1749 = false;}if (if_res1749!==false) {var p_147 = v_94;var a_226 = M0.car(p_147);var p_148 = a_226;var a_227 = M0.car(p_148);var lh_2 = a_227;var d_66 = M0.cdr(p_148);var lt_2 = d_66;var let_result1750 = M0.values(lh_2,lt_2);var lh_1 = let_result1750.getAt(0);var lt_1 = let_result1750.getAt(1);var d_67 = M0.cdr(p_147);var a_228 = M0.car(d_67);var p_149 = a_228;var a_229 = M0.car(p_149);var nh_2 = a_229;var d_68 = M0.cdr(p_149);var nt_2 = d_68;var let_result1751 = M0.values(nh_2,nt_2);var nh_1 = let_result1751.getAt(0);var nt_1 = let_result1751.getAt(1);var let_result1752 = M0.values(lh_1,lt_1,nh_1,nt_1);var lh_0 = let_result1752.getAt(0);var lt_0 = let_result1752.getAt(1);var nh_0 = let_result1752.getAt(2);var nt_0 = let_result1752.getAt(3);var arguments_length_0 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("ref")),LocalIdent6_dot_1(nh_0),Quote7_dot_1($rjs_core.PrimitiveSymbol.make("length"))));var if_res1753 = If12_dot_1(get_formals_predicate(lh_0)(arguments_length_0),App9_dot_1(App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("#%js-ffi"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.PrimitiveSymbol.make("ref")),LocalIdent6_dot_1(nh_0),Quote7_dot_1($rjs_core.PrimitiveSymbol.make("apply")))),M0.list(__times_null_times__0,__times_arguments_times__0)),loop_55(lt_0,nt_0));} else {var if_res1753 = alt_81();}return if_res1753;};var p_150 = v_94;if (M0.pair_p(p_150)!==false) {var a_230 = M0.car(p_150);if (M0.eq_p($rjs_core.Pair.makeList(),a_230)!==false) {var a_231 = M0.cdr(p_150);var p_151 = a_231;if (M0.pair_p(p_151)!==false) {var a_232 = M0.car(p_151);if (M0.eq_p($rjs_core.Pair.makeList(),a_232)!==false) {var a_233 = M0.cdr(p_151);var if_res1754 = M0.eq_p($rjs_core.Pair.makeList(),a_233);} else {var if_res1754 = false;}var if_res1755 = if_res1754;} else {var if_res1755 = false;}var if_res1756 = if_res1755;} else {var if_res1756 = false;}var if_res1757 = if_res1756;} else {var if_res1757 = false;}if (if_res1757!==false) {var if_res1758 = App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("error"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(Quote7_dot_1($rjs_core.UString.make("case-lambda: invalid case"))));} else {var if_res1758 = alt_80();}return if_res1758;};var let_result1759 = absyn_expr__gt_il(loop_55(rest_lams_1,rest_lam_names_0),false);var var_lam_stms_0 = let_result1759.getAt(0);var var_lam_val_0 = let_result1759.getAt(1);var dispatch_stms_0 = M0.list(ILVarDec20_dot_1(fixed_lam_name_0,ILIndex11_dot_1(fixed_lam_map_0,ILRef10_dot_1(ILArguments18_dot_1(),$rjs_core.PrimitiveSymbol.make("length")))),ILIf22_dot_1(ILBinaryOp6_dot_1($rjs_core.PrimitiveSymbol.make("!=="),M0.list(fixed_lam_name_0,ILUndefined17_dot_1())),M0.list(ILReturn26_dot_1(ILApp7_dot_1(ILRef10_dot_1(fixed_lam_name_0,$rjs_core.PrimitiveSymbol.make("apply")),M0.list(ILNull16_dot_1(),ILArguments18_dot_1())))),append1(var_lam_stms_0,ILReturn26_dot_1(var_lam_val_0))));var make_lam_0 = function(id_8, lam_4) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-lam");var let_result1760 = absyn_expr__gt_il(lam_4,false);var stms_40 = let_result1760.getAt(0);var lam_expr_0 = let_result1760.getAt(1);stms_40;return ILVarDec20_dot_1(id_8,lam_expr_0);};return M0.values(M0.append(map2(make_lam_0,fixed_lam_names_0,fixed_lams_1),map2(make_lam_0,rest_lam_names_0,rest_lams_1)),ILLambda5_dot_1($rjs_core.Pair.makeList(),dispatch_stms_0));};var case_lambda_has_dead_clause_p = function(clam_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var let_result1761 = make_sequence($rjs_core.Pair.makeList($rjs_core.PrimitiveSymbol.make("lam")),CaseLambda_clauses(clam_0));var pos__gt_vals_31 = let_result1761.getAt(0);var pos_pre_inc_29 = let_result1761.getAt(1);var pos_next_32 = let_result1761.getAt(2);var init_32 = let_result1761.getAt(3);var pos_cont_p_32 = let_result1761.getAt(4);var val_cont_p_31 = let_result1761.getAt(5);var all_cont_p_31 = let_result1761.getAt(6);M0.rvoid();var for_loop_32 = function(res_9, least_var_arity_0, pos_98) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (pos_cont_p_32!==false) {var if_res1762 = pos_cont_p_32(pos_98);} else {var if_res1762 = true;}if (if_res1762!==false) {var lam_6 = pos__gt_vals_31(pos_98);if (all_cont_p_31!==false) {var if_res1763 = function(pos_99) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return all_cont_p_31(pos_99,lam_6);};} else {var if_res1763 = false;}var let_result1764 = M0.values(lam_6,if_res1763);var lam_5 = let_result1764.getAt(0);var all_cont_p_by_pos_29 = let_result1764.getAt(1);if (pos_pre_inc_29!==false) {var if_res1765 = pos_pre_inc_29(pos_98);} else {var if_res1765 = pos_98;}var pos_100 = if_res1765;if (val_cont_p_31!==false) {var if_res1766 = val_cont_p_31(lam_5);} else {var if_res1766 = true;}if (if_res1766!==false) {var res_11 = res_9;var least_var_arity_2 = least_var_arity_0;var arity_5 = lambda_arity(lam_5);if (M0.number_p(arity_5)!==false) {var if_res1767 = M0.__lt_(arity_5,least_var_arity_2);} else {var if_res1767 = false;}if (if_res1767!==false) {var if_res1772 = M0.values(res_11,least_var_arity_2);} else {if (M0.number_p(arity_5)!==false) {var if_res1771 = M0.values(true,least_var_arity_2);} else {if (M0.arity_at_least_p(arity_5)!==false) {var if_res1768 = M0.__lt_(M0.arity_at_least_value(arity_5),least_var_arity_2);} else {var if_res1768 = false;}if (if_res1768!==false) {var if_res1770 = M0.values(res_11,M0.arity_at_least_value(arity_5));} else {if (M0.arity_at_least_p(arity_5)!==false) {var if_res1769 = M0.values(true,least_var_arity_2);} else {var if_res1769 = M0.rvoid();}var if_res1770 = if_res1769;}var if_res1771 = if_res1770;}var if_res1772 = if_res1771;}var let_result1773 = if_res1772;var res_12 = let_result1773.getAt(0);var least_var_arity_3 = let_result1773.getAt(1);var let_result1774 = M0.values(res_12,least_var_arity_3);var res_10 = let_result1774.getAt(0);var least_var_arity_1 = let_result1774.getAt(1);if (all_cont_p_by_pos_29!==false) {var if_res1775 = all_cont_p_by_pos_29(pos_100);} else {var if_res1775 = true;}if (if_res1775!==false) {var if_res1776 = M0.not(false);} else {var if_res1776 = false;}if (if_res1776!==false) {var if_res1777 = for_loop_32(res_10,least_var_arity_1,pos_next_32(pos_100));} else {var if_res1777 = M0.values(res_10,least_var_arity_1);}var if_res1778 = if_res1777;} else {var if_res1778 = M0.values(res_9,least_var_arity_0);}var if_res1779 = if_res1778;} else {var if_res1779 = M0.values(res_9,least_var_arity_0);}return if_res1779;};var let_result1780 = for_loop_32(false,Infinity,init_32);var result_11 = let_result1780.getAt(0);var __10 = let_result1780.getAt(1);return result_11;};var get_formals_predicate = function(c_14) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var frmls_1 = Lambda_formals(c_14);if (M0.symbol_p(frmls_1)!==false) {var if_res1783 = function(__11) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return Quote7_dot_1(true);};} else {if (M0.list_p(frmls_1)!==false) {var if_res1782 = function(v_95) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make("equal?"),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(v_95,Quote7_dot_1(M0.length(frmls_1))));};} else {if (cons_p(frmls_1)!==false) {var if_res1781 = function(v_96) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return App9_dot_1(ImportedIdent3_dot_1($rjs_core.PrimitiveSymbol.make(">="),$rjs_core.PrimitiveSymbol.make("#%kernel"),true),M0.list(v_96,Quote7_dot_1(M0.sub1(M0.length(improper__gt_proper(frmls_1))))));};} else {var if_res1781 = M0.rvoid();}var if_res1782 = if_res1781;}var if_res1783 = if_res1782;}return if_res1783;};var resolve_procedure_arities = function(arities_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_lt__0 = function(a_234, b_29) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity<");if (M0.arity_at_least_p(a_234)!==false) {var if_res1785 = M0.arity_at_least_value(a_234);} else {var if_res1785 = a_234;}if (M0.arity_at_least_p(b_29)!==false) {var if_res1784 = M0.arity_at_least_value(b_29);} else {var if_res1784 = b_29;}return M0.__lt_(if_res1785,if_res1784);};var arity_equal_p_0 = function(a_235, b_30) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity-equal?");if (M0.not(arity_lt__0(a_235,b_30))!==false) {var if_res1786 = M0.not(arity_lt__0(b_30,a_235));} else {var if_res1786 = false;}return if_res1786;};var loop_56 = function(arities_times__0, result_12) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("loop");var v_97 = arities_times__0;var alt_82 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_83 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");var alt_84 = function() {if (arguments.length!==0) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("alt");return M0.error($rjs_core.PrimitiveSymbol.make("match"),$rjs_core.UString.make("failed ~e"),v_97);};var p_152 = v_97;if (M0.pair_p(p_152)!==false) {var if_res1787 = true;} else {var if_res1787 = false;}if (if_res1787!==false) {var p_153 = v_97;var a_236 = M0.car(p_153);var hd_9 = a_236;var d_69 = M0.cdr(p_153);var tl_4 = d_69;var let_result1788 = M0.values(hd_9,tl_4);var hd_8 = let_result1788.getAt(0);var tl_3 = let_result1788.getAt(1);if (cons_p(result_12)!==false) {var if_res1789 = arity_equal_p_0(M0.car(result_12),hd_8);} else {var if_res1789 = false;}if (if_res1789!==false) {var if_res1790 = result_12;} else {var if_res1790 = M0.cons(hd_8,result_12);}var if_res1791 = loop_56(tl_3,if_res1790);} else {var if_res1791 = alt_84();}return if_res1791;};var p_154 = v_97;if (M0.pair_p(p_154)!==false) {var if_res1792 = true;} else {var if_res1792 = false;}if (if_res1792!==false) {var p_155 = v_97;var a_237 = M0.car(p_155);var hd_11 = a_237;var d_70 = M0.cdr(p_155);var tl_6 = d_70;var let_result1793 = M0.values(hd_11,tl_6);var hd_10 = let_result1793.getAt(0);var tl_5 = let_result1793.getAt(1);if (M0.arity_at_least_p(hd_10)!==false) {if (cons_p(result_12)!==false) {var if_res1794 = arity_equal_p_0(M0.car(result_12),hd_10);} else {var if_res1794 = false;}if (if_res1794!==false) {var if_res1795 = M0.cons(hd_10,M0.cdr(result_12));} else {var if_res1795 = M0.cons(hd_10,result_12);}var if_res1796 = reverse$1(if_res1795);} else {var if_res1796 = alt_83();}var if_res1797 = if_res1796;} else {var if_res1797 = alt_83();}return if_res1797;};if (M0.eq_p($rjs_core.Pair.makeList(),v_97)!==false) {var if_res1798 = reverse$1(result_12);} else {var if_res1798 = alt_82();}return if_res1798;};var arities23_0 = arities_1;var arity_lt_24_0 = arity_lt__0;return loop_56(sort_dot_1(false,false,arities23_0,arity_lt_24_0),$rjs_core.Pair.makeList());};var make_curry = function(right_p_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var arity_upper_bound_0 = function(mask_10) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("arity-upper-bound");if (M0.eqv_p(mask_10,0)!==false) {var if_res1800 = false;} else {if (M0.negative_p(mask_10)!==false) {var if_res1799 = Infinity;} else {var if_res1799 = M0.sub1(M0.integer_length(mask_10));}var if_res1800 = if_res1799;}return if_res1800;};var partially_applied_procedure_arity_mask_0 = function(mask_11, num_args_so_far_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("partially-applied-procedure-arity-mask");if (M0.negative_p(mask_11)!==false) {var if_res1801 = -1;} else {var if_res1801 = M0.sub1(M0.arithmetic_shift(1,M0.integer_length(mask_11)-num_args_so_far_0));}return if_res1801;};if (right_p_0!==false) {var if_res1802 = $rjs_core.PrimitiveSymbol.make("curryr");} else {var if_res1802 = $rjs_core.PrimitiveSymbol.make("curry");}var who_7 = if_res1802;if (right_p_0!==false) {var if_res1803 = function(pos_args_so_far_0, new_pos_args_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-pos-args");return M0.append(new_pos_args_0,pos_args_so_far_0);};} else {var if_res1803 = function(pos_args_so_far_1, new_pos_args_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-pos-args");return M0.append(pos_args_so_far_1,new_pos_args_1);};}var incorporate_new_pos_args_0 = if_res1803;var do_curry_0 = function(f_32) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("do-curry");if (M0.procedure_p(f_32)!==false) {var if_res1804 = M0.rvoid();} else {var if_res1804 = M0.raise_argument_error(who_7,$rjs_core.UString.make("procedure?"),f_32);}if_res1804;var name_13 = M0.object_name(f_32);if (M0.symbol_p(name_13)!==false) {var if_res1805 = M0.string__gt_symbol(M0.string_append($rjs_core.UString.make("curried:"),M0.symbol__gt_string(name_13)));} else {var if_res1805 = $rjs_core.PrimitiveSymbol.make("curried");}var curried_name_0 = if_res1805;var arity_mask_1 = M0.procedure_arity_mask(f_32);var max_arity_0 = arity_upper_bound_0(arity_mask_1);var let_result1806 = procedure_keywords(f_32);var required_kws_0 = let_result1806.getAt(0);var allowed_kws_2 = let_result1806.getAt(1);if (M0.null_p(allowed_kws_2)!==false) {var reduce_arity_by_rename_0 = function(proc_17, num_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reduce-arity/rename");return new_procedure_reduce_arity_mask(proc_17,partially_applied_procedure_arity_mask_0(arity_mask_1,num_args_so_far_1),curried_name_0);};var make_curried_0 = function(args_so_far_0) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-curried");return reduce_arity_by_rename_0($rjs_core.attachProcedureArity(function(...new_args_01807) {var new_args_0 = $rjs_core.Pair.listFromArray(new_args_01807);var args_19 = incorporate_new_pos_args_0(args_so_far_0,new_args_0);if (M0.procedure_arity_includes_p(f_32,M0.length(args_19))!==false) {var if_res1808 = M0.apply(f_32,args_19);} else {var if_res1808 = make_curried_0(args_19);}return if_res1808;}),M0.length(args_so_far_0));};var if_res1833 = reduce_arity_by_rename_0($rjs_core.attachProcedureArity(function(...args_201809) {var args_20 = $rjs_core.Pair.listFromArray(args_201809);if (M0.__eq_(M0.length(args_20),max_arity_0)!==false) {var if_res1810 = M0.apply(f_32,args_20);} else {var if_res1810 = make_curried_0(args_20);}return if_res1810;}),0);} else {var incorporate_new_kws_plus_args_0 = function(kws_plus_args_so_far_0, new_kws_plus_args_0) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("incorporate-new-kws+args");var ht_8 = new_kws_plus_args_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1811 = M0.rvoid();} else {var if_res1811 = check_in_hash(ht_8);}if_res1811;var for_loop_33 = function(kws_plus_args_0, i_56) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (i_56!==false) {var let_result1812 = M0.hash_iterate_key_plus_value(ht_8,i_56);var kw_1 = let_result1812.getAt(0);var arg_4 = let_result1812.getAt(1);var kws_plus_args_2 = kws_plus_args_0;if (hash_has_key_p(kws_plus_args_2,kw_1)!==false) {var if_res1813 = M0.raise_arguments_error(curried_name_0,$rjs_core.UString.make("duplicate keyword for procedure"),$rjs_core.UString.make("keyword"),kw_1,$rjs_core.UString.make("first value"),M0.hash_ref(kws_plus_args_2,kw_1),$rjs_core.UString.make("second value"),arg_4);} else {var if_res1813 = M0.hash_set(kws_plus_args_2,kw_1,arg_4);}var kws_plus_args_3 = if_res1813;var kws_plus_args_1 = M0.values(kws_plus_args_3);if (M0.not(false)!==false) {var if_res1814 = for_loop_33(kws_plus_args_1,M0.hash_iterate_next(ht_8,i_56));} else {var if_res1814 = kws_plus_args_1;}var if_res1815 = if_res1814;} else {var if_res1815 = kws_plus_args_0;}return if_res1815;};return for_loop_33(kws_plus_args_so_far_0,M0.hash_iterate_first(ht_8));};var reduce_arity_by_rename_1 = function(proc_18, num_args_so_far_2, kw_plus_args_so_far_0) {if (arguments.length!==3) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("reduce-arity/rename");var temp1818 = partially_applied_procedure_arity_mask_0(arity_mask_1,num_args_so_far_2);var temp1817 = $rjs_core.Pair.makeList();if (allowed_kws_2!==false) {var if_res1816 = filter(function(kw_2) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return M0.not(hash_has_key_p(kw_plus_args_so_far_0,kw_2));},allowed_kws_2);} else {var if_res1816 = false;}return procedure_reduce_keyword_arity_mask(proc_18,temp1818,temp1817,if_res1816,curried_name_0);};var make_curried_1 = function(pos_args_so_far_2, kws_plus_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("make-curried");return reduce_arity_by_rename_1(make_keyword_procedure($rjs_core.attachProcedureArity(function(new_kws_0, new_kw_args_0, ...new_pos_args_21820) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var new_pos_args_2 = $rjs_core.Pair.listFromArray(new_pos_args_21820);return step_7(incorporate_new_pos_args_0(pos_args_so_far_2,new_pos_args_2),incorporate_new_kws_plus_args_0(kws_plus_args_so_far_1,M0.make_immutable_hasheq(map2(M0.cons,new_kws_0,new_kw_args_0))));}),$rjs_core.attachProcedureArity(function(...new_pos_args_31819) {var new_pos_args_3 = $rjs_core.Pair.listFromArray(new_pos_args_31819);return step_7(incorporate_new_pos_args_0(pos_args_so_far_2,new_pos_args_3),kws_plus_args_so_far_1);})),M0.length(pos_args_so_far_2),kws_plus_args_so_far_1);};var step_7 = function(pos_args_so_far_3, kw_plus_args_so_far_1) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("step");if (M0.procedure_arity_includes_p(f_32,M0.length(pos_args_so_far_3),true)!==false) {var lst_18 = required_kws_0;if (M0.variable_reference_from_unsafe_p($rjs_core.PrimitiveSymbol.make("#%variable-reference"))!==false) {var if_res1821 = M0.rvoid();} else {var if_res1821 = check_list(lst_18);}if_res1821;var for_loop_34 = function(result_13, lst_19) {if (arguments.length!==2) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("for-loop");if (M0.pair_p(lst_19)!==false) {var required_kw_0 = M0.unsafe_car(lst_19);var rest_5 = M0.unsafe_cdr(lst_19);var result_15 = hash_has_key_p(kw_plus_args_so_far_1,required_kw_0);var result_14 = M0.values(result_15);if (M0.not($rjs_core.attachProcedureArity(function(...x_21822) {var x_2 = $rjs_core.Pair.listFromArray(x_21822);return M0.not(result_14);})(required_kw_0))!==false) {var if_res1823 = M0.not(false);} else {var if_res1823 = false;}if (if_res1823!==false) {var if_res1824 = for_loop_34(result_14,rest_5);} else {var if_res1824 = result_14;}var if_res1825 = if_res1824;} else {var if_res1825 = result_13;}return if_res1825;};var if_res1826 = for_loop_34(true,lst_18);} else {var if_res1826 = false;}if (if_res1826!==false) {var temp1_0 = hash__gt_list(kw_plus_args_so_far_1);var keyword_lt__p2_0 = M0.keyword_lt__p;var car3_0 = M0.car;var sorted_kw_plus_args_0 = sort_dot_1(false,car3_0,temp1_0,keyword_lt__p2_0);var kws_23 = map2(M0.car,sorted_kw_plus_args_0);var kw_args_9 = map2(M0.cdr,sorted_kw_plus_args_0);var if_res1827 = new_keyword_apply(f_32,kws_23,kw_args_9,pos_args_so_far_3);} else {var if_res1827 = make_curried_1(pos_args_so_far_3,kw_plus_args_so_far_1);}return if_res1827;};var if_res1833 = reduce_arity_by_rename_1(make_keyword_procedure($rjs_core.attachProcedureArity(function(kws_24, kw_args_10, ...pos_args_01829) {if (arguments.length<2) {throw $rjs_core.racketContractError("arity mismatch");} else {}var pos_args_0 = $rjs_core.Pair.listFromArray(pos_args_01829);if (M0.__eq_(M0.length(pos_args_0),max_arity_0)!==false) {if (allowed_kws_2!==false) {var if_res1830 = M0.__eq_(M0.length(kws_24),M0.length(allowed_kws_2));} else {var if_res1830 = false;}var if_res1831 = if_res1830;} else {var if_res1831 = false;}if (if_res1831!==false) {var if_res1832 = new_keyword_apply(f_32,kws_24,kw_args_10,pos_args_0);} else {var if_res1832 = make_curried_1(pos_args_0,M0.make_immutable_hasheq(map2(M0.cons,kws_24,kw_args_10)));}return if_res1832;}),$rjs_core.attachProcedureArity(function(...pos_args_11828) {var pos_args_1 = $rjs_core.Pair.listFromArray(pos_args_11828);return make_curried_1(pos_args_1,$rjs_core.Hash.makeEq([],false));})),0,$rjs_core.Hash.makeEq([],false));}return if_res1833;};var temp1842 = $rjs_core.attachProcedureArity(function(kws_25, kw_args_11, f_33, ...args_211839) {if (arguments.length<3) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_21 = $rjs_core.Pair.listFromArray(args_211839);var curried_0 = do_curry_0(f_33);if (M0.null_p(kws_25)!==false) {if (M0.null_p(args_21)!==false) {var if_res1840 = curried_0;} else {var if_res1840 = M0.apply(curried_0,args_21);}var if_res1841 = if_res1840;} else {var if_res1841 = new_keyword_apply(curried_0,kws_25,kw_args_11,args_21);}return if_res1841;});var cl1834 = function(f_34) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}return do_curry_0(f_34);};var cl1835 = $rjs_core.attachProcedureArity(function(f_35, ...args_221838) {if (arguments.length<1) {throw $rjs_core.racketContractError("arity mismatch");} else {}var args_22 = $rjs_core.Pair.listFromArray(args_221838);return M0.apply(do_curry_0(f_35),args_22);});return new_procedure_rename(make_keyword_procedure(temp1842,$rjs_core.attachProcedureArity(function() {var fixed_lam1836 = {'1':cl1834}[arguments.length];if (fixed_lam1836!==undefined) {return fixed_lam1836.apply(null,arguments);} else {if (M0.__gt__eq_(cl1835.length,1)!==false) {var if_res1837 = cl1835.apply(null,arguments);} else {var if_res1837 = M0.error($rjs_core.UString.make("case-lambda: invalid case"));}return if_res1837;}},[M0.make_arity_at_least(1)])),who_7);};var curry = make_curry(false);var curryr = make_curry(true);var _1_by_compile_linklet = function(sexp_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("compile-linklet");return absyn_linklet__gt_il(parse_linklet(sexp_1,$rjs_core.UString.make("/home/gamburgm/racketscript/racketscript.rkt")));};var _1_by_linklet_import_variables = function(lnk_1) {if (arguments.length!==1) {throw $rjs_core.racketContractError("arity mismatch");} else {}$rjs_core.PrimitiveSymbol.make("linklet-import-variables");return Linklet_imports(lnk_1);};export { _1_by_compile_linklet as compile_linklet,_1_by_linklet_import_variables as linklet_import_variables }; \ No newline at end of file diff --git a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt index 35893431..e3926d5c 100644 --- a/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt +++ b/racketscript-compiler/racketscript/compiler/runtime/kernel.rkt @@ -1611,7 +1611,8 @@ (define+provide (check-for-break) ($/undefined)) (define+provide (reparameterize v) v) -(define paramz-table +;; TODO shouldn't need to be provided, is right now for `table.rkt` +(define+provide paramz-table (hash 'parameterization-key parameterization-key 'break-enabled-key break-enabled-key 'cache-configuration cache-configuration diff --git a/racketscript-compiler/racketscript/compiler/runtime/table.rkt b/racketscript-compiler/racketscript/compiler/runtime/table.rkt new file mode 100644 index 00000000..084ef8b4 --- /dev/null +++ b/racketscript-compiler/racketscript/compiler/runtime/table.rkt @@ -0,0 +1,37 @@ +#lang racketscript/boot + +(require racketscript/interop + "lib.rkt" + "kernel.rkt") + +(define Linklet ($/require/* "./core/racketscript.js")) +(define Core ($/require/* "./core.js")) + +;; FIXME duplicate from kernel.rkt +(define equal? #js.Core.isEqual) + +(define (object->hash o) + (let ([entries (#js*.Object.entries o)]) + (($ entries 'reduce) + (λ (table pair) (hash-set (string->symbol (js-string->string ($ pair 0))) ($ pair 1))) + (hash)))) + +(define+provide (primitive-table table-name) + (cond + [(equal? table-name '#%kernel) #js.Core.KernelTable.kernelTable] + [(equal? table-name '#%linklet) + (let ([lnkTable (object->hash #js.Linklet)]) + (hash-set lnkTable 'primitive-table primitive-table))] + [(equal? table-name '#%paramz) paramz-table] ;; imported from kernel.rkt + ;; Pycket has entries for all of the tables below + [(equal? table-name '#%foreign) (hash)] + [(equal? table-name '#%unsafe) (hash)] + [(equal? table-name '#%futures) (hash)] + [(equal? table-name '#%place) (hash)] + [(equal? table-name '#%flfxnum) (hash)] + [(equal? table-name '#%extfl) (hash)] + [(equal? table-name '#%network) (hash)] + + + [else #f])) + diff --git a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt index ca390299..96f110e7 100644 --- a/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt +++ b/racketscript-compiler/racketscript/compiler/sexp-to-ast.rkt @@ -104,7 +104,7 @@ (LocalIdent v)] ;; FIXME not really always '#%kernel [(eq? v 'primitive-table) - (ImportedIdent v '#%linklet #t)] + (ImportedIdent v '#%primitive-table #t)] [else (ImportedIdent v '#%kernel #t)])] [`(set! ,s ,e) (Set! s (t e))] @@ -120,7 +120,7 @@ (error 'linklet-expand)])) -(define (parse-linklet v path [expander? #f]) +(define (parse-linklet v path) (match v [`(linklet ,imports ,exports . ,body) (define imps (for*/hash ([(j import) (in-indexed imports)] @@ -134,6 +134,5 @@ [`,_ (void)])) ;; FIXME kludge to deal with `primitive-table` without producing circular dependency ;; racketscript.js -> kernel.rkt.js -> racketscript.js (for linklet api) ... - (define final-imports (if expander? (cons '#%linklet imports) imports)) - (Linklet path final-imports exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) + (Linklet path imports exports (map (lambda (v) (to-absyn v (hash-union imps defs))) body))])) diff --git a/racketscript-compiler/racketscript/compiler/transform.rkt b/racketscript-compiler/racketscript/compiler/transform.rkt index e35eea08..334285aa 100644 --- a/racketscript-compiler/racketscript/compiler/transform.rkt +++ b/racketscript-compiler/racketscript/compiler/transform.rkt @@ -45,7 +45,7 @@ ;; in them -- imported-mod-path-list + the 'requires' objects + module-object-name-map - (parameterize ([module-object-name-map (make-module-map requires* '(#%kernel))]) + (parameterize ([module-object-name-map (make-module-map requires* '(#%kernel #%primitive-table))]) (ILLinklet (filter ILRequire? requires*) (absyn-exports->il exports) @@ -71,10 +71,8 @@ ;; TODO not using a lot of the code here, eventually should be able to delete (define (absyn-requires->il import-list path) - (cons (ILRequire "../runtime/kernel.rkt.js" 'M0 '*) - (if (member '#%linklet import-list) - (list (ILRequire "./racketscript.js" 'M1 '*)) - '()))) + (list (ILRequire "../runtime/kernel.rkt.js" 'M0 '*) + (ILRequire "../runtime/table.rkt.js" 'M1 '*))) ;; (for/list ([mod-path import-list]